From c9a0ab884852494f816bac8a42db72f8de5b33e1 Mon Sep 17 00:00:00 2001 From: Vinh Date: Wed, 15 Apr 2020 18:15:31 +0200 Subject: [PATCH] =?UTF-8?q?[CORL-878]=C2=A0Upgrade=20dependencies=20(#2867?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: upgrade fluent * chore: upgrade metascraper * chore: upgrade akismet-api * chore: upgrade apollo-server-express * chore: upgrade archiver * chore: upgrade bull * chore: upgrade express, cheerio, content-security-policy-builder * chore: upgrade convict * chore: upgrade cors, cron * chore: upgrade csv-stringify * chore: upgrade dompurify * chore: upgrade dotenv * chore: upgrade express-static-gzip * chore: upgrade fs-extra * chore: upgrade graphql-js * chore: upgrade graphql packages * chore: upgrade html-minifier * chore: upgrade html-to-text * chore: upgrade ioredis * chore: upgrade joi * chore: upgrade jsdom * chore: upgrade jsonwebtoken * chore: upgrade juice * chore: upgrade jwks-rsa ad linkifyjs * chore: upgrade lodash * chore: upgrade luxon * chore: upgrade metascraper * chore: upgrade mongodb * chore: upgrade ms * chore: upgrade node and node-fetch types * chore: upgrade nodemailer nunjucks and typescript-eslint * chore: Upgrade passport * upgrade: prom-client react-helmet source-map-support stack-utils * chore: upgrade uuid * chore: upgrade @babel packages * chore: upgrade types * chore: upgrade autoprefixer * chore: upgrade jest * chore: upgrade ts-jest * chore: remove linkify.d.ts * chore: upgrade bowser * chore: case-sensitive-paths-webpack-plugin * chore: upgrade classnames * chore: upgrade commander * chore: upgrade comment-json * chore: upgrade cross-spawn compression-webpack-plugin del * chore: upgrade build and watch related dependencies * chore: upgrade css-vars-ponyfill * chore: upgrade eslint and css-vars-ponyfill * chore: upgrade enzyme and eventemitter2 * fix: form bug * chore: upgrade farce * chore: upgrade final form * chore: upgrade react-popper * chore: upgrade flat and fork-ts-checker-webpack-plugin * chore: upgrade husky and gulp related, intersection observer * chore: upgrade lint-staged * chore: upgrade marked, loader-utils, mini-css-extract-plugin * chore: upgrade postcss-nested, proxy-polyfill, pstree.remy * chore: upgrade prettier * chore: fix prettier changes, upgrade react * chore: mute createFactory deprecated message * chore: upgrade react-copy-to-clipbard, react-axe, react-dom, react-test-renderer, react-timeago * chore: upgrade react-transistion-group, react-responsive * chore: upgrade types * chore: upgrade react-dev-utils, react-error-overlay regenerator-runtime * chore: upgrade types, sinon, sockjs-client, strip-ansi * chore: upgrade types, fonts * chore: upgrade nunjucks, ts-node, typescript-snapshot-plugin, wait-for-expect * chore: upgrade eslint packages * chore: upgrade fluent, types * chore: upgrade jsdom dep * chore: upgrade mongo * chore: upgrade deps * chore: upgrade typescript, recompose * chore: upgrade prettier * chore: remove obsolete prettier config * chore: upgrade jsdom types * chore: upgrade typescript-eslint * chore: upgrad deps * chore: upgrade deps * chore: upgrade relay related modules * chore: upgrade docz WIP * chore: upgrade docz * chore: add guard * chore: remove obsolete line * chore: comment * chore: refactors * fix: hook count change error --- .eslintrc.js | 10 +- .prettierrc.json | 3 - .vscode/settings.json | 2 +- babel.config.js | 2 +- config/jest/client.config.js | 8 +- config/jest/server.config.js | 5 +- doczrc.js | 101 +- gatsby-node.js | 216 + package-lock.json | 39701 ++++++++++------ package.json | 499 +- scripts/WebpackDevServerUtils.js | 24 +- scripts/build.ts | 6 +- scripts/generateEventDocs.ts | 6 +- scripts/generateSchemaTypes.js | 6 +- scripts/start.ts | 2 +- scripts/test.js | 2 +- scripts/watcher/ChokidarWatcher.ts | 1 + scripts/watcher/bin/watcher.ts | 2 +- scripts/watcher/types.ts | 18 +- scripts/watcher/watch.ts | 12 +- src/core/build/createWebpackConfig.ts | 20 +- src/core/build/loaders/locales-loader.js | 24 +- src/core/build/postcss.config.js | 10 +- .../App/DecisionHistory/ApprovedComment.tsx | 2 +- .../App/DecisionHistory/DecisionHistory.tsx | 4 +- .../DecisionHistoryContainer.tsx | 4 +- .../DecisionHistory/DecisionHistoryQuery.tsx | 3 +- .../App/DecisionHistory/DecisionItem.tsx | 2 +- .../App/DecisionHistory/DecisionList.tsx | 2 +- .../admin/App/DecisionHistory/Footer.tsx | 2 +- .../App/DecisionHistory/GoToCommentLink.tsx | 2 +- .../client/admin/App/DecisionHistory/Info.tsx | 2 +- .../client/admin/App/DecisionHistory/Main.tsx | 2 +- .../App/DecisionHistory/RejectedComment.tsx | 2 +- .../App/DecisionHistory/ShowMoreButton.tsx | 2 +- .../admin/App/DecisionHistory/Timestamp.tsx | 2 +- .../GoToCommentLink.spec.tsx.snap | 4 +- .../GlobalNotificationContext.tsx | 4 +- src/core/client/admin/App/MainRoute.tsx | 2 +- .../admin/App/Navigation/Navigation.tsx | 2 +- .../App/Navigation/NavigationContainer.tsx | 3 +- .../admin/App/Navigation/NavigationLink.tsx | 2 +- .../NavigationLink.spec.tsx.snap | 4 +- .../client/admin/App/UserMenu/UserMenu.tsx | 2 +- .../admin/App/UserMenu/UserMenuContainer.tsx | 3 +- .../client/admin/components/ButtonPadding.tsx | 2 +- .../components/Comment/CommentContent.css | 2 +- .../admin/components/Comment/Username.tsx | 2 +- .../ConversationModalCommentContainer.tsx | 6 +- .../ConversationModalContainer.tsx | 4 +- .../ConversationModalHeaderContainer.tsx | 3 +- .../ConversationModalQuery.tsx | 7 +- .../ConversationModalRepliesContainer.tsx | 16 +- .../ConversationModalRepliesQuery.tsx | 17 +- .../components/ModerateCard/ApproveButton.tsx | 2 +- .../ModerateCard/BanCommentUserMutation.ts | 4 +- .../ModerateCard/CommentAuthorContainer.tsx | 3 +- .../ModerateCard/CommentRevisionContainer.tsx | 7 +- .../components/ModerateCard/FeatureButton.tsx | 2 +- .../ModerateCard/FeatureCommentMutation.ts | 8 +- .../ModerateCard/LinkDetailsContainer.tsx | 3 +- .../ModerateCard/MarkersContainer.tsx | 87 +- .../ModerateCard/ModerateCardContainer.tsx | 2 +- .../ModerateCardDetailsContainer.tsx | 17 +- .../components/ModerateCard/RejectButton.tsx | 2 +- .../ModerateCard/UnfeatureCommentMutation.ts | 4 +- .../ModeratedByContainer.spec.tsx.snap | 2 +- .../client/admin/components/NotAvailable.tsx | 2 +- .../admin/components/Timeline/Circle.tsx | 2 +- .../client/admin/components/Timeline/Line.tsx | 2 +- .../admin/components/TranslatedRole.tsx | 2 +- .../components/TranslatedStoryStatus.tsx | 2 +- .../CreateModeratorNoteMutation.ts | 3 +- .../DeleteModeratorNoteMutation.ts | 5 +- .../RecentHistoryContainer.tsx | 3 +- .../UserHistoryDrawer/UserBadgesContainer.tsx | 2 +- .../UserDrawerAccountHistory.tsx | 9 +- .../UserDrawerAccountHistoryQuery.tsx | 7 +- .../UserDrawerNotesContainer.tsx | 9 +- .../UserDrawerNotesQuery.tsx | 3 +- .../UserHistoryDrawerAllComments.tsx | 4 +- .../UserHistoryDrawerAllCommentsQuery.tsx | 3 +- .../UserHistoryDrawerContainer.tsx | 3 +- .../UserHistoryDrawerQuery.tsx | 7 +- .../UserHistoryDrawerRejectedComments.tsx | 6 +- ...UserHistoryDrawerRejectedCommentsQuery.tsx | 3 +- .../UserStatusDetailsContainer.tsx | 9 +- .../components/UserRole/UserRoleChange.tsx | 2 +- .../UserRole/UserRoleChangeContainer.tsx | 9 +- .../components/UserRole/UserRoleText.tsx | 2 +- .../admin/components/UserStatus/BanModal.tsx | 4 +- .../UserStatus/ChangeStatusModal.tsx | 2 +- .../UserStatus/ChangeStatusModalHeader.tsx | 6 +- .../UserStatus/RemoveUserBanMutation.ts | 2 +- .../UserStatus/RemoveUserPremodMutation.ts | 2 +- .../RemoveUserSuspensionMutation.ts | 2 +- .../components/UserStatus/SuspendForm.tsx | 10 +- .../components/UserStatus/UserStatus.tsx | 2 +- .../UserStatus/UserStatusChangeContainer.tsx | 9 +- .../UserStatus/UserStatusContainer.tsx | 2 +- .../client/admin/helpers/getPhrasesRegExp.ts | 2 +- src/core/client/admin/helpers/markHTMLNode.ts | 2 +- src/core/client/admin/local/initLocalState.ts | 2 +- .../admin/mutations/ApproveCommentMutation.ts | 8 +- .../admin/mutations/RejectCommentMutation.ts | 8 +- .../mutations/SetRedirectPathMutation.ts | 2 +- .../admin/routes/AuthCheck/AuthCheckRoute.tsx | 3 +- .../routes/AuthCheck/RestrictedContainer.tsx | 2 +- .../admin/routes/Community/Community.tsx | 2 +- .../admin/routes/Community/CommunityRoute.tsx | 2 +- .../admin/routes/Community/EmptyMessage.tsx | 2 +- .../InviteUsers/InviteUsersContainer.tsx | 3 +- .../routes/Community/UserRowContainer.tsx | 2 +- .../admin/routes/Community/UserTable.tsx | 2 +- .../routes/Community/UserTableContainer.tsx | 4 +- .../routes/Community/UserTableFilter.tsx | 6 +- .../routes/Configure/Fields/LocaleField.tsx | 4 +- .../client/admin/routes/Configure/Link.tsx | 2 +- .../Configure/TextFieldWithValidation.tsx | 2 +- .../routes/Configure/ValidationMessage.tsx | 2 +- .../__snapshots__/Configure.spec.tsx.snap | 2 + .../__snapshots__/Link.spec.tsx.snap | 4 +- .../sections/Auth/AuthConfigContainer.tsx | 6 +- .../sections/Auth/FacebookConfig.tsx | 2 +- .../Configure/sections/Auth/GoogleConfig.tsx | 2 +- .../sections/Auth/LocalAuthConfig.tsx | 2 +- .../Configure/sections/Auth/OIDCConfig.tsx | 2 +- .../Configure/sections/Auth/SSOConfig.tsx | 2 +- .../SSOKeyRotationContainer.tsx | 7 +- .../SSOKeyRotation/SSOKeyRotationQuery.tsx | 7 +- .../Configure/sections/Auth/SessionConfig.tsx | 3 +- .../sections/Email/EmailConfigContainer.tsx | 2 +- .../routes/Configure/sections/Email/SMTP.tsx | 2 + .../General/AnnouncementConfigContainer.tsx | 9 +- .../General/ClosingCommentStreamsConfig.tsx | 3 +- .../sections/General/CommentEditingConfig.tsx | 3 +- .../sections/General/CommentLengthConfig.tsx | 6 +- .../sections/General/LocaleConfig.tsx | 2 +- .../Moderation/NewCommentersConfig.tsx | 3 +- .../Moderation/RecentCommentHistoryConfig.tsx | 3 +- .../Organization/EmptySitesMessage.tsx | 2 +- .../Organization/SiteRowContainer.tsx | 3 +- .../Organization/SitesConfigContainer.tsx | 11 +- .../sections/Organization/SitesTable.tsx | 4 +- .../Configure/sections/Sites/AddSiteRoute.tsx | 4 +- .../Configure/sections/Sites/EmbedCode.tsx | 4 +- .../Configure/sections/Sites/SiteRoute.tsx | 2 +- .../Configure/sections/Sites/SitesRoute.tsx | 2 +- .../sections/Slack/SlackConfigContainer.tsx | 58 +- .../AddWebhookEndpointContainer.tsx | 3 +- .../ConfigureWebhookEndpointContainer.tsx | 3 +- .../EndpointDangerZone.tsx | 7 +- .../EndpointDetails.tsx | 3 +- .../EndpointStatus.tsx | 3 +- .../ConfigureWebhookEndpointForm.tsx | 9 +- .../EventsSelectField.tsx | 5 +- .../WebhookEndpoints/WebhookEndpointRow.tsx | 3 +- .../WebhookEndpointsConfigContainer.tsx | 3 +- .../WebhookEndpointsLayout.tsx | 2 +- .../sections/WebhookEndpoints/index.ts | 4 +- .../ForgotPassword/ForgotPasswordForm.tsx | 2 +- .../Invite/InviteCompleteFormContainer.tsx | 3 +- .../admin/routes/Invite/SetPasswordField.tsx | 2 +- .../admin/routes/Invite/SetUsernameField.tsx | 2 +- .../admin/routes/Invite/SuccessContainer.tsx | 3 +- .../Login/AccountCompletionContainer.tsx | 4 +- .../client/admin/routes/Login/EmailField.tsx | 2 +- .../client/admin/routes/Login/LoginRoute.tsx | 3 +- .../admin/routes/Login/SetAuthViewMutation.ts | 2 +- .../routes/Login/SetDuplicateEmailMutation.ts | 2 +- .../AddEmailAddress/ConfirmEmailField.tsx | 2 +- .../views/AddEmailAddress/EmailField.tsx | 2 +- .../UnorderedList/ListItem.tsx | 2 +- .../UnorderedList/UnorderedList.tsx | 2 +- .../views/CreatePassword/CreatePassword.tsx | 2 +- .../views/CreatePassword/SetPasswordField.tsx | 2 +- .../views/CreateUsername/CreateUsername.tsx | 2 +- .../views/CreateUsername/UsernameField.tsx | 2 +- .../views/LinkAccount/HorizontalSeparator.css | 2 +- .../views/LinkAccount/HorizontalSeparator.tsx | 2 +- .../LinkAccount/LinkAccountContainer.tsx | 4 +- .../views/SignIn/ClearAuthErrorMutation.ts | 2 +- .../views/SignIn/HorizontalSeparator.tsx | 2 +- .../Login/views/SignIn/SignInContainer.tsx | 2 +- .../Login/views/SignIn/SignInWithEmail.tsx | 2 +- .../SignIn/SignInWithFacebookContainer.tsx | 3 +- .../SignIn/SignInWithGoogleContainer.tsx | 3 +- .../views/SignIn/SignInWithOIDCContainer.tsx | 3 +- .../client/admin/routes/Moderate/Moderate.tsx | 2 +- .../routes/Moderate/ModerateContainer.tsx | 2 +- ...derateCountsCommentEnteredSubscription.tsx | 5 +- .../ModerateCountsCommentLeftSubscription.tsx | 5 +- .../ModerateNavigationContainer.tsx | 2 +- .../ModerationCountsSubscription.tsx | 5 +- .../ModerateNavigation/NavigationLink.tsx | 2 +- .../NavigationLink.spec.tsx.snap | 4 +- .../ModerateNavigation/changeQueueCount.ts | 2 +- .../routes/Moderate/ModerateSearchBar/Bar.tsx | 8 +- .../Moderate/ModerateSearchBar/Field.tsx | 4 +- .../ModerateSearchBarContainer.tsx | 4 +- .../Moderate/Queue/ApprovedQueueRoute.tsx | 9 +- .../routes/Moderate/Queue/EmptyMessage.tsx | 2 +- .../Queue/QueueCommentEnteredSubscription.tsx | 7 +- .../Queue/QueueCommentLeftSubscription.tsx | 9 +- .../routes/Moderate/Queue/QueueRoute.tsx | 16 +- .../Moderate/Queue/QueueViewNewMutation.tsx | 6 +- .../routes/Moderate/Queue/QueueWrapper.tsx | 4 +- .../Moderate/Queue/RejectedQueueRoute.tsx | 9 +- .../SingleModerate/SingleModerateRoute.tsx | 2 +- .../SingleModerateSubscription.tsx | 5 +- .../SingleModerate.spec.tsx.snap | 4 +- .../Moderate/SiteSelector/SiteSelector.tsx | 2 +- .../SiteSelector/SiteSelectorContainer.tsx | 4 +- .../SiteSelectorCurrentSiteQuery.tsx | 7 +- .../SiteSelector/SiteSelectorSite.tsx | 3 +- .../__snapshots__/Moderate.spec.tsx.snap | 2 +- .../admin/routes/Stories/EmptyMessage.tsx | 2 +- .../admin/routes/Stories/NoMatchMessage.tsx | 2 +- .../routes/Stories/SiteFilter/SiteFilter.tsx | 6 +- .../SiteFilter/SiteFilterContainer.tsx | 4 +- .../Stories/SiteFilter/SiteFilterOption.tsx | 3 +- .../Stories/SiteFilter/SiteFilterSelected.tsx | 3 +- .../client/admin/routes/Stories/Stories.tsx | 2 +- .../admin/routes/Stories/StoriesRoute.tsx | 2 +- .../client/admin/routes/Stories/StoryRow.tsx | 2 +- .../routes/Stories/StoryRowContainer.tsx | 2 +- .../Stories/StoryStatus/StoryStatusChange.tsx | 2 +- .../StoryStatusChangeContainer.tsx | 4 +- .../Stories/StoryStatus/StoryStatusText.tsx | 2 +- .../admin/routes/Stories/StoryTable.tsx | 4 +- .../routes/Stories/StoryTableContainer.tsx | 4 +- .../admin/routes/Stories/StoryTableFilter.tsx | 4 +- .../addEmailAddress.spec.tsx.snap | 11 +- .../createPassword.spec.tsx.snap | 11 +- .../createUsername.spec.tsx.snap | 11 +- .../admin/test/auth/addEmailAddress.spec.tsx | 6 +- .../admin/test/auth/createPassword.spec.tsx | 4 +- .../admin/test/auth/createUsername.spec.tsx | 4 +- .../admin/test/auth/linkAccount.spec.tsx | 1 - .../admin/test/auth/redirectLoggedIn.spec.tsx | 2 +- .../admin/test/auth/restricted.spec.tsx | 4 +- .../admin/test/community/community.spec.tsx | 86 +- .../admin/test/configure/advanced.spec.tsx | 8 +- .../client/admin/test/configure/auth.spec.tsx | 16 +- .../admin/test/configure/general.spec.tsx | 86 +- .../admin/test/configure/moderation.spec.tsx | 8 +- .../test/configure/organization.spec.tsx | 8 +- .../admin/test/configure/wordList.spec.tsx | 4 +- src/core/client/admin/test/fixtures.ts | 2 +- .../admin/test/moderate/liveCounts.spec.tsx | 4 +- .../regularQueueLiveNewComments.spec.tsx | 6 +- .../moderate/regularQueueLiveStatus.spec.tsx | 2 +- .../admin/test/moderate/searchBar.spec.tsx | 4 +- .../moderate/singleCommentLiveStatus.spec.tsx | 2 +- .../admin/test/stories/stories.spec.tsx | 8 +- .../AccountCompletionContainer.tsx | 4 +- src/core/client/auth/App/App.tsx | 2 +- src/core/client/auth/App/AppContainer.tsx | 2 +- src/core/client/auth/App/AppQuery.tsx | 3 +- .../auth/components/ConfirmEmailField.tsx | 2 +- .../client/auth/components/EmailField.tsx | 2 +- .../client/auth/components/Header/Bar.tsx | 2 +- .../client/auth/components/Header/SubBar.tsx | 2 +- .../auth/components/Header/Subtitle.tsx | 2 +- .../client/auth/components/Header/Title.tsx | 2 +- .../auth/components/HorizontalSeparator.css | 2 +- .../auth/components/HorizontalSeparator.tsx | 2 +- .../auth/components/SetPasswordField.tsx | 2 +- .../client/auth/components/UsernameField.tsx | 2 +- .../mutations/SetDuplicateEmailMutation.ts | 2 +- .../client/auth/mutations/SetViewMutation.ts | 2 +- src/core/client/auth/mutations/index.ts | 4 +- .../addEmailAddress.spec.tsx.snap | 11 +- .../createPassword.spec.tsx.snap | 11 +- .../createUsername.spec.tsx.snap | 11 +- .../client/auth/test/addEmailAddress.spec.tsx | 8 +- .../client/auth/test/createPassword.spec.tsx | 6 +- .../client/auth/test/createUsername.spec.tsx | 6 +- .../client/auth/test/forgotPassword.spec.tsx | 4 +- src/core/client/auth/test/navigation.spec.tsx | 18 +- src/core/client/auth/test/signIn.spec.tsx | 14 +- src/core/client/auth/test/signUp.spec.tsx | 6 +- .../views/AddEmailAddress/SetEmailMutation.ts | 1 - .../UnorderedList/ListItem.tsx | 2 +- .../UnorderedList/UnorderedList.tsx | 2 +- .../CreatePassword/SetPasswordMutation.ts | 1 - .../CreateUsername/SetUsernameMutation.ts | 1 - .../ForgotPasswordContainer.tsx | 3 +- .../LinkAccount/LinkAccountContainer.tsx | 4 +- .../auth/views/SignIn/ClearErrorMutation.ts | 2 +- .../auth/views/SignIn/SignInContainer.tsx | 2 +- .../auth/views/SignIn/SignInWithEmail.tsx | 2 +- .../SignIn/SignInWithFacebookContainer.tsx | 3 +- .../SignIn/SignInWithGoogleContainer.tsx | 3 +- .../views/SignIn/SignInWithOIDCContainer.tsx | 3 +- .../auth/views/SignUp/SignUpContainer.tsx | 7 +- .../auth/views/SignUp/SignUpWithEmail.tsx | 2 +- .../SignUp/SignUpWithFacebookContainer.tsx | 3 +- .../SignUp/SignUpWithGoogleContainer.tsx | 3 +- .../views/SignUp/SignUpWithOIDCContainer.tsx | 3 +- src/core/client/count/index.ts | 2 +- src/core/client/count/test/basic.spec.ts | 2 +- src/core/client/embed/PymControl.spec.ts | 2 +- src/core/client/embed/PymControl.ts | 8 +- src/core/client/embed/StreamEmbed.spec.ts | 15 +- src/core/client/embed/decorators/index.ts | 4 +- .../client/embed/decorators/withAutoHeight.ts | 2 +- .../embed/decorators/withClickEvent.spec.ts | 5 +- .../client/embed/decorators/withClickEvent.ts | 2 +- .../client/embed/decorators/withConfig.ts | 2 +- .../embed/decorators/withEventEmitter.spec.ts | 10 +- .../embed/decorators/withEventEmitter.ts | 2 +- .../withIOSSafariWidthWorkaround.ts | 2 +- .../embed/decorators/withLiveCommentCount.ts | 8 +- .../embed/decorators/withPymStorage.spec.ts | 5 +- .../client/embed/decorators/withPymStorage.ts | 2 +- .../embed/decorators/withSetCommentID.spec.ts | 5 +- .../embed/decorators/withSetCommentID.ts | 2 +- src/core/client/embed/index.html | 1 - src/core/client/embed/onIntersect.ts | 2 +- .../client/embed/utils/prefixStorage.spec.ts | 5 +- src/core/client/embed/utils/prefixStorage.ts | 2 +- .../framework/components/CopyButton.tsx | 2 +- .../framework/components/DurationField.tsx | 7 +- .../framework/components/FacebookButton.tsx | 2 +- .../framework/components/GoogleButton.tsx | 2 +- .../framework/components/LocaleField.tsx | 4 +- .../framework/components/OIDCButton.tsx | 2 +- .../framework/components/PasswordField.tsx | 4 +- .../MarkdownEditor/MarkdownEditor.css | 24 +- .../MarkdownEditor/MarkdownEditor.tsx | 7 +- .../framework/helpers/createContextHOC.tsx | 6 +- src/core/client/framework/helpers/index.ts | 8 +- .../helpers/injectConditionalPolyfills.tsx | 5 +- .../helpers/polyfillCSSVarsForIE11.tsx | 6 +- .../helpers/polyfillNodeListForEach.ts | 2 +- .../framework/helpers/potentiallyInjectAxe.ts | 6 +- .../client/framework/helpers/roleIsAtLeast.ts | 2 +- .../framework/hooks/useResizeObserver.ts | 2 +- src/core/client/framework/hooks/useToken.ts | 2 +- .../framework/lib/bootstrap/createManaged.tsx | 6 +- src/core/client/framework/lib/browserInfo.ts | 18 +- src/core/client/framework/lib/events.ts | 4 +- .../client/framework/lib/externalConfig.ts | 4 +- .../framework/lib/form/SubmitHookHandler.tsx | 6 +- .../lib/form/components/ValidationMessage.tsx | 2 +- .../client/framework/lib/form/helpers.tsx | 16 +- .../client/framework/lib/form/withForm.tsx | 4 +- src/core/client/framework/lib/i18n/format.ts | 2 +- .../client/framework/lib/i18n/getMessage.ts | 2 +- .../framework/lib/i18n/withGetMessage.tsx | 46 +- .../lib/intersection/IntersectionContext.tsx | 6 +- .../framework/lib/intersection/withInView.tsx | 98 +- .../lib/network/clientIDMiddleware.ts | 6 +- .../createManagedSubscriptionClient.ts | 6 +- .../framework/lib/network/createNetwork.ts | 33 +- .../lib/network/customErrorMiddleware.ts | 2 +- .../lib/network/extractGraphQLError.ts | 6 +- .../persistedQueriesGetMethodMiddleware.ts | 4 +- .../client/framework/lib/postMessage.spec.ts | 32 +- .../framework/lib/relay/QueryRenderer.tsx | 2 +- .../lib/relay/commitLocalUpdatePromisified.ts | 4 +- .../lib/relay/commitMutationPromise.ts | 16 +- .../framework/lib/relay/createAndRetain.ts | 35 +- .../lib/relay/createFetchContainer.tsx | 6 +- .../lib/relay/createMutationContainer.tsx | 6 +- src/core/client/framework/lib/relay/fetch.tsx | 6 +- .../client/framework/lib/relay/helpers.ts | 28 + src/core/client/framework/lib/relay/index.ts | 6 +- .../client/framework/lib/relay/localState.ts | 2 +- src/core/client/framework/lib/relay/lookup.ts | 10 +- .../client/framework/lib/relay/mutation.tsx | 8 +- .../framework/lib/relay/purgeMetadata.ts | 4 +- .../framework/lib/relay/subscription.tsx | 25 +- .../client/framework/lib/relay/useLoadMore.ts | 2 +- .../client/framework/lib/relay/useLocal.tsx | 48 +- .../client/framework/lib/relay/useRefetch.ts | 2 +- .../lib/relay/withFragmentContainer.ts | 6 +- .../lib/relay/withLocalStateContainer.tsx | 21 +- .../lib/relay/withPaginationContainer.ts | 8 +- .../lib/relay/withRefetchContainer.ts | 7 +- .../framework/lib/router/withRouteConfig.ts | 7 + .../framework/lib/storage/PymStorage.ts | 2 +- .../lib/storage/prefixStorage.spec.ts | 5 +- .../framework/lib/storage/prefixStorage.ts | 2 +- .../client/framework/lib/validation.spec.tsx | 4 +- src/core/client/framework/lib/validation.tsx | 36 +- .../testHelpers/TransitionControl.tsx | 4 +- .../framework/testHelpers/byLabelText.ts | 9 +- .../framework/testHelpers/createFixture.ts | 12 +- .../framework/testHelpers/createFixtures.ts | 2 +- .../testHelpers/createFluentBundle.ts | 4 +- .../testHelpers/createMutationResolverStub.ts | 10 +- .../testHelpers/createQueryResolverStub.ts | 3 - .../testHelpers/createRelayEnvironment.ts | 76 +- .../testHelpers/createResolversStub.ts | 4 +- .../framework/testHelpers/createSinonStub.ts | 2 +- .../testHelpers/createSubscriptionHandler.ts | 10 +- .../testHelpers/createTestRenderer.tsx | 10 +- .../framework/testHelpers/denormalize.ts | 8 +- .../testHelpers/findParentsWithType.ts | 4 +- .../client/framework/testHelpers/index.ts | 4 +- .../testHelpers/overwriteQueryResolver.ts | 2 +- .../testHelpers/removeFragmentRefs.ts | 8 +- .../client/framework/testHelpers/toHTML.ts | 4 +- .../client/framework/testHelpers/within.ts | 10 +- src/core/client/framework/types.ts | 2 +- src/core/client/framework/utils/jsonp.ts | 2 +- src/core/client/install/App/Wizard.tsx | 1 - .../client/install/App/steps/NextButton.tsx | 2 +- .../install/App/steps/SelectLanguageStep.tsx | 2 +- src/core/client/stream/App/App.tsx | 2 +- src/core/client/stream/App/AppContainer.tsx | 3 +- .../client/stream/App/SetActiveTabMutation.ts | 2 +- src/core/client/stream/App/TabBar.tsx | 4 +- .../client/stream/App/TabBarContainer.tsx | 2 +- src/core/client/stream/App/TabBarQuery.tsx | 2 +- .../stream/App/listeners/OnEvents.spec.tsx | 4 +- .../OnPostMessageSetAccessToken.spec.tsx | 4 +- .../stream/App/listeners/OnPymLogin.spec.tsx | 4 +- .../client/stream/App/listeners/OnPymLogin.ts | 2 +- .../stream/App/listeners/OnPymLogout.ts | 2 +- .../stream/App/listeners/OnPymSetCommentID.ts | 4 +- src/core/client/stream/App/listeners/index.ts | 4 +- .../stream/common/HTMLContent/HTMLContent.css | 2 +- .../stream/common/MessageBox/MessageBox.tsx | 2 +- .../common/MessageBox/MessageBoxContent.css | 2 +- .../common/MessageBox/MessageBoxContent.tsx | 2 +- .../common/MessageBox/MessageBoxIcon.tsx | 3 +- src/core/client/stream/common/Timestamp.tsx | 6 +- .../UserBox/SetAuthPopupStateMutation.ts | 2 +- .../common/UserBox/UserBoxAuthenticated.tsx | 6 +- .../common/UserBox/UserBoxContainer.tsx | 6 +- .../common/UserBox/UserBoxUnauthenticated.tsx | 6 +- .../client/stream/local/initLocalState.ts | 2 +- .../CancelAccountDeletionMutation.tsx | 2 +- .../mutations/SetCommentIDMutation.spec.ts | 10 +- .../stream/mutations/SetCommentIDMutation.ts | 2 +- .../stream/mutations/ShowAuthPopupMutation.ts | 2 +- src/core/client/stream/shared/htmlContent.css | 2 +- .../Comment/AuthorBadgesContainer.tsx | 2 +- .../tabs/Comments/Comment/ButtonsBar.tsx | 2 +- .../stream/tabs/Comments/Comment/Comment.tsx | 2 +- .../Comments/Comment/CommentContainer.tsx | 14 +- .../EditCommentForm/EditCommentForm.tsx | 4 +- .../EditCommentForm/EditCommentMutation.ts | 3 +- .../tabs/Comments/Comment/EditedMarker.css | 2 +- .../tabs/Comments/Comment/EditedMarker.tsx | 2 +- .../tabs/Comments/Comment/IndentedComment.tsx | 5 +- .../ApproveCommentMutation.ts | 3 +- .../ModerationDropdown/CaretContainer.tsx | 2 +- .../FeatureCommentMutation.ts | 4 +- .../ModerationActionBanQuery.tsx | 5 +- .../ModerationActionsContainer.tsx | 2 +- .../RejectCommentMutation.ts | 4 +- .../UnfeatureCommentMutation.ts | 6 +- .../Comment/ModerationDropdown/index.ts | 4 +- .../tabs/Comments/Comment/ReplyButton.tsx | 2 +- .../CreateCommentReplyMutation.ts | 10 +- .../ReplyCommentForm/ReplyCommentForm.tsx | 6 +- .../ReplyCommentFormContainer.spec.tsx | 9 +- .../ReplyCommentFormContainer.tsx | 2 +- .../Comment/ReportButton/ReportButton.tsx | 2 +- .../ReportButton/ReportButtonWithPopover.tsx | 2 +- .../ReportPopover/ReportCommentForm.tsx | 10 +- .../tabs/Comments/Comment/RootParent.tsx | 2 +- .../Comments/Comment/ShowConversationLink.tsx | 6 +- .../tabs/Comments/Comment/TopBarLeft.tsx | 4 +- .../UserIgnorePopover/IgnoreUserMutation.ts | 4 +- .../UserPopoverOverviewContainer.tsx | 2 +- .../Comments/Comment/UserTagsContainer.tsx | 4 +- .../Comments/Comment/Username/Username.tsx | 2 +- .../Username/UsernameWithPopoverContainer.tsx | 2 +- .../tabs/Comments/Comment/Username/index.ts | 4 +- .../stream/tabs/Comments/CommentsPane.tsx | 3 +- .../IgnoredTombstoneOrHideContainer.tsx | 5 +- .../client/stream/tabs/Comments/Indent.tsx | 2 +- .../ConversationThreadContainer.tsx | 4 +- .../Comments/PermalinkView/PermalinkView.tsx | 4 +- .../PermalinkView/PermalinkViewContainer.tsx | 2 +- .../PermalinkView/PermalinkViewQuery.tsx | 4 +- .../PermalinkView/Timeline/Circle.tsx | 2 +- .../Comments/PermalinkView/Timeline/Line.tsx | 2 +- .../client/stream/tabs/Comments/RTE/RTE.css | 4 +- .../client/stream/tabs/Comments/RTE/RTE.tsx | 2 +- .../RemainingCharacters.tsx | 2 +- .../RemainingCharactersContainer.tsx | 2 +- .../CommentReplyCreatedSubscription.tsx | 5 +- .../tabs/Comments/ReplyList/ReplyList.tsx | 4 +- .../ReplyList/ReplyListContainer.spec.tsx | 10 +- .../Comments/ReplyList/ReplyListContainer.tsx | 12 +- .../ReplyList/ReplyListViewNewMutation.tsx | 4 +- .../AllCommentsTabContainer.tsx | 8 +- .../AllCommentsTab/AllCommentsTabQuery.tsx | 6 +- .../AllCommentsTabViewNewMutation.tsx | 4 +- .../CommentCreatedSubscription.tsx | 12 +- .../CommentReleasedSubscription.tsx | 12 +- .../AllCommentsTab/SpinnerWhileRendering.tsx | 2 +- .../Stream/Announcement/Announcement.tsx | 2 +- .../AnsweredCommentContainer.tsx | 2 +- .../AnsweredCommentsContainer.tsx | 8 +- .../AnsweredCommentsQuery.tsx | 6 +- .../tabs/Comments/Stream/BannedInfo.tsx | 2 +- .../CommunityGuidelines.tsx | 2 +- .../Stream/FeaturedCommentTooltip.tsx | 12 +- .../FeaturedCommentContainer.tsx | 2 +- .../FeaturedCommentsContainer.tsx | 8 +- .../FeaturedCommentsQuery.tsx | 6 +- .../PostCommentForm/CreateCommentMutation.ts | 7 +- .../PostCommentForm/PostCommentForm.tsx | 6 +- .../PostCommentForm/PostCommentFormClosed.tsx | 2 +- .../PostCommentFormClosedSitewide.tsx | 2 +- .../PostCommentFormContainer.spec.tsx | 10 +- .../PostCommentFormContainer.tsx | 3 +- .../PostCommentForm/PostCommentFormFake.css | 2 +- .../PostCommentForm/PostCommentFormFake.tsx | 2 +- .../PostCommentInReviewMessage.tsx | 6 +- .../PostCommentRejectedMessage.tsx | 6 +- .../stream/tabs/Comments/Stream/SortMenu.tsx | 4 +- .../SetStoryClosedMutation.ts | 2 +- .../StoryClosedTimeoutContainer.tsx | 3 +- .../tabs/Comments/Stream/StreamContainer.tsx | 4 +- .../tabs/Comments/Stream/StreamQuery.tsx | 6 +- .../SpinnerWhileRendering.tsx | 2 +- .../UnansweredCommentCreatedSubscription.tsx | 9 +- .../UnansweredCommentReleasedSubscription.tsx | 9 +- .../UnansweredCommentsTabContainer.tsx | 12 +- .../UnansweredCommentsTabQuery.tsx | 7 +- .../UnansweredCommentsTabViewNewMutation.tsx | 4 +- .../stream/tabs/Comments/helpers/index.ts | 16 +- .../stream/tabs/Configure/Configure.tsx | 2 +- .../stream/tabs/Configure/ConfigureQuery.tsx | 14 +- .../ConfigureStreamContainer.tsx | 3 +- .../ConfigureStream/ToggleConfig.tsx | 4 +- .../WidthLimitedDescription.tsx | 4 +- .../OpenOrCloseStreamContainer.tsx | 3 +- .../tabs/Configure/Q&A/ExpertSearchList.tsx | 2 +- .../Q&A/ExpertSelectionContainer.tsx | 7 +- .../tabs/Configure/Q&A/QAConfigContainer.tsx | 7 +- .../DeletionRequestCalloutContainer.tsx | 7 +- .../Profile/MyComments/CommentHistory.tsx | 4 +- .../MyComments/CommentHistoryContainer.tsx | 4 +- .../Profile/MyComments/HistoryComment.css | 8 +- .../Profile/MyComments/HistoryComment.tsx | 2 +- .../MyComments/HistoryCommentContainer.tsx | 2 +- .../IgnoreUserSettingsContainer.tsx | 2 +- .../Preferences/PreferencesContainer.tsx | 9 +- .../Preferences/RemoveUserIgnoreMutation.ts | 4 +- .../client/stream/tabs/Profile/Profile.tsx | 5 +- .../stream/tabs/Profile/ProfileContainer.tsx | 2 +- .../stream/tabs/Profile/ProfileQuery.tsx | 6 +- .../ChangeEmail/ChangeEmailContainer.tsx | 4 +- .../ChangeUsernameContainer.tsx | 9 +- .../DeleteAccount/DeleteAccountContainer.tsx | 7 +- .../Pages/RequestAccountDeletionMutation.tsx | 2 +- .../permalink/liveDirectReplies.spec.tsx | 2 +- .../comments/permalink/permalinkView.spec.tsx | 22 +- .../permalinkViewCommentNotFound.spec.tsx | 14 +- .../permalinkViewLoadMoreParents.spec.tsx | 17 +- .../permalink/permalinkViewPostReply.spec.tsx | 4 +- .../permalinkViewStoryNotFound.spec.tsx | 2 +- .../stream/charCountEditComment.spec.tsx | 6 +- .../stream/charCountPostComment.spec.tsx | 2 +- .../stream/charCountReplyComment.spec.tsx | 6 +- .../closedOrDisabledCommentStream.spec.tsx | 2 +- .../test/comments/stream/editComment.spec.tsx | 64 +- .../comments/stream/emitCountEvents.spec.tsx | 4 +- .../stream/liveCommentReplies.spec.tsx | 4 +- .../stream/liveTopLevelComments.spec.tsx | 6 +- .../test/comments/stream/loadMore.spec.tsx | 16 +- .../test/comments/stream/moderation.spec.tsx | 5 +- .../test/comments/stream/postComment.spec.tsx | 10 +- .../comments/stream/postLocalReply.spec.tsx | 6 +- .../test/comments/stream/postReply.spec.tsx | 12 +- .../test/comments/stream/reaction.spec.tsx | 2 +- .../stream/renderCommunityGuidelines.spec.tsx | 2 +- .../comments/stream/renderMessageBox.spec.tsx | 2 +- .../comments/stream/renderReplies.spec.tsx | 6 +- .../comments/stream/renderStream.spec.tsx | 2 +- .../comments/stream/reportComment.spec.tsx | 22 +- .../comments/stream/showAllReplies.spec.tsx | 23 +- .../comments/stream/showConversation.spec.tsx | 14 +- .../test/comments/stream/sortStream.spec.tsx | 6 +- .../test/configure/openOrCloseStream.spec.tsx | 2 +- .../test/configure/renderConfigure.spec.tsx | 2 +- src/core/client/stream/test/create.tsx | 8 +- .../client/stream/test/helpers/fixture.ts | 2 +- .../test/profile/deleteAccount.spec.tsx | 14 +- .../stream/test/profile/myComments.spec.tsx | 16 +- src/core/client/test/expectAndFail.tsx | 4 +- src/core/client/test/helpers/fixture.ts | 6 +- src/core/client/test/jsdom.ts | 4 +- src/core/client/test/setupConsole.ts | 10 +- src/core/client/test/setupTestFramework.ts | 7 +- src/core/client/ui/README.md | 4 +- .../client/ui/components/AppBar/Begin.tsx | 2 +- src/core/client/ui/components/AppBar/End.tsx | 2 +- .../ui/components/AppBar/NavigationItem.css | 4 +- .../AppBar/{AppBar.mdx => README.mdx} | 8 +- .../ui/components/AriaInfo/AriaInfo.tsx | 2 +- .../AriaInfo.mdx => AriaInfo/README.mdx} | 2 +- .../Backdrop.mdx => Backdrop/README.mdx} | 20 +- .../ui/components/BaseButton/BaseButton.css | 2 +- .../BaseButton/{BaseButton.mdx => README.mdx} | 4 +- src/core/client/ui/components/Box/Box.tsx | 2 +- .../{v2/Box/Box.mdx => Box/README.mdx} | 2 +- .../Brand/{Brand.mdx => README.mdx} | 10 +- .../client/ui/components/Button/Button.css | 10 +- .../client/ui/components/Button/Button.tsx | 2 +- .../ui/components/Button/ButtonIcon.tsx | 4 +- .../Button/{Button.mdx => README.mdx} | 2 +- .../client/ui/components/CallOut/CallOut.css | 2 +- .../client/ui/components/CallOut/CallOut.tsx | 2 +- .../CallOut.mdx => CallOut/README.mdx} | 4 +- src/core/client/ui/components/Card/Card.tsx | 2 +- .../client/ui/components/Card/CloseButton.tsx | 4 +- .../{v2/Card/Card.mdx => Card/README.mdx} | 4 +- .../Check/{Check.mdx => README.mdx} | 4 +- .../ui/components/CheckBox/CheckBox.css | 2 +- .../ui/components/CheckBox/CheckBox.tsx | 2 +- .../CheckBox.mdx => CheckBox/README.mdx} | 4 +- .../ClickOutside/ClickOutside.spec.tsx | 2 +- .../components/ClickOutside/ClickOutside.tsx | 4 +- .../{ClickOutside.mdx => README.mdx} | 4 +- .../Counter/{Counter.mdx => README.mdx} | 4 +- .../{v2/Delay/Delay.mdx => Delay/README.mdx} | 4 +- .../client/ui/components/Dropdown/Button.css | 2 +- .../client/ui/components/Dropdown/Button.tsx | 1 - .../Dropdown.mdx => Dropdown/README.mdx} | 4 +- .../ui/components/FieldSet/FieldSet.tsx | 2 +- .../FieldSet/{FieldSet.mdx => README.mdx} | 4 +- src/core/client/ui/components/Flex/Flex.tsx | 6 +- .../components/Flex/{Flex.mdx => README.mdx} | 4 +- .../ui/components/FormField/FormField.tsx | 4 +- .../FormField/{FormField.mdx => README.mdx} | 4 +- .../HorizontalGutter/HorizontalGutter.tsx | 4 +- .../{HorizontalGutter.mdx => README.mdx} | 2 +- src/core/client/ui/components/Icon/Icon.css | 2 +- src/core/client/ui/components/Icon/Icon.tsx | 2 +- .../components/Icon/{Icon.mdx => README.mdx} | 4 +- .../InputDescription/InputDescription.tsx | 2 +- .../{InputDescription.mdx => README.mdx} | 4 +- .../ui/components/InputLabel/InputLabel.tsx | 4 +- .../InputLabel.mdx => InputLabel/README.mdx} | 4 +- .../client/ui/components/Marker/Count.css | 2 +- .../client/ui/components/Marker/Count.tsx | 2 +- .../client/ui/components/Marker/Marker.css | 2 +- .../client/ui/components/Marker/Marker.tsx | 2 +- .../Marker/{Marker.mdx => README.mdx} | 4 +- .../ui/components/MatchMedia/MatchMedia.tsx | 15 +- .../MatchMedia/{MatchMedia.mdx => README.mdx} | 4 +- .../__snapshots__/MatchMedia.spec.tsx.snap | 12 +- .../client/ui/components/Message/Message.css | 2 +- .../client/ui/components/Message/Message.tsx | 2 +- .../ui/components/Message/MessageIcon.tsx | 3 +- .../Message.mdx => Message/README.mdx} | 2 +- .../client/ui/components/Modal/Modal.spec.tsx | 2 +- .../Modal/{Modal.mdx => README.mdx} | 4 +- .../ui/components/NoScroll/NoScroll.tsx | 4 +- .../NoScroll/{NoScroll.mdx => README.mdx} | 22 +- .../PasswordField/PasswordField.css | 2 +- .../PasswordField/PasswordField.tsx | 2 +- .../README.mdx} | 4 +- .../client/ui/components/Popover/Popover.tsx | 8 +- .../Popover/{Popover.mdx => README.mdx} | 2 +- src/core/client/ui/components/Popup/Popup.mdx | 44 - src/core/client/ui/components/Popup/Popup.ts | 8 +- .../client/ui/components/Popup/README.mdx | 47 + .../{RadioButton.mdx => README.mdx} | 4 +- .../ui/components/RadioButton/RadioButton.css | 2 +- .../ui/components/RadioButton/RadioButton.tsx | 2 +- .../{RelativeTime.mdx => README.mdx} | 2 +- .../components/RelativeTime/RelativeTime.tsx | 2 +- .../ui/components/SelectField/OptGroup.tsx | 2 +- .../ui/components/SelectField/Option.tsx | 2 +- .../ui/components/SelectField/README.mdx | 55 + .../ui/components/SelectField/SelectField.css | 2 +- .../ui/components/SelectField/SelectField.mdx | 52 - .../ui/components/SelectField/SelectField.tsx | 2 +- .../Spinner.mdx => Spinner/README.mdx} | 2 +- .../client/ui/components/Spinner/Spinner.tsx | 2 +- .../Steps/{steps.mdx => README.mdx} | 2 +- .../ui/components/SubBar/NavigationItem.css | 4 +- .../SubBar/SubBar.mdx => SubBar/README.mdx} | 4 +- .../{v2/Table/Table.mdx => Table/README.mdx} | 4 +- .../client/ui/components/Table/TableCell.css | 4 +- .../client/ui/components/Table/TableCell.tsx | 1 - .../{v2/Tabs/tabs.mdx => Tabs/README.mdx} | 54 +- src/core/client/ui/components/Tabs/TabBar.tsx | 2 +- .../client/ui/components/Tabs/TabContent.tsx | 2 +- .../client/ui/components/Tabs/TabPane.tsx | 2 +- .../{v2/Tag/Tag.mdx => Tag/README.mdx} | 4 +- src/core/client/ui/components/Tag/Tag.css | 4 +- src/core/client/ui/components/Tag/Tag.tsx | 2 +- .../TextField.mdx => TextField/README.mdx} | 4 +- .../ui/components/TextField/TextField.css | 2 +- .../ui/components/TextField/TextField.tsx | 2 +- .../TextLink/{TextLink.mdx => README.mdx} | 4 +- .../ui/components/TextLink/TextLink.tsx | 2 +- .../{TileSelector.mdx => README.mdx} | 20 +- .../ui/components/TileSelector/TileOption.css | 2 +- .../components/TileSelector/TileSelector.tsx | 2 +- .../ui/components/Timestamp/Timestamp.css | 2 +- .../ui/components/Timestamp/Timestamp.tsx | 2 +- .../ToggleShow/{ToogleShow.mdx => README.mdx} | 2 +- .../ui/components/ToggleShow/ToggleShow.tsx | 2 +- .../client/ui/components/Tooltip/Tooltip.tsx | 4 +- .../ui/components/Tooltip/TooltipButton.tsx | 2 +- .../TrapFocus.mdx => TrapFocus/README.mdx} | 2 +- .../components/TrapFocus/TrapFocus.spec.tsx | 2 +- .../Typography/{Typography.mdx => README.mdx} | 2 +- .../ui/components/Typography/Typography.css | 40 +- .../ui/components/Typography/Typography.tsx | 4 +- .../README.mdx} | 2 +- .../ValidationMessage/ValidationMessage.tsx | 4 +- .../client/ui/components/v2/AppBar/Begin.tsx | 2 +- .../client/ui/components/v2/AppBar/End.tsx | 2 +- .../v2/AppBar/{AppBar.mdx => README.mdx} | 4 +- .../ui/components/v2/AriaInfo/AriaInfo.tsx | 2 +- .../AriaInfo.mdx => v2/AriaInfo/README.mdx} | 2 +- .../Backdrop.mdx => v2/Backdrop/README.mdx} | 20 +- .../BaseButton/{BaseButton.mdx => README.mdx} | 4 +- src/core/client/ui/components/v2/Box/Box.tsx | 2 +- .../{Box/Box.mdx => v2/Box/README.mdx} | 2 +- .../v2/Brand/{Brand.mdx => README.mdx} | 10 +- .../client/ui/components/v2/Button/Button.tsx | 2 +- .../ui/components/v2/Button/ButtonIcon.tsx | 4 +- .../v2/Button/{Button.mdx => README.mdx} | 2 +- .../ui/components/v2/CallOut/CallOut.tsx | 2 +- .../CallOut.mdx => v2/CallOut/README.mdx} | 4 +- .../client/ui/components/v2/Card/Card.tsx | 2 +- .../ui/components/v2/Card/CloseButton.tsx | 4 +- .../{Card/Card.mdx => v2/Card/README.mdx} | 4 +- .../ui/components/v2/CheckBox/CheckBox.tsx | 2 +- .../CheckBox.mdx => v2/CheckBox/README.mdx} | 4 +- .../v2/ClickOutside/ClickOutside.spec.tsx | 2 +- .../v2/ClickOutside/ClickOutside.tsx | 4 +- .../{ClickOutside.mdx => README.mdx} | 4 +- .../v2/Counter/{Counter.mdx => README.mdx} | 4 +- .../{Delay/Delay.mdx => v2/Delay/README.mdx} | 4 +- .../ui/components/v2/Dropdown/Button.tsx | 1 - .../Dropdown.mdx => v2/Dropdown/README.mdx} | 4 +- .../v2/DurationField/DurationField.tsx | 7 +- .../ui/components/v2/FieldSet/FieldSet.tsx | 2 +- .../v2/FieldSet/{FieldSet.mdx => README.mdx} | 4 +- .../client/ui/components/v2/Flex/Flex.tsx | 6 +- .../v2/Flex/{Flex.mdx => README.mdx} | 4 +- .../ui/components/v2/FormField/FormField.mdx | 65 - .../ui/components/v2/FormField/FormField.tsx | 4 +- .../ui/components/v2/FormField/README.mdx | 76 + .../v2/FormFieldFooter/FormFieldFooter.tsx | 4 +- .../v2/FormFieldHeader/FormFieldHeader.tsx | 4 +- .../v2/HorizontalGutter/HorizontalGutter.tsx | 4 +- .../{HorizontalGutter.mdx => README.mdx} | 2 +- .../client/ui/components/v2/Icon/Icon.tsx | 2 +- .../v2/Icon/{Icon.mdx => README.mdx} | 4 +- .../components/v2/InputLabel/InputLabel.tsx | 2 +- .../InputLabel/README.mdx} | 4 +- .../client/ui/components/v2/Marker/Count.tsx | 2 +- .../client/ui/components/v2/Marker/Marker.tsx | 2 +- .../v2/Marker/{Marker.mdx => README.mdx} | 4 +- .../ui/components/v2/Message/Message.tsx | 2 +- .../ui/components/v2/Message/MessageIcon.tsx | 3 +- .../Message.mdx => v2/Message/README.mdx} | 2 +- .../ui/components/v2/Modal/Modal.spec.tsx | 2 +- .../v2/Modal/{Modal.mdx => README.mdx} | 4 +- .../ui/components/v2/NoScroll/NoScroll.tsx | 4 +- .../v2/NoScroll/{NoScroll.mdx => README.mdx} | 22 +- .../v2/PasswordField/PasswordField.tsx | 2 +- .../PasswordField/README.mdx} | 4 +- .../client/ui/components/v2/Popover/Arrow.tsx | 2 +- .../ui/components/v2/Popover/Popover.tsx | 8 +- .../v2/Popover/{Popover.mdx => README.mdx} | 2 +- .../{RadioButton.mdx => README.mdx} | 4 +- .../components/v2/RadioButton/RadioButton.tsx | 2 +- .../{RelativeTime.mdx => README.mdx} | 2 +- .../v2/RelativeTime/RelativeTime.tsx | 2 +- .../ui/components/v2/SelectField/OptGroup.tsx | 2 +- .../ui/components/v2/SelectField/Option.tsx | 2 +- .../ui/components/v2/SelectField/README.mdx | 54 + .../components/v2/SelectField/SelectField.mdx | 52 - .../components/v2/SelectField/SelectField.tsx | 2 +- .../Spinner.mdx => v2/Spinner/README.mdx} | 2 +- .../ui/components/v2/Spinner/Spinner.tsx | 2 +- .../SubBar.mdx => v2/SubBar/README.mdx} | 4 +- .../{Table/Table.mdx => v2/Table/README.mdx} | 4 +- .../ui/components/v2/Table/TableCell.tsx | 1 - .../{Tabs/tabs.mdx => v2/Tabs/README.mdx} | 54 +- .../client/ui/components/v2/Tabs/TabBar.tsx | 2 +- .../ui/components/v2/Tabs/TabContent.tsx | 2 +- .../client/ui/components/v2/Tabs/TabPane.tsx | 2 +- .../{Tag/Tag.mdx => v2/Tag/README.mdx} | 4 +- src/core/client/ui/components/v2/Tag/Tag.tsx | 2 +- .../TextField.mdx => v2/TextField/README.mdx} | 4 +- .../ui/components/v2/TextField/TextField.tsx | 2 +- .../v2/TextLink/{TextLink.mdx => README.mdx} | 4 +- .../ui/components/v2/TextLink/TextLink.tsx | 2 +- .../ui/components/v2/Timestamp/Timestamp.tsx | 2 +- .../ui/components/v2/Tooltip/Tooltip.tsx | 4 +- .../components/v2/Tooltip/TooltipButton.tsx | 2 +- .../TrapFocus.mdx => v2/TrapFocus/README.mdx} | 2 +- .../v2/TrapFocus/TrapFocus.spec.tsx | 2 +- .../ValidationMessage/README.mdx} | 2 +- .../ValidationMessage/ValidationMessage.tsx | 4 +- .../client/ui/helpers/combineEventHandlers.ts | 4 +- src/core/client/ui/hocs/withForwardRef.tsx | 1 - src/core/client/ui/hocs/withKeyboardFocus.tsx | 106 +- src/core/client/ui/hocs/withMouseHover.tsx | 94 +- src/core/client/ui/hocs/withStyles.ts | 4 +- src/core/client/ui/shared/icon.css | 4 +- src/core/client/ui/shared/typography.css | 56 +- src/core/client/ui/theme/variables.css.ts | 4 +- src/core/client/ui/types.ts | 7 - src/core/common/helpers/i18n/reduceSeconds.ts | 2 +- src/core/common/helpers/validate.spec.ts | 2 +- src/core/common/helpers/waitFor.ts | 2 +- src/core/common/types.ts | 18 +- src/core/common/utils/animationFrame.ts | 2 +- src/core/common/utils/createWordListRegExp.ts | 4 +- src/core/common/utils/getOrigin.spec.ts | 2 +- src/core/common/utils/purify.spec.ts | 2 +- src/core/common/utils/purify.ts | 2 +- src/core/common/utils/stringifyQuery.ts | 2 +- src/core/common/utils/timeout.ts | 2 +- .../app/handlers/api/account/confirm.ts | 10 +- .../app/handlers/api/account/download.ts | 2 +- .../server/app/handlers/api/account/invite.ts | 2 +- .../app/handlers/api/auth/local/forgot.ts | 7 +- .../app/handlers/api/auth/local/link.ts | 7 +- .../app/handlers/api/auth/local/signup.ts | 9 +- src/core/server/app/handlers/api/install.ts | 39 +- .../server/app/handlers/api/story/count.ts | 2 +- src/core/server/app/index.ts | 2 +- src/core/server/app/middleware/csp/tenant.ts | 4 +- .../middleware/graphql/graphqlMiddleware.ts | 1 - .../server/app/middleware/graphql/index.ts | 4 +- src/core/server/app/middleware/installed.ts | 4 +- .../server/app/middleware/passport/index.ts | 14 +- .../middleware/passport/strategies/local.ts | 7 +- .../middleware/passport/strategies/oauth2.ts | 25 +- .../passport/strategies/oidc/index.ts | 33 +- .../passport/strategies/verifiers/jwt.spec.ts | 4 +- .../passport/strategies/verifiers/jwt.ts | 4 +- .../passport/strategies/verifiers/oidc.ts | 2 +- .../passport/strategies/verifiers/sso.ts | 44 +- src/core/server/app/middleware/tenant.ts | 2 +- .../request/__snapshots__/body.spec.ts.snap | 2 +- src/core/server/app/request/body.spec.ts | 2 +- src/core/server/app/request/body.ts | 6 +- src/core/server/app/request/limiter.ts | 6 +- src/core/server/config.ts | 12 +- src/core/server/cron/notificationDigesting.ts | 29 +- src/core/server/cron/scheduled/job.ts | 4 +- src/core/server/errors/index.ts | 12 +- src/core/server/events/event.ts | 2 +- src/core/server/events/listeners/notifier.ts | 19 +- .../server/events/listeners/perspective.ts | 8 +- .../server/events/listeners/slack/slack.ts | 4 +- src/core/server/events/listeners/webhook.ts | 6 +- src/core/server/events/publisher.ts | 2 +- src/core/server/graph/context.ts | 4 +- src/core/server/graph/directives/auth.ts | 2 +- src/core/server/graph/directives/rate.ts | 10 +- src/core/server/graph/errors.ts | 2 +- .../extensions/ErrorWrappingExtension.ts | 36 +- .../graph/extensions/LoggerExtension.ts | 6 +- src/core/server/graph/extensions/helpers.ts | 14 + src/core/server/graph/loaders/Auth.ts | 4 +- src/core/server/graph/loaders/Comments.ts | 2 +- src/core/server/graph/loaders/Sites.ts | 2 +- src/core/server/graph/loaders/Stories.ts | 4 +- src/core/server/graph/loaders/Users.ts | 4 +- src/core/server/graph/loaders/util.ts | 5 +- src/core/server/graph/mutators/Comments.ts | 4 +- src/core/server/graph/mutators/util.ts | 2 - .../graph/resolvers/AuthIntegrations.ts | 14 +- src/core/server/graph/resolvers/BanStatus.ts | 2 +- .../graph/resolvers/BanStatusHistory.ts | 6 +- .../server/graph/resolvers/CloseCommenting.ts | 4 +- src/core/server/graph/resolvers/Comment.ts | 13 +- .../graph/resolvers/CommentCreatedPayload.ts | 4 +- .../CommentEnteredModerationQueuePayload.ts | 4 +- .../CommentLeftModerationQueuePayload.ts | 4 +- .../resolvers/CommentModerationAction.ts | 4 +- .../graph/resolvers/CommentReleasedPayload.ts | 4 +- .../resolvers/CommentReplyCreatedPayload.ts | 4 +- .../server/graph/resolvers/CommentRevision.ts | 18 +- .../resolvers/CommentStatusUpdatedPayload.ts | 4 +- .../graph/resolvers/DisableCommenting.ts | 4 +- .../resolvers/FacebookAuthIntegration.ts | 4 +- .../graph/resolvers/GoogleAuthIntegration.ts | 4 +- .../graph/resolvers/LiveConfiguration.ts | 4 +- .../server/graph/resolvers/ModerationQueue.ts | 4 +- .../graph/resolvers/ModerationQueues.ts | 4 +- .../server/graph/resolvers/ModeratorNote.ts | 6 +- .../graph/resolvers/OIDCAuthIntegration.ts | 4 +- .../server/graph/resolvers/PremodStatus.ts | 8 +- .../graph/resolvers/PremodStatusHistory.ts | 6 +- src/core/server/graph/resolvers/Profile.ts | 2 +- src/core/server/graph/resolvers/Queue.ts | 2 +- src/core/server/graph/resolvers/Queues.ts | 10 +- .../graph/resolvers/RecentCommentHistory.ts | 6 +- .../graph/resolvers/SSOAuthIntegration.ts | 6 +- .../graph/resolvers/SlackConfiguration.ts | 4 +- src/core/server/graph/resolvers/Story.ts | 2 +- .../server/graph/resolvers/StorySettings.ts | 8 +- .../resolvers/Subscription/commentCreated.ts | 21 +- .../commentEnteredModerationQueue.ts | 35 +- .../resolvers/Subscription/commentFeatured.ts | 21 +- .../commentLeftModerationQueue.ts | 35 +- .../resolvers/Subscription/commentReleased.ts | 21 +- .../Subscription/commentReplyCreated.ts | 21 +- .../Subscription/commentStatusUpdated.ts | 25 +- .../graph/resolvers/Subscription/helpers.ts | 2 +- .../graph/resolvers/Subscription/index.ts | 4 +- .../graph/resolvers/SuspensionStatus.ts | 8 +- .../resolvers/SuspensionStatusHistory.ts | 6 +- src/core/server/graph/resolvers/UserStatus.ts | 6 +- .../server/graph/resolvers/UsernameHistory.ts | 6 +- .../server/graph/resolvers/UsernameStatus.ts | 8 +- .../server/graph/resolvers/WebhookEndpoint.ts | 4 +- src/core/server/graph/scalars/cursor.spec.ts | 121 +- src/core/server/graph/scalars/locale.spec.ts | 33 +- src/core/server/graph/subscriptions/server.ts | 4 +- src/core/server/index.ts | 2 +- src/core/server/models/action/comment.ts | 25 +- .../models/action/moderation/comment.ts | 8 +- src/core/server/models/comment/comment.ts | 14 +- src/core/server/models/comment/helpers.ts | 2 +- src/core/server/models/helpers/connection.ts | 4 +- src/core/server/models/invite.ts | 6 +- src/core/server/models/migration/migration.ts | 4 +- src/core/server/models/queries/queries.ts | 7 +- src/core/server/models/settings/settings.ts | 2 - src/core/server/models/site/index.ts | 10 +- src/core/server/models/story/index.ts | 12 +- src/core/server/models/tenant/helpers.ts | 2 +- src/core/server/models/tenant/tenant.ts | 26 +- src/core/server/models/user/helpers.spec.ts | 2 +- src/core/server/models/user/helpers.ts | 2 +- src/core/server/models/user/user.ts | 30 +- src/core/server/queue/index.ts | 2 +- src/core/server/queue/tasks/mailer/content.ts | 4 +- .../server/queue/tasks/mailer/processor.ts | 18 +- .../server/queue/tasks/notifier/messages.ts | 6 +- .../server/queue/tasks/webhook/processor.ts | 8 +- src/core/server/services/comments/actions.ts | 1 - .../comments/pipeline/phases/approve.ts | 2 +- .../comments/pipeline/phases/purify.ts | 2 +- .../pipeline/phases/storyClosed.spec.ts | 4 +- .../pipeline/phases/tagExpertAnswers.ts | 2 +- .../pipeline/phases/tagUnansweredQuestions.ts | 2 +- .../services/comments/pipeline/pipeline.ts | 6 +- src/core/server/services/i18n/index.ts | 2 +- src/core/server/services/jwt/index.ts | 6 +- .../server/services/management/management.ts | 8 +- src/core/server/services/metrics/index.ts | 8 +- src/core/server/services/migrate/manager.ts | 4 +- .../notifications/categories/featured.ts | 4 +- .../notifications/categories/moderation.ts | 4 +- .../notifications/categories/reply.ts | 2 +- .../notifications/categories/unsubscribe.ts | 10 +- .../server/services/notifications/context.ts | 6 +- src/core/server/services/redis/index.ts | 1 - src/core/server/services/sites/index.ts | 1 - src/core/server/services/sites/url.ts | 4 +- src/core/server/services/stories/index.ts | 6 +- .../stories/scraper/rules/modified.ts | 2 +- .../stories/scraper/rules/published.ts | 28 +- .../services/stories/scraper/rules/section.ts | 2 +- .../server/services/tenant/cache/adapter.ts | 2 +- .../server/services/tenant/cache/index.ts | 19 +- src/core/server/services/tenant/sso.ts | 6 +- .../services/users/auth/confirm.spec.ts | 2 +- .../server/services/users/auth/confirm.ts | 10 +- src/core/server/services/users/auth/invite.ts | 16 +- .../server/services/users/auth/reset.spec.ts | 2 +- src/core/server/services/users/auth/reset.ts | 10 +- src/core/server/services/users/delete.ts | 2 +- .../server/services/users/download/token.ts | 10 +- src/core/server/services/users/users.ts | 10 +- src/core/server/stacks/createComment.ts | 4 +- src/core/server/stacks/editComment.ts | 1 - src/docs/forms.mdx | 2 +- src/index.ts | 2 +- src/locales/da/admin.ftl | 2 +- src/locales/en-US/admin.ftl | 2 +- src/locales/fr-FR/admin.ftl | 2 +- src/locales/pt-BR/admin.ftl | 2 +- .../content-security-policy-builder.d.ts | 7 - src/types/express-static-gzip.d.ts | 5 - src/types/found-relay.d.ts | 6 +- src/types/linkifyjs.d.ts | 4 - src/types/passport-google-oauth2.d.ts | 2 +- src/types/react-relay-network-modern.d.ts | 327 - tsconfig.json | 1 + 996 files changed, 29216 insertions(+), 18256 deletions(-) delete mode 100644 .prettierrc.json create mode 100644 gatsby-node.js create mode 100644 src/core/client/framework/lib/relay/helpers.ts rename src/core/client/ui/components/AppBar/{AppBar.mdx => README.mdx} (85%) rename src/core/client/ui/components/{v2/AriaInfo/AriaInfo.mdx => AriaInfo/README.mdx} (95%) rename src/core/client/ui/components/{v2/Backdrop/Backdrop.mdx => Backdrop/README.mdx} (50%) rename src/core/client/ui/components/BaseButton/{BaseButton.mdx => README.mdx} (92%) rename src/core/client/ui/components/{v2/Box/Box.mdx => Box/README.mdx} (96%) rename src/core/client/ui/components/Brand/{Brand.mdx => README.mdx} (55%) rename src/core/client/ui/components/Button/{Button.mdx => README.mdx} (99%) rename src/core/client/ui/components/{v2/CallOut/CallOut.mdx => CallOut/README.mdx} (95%) rename src/core/client/ui/components/{v2/Card/Card.mdx => Card/README.mdx} (95%) rename src/core/client/ui/components/Check/{Check.mdx => README.mdx} (76%) rename src/core/client/ui/components/{v2/CheckBox/CheckBox.mdx => CheckBox/README.mdx} (87%) rename src/core/client/ui/components/ClickOutside/{ClickOutside.mdx => README.mdx} (92%) rename src/core/client/ui/components/Counter/{Counter.mdx => README.mdx} (89%) rename src/core/client/ui/components/{v2/Delay/Delay.mdx => Delay/README.mdx} (85%) rename src/core/client/ui/components/{v2/Dropdown/Dropdown.mdx => Dropdown/README.mdx} (95%) rename src/core/client/ui/components/FieldSet/{FieldSet.mdx => README.mdx} (63%) rename src/core/client/ui/components/Flex/{Flex.mdx => README.mdx} (95%) rename src/core/client/ui/components/FormField/{FormField.mdx => README.mdx} (92%) rename src/core/client/ui/components/HorizontalGutter/{HorizontalGutter.mdx => README.mdx} (98%) rename src/core/client/ui/components/Icon/{Icon.mdx => README.mdx} (83%) rename src/core/client/ui/components/InputDescription/{InputDescription.mdx => README.mdx} (80%) rename src/core/client/ui/components/{v2/InputLabel/InputLabel.mdx => InputLabel/README.mdx} (82%) rename src/core/client/ui/components/Marker/{Marker.mdx => README.mdx} (94%) rename src/core/client/ui/components/MatchMedia/{MatchMedia.mdx => README.mdx} (93%) rename src/core/client/ui/components/{v2/Message/Message.mdx => Message/README.mdx} (98%) rename src/core/client/ui/components/Modal/{Modal.mdx => README.mdx} (97%) rename src/core/client/ui/components/NoScroll/{NoScroll.mdx => README.mdx} (51%) rename src/core/client/ui/components/{v2/PasswordField/PasswordField.mdx => PasswordField/README.mdx} (90%) rename src/core/client/ui/components/Popover/{Popover.mdx => README.mdx} (99%) delete mode 100644 src/core/client/ui/components/Popup/Popup.mdx create mode 100644 src/core/client/ui/components/Popup/README.mdx rename src/core/client/ui/components/RadioButton/{RadioButton.mdx => README.mdx} (90%) rename src/core/client/ui/components/RelativeTime/{RelativeTime.mdx => README.mdx} (95%) create mode 100644 src/core/client/ui/components/SelectField/README.mdx delete mode 100644 src/core/client/ui/components/SelectField/SelectField.mdx rename src/core/client/ui/components/{v2/Spinner/Spinner.mdx => Spinner/README.mdx} (90%) rename src/core/client/ui/components/Steps/{steps.mdx => README.mdx} (95%) rename src/core/client/ui/components/{v2/SubBar/SubBar.mdx => SubBar/README.mdx} (93%) rename src/core/client/ui/components/{v2/Table/Table.mdx => Table/README.mdx} (92%) rename src/core/client/ui/components/{v2/Tabs/tabs.mdx => Tabs/README.mdx} (50%) rename src/core/client/ui/components/{v2/Tag/Tag.mdx => Tag/README.mdx} (90%) rename src/core/client/ui/components/{v2/TextField/TextField.mdx => TextField/README.mdx} (93%) rename src/core/client/ui/components/TextLink/{TextLink.mdx => README.mdx} (83%) rename src/core/client/ui/components/TileSelector/{TileSelector.mdx => README.mdx} (78%) rename src/core/client/ui/components/ToggleShow/{ToogleShow.mdx => README.mdx} (97%) rename src/core/client/ui/components/{v2/TrapFocus/TrapFocus.mdx => TrapFocus/README.mdx} (97%) rename src/core/client/ui/components/Typography/{Typography.mdx => README.mdx} (99%) rename src/core/client/ui/components/{v2/ValidationMessage/ValidationMessage.mdx => ValidationMessage/README.mdx} (96%) rename src/core/client/ui/components/v2/AppBar/{AppBar.mdx => README.mdx} (91%) rename src/core/client/ui/components/{AriaInfo/AriaInfo.mdx => v2/AriaInfo/README.mdx} (95%) rename src/core/client/ui/components/{Backdrop/Backdrop.mdx => v2/Backdrop/README.mdx} (50%) rename src/core/client/ui/components/v2/BaseButton/{BaseButton.mdx => README.mdx} (92%) rename src/core/client/ui/components/{Box/Box.mdx => v2/Box/README.mdx} (96%) rename src/core/client/ui/components/v2/Brand/{Brand.mdx => README.mdx} (55%) rename src/core/client/ui/components/v2/Button/{Button.mdx => README.mdx} (99%) rename src/core/client/ui/components/{CallOut/CallOut.mdx => v2/CallOut/README.mdx} (95%) rename src/core/client/ui/components/{Card/Card.mdx => v2/Card/README.mdx} (95%) rename src/core/client/ui/components/{CheckBox/CheckBox.mdx => v2/CheckBox/README.mdx} (87%) rename src/core/client/ui/components/v2/ClickOutside/{ClickOutside.mdx => README.mdx} (92%) rename src/core/client/ui/components/v2/Counter/{Counter.mdx => README.mdx} (89%) rename src/core/client/ui/components/{Delay/Delay.mdx => v2/Delay/README.mdx} (85%) rename src/core/client/ui/components/{Dropdown/Dropdown.mdx => v2/Dropdown/README.mdx} (95%) rename src/core/client/ui/components/v2/FieldSet/{FieldSet.mdx => README.mdx} (63%) rename src/core/client/ui/components/v2/Flex/{Flex.mdx => README.mdx} (95%) delete mode 100644 src/core/client/ui/components/v2/FormField/FormField.mdx create mode 100644 src/core/client/ui/components/v2/FormField/README.mdx rename src/core/client/ui/components/v2/HorizontalGutter/{HorizontalGutter.mdx => README.mdx} (98%) rename src/core/client/ui/components/v2/Icon/{Icon.mdx => README.mdx} (83%) rename src/core/client/ui/components/{InputLabel/InputLabel.mdx => v2/InputLabel/README.mdx} (82%) rename src/core/client/ui/components/v2/Marker/{Marker.mdx => README.mdx} (94%) rename src/core/client/ui/components/{Message/Message.mdx => v2/Message/README.mdx} (98%) rename src/core/client/ui/components/v2/Modal/{Modal.mdx => README.mdx} (96%) rename src/core/client/ui/components/v2/NoScroll/{NoScroll.mdx => README.mdx} (51%) rename src/core/client/ui/components/{PasswordField/PasswordField.mdx => v2/PasswordField/README.mdx} (90%) rename src/core/client/ui/components/v2/Popover/{Popover.mdx => README.mdx} (99%) rename src/core/client/ui/components/v2/RadioButton/{RadioButton.mdx => README.mdx} (90%) rename src/core/client/ui/components/v2/RelativeTime/{RelativeTime.mdx => README.mdx} (95%) create mode 100644 src/core/client/ui/components/v2/SelectField/README.mdx delete mode 100644 src/core/client/ui/components/v2/SelectField/SelectField.mdx rename src/core/client/ui/components/{Spinner/Spinner.mdx => v2/Spinner/README.mdx} (90%) rename src/core/client/ui/components/{SubBar/SubBar.mdx => v2/SubBar/README.mdx} (93%) rename src/core/client/ui/components/{Table/Table.mdx => v2/Table/README.mdx} (92%) rename src/core/client/ui/components/{Tabs/tabs.mdx => v2/Tabs/README.mdx} (50%) rename src/core/client/ui/components/{Tag/Tag.mdx => v2/Tag/README.mdx} (90%) rename src/core/client/ui/components/{TextField/TextField.mdx => v2/TextField/README.mdx} (93%) rename src/core/client/ui/components/v2/TextLink/{TextLink.mdx => README.mdx} (83%) rename src/core/client/ui/components/{TrapFocus/TrapFocus.mdx => v2/TrapFocus/README.mdx} (97%) rename src/core/client/ui/components/{ValidationMessage/ValidationMessage.mdx => v2/ValidationMessage/README.mdx} (96%) delete mode 100644 src/types/content-security-policy-builder.d.ts delete mode 100644 src/types/express-static-gzip.d.ts delete mode 100644 src/types/linkifyjs.d.ts delete mode 100644 src/types/react-relay-network-modern.d.ts diff --git a/.eslintrc.js b/.eslintrc.js index a36133494..4f46be7c8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -54,7 +54,7 @@ const typescriptOverrides = { "@typescript-eslint/indent": "off", "@typescript-eslint/interface-name-prefix": "error", "@typescript-eslint/member-delimiter-style": "off", - "@typescript-eslint/no-empty-function": "error", + "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-empty-interface": "error", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-misused-new": "error", @@ -77,6 +77,7 @@ const typescriptOverrides = { "react/display-name": "error", "react/prop-types": "off", "react/no-unescaped-entities": "off", + "no-empty-function": "off", } ), }; @@ -84,7 +85,7 @@ const typescriptOverrides = { let typescriptTypeCheckingOverrides = { files: ["*.ts", "*.tsx"], parserOptions: { - project: ["tsconfig.json", "./src/tsconfig.json", "./src/core/client/tsconfig.json"], + project: ["./tsconfig.json", "./src/tsconfig.json", "./src/core/client/tsconfig.json"], // TODO: (cvle) this is a workaround, see: https://github.com/typescript-eslint/typescript-eslint/issues/1091. createDefaultProgram: true, }, @@ -95,9 +96,10 @@ let typescriptTypeCheckingOverrides = { "rules": { "ordered-imports": { "options": { - "import-sources-order": "case-insensitive", + // Legacy sorting until this is fixed: https://github.com/SoominHan/import-sorter/issues/60 + "import-sources-order": "case-insensitive-legacy", "module-source-path": "full", - "named-imports-order": "case-insensitive", + "named-imports-order": "case-insensitive-legacy", }, }, }, diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index c4be887be..000000000 --- a/.prettierrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "trailingComma": "es5" -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index bf9fe873a..b66f77d21 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -54,5 +54,5 @@ "search.exclude": { "package-lock.json": true }, - "debug.node.autoAttach": "on" + "debug.node.autoAttach": "off", } diff --git a/babel.config.js b/babel.config.js index e98684fc7..fdc48b47c 100644 --- a/babel.config.js +++ b/babel.config.js @@ -10,7 +10,7 @@ const plugins = const environment = process.env.WEBPACK === "true" - ? { targets: "IE 11", modules: false } + ? { modules: false } : { targets: { node: "current" }, modules: "commonjs" }; module.exports = { diff --git a/config/jest/client.config.js b/config/jest/client.config.js index aa99f9914..345e656fa 100644 --- a/config/jest/client.config.js +++ b/config/jest/client.config.js @@ -40,11 +40,9 @@ module.exports = { snapshotSerializers: ["enzyme-to-json/serializer"], globals: { "ts-jest": { - useBabelrc: true, - tsConfigFile: path.resolve( - __dirname, - "../../src/core/client/tsconfig.json" - ), + babelConfig: true, + tsConfig: path.resolve(__dirname, "../../src/core/client/tsconfig.json"), }, }, + preset: "ts-jest/presets/js-with-babel", }; diff --git a/config/jest/server.config.js b/config/jest/server.config.js index 4409cca41..8bec83618 100644 --- a/config/jest/server.config.js +++ b/config/jest/server.config.js @@ -21,8 +21,9 @@ module.exports = { moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], globals: { "ts-jest": { - useBabelrc: true, - tsConfigFile: path.resolve(__dirname, "../../src/tsconfig.json"), + babelConfig: true, + tsConfig: path.resolve(__dirname, "../../src/tsconfig.json"), }, }, + preset: "ts-jest", }; diff --git a/doczrc.js b/doczrc.js index 39c02d73a..e7a0130c5 100644 --- a/doczrc.js +++ b/doczrc.js @@ -1,105 +1,10 @@ // Apply all the configuration provided in the .env file. require("dotenv").config(); -const fs = require("fs"); -const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin"); -const extensions = [".ts", ".tsx", ".js"]; -// TODO: There is some weird issue with including paths.ts here -const postCSSConfigPath = "./src/core/build/postcss.config"; -const appDirectory = fs.realpathSync(process.cwd()); - -const styleLoader = { - loader: require.resolve("style-loader"), - options: { - sourceMap: true, - hmr: true, - }, -}; - module.exports = { - title: "Coral 5.0", - source: "./src", - typescript: true, + title: "Coral 5", + src: "./src", host: process.env.HOST || "0.0.0.0", port: parseInt(process.env.DOCZ_PORT, 10) || 3030, - codeSandbox: false, // Too large to create code sandboxes.. - modifyBundlerConfig: config => { - config.entry.app.push( - `${appDirectory}/src/core/client/ui/theme/variables.css.ts` - ); - config.module.rules.push({ - test: /\.css\.ts$/, - use: [ - styleLoader, - { - loader: require.resolve("css-loader"), - options: { - modules: true, - importLoaders: 2, - localIdentName: "[name]-[local]-[hash:base64:5]", - sourceMap: true, - }, - }, - { - loader: require.resolve("postcss-loader"), - options: { - config: { - path: postCSSConfigPath, - }, - parser: "postcss-js", - }, - }, - { - loader: require.resolve("babel-loader"), - options: { - configFile: false, - babelrc: false, - presets: [ - "@babel/typescript", - [ - "@babel/env", - { targets: { node: "current" }, modules: "commonjs" }, - ], - ], - // This is a feature of `babel-loader` for webpack (not Babel itself). - // It enables caching results in ./node_modules/.cache/babel-loader/ - // directory for faster rebuilds. - cacheDirectory: true, - }, - }, - ], - }); - config.module.rules.push({ - test: /\.css$/, - use: [ - styleLoader, - { - loader: require.resolve("css-loader"), - options: { - modules: true, - importLoaders: 1, - localIdentName: "[name]-[local]-[hash:base64:5]", - sourceMap: true, - }, - }, - { - loader: require.resolve("postcss-loader"), - options: { - config: { - path: postCSSConfigPath, - }, - }, - }, - ], - }); - config.resolve.plugins = [ - new TsconfigPathsPlugin({ - extensions, - // TODO: There is some weird issue with including paths.ts here - configFile: "./src/core/client/tsconfig.json", - }), - ]; - // fs.writeFileSync(path.resolve(__dirname, "tmp"), stringify(config, null, 2)); - return config; - }, + files: "**/*.mdx", }; diff --git a/gatsby-node.js b/gatsby-node.js new file mode 100644 index 000000000..4b87ad0e4 --- /dev/null +++ b/gatsby-node.js @@ -0,0 +1,216 @@ +const fs = require("fs"); +const path = require("path"); +const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin"); + +/** Path to postCSSConfig */ +const postCSSConfigPath = path.resolve( + __dirname, + "../src/core/build/postcss.config" +); +const rootDir = path.resolve(__dirname, "../"); +const srcDir = path.resolve(rootDir, "./src"); +const appTsconfig = path.resolve(rootDir, "./src/core/client/tsconfig.json"); + +const CSS_PATTERN = /\.css$/; +const MODULE_CSS_PATTERN = /\.module\.css$/; + +// Define `RegExp.toJSON` so that we can stringify RegExp. +Object.defineProperty(RegExp.prototype, "toJSON", { + value: RegExp.prototype.toString, +}); + +const isCssRules = (rule) => + rule.test && + (rule.test.toString() === CSS_PATTERN.toString() || + rule.test.toString() === MODULE_CSS_PATTERN.toString()); + +const findCssRules = (config) => + config.module.rules.find( + (rule) => Array.isArray(rule.oneOf) && rule.oneOf.every(isCssRules) + ); + +exports.onCreateWebpackConfig = ({ + stage, + rules, + loaders, + plugins, + actions, + getConfig, +}) => { + // Get webpack config. + const config = getConfig(); + + if (stage === "develop") { + config.entry.commons.push( + // Add our global css variables file. + `${srcDir}/core/client/ui/theme/variables.css.ts` + ); + } + + /* + TODO: (cvle) couldn't get build to work... + if (stage === "build-javascript") { + config.entry.app = [ + config.entry.app, + `${appDir}/core/client/ui/theme/variables.css.ts`, + ]; + } + */ + + // Find the gatsby CSS rules. + const cssRules = findCssRules(config); + // Exclude them from our src dir because they are incomaptible with our + // CSS rules. + cssRules.exclude = srcDir; + // Add .tx .tsx to modules + config.resolve.extensions.push(".ts", ".tsx"); + actions.replaceWebpackConfig(config); + + // Write out webpack config to .docz folder. + fs.writeFileSync( + path.resolve(__dirname, "webpack-" + stage), + JSON.stringify(config, {}, 2) + ); + + // Turn on sourceMap during develop. + const sourceMap = stage.startsWith("develop"); + + // CSS loaders to prepend. + const prependCSSLoaders = []; + if (stage === "develop") { + prependCSSLoaders.push(loaders.style()); + } + + /* + TODO: (cvle) couldn't get build to work... + if (stage === "build-javascript") { + moreLoaders.push(loaders.style()); + } + */ + + actions.setWebpackConfig({ + resolve: { + plugins: [ + // Resolve our custom paths. + new TsconfigPathsPlugin({ + extensions: [".ts", ".tsx", ".js"], + configFile: path.resolve(rootDir, "./src/core/client/tsconfig.json"), + }), + ], + }, + module: { + rules: [ + { + include: srcDir, + oneOf: [ + { + test: /\.css\.ts$/, + use: [ + ...prependCSSLoaders, + { + loader: require.resolve("css-loader"), + options: { + modules: { + localIdentName: "[name]-[local]-[hash:base64:5]", + }, + importLoaders: 2, + sourceMap, + }, + }, + { + loader: require.resolve("postcss-loader"), + options: { + config: { + path: postCSSConfigPath, + }, + parser: "postcss-js", + }, + }, + { + loader: require.resolve("babel-loader"), + options: { + configFile: false, + babelrc: false, + presets: [ + "@babel/typescript", + [ + "@babel/env", + { targets: { node: "current" }, modules: "commonjs" }, + ], + ], + // This is a feature of `babel-loader` for webpack (not Babel itself). + // It enables caching results in ./node_modules/.cache/babel-loader/ + // directory for faster rebuilds. + cacheDirectory: true, + }, + }, + ], + }, + { + test: /\.css$/, + use: [ + ...prependCSSLoaders, + { + loader: require.resolve("css-loader"), + options: { + modules: { + localIdentName: "[name]-[local]-[hash:base64:5]", + }, + importLoaders: 1, + sourceMap, + }, + }, + { + loader: require.resolve("postcss-loader"), + options: { + config: { + path: postCSSConfigPath, + }, + }, + }, + ], + }, + { + test: /\.tsx?$/, + use: [ + { + loader: require.resolve("babel-loader"), + options: { + root: rootDir, + // This is a feature of `babel-loader` for webpack (not Babel itself). + // It enables caching results in ./node_modules/.cache/babel-loader/ + // directory for faster rebuilds. + cacheDirectory: true, + }, + }, + { + loader: require.resolve("ts-loader"), + options: { + configFile: appTsconfig, + compilerOptions: { + target: "es2015", + module: "esnext", + jsx: "preserve", + noEmit: false, + }, + transpileOnly: true, + // Overwrites the behavior of `include` and `exclude` to only + // include files that are actually being imported and which + // are necessary to compile the bundle. + onlyCompileBundledFiles: true, + }, + }, + ], + }, + ], + }, + ], + }, + }); + + // Write out processed webpack config to .docz folder. + fs.writeFileSync( + path.resolve(__dirname, "webpack-" + stage + "-processed"), + JSON.stringify(getConfig(), {}, 2) + ); +}; diff --git a/package-lock.json b/package-lock.json index e2e99cefd..8bd2c9b6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,12 +4,39 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@apollographql/apollo-tools": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.0.tgz", - "integrity": "sha512-7wEO+S+zgz/wVe3ilFQqICufRBYYDSNUkd1V03JWvXuSydbYq2SM5EgvWmFF+04iadt+aQ0XCCsRzCzRPQODfQ==", + "@apollo/protobufjs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.3.tgz", + "integrity": "sha512-gqeT810Ect9WIqsrgfUvr+ljSB5m1PyBae9HGdrRyQ3HjHjTcjVvxpsMYXlUk4rUHnrfUqyoGvLSy2yLlRGEOw==", "requires": { - "apollo-env": "0.5.1" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + }, + "dependencies": { + "@types/node": { + "version": "10.17.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.17.tgz", + "integrity": "sha512-gpNnRnZP3VWzzj5k3qrpRC6Rk3H/uclhAVo1aIvwzK5p5cOrs9yEyQ8H/HBsBY0u5rrWxXEiVPQ0dEB6pkjE8Q==" + } + } + }, + "@apollographql/apollo-tools": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.4.tgz", + "integrity": "sha512-kldvB9c+vzimel4yEktlkB08gaJ5DQn9ZuIfFf1kpAw+++5hFwYRWTyKgOhF9LbOWNWGropesYC7WwLja2erhQ==", + "requires": { + "apollo-env": "^0.6.2" } }, "@apollographql/graphql-playground-html": { @@ -17,6 +44,79 @@ "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz", "integrity": "sha512-8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ==" }, + "@babel/cli": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz", + "integrity": "sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==", + "dev": true, + "requires": { + "chokidar": "^2.1.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } + }, "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", @@ -27,43 +127,63 @@ } }, "@babel/compat-data": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.1.tgz", - "integrity": "sha512-Z+6ZOXvyOWYxJ50BwxzdhRnRsGST8Y3jaZgxYig575lTjVSs3KtJnmESwZegg6e2Dn0td1eDhoWlp1wI4BTCPw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz", + "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", "dev": true, "requires": { - "browserslist": "^4.8.2", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "semver": "^5.5.0" }, "dependencies": { "browserslist": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz", - "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", + "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001017", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.44" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "caniuse-lite": { - "version": "1.0.30001020", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz", - "integrity": "sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA==", + "version": "1.0.30001037", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001037.tgz", + "integrity": "sha512-qQP40FzWQ1i9RTjxppOUnpM8OwTBFL5DQbjoR9Az32EtM7YUZOw9orFO6rj1C+xWAGzz+X3bUe09Jf5Ep+zpuA==", "dev": true }, "electron-to-chromium": { - "version": "1.3.334", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.334.tgz", - "integrity": "sha512-RcjJhpsVaX0X6ntu/WSBlW9HE9pnCgXS9B8mTUObl1aDxaiOa0Lu+NMveIS5IDC+VELzhM32rFJDCC+AApVwcA==", + "version": "1.3.384", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.384.tgz", + "integrity": "sha512-9jGNF78o450ymPf63n7/j1HrRAD4xGTsDkKY2X6jtCAWaYgph2A9xQjwfwRpj+AovkARMO+JfZuVCFTdandD6w==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "node-releases": { - "version": "1.1.45", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz", - "integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==", + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -76,26 +196,60 @@ "dev": true } } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } } } }, "@babel/core": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", - "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", + "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", - "@babel/helpers": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", + "json5": "^2.1.2", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", @@ -112,12 +266,12 @@ } }, "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -143,6 +297,70 @@ "@babel/types": "^7.8.3" } }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-transforms": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-replace-supers": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, "@babel/helper-split-export-declaration": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", @@ -153,72 +371,92 @@ } }, "@babel/helpers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", - "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "dev": true, "requires": { "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -244,12 +482,27 @@ "dev": true }, "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" } } } @@ -302,29 +555,6 @@ } } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", - "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" - } - } - } - }, "@babel/helper-builder-react-jsx": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz", @@ -348,6 +578,48 @@ } } }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz", + "integrity": "sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-module-imports": "^7.8.3", + "@babel/types": "^7.9.0" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, "@babel/helper-call-delegate": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", @@ -399,6 +671,19 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "@babel/parser": { @@ -435,6 +720,15 @@ "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -455,49 +749,78 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "@babel/helper-compilation-targets": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.3.tgz", - "integrity": "sha512-JLylPCsFjhLN+6uBSSh3iYdxKdeO9MNmoY96PE/99d8kyBFaXLORtAVhqN6iHa+wtPeqxKLghDOZry0+Aiw9Tw==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", + "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.1", - "browserslist": "^4.8.2", + "@babel/compat-data": "^7.8.6", + "browserslist": "^4.9.1", "invariant": "^2.2.4", - "levenary": "^1.1.0", + "levenary": "^1.1.1", "semver": "^5.5.0" }, "dependencies": { "browserslist": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz", - "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", + "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001017", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.44" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "caniuse-lite": { - "version": "1.0.30001020", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz", - "integrity": "sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA==", + "version": "1.0.30001037", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001037.tgz", + "integrity": "sha512-qQP40FzWQ1i9RTjxppOUnpM8OwTBFL5DQbjoR9Az32EtM7YUZOw9orFO6rj1C+xWAGzz+X3bUe09Jf5Ep+zpuA==", "dev": true }, "electron-to-chromium": { - "version": "1.3.334", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.334.tgz", - "integrity": "sha512-RcjJhpsVaX0X6ntu/WSBlW9HE9pnCgXS9B8mTUObl1aDxaiOa0Lu+NMveIS5IDC+VELzhM32rFJDCC+AApVwcA==", + "version": "1.3.384", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.384.tgz", + "integrity": "sha512-9jGNF78o450ymPf63n7/j1HrRAD4xGTsDkKY2X6jtCAWaYgph2A9xQjwfwRpj+AovkARMO+JfZuVCFTdandD6w==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "node-releases": { - "version": "1.1.45", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz", - "integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==", + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -510,6 +833,39 @@ "dev": true } } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } } } }, @@ -579,6 +935,19 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "@babel/parser": { @@ -615,6 +984,15 @@ "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -635,19 +1013,38 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", - "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", + "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", "dev": true, "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" + "regexpu-core": "^4.7.0" }, "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, "@babel/helper-regex": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", @@ -657,28 +1054,66 @@ "lodash": "^4.17.13" } }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "dev": true, "requires": { "regenerate": "^1.4.0" } }, "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "dev": true, "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true } } }, @@ -712,29 +1147,6 @@ } } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", - "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" - } - } - } - }, "@babel/helper-function-name": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", @@ -841,42 +1253,6 @@ "lodash": "^4.17.5" } }, - "@babel/helper-module-transforms": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", - "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0", - "lodash": "^4.17.10" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", - "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" - } - } - } - }, "@babel/helper-optimise-call-expression": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", @@ -905,41 +1281,6 @@ "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", "dev": true }, - "@babel/helper-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", - "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", - "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" - } - } - } - }, "@babel/helper-replace-supers": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", @@ -965,29 +1306,6 @@ } } }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", - "dev": true, - "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", - "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" - } - } - } - }, "@babel/helper-split-export-declaration": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", @@ -1010,129 +1328,148 @@ } } }, - "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", - "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" - } - } - } + "@babel/helper-validator-identifier": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==" }, "@babel/helpers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", - "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", + "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "dev": true, "requires": { - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.4.4", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.8.3" } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.11" + "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1148,11 +1485,14 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -1167,11 +1507,40 @@ "js-tokens": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -1181,17 +1550,6 @@ "integrity": "sha512-M74+GvK4hn1eejD9lZ7967qAwvqTZayQa3g10ag4s9uewgR7TKjeaT0YMyoq+gVfKYABiWZ4MQD701/t5e1Jhg==", "dev": true }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" - } - }, "@babel/plugin-proposal-class-properties": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.2.3.tgz", @@ -1220,16 +1578,6 @@ } } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" - } - }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", @@ -1248,6 +1596,24 @@ } } }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", + "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } + } + }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz", @@ -1258,20 +1624,10 @@ "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" - } - }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", + "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", @@ -1314,22 +1670,38 @@ } } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } } }, "@babel/plugin-syntax-class-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.7.4.tgz", - "integrity": "sha512-JH3v5ZOeKT0qqdJ9BeBcZTFQiJOMax8RopSr1bH6ASkZKo2qWsvBML7W1mp89sszBRDBBRO8snqcByGdrMTdMg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz", + "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } } }, "@babel/plugin-syntax-dynamic-import": { @@ -1358,15 +1730,6 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "@babel/plugin-syntax-jsx": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", @@ -1393,6 +1756,23 @@ } } }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", + "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } + } + }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", @@ -1402,15 +1782,6 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", @@ -1445,15 +1816,6 @@ } } }, - "@babel/plugin-syntax-typescript": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz", - "integrity": "sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "@babel/plugin-transform-arrow-functions": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", @@ -1463,45 +1825,6 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz", - "integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - } - } - }, "@babel/plugin-transform-block-scoped-functions": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", @@ -1597,6 +1920,19 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "@babel/parser": { @@ -1633,6 +1969,15 @@ "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1653,6 +1998,15 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -1702,25 +2056,6 @@ } } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", - "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "@babel/plugin-transform-flow-strip-types": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz", @@ -1760,22 +2095,20 @@ } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", - "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", - "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } } }, "@babel/plugin-transform-modules-commonjs": { @@ -1862,26 +2195,6 @@ } } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz", - "integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", @@ -1891,15 +2204,6 @@ "@babel/helper-create-regexp-features-plugin": "^7.8.3" } }, - "@babel/plugin-transform-new-target": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", - "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, "@babel/plugin-transform-object-super": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", @@ -1922,22 +2226,20 @@ } }, "@babel/plugin-transform-property-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", - "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz", - "integrity": "sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + } } }, "@babel/plugin-transform-react-display-name": { @@ -1960,64 +2262,60 @@ "@babel/plugin-syntax-jsx": "^7.2.0" } }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz", - "integrity": "sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A==", + "@babel/plugin-transform-react-jsx-development": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz", + "integrity": "sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" }, "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, "@babel/plugin-syntax-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", - "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - } - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz", - "integrity": "sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" - }, - "dependencies": { - "@babel/plugin-syntax-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", - "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } } } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" }, "dependencies": { - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "dev": true, "requires": { - "private": "^0.1.6" + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-transform": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" } } } @@ -2039,6 +2337,52 @@ } } }, + "@babel/plugin-transform-runtime": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", + "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "@babel/plugin-transform-shorthand-properties": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", @@ -2057,16 +2401,6 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" - } - }, "@babel/plugin-transform-template-literals": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", @@ -2077,61 +2411,14 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.4.tgz", - "integrity": "sha512-rwDvjaMTx09WC0rXGBRlYSSkEHOKRrecY6hEr3SVIPKII8DVWXtapNAfAyMC0dovuO+zYArcAuKeu3q9DNRfzA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-typescript": "^7.2.0" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", - "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" - }, - "dependencies": { - "@babel/helper-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz", - "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==", - "dev": true, - "requires": { - "lodash": "^4.17.11" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } - } - }, "@babel/polyfill": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.7.0.tgz", - "integrity": "sha512-/TS23MVvo34dFmf8mwCisCbWGrfhbiWZSwBo6HkADTBhUa2Q/jWltyY/tpofz/b6/RIhqaqQcquptCirqIhOaQ==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.8.7.tgz", + "integrity": "sha512-LeSfP9bNZH2UOZgcGcZ0PIHUt1ZuHub1L3CVmEyqLxCeDLm4C5Gi8jRH8ZX2PNpDhQCo0z6y/+DIs2JlliXW8w==", "dev": true, "requires": { "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" }, "dependencies": { "core-js": { @@ -2143,27 +2430,29 @@ } }, "@babel/preset-env": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.3.tgz", - "integrity": "sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", + "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.8.0", - "@babel/helper-compilation-targets": "^7.8.3", + "@babel/compat-data": "^7.9.0", + "@babel/helper-compilation-targets": "^7.8.7", "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-proposal-async-generator-functions": "^7.8.3", "@babel/plugin-proposal-dynamic-import": "^7.8.3", "@babel/plugin-proposal-json-strings": "^7.8.3", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.0", "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", "@babel/plugin-syntax-async-generators": "^7.8.0", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-json-strings": "^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", @@ -2172,38 +2461,39 @@ "@babel/plugin-transform-async-to-generator": "^7.8.3", "@babel/plugin-transform-block-scoped-functions": "^7.8.3", "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.0", "@babel/plugin-transform-computed-properties": "^7.8.3", "@babel/plugin-transform-destructuring": "^7.8.3", "@babel/plugin-transform-dotall-regex": "^7.8.3", "@babel/plugin-transform-duplicate-keys": "^7.8.3", "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", "@babel/plugin-transform-function-name": "^7.8.3", "@babel/plugin-transform-literals": "^7.8.3", "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.0", + "@babel/plugin-transform-modules-commonjs": "^7.9.0", + "@babel/plugin-transform-modules-systemjs": "^7.9.0", + "@babel/plugin-transform-modules-umd": "^7.9.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", "@babel/plugin-transform-new-target": "^7.8.3", "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", "@babel/plugin-transform-reserved-words": "^7.8.3", "@babel/plugin-transform-shorthand-properties": "^7.8.3", "@babel/plugin-transform-spread": "^7.8.3", "@babel/plugin-transform-sticky-regex": "^7.8.3", "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.3", - "browserslist": "^4.8.2", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.0", + "browserslist": "^4.9.1", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", - "levenary": "^1.1.0", + "levenary": "^1.1.1", "semver": "^5.5.0" }, "dependencies": { @@ -2217,12 +2507,12 @@ } }, "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -2247,17 +2537,6 @@ "@babel/types": "^7.8.3" } }, - "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, "@babel/helper-define-map": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", @@ -2327,16 +2606,17 @@ } }, "@babel/helper-module-transforms": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", - "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", + "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, @@ -2378,15 +2658,15 @@ } }, "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/helper-simple-access": { @@ -2421,20 +2701,20 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { @@ -2459,9 +2739,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz", + "integrity": "sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", @@ -2479,12 +2759,12 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", + "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-create-regexp-features-plugin": "^7.8.8", "@babel/helper-plugin-utils": "^7.8.3" } }, @@ -2564,9 +2844,9 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", - "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz", + "integrity": "sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.8.3", @@ -2574,7 +2854,7 @@ "@babel/helper-function-name": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" } @@ -2589,9 +2869,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz", + "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -2627,9 +2907,9 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.3.tgz", - "integrity": "sha512-ZjXznLNTxhpf4Q5q3x1NsngzGA38t9naWH8Gt+0qYZEJAcvPI9waSStSh56u19Ofjr7QmD0wUsQ8hw8s/p1VnA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", + "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -2664,47 +2944,47 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", + "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz", + "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "@babel/helper-simple-access": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", + "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", + "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3" } }, @@ -2728,12 +3008,11 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.3.tgz", - "integrity": "sha512-/pqngtGb54JwMBZ6S/D3XYylQDFtGjWrnoCF4gXZOUpFV/ujbxnoNGNvDGu6doFWRPBveE72qTx/RRU44j5I/Q==", + "version": "7.9.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz", + "integrity": "sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.8.3", "@babel/helper-get-function-arity": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3" } @@ -2786,9 +3065,9 @@ } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.3.tgz", - "integrity": "sha512-3TrkKd4LPqm4jHs6nPtSDI/SV9Cm5PRJkHLUgTcqRQQTMAZ44ZaAdDZJtvWFSaRcvT0a1rTmJ5ZA5tDKjleF3g==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" @@ -2805,61 +3084,82 @@ } }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, - "browserslist": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz", - "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001017", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.44" + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", + "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "caniuse-lite": { - "version": "1.0.30001020", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz", - "integrity": "sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA==", + "version": "1.0.30001037", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001037.tgz", + "integrity": "sha512-qQP40FzWQ1i9RTjxppOUnpM8OwTBFL5DQbjoR9Az32EtM7YUZOw9orFO6rj1C+xWAGzz+X3bUe09Jf5Ep+zpuA==", "dev": true }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -2870,21 +3170,40 @@ } }, "electron-to-chromium": { - "version": "1.3.334", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.334.tgz", - "integrity": "sha512-RcjJhpsVaX0X6ntu/WSBlW9HE9pnCgXS9B8mTUObl1aDxaiOa0Lu+NMveIS5IDC+VELzhM32rFJDCC+AApVwcA==", + "version": "1.3.384", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.384.tgz", + "integrity": "sha512-9jGNF78o450ymPf63n7/j1HrRAD4xGTsDkKY2X6jtCAWaYgph2A9xQjwfwRpj+AovkARMO+JfZuVCFTdandD6w==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "node-releases": { - "version": "1.1.45", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz", - "integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==", + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -2897,40 +3216,108 @@ "dev": true } } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, - "@babel/preset-flow": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.0.0.tgz", - "integrity": "sha512-bJOHrYOPqJZCkPVbG1Lot2r5OSsB+iUOaxiHdlOeB1yPWS6evswVHwvkDLZ54WTaTRIk89ds0iHmGZSnxlPejQ==", + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "dependencies": { + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-react": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.8.3.tgz", - "integrity": "sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.4.tgz", + "integrity": "sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.8.3", - "@babel/plugin-transform-react-jsx-self": "^7.8.3", - "@babel/plugin-transform-react-jsx-source": "^7.8.3" + "@babel/plugin-transform-react-jsx": "^7.9.4", + "@babel/plugin-transform-react-jsx-development": "^7.9.0", + "@babel/plugin-transform-react-jsx-self": "^7.9.0", + "@babel/plugin-transform-react-jsx-source": "^7.9.0" }, "dependencies": { - "@babel/helper-builder-react-jsx": { + "@babel/helper-annotate-as-pure": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz", - "integrity": "sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.8.3", - "esutils": "^2.0.0" + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", + "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/types": "^7.9.0" } }, "@babel/helper-plugin-utils": { @@ -2958,20 +3345,21 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz", - "integrity": "sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz", + "integrity": "sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.8.3", + "@babel/helper-builder-react-jsx": "^7.9.0", + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", - "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", + "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", @@ -2979,9 +3367,9 @@ } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", - "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", + "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", @@ -2989,12 +3377,12 @@ } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -3002,13 +3390,13 @@ } }, "@babel/preset-typescript": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz", - "integrity": "sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", + "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-typescript": "^7.8.3" + "@babel/plugin-transform-typescript": "^7.9.0" }, "dependencies": { "@babel/code-frame": { @@ -3021,28 +3409,28 @@ } }, "@babel/generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", - "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.8.3", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.3.tgz", - "integrity": "sha512-qmp4pD7zeTxsv0JNecSBsEmG1ei2MqwJq4YQcK3ZWm/0t07QstWfvuV/vm3Qt5xNMFETn2SZqpMx2MQzbtq+KA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz", + "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==", "dev": true, "requires": { "@babel/helper-function-name": "^7.8.3", "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-split-export-declaration": "^7.8.3" } }, @@ -3091,15 +3479,15 @@ "dev": true }, "@babel/helper-replace-supers": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", - "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/helper-split-export-declaration": { @@ -3112,20 +3500,20 @@ } }, "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", - "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/plugin-syntax-typescript": { @@ -3138,9 +3526,9 @@ } }, "@babel/plugin-transform-typescript": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.3.tgz", - "integrity": "sha512-Ebj230AxcrKGZPKIp4g4TdQLrqX95TobLUWKd/CwG7X1XHUH1ZpkpFvXuXqWbtGRWb7uuEWNlrl681wsOArAdQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.4.tgz", + "integrity": "sha512-yeWeUkKx2auDbSxRe8MusAG+n4m9BFY/v+lPjmQDgOFX5qnySkUY5oXzkp6FwPdsYqnKay6lorXYdC0n3bZO7w==", "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.8.3", @@ -3149,44 +3537,64 @@ } }, "@babel/template": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", - "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", - "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.3", + "@babel/generator": "^7.9.0", "@babel/helper-function-name": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.3", - "@babel/types": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -3201,27 +3609,54 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, + "@babel/register": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.9.0.tgz", + "integrity": "sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, "@babel/runtime": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz", "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.2" } }, "@babel/runtime-corejs3": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.8.3.tgz", - "integrity": "sha512-lrIU4aVbmlM/wQPzhEvzvNJskKyYptuXb0fGC0lTQTupTOYtR2Vqbu6/jf8vTr4M8Wt1nIzxVrSvPI5qESa/xA==", + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz", + "integrity": "sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA==", "requires": { "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" } }, + "@babel/standalone": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.9.4.tgz", + "integrity": "sha512-liRTBSbwxaXmrAqH43qF/fh7soqTMF3+j2eUdsRwKzPwu1WCUBPG1yZQFfk3Wrw3Pk4GFcJpI9dksXY+bhNMwg==", + "dev": true + }, "@babel/template": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", @@ -3251,6 +3686,19 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "@babel/types": { @@ -3264,11 +3712,29 @@ "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -3307,6 +3773,19 @@ "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "@babel/types": { @@ -3320,6 +3799,15 @@ "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "debug": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", @@ -3334,6 +3822,15 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -3348,6 +3845,12 @@ "to-fast-properties": "^2.0.0" } }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, "@coralproject/bunyan-prettystream": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@coralproject/bunyan-prettystream/-/bunyan-prettystream-0.1.4.tgz", @@ -3379,6 +3882,39 @@ "requires": { "color-convert": "^1.9.0" } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -3391,6 +3927,14 @@ "bowser": "^1.0.0", "classnames": "^2.2.6", "react-contenteditable": "^2.1.5" + }, + "dependencies": { + "bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", + "dev": true + } } }, "@csstools/convert-colors": { @@ -3405,140 +3949,202 @@ "integrity": "sha512-pH4KCsbtBLLe7eqUrw8brcuFO8IZlN36JjdKlOublibVdAIPHCzEnpBWOVUXK5sCf+DpBi8ZtuWtjF0srybdeA==", "dev": true }, - "@emotion/cache": { - "version": "10.0.9", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.9.tgz", - "integrity": "sha512-f7MblpE2xoimC4fCMZ9pivmsIn7hyWRIvY75owMDi8pdOSeh+w5tH3r4hBJv/LLrwiMM7cTQURqTPcYoL5pWnw==", + "@emotion/babel-plugin-jsx-pragmatic": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin-jsx-pragmatic/-/babel-plugin-jsx-pragmatic-0.1.5.tgz", + "integrity": "sha512-y+3AJ0SItMDaAgGPVkQBC/S/BaqaPACkQ6MyCI2CUlrjTxKttTVfD3TMtcs7vLEcLxqzZ1xiG0vzwCXjhopawQ==", "dev": true, "requires": { - "@emotion/sheet": "0.9.2", - "@emotion/stylis": "0.8.3", - "@emotion/utils": "0.11.1", - "@emotion/weak-memoize": "0.2.2" + "@babel/plugin-syntax-jsx": "^7.2.0" } }, - "@emotion/core": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.10.tgz", - "integrity": "sha512-U1aE2cOWUscjc8ZJ3Cx32udOzLeRoJwGxBH93xQD850oQFpwPKZARzdUtdc9SByUOwzSFYxhDhrpXnV34FJmWg==", + "@emotion/babel-preset-css-prop": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/babel-preset-css-prop/-/babel-preset-css-prop-10.0.27.tgz", + "integrity": "sha512-rducrjTpLGDholp0l2l4pXqpzAqYYGMg/x4IteO0db2smf6zegn6RRZdDnbaoMSs63tfPWgo2WukT1/F1gX/AA==", "dev": true, "requires": { - "@emotion/cache": "^10.0.9", - "@emotion/css": "^10.0.9", - "@emotion/serialize": "^0.11.6", - "@emotion/sheet": "0.9.2", - "@emotion/utils": "0.11.1" - } - }, - "@emotion/css": { - "version": "10.0.9", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.9.tgz", - "integrity": "sha512-jtHhUSWw+L7yxYgNtC+KJ3Ory90/jiAtpG1qT+gTQQ/RR5AMiigs9/lDHu/vnwljaq2S48FoKb/FZZMlJcC4bw==", - "dev": true, - "requires": { - "@emotion/serialize": "^0.11.6", - "@emotion/utils": "0.11.1", - "babel-plugin-emotion": "^10.0.9" - } - }, - "@emotion/hash": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.1.tgz", - "integrity": "sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA==", - "dev": true - }, - "@emotion/is-prop-valid": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz", - "integrity": "sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==", - "dev": true, - "requires": { - "@emotion/memoize": "0.7.1" - } - }, - "@emotion/memoize": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz", - "integrity": "sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==", - "dev": true - }, - "@emotion/serialize": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.6.tgz", - "integrity": "sha512-n4zVv2qGLmspF99jaEUwnMV0fnEGsyUMsC/8KZKUSUTZMYljHE+j+B6rSD8PIFtaUIhHaxCG2JawN6L+OgLN0Q==", - "dev": true, - "requires": { - "@emotion/hash": "0.7.1", - "@emotion/memoize": "0.7.1", - "@emotion/unitless": "0.7.3", - "@emotion/utils": "0.11.1", - "csstype": "^2.5.7" + "@babel/plugin-transform-react-jsx": "^7.3.0", + "@babel/runtime": "^7.5.5", + "@emotion/babel-plugin-jsx-pragmatic": "^0.1.5", + "babel-plugin-emotion": "^10.0.27" }, "dependencies": { - "csstype": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.4.tgz", - "integrity": "sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg==", + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", + "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/types": "^7.9.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz", + "integrity": "sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.9.0", + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } } } }, - "@emotion/sheet": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.2.tgz", - "integrity": "sha512-pVBLzIbC/QCHDKJF2E82V2H/W/B004mDFQZiyo/MSR+VC4pV5JLG0TF/zgQDFvP3fZL/5RTPGEmXlYJBMUuJ+A==", - "dev": true + "@emotion/cache": { + "version": "10.0.29", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", + "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", + "requires": { + "@emotion/sheet": "0.9.4", + "@emotion/stylis": "0.8.5", + "@emotion/utils": "0.11.3", + "@emotion/weak-memoize": "0.2.5" + } }, - "@emotion/styled": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.10.tgz", - "integrity": "sha512-k4p5WxwYJUVYKBlwOmfpqxeSwdPHqUycLHJY9ftleEvMfphYLB8lt9oPEkEty5XH4URh/wyUfZ2wW2ojrHODWA==", + "@emotion/core": { + "version": "10.0.28", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.28.tgz", + "integrity": "sha512-pH8UueKYO5jgg0Iq+AmCLxBsvuGtvlmiDCOuv8fGNYn3cowFpLN98L8zO56U0H1PjDIyAlXymgL3Wu7u7v6hbA==", + "requires": { + "@babel/runtime": "^7.5.5", + "@emotion/cache": "^10.0.27", + "@emotion/css": "^10.0.27", + "@emotion/serialize": "^0.11.15", + "@emotion/sheet": "0.9.4", + "@emotion/utils": "0.11.3" + } + }, + "@emotion/css": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", + "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", + "requires": { + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3", + "babel-plugin-emotion": "^10.0.27" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", "dev": true, "requires": { - "@emotion/styled-base": "^10.0.10", - "babel-plugin-emotion": "^10.0.9" + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/serialize": { + "version": "0.11.16", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", + "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", + "requires": { + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/unitless": "0.7.5", + "@emotion/utils": "0.11.3", + "csstype": "^2.5.7" + } + }, + "@emotion/sheet": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", + "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" + }, + "@emotion/styled": { + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz", + "integrity": "sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==", + "dev": true, + "requires": { + "@emotion/styled-base": "^10.0.27", + "babel-plugin-emotion": "^10.0.27" } }, "@emotion/styled-base": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.10.tgz", - "integrity": "sha512-uZwKrBfcH7jCRAQi5ZxsEGIZ+1Zr9/lof4TMsIolC0LSwpnWkQ+JRJLy+p4ZyATee9SdmyCV0sG/VTngVSnrpA==", + "version": "10.0.31", + "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.31.tgz", + "integrity": "sha512-wTOE1NcXmqMWlyrtwdkqg87Mu6Rj1MaukEoEmEkHirO5IoHDJ8LgCQL4MjJODgxWxXibGR3opGp1p7YvkNEdXQ==", "dev": true, "requires": { - "@emotion/is-prop-valid": "0.7.3", - "@emotion/serialize": "^0.11.6", - "@emotion/utils": "0.11.1", - "object-assign": "^4.1.1" + "@babel/runtime": "^7.5.5", + "@emotion/is-prop-valid": "0.8.8", + "@emotion/serialize": "^0.11.15", + "@emotion/utils": "0.11.3" } }, "@emotion/stylis": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.3.tgz", - "integrity": "sha512-M3nMfJ6ndJMYloSIbYEBq6G3eqoYD41BpDOxreE8j0cb4fzz/5qvmqU9Mb2hzsXcCnIlGlWhS03PCzVGvTAe0Q==", - "dev": true + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" }, "@emotion/unitless": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.3.tgz", - "integrity": "sha512-4zAPlpDEh2VwXswwr/t8xGNDGg8RQiPxtxZ3qQEXyQsBV39ptTdESCjuBvGze1nLMVrxmTIKmnO/nAV8Tqjjzg==", - "dev": true + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, "@emotion/utils": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.1.tgz", - "integrity": "sha512-8M3VN0hetwhsJ8dH8VkVy7xo5/1VoBsDOk/T4SJOeXwTO1c4uIqVNx2qyecLFnnUWD5vvUqHQ1gASSeUN6zcTg==", - "dev": true + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", + "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, "@emotion/weak-memoize": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz", - "integrity": "sha512-n/VQ4mbfr81aqkx/XmVicOLjviMuy02eenSdJY33SVA7S2J42EU0P1H0mOogfYedb3wXA0d/LVtBrgTSm04WEA==", - "dev": true + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, "@fluent/bundle": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@fluent/bundle/-/bundle-0.14.1.tgz", - "integrity": "sha512-0uguRGajpI897/Uhx0KNkSiz+F+GWhgRAPfvHfuGgWl2Szd3JNEHyxmRmPXgnsfYX51piq2O4Jdu4zgjmUBUhA==" + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@fluent/bundle/-/bundle-0.15.0.tgz", + "integrity": "sha512-pYz+TuFPwCj5yx51mFG1flPxwTaXWkpi6yt6r+rdm22Y9bkWMHWdwbUnjWLJ+9yJKQMhe2uhvMJ7YfhkF87oNg==" }, "@fluent/dom": { "version": "0.6.0", @@ -3556,9 +4162,9 @@ } }, "@fluent/react": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@fluent/react/-/react-0.10.0.tgz", - "integrity": "sha512-SDuvLpSSbgX346UwjAqQtVZCI/NQBKiIonRX2rCvaBUL90jFYSBQTnS9c429p1cSqPvOiB1OH/Qiqq63SkPi4w==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@fluent/react/-/react-0.11.1.tgz", + "integrity": "sha512-LSQzTGmYCyIM0G2RrfoLyOE5BBOSqtdFeO52Yj/84nTdhIut7RPuMuYEOU2BeLsIMnowofjxMVczxvfij2NICA==", "dev": true, "requires": { "@fluent/sequence": "0.4.0", @@ -3609,6 +4215,55 @@ "through2": "^2.0.3" } }, + "@hapi/address": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.0.1.tgz", + "integrity": "sha512-0oEP5UiyV4f3d6cBL8F3Z5S7iWSX39Knnl0lY8i+6gfmmIBj44JCBNtcMgwyS+5v7j3VYavNay0NFHDS+UGQcw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true + }, + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + }, + "@hapi/hoek": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.0.4.tgz", + "integrity": "sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==" + }, + "@hapi/joi": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", + "requires": { + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" + } + }, + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, "@hutson/parse-repository-url": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", @@ -3626,6 +4281,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -3635,6 +4299,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -3654,64 +4331,186 @@ } } }, - "@jest/console": { - "version": "24.7.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.7.1.tgz", - "integrity": "sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg==", + "@istanbuljs/load-nyc-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz", + "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==", "dev": true, "requires": { - "@jest/source-map": "^24.3.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jest/console": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.2.3.tgz", + "integrity": "sha512-k+37B1aSvOt9tKHWbZZSOy1jdgzesB0bj96igCVUG1nAH1W5EoUfgc5EXbBVU08KSLvkVdWopLXaO3xfVGlxtQ==", + "dev": true, + "requires": { + "@jest/source-map": "^25.2.1", + "chalk": "^3.0.0", + "jest-util": "^25.2.3", + "slash": "^3.0.0" }, "dependencies": { "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true } } }, "@jest/core": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.8.0.tgz", - "integrity": "sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.2.4.tgz", + "integrity": "sha512-WcWYShl0Bqfcb32oXtjwbiR78D/djhMdJW+ulp4/bmHgeODcsieqUJfUH+kEv8M7VNV77E6jds5aA+WuGh1nmg==", "dev": true, "requires": { - "@jest/console": "^24.7.1", - "@jest/reporters": "^24.8.0", - "@jest/test-result": "^24.8.0", - "@jest/transform": "^24.8.0", - "@jest/types": "^24.8.0", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", + "@jest/console": "^25.2.3", + "@jest/reporters": "^25.2.4", + "@jest/test-result": "^25.2.4", + "@jest/transform": "^25.2.4", + "@jest/types": "^25.2.3", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-changed-files": "^24.8.0", - "jest-config": "^24.8.0", - "jest-haste-map": "^24.8.0", - "jest-message-util": "^24.8.0", - "jest-regex-util": "^24.3.0", - "jest-resolve-dependencies": "^24.8.0", - "jest-runner": "^24.8.0", - "jest-runtime": "^24.8.0", - "jest-snapshot": "^24.8.0", - "jest-util": "^24.8.0", - "jest-validate": "^24.8.0", - "jest-watcher": "^24.8.0", - "micromatch": "^3.1.10", - "p-each-series": "^1.0.0", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "rimraf": "^2.5.4", - "strip-ansi": "^5.0.0" + "graceful-fs": "^4.2.3", + "jest-changed-files": "^25.2.3", + "jest-config": "^25.2.4", + "jest-haste-map": "^25.2.3", + "jest-message-util": "^25.2.4", + "jest-regex-util": "^25.2.1", + "jest-resolve": "^25.2.3", + "jest-resolve-dependencies": "^25.2.4", + "jest-runner": "^25.2.4", + "jest-runtime": "^25.2.4", + "jest-snapshot": "^25.2.4", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", + "jest-watcher": "^25.2.4", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "realpath-native": "^2.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3723,78 +4522,153 @@ } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, "@jest/environment": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.8.0.tgz", - "integrity": "sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.2.4.tgz", + "integrity": "sha512-wA4xlhD19/gukkDpJ5HQsTle0pgnzI5qMFEjw267lpTDC8d9N7Ihqr5pI+l0p8Qn1SQhai+glSqxrGdzKy4jxw==", "dev": true, "requires": { - "@jest/fake-timers": "^24.8.0", - "@jest/transform": "^24.8.0", - "@jest/types": "^24.8.0", - "jest-mock": "^24.8.0" + "@jest/fake-timers": "^25.2.4", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + } } }, "@jest/fake-timers": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.8.0.tgz", - "integrity": "sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.2.4.tgz", + "integrity": "sha512-oC1TJiwfMcBttVN7Wz+VZnqEAgYTiEMu0QLOXpypR89nab0uCB31zm/QeBZddhSstn20qe3yqOXygp6OwvKT/Q==", "dev": true, "requires": { - "@jest/types": "^24.8.0", - "jest-message-util": "^24.8.0", - "jest-mock": "^24.8.0" + "@jest/types": "^25.2.3", + "jest-message-util": "^25.2.4", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", + "lolex": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + } } }, "@jest/reporters": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.8.0.tgz", - "integrity": "sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.2.4.tgz", + "integrity": "sha512-VHbLxM03jCc+bTLOluW/IqHR2G0Cl0iATwIQbuZtIUast8IXO4fD0oy4jpVGpG5b20S6REA8U3BaQoCW/CeVNQ==", "dev": true, "requires": { - "@jest/environment": "^24.8.0", - "@jest/test-result": "^24.8.0", - "@jest/transform": "^24.8.0", - "@jest/types": "^24.8.0", - "chalk": "^2.0.1", + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^25.2.3", + "@jest/test-result": "^25.2.4", + "@jest/transform": "^25.2.4", + "@jest/types": "^25.2.3", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.2", - "istanbul-lib-coverage": "^2.0.2", - "istanbul-lib-instrument": "^3.0.1", - "istanbul-lib-report": "^2.0.4", - "istanbul-lib-source-maps": "^3.0.1", - "istanbul-reports": "^2.1.1", - "jest-haste-map": "^24.8.0", - "jest-resolve": "^24.8.0", - "jest-runtime": "^24.8.0", - "jest-util": "^24.8.0", - "jest-worker": "^24.6.0", - "node-notifier": "^5.2.1", - "slash": "^2.0.0", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "jest-haste-map": "^25.2.3", + "jest-resolve": "^25.2.3", + "jest-util": "^25.2.3", + "jest-worker": "^25.2.1", + "node-notifier": "^6.0.0", + "slash": "^3.0.0", "source-map": "^0.6.0", - "string-length": "^2.0.0" + "string-length": "^3.1.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^4.0.1" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -3805,10 +4679,54 @@ "path-is-absolute": "^1.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", + "dev": true, + "optional": true + }, + "jest-worker": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.1.tgz", + "integrity": "sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "node-notifier": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz", + "integrity": "sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.1.1", + "semver": "^6.3.0", + "shellwords": "^0.1.1", + "which": "^1.3.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "optional": true + }, "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "source-map": { @@ -3816,17 +4734,26 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/source-map": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.3.0.tgz", - "integrity": "sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag==", + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.1.tgz", + "integrity": "sha512-PgScGJm1U27+9Te/cxP4oUFqJ2PX6NhBL2a6unQ7yafCgs8k02c0LSyjSIx/ao0AwcAdCczfAPDf5lJ7zoB/7A==", "dev": true, "requires": { "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", + "graceful-fs": "^4.2.3", "source-map": "^0.6.0" }, "dependencies": { @@ -3837,9 +4764,9 @@ "dev": true }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, "source-map": { @@ -3851,61 +4778,124 @@ } }, "@jest/test-result": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.8.0.tgz", - "integrity": "sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.2.4.tgz", + "integrity": "sha512-AI7eUy+q2lVhFnaibDFg68NGkrxVWZdD6KBr9Hm6EvN0oAe7GxpEwEavgPfNHQjU2mi6g+NsFn/6QPgTUwM1qg==", "dev": true, "requires": { - "@jest/console": "^24.7.1", - "@jest/types": "^24.8.0", - "@types/istanbul-lib-coverage": "^2.0.0" + "@jest/console": "^25.2.3", + "@jest/transform": "^25.2.4", + "@jest/types": "^25.2.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + } } }, "@jest/test-sequencer": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz", - "integrity": "sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.2.4.tgz", + "integrity": "sha512-TEZm/Rkd6YgskdpTJdYLBtu6Gc11tfWPuSpatq0duH77ekjU8dpqX2zkPdY/ayuHxztV5LTJoV5BLtI9mZfXew==", "dev": true, "requires": { - "@jest/test-result": "^24.8.0", - "jest-haste-map": "^24.8.0", - "jest-runner": "^24.8.0", - "jest-runtime": "^24.8.0" + "@jest/test-result": "^25.2.4", + "jest-haste-map": "^25.2.3", + "jest-runner": "^25.2.4", + "jest-runtime": "^25.2.4" } }, "@jest/transform": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.8.0.tgz", - "integrity": "sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.2.4.tgz", + "integrity": "sha512-6eRigvb+G6bs4kW5j1/y8wu4nCrmVuIe0epPBbiWaYlwawJ8yi1EIyK3d/btDqmBpN5GpN4YhR6iPPnDmkYdTA==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^24.8.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", + "@jest/types": "^25.2.3", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^3.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.8.0", - "jest-regex-util": "^24.3.0", - "jest-util": "^24.8.0", - "micromatch": "^3.1.10", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", + "graceful-fs": "^4.2.3", + "jest-haste-map": "^25.2.3", + "jest-regex-util": "^25.2.1", + "jest-util": "^25.2.3", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", "source-map": "^0.6.1", - "write-file-atomic": "2.4.1" + "write-file-atomic": "^3.0.0" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "source-map": { @@ -3913,52 +4903,345 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, "@jest/types": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.8.0.tgz", - "integrity": "sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.1.0.tgz", + "integrity": "sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^12.0.9" + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "@mdx-js/loader": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-0.16.8.tgz", - "integrity": "sha512-uTwUY2IO/r0Bsp166WwKYCpkGkTKQJx9Cvq8PROGEeGIejcrNcqic0egv+dreHTzP1V9kS6JQJkurnbUx+IhtQ==", + "@loadable/component": { + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/@loadable/component/-/component-5.12.0.tgz", + "integrity": "sha512-eDG7FPZ8tCFA/mqu2IrYV6eS+UxGBo21PwtEV9QpkpYrx25xKRXzJUm36yfQPK3o7jXu43xpPkwiU4mLWcjJlw==", "dev": true, "requires": { - "@mdx-js/mdx": "^0.16.8", - "@mdx-js/tag": "^0.16.8", - "loader-utils": "^1.1.0" + "@babel/runtime": "^7.7.7", + "hoist-non-react-statics": "^3.3.1" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dev": true, + "requires": { + "react-is": "^16.7.0" + } + } } }, "@mdx-js/mdx": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-0.16.8.tgz", - "integrity": "sha512-HqipqjFh0/Fag+a3KO0IBbUjZUPtSOW2dBDOSMlYswnRLrqy6pOATAqwk3wXJku4jUe2zX5GVtuFV60BBHmjnA==", + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.5.8.tgz", + "integrity": "sha512-OzanPTN0p9GZOEVeEuEa8QsjxxGyfFOOnI/+V1oC1su9UIN4KUg1k4n/hWTZC+VZhdW1Lfj6+Ho8nIs6L+pbDA==", "dev": true, "requires": { - "change-case": "^3.0.2", - "detab": "^2.0.0", - "mdast-util-to-hast": "^4.0.0", - "remark-parse": "^6.0.0", - "remark-squeeze-paragraphs": "^3.0.1", - "to-style": "^1.3.3", - "unified": "^7.0.0", - "unist-builder": "^1.0.1", - "unist-util-visit": "^1.3.0" + "@babel/core": "7.8.4", + "@babel/plugin-syntax-jsx": "7.8.3", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "^1.5.8", + "babel-plugin-apply-mdx-type-prop": "^1.5.8", + "babel-plugin-extract-import-names": "^1.5.8", + "camelcase-css": "2.0.1", + "detab": "2.0.3", + "hast-util-raw": "5.0.2", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "7.0.0", + "remark-mdx": "^1.5.8", + "remark-parse": "7.0.2", + "remark-squeeze-paragraphs": "3.0.4", + "style-to-object": "0.3.0", + "unified": "8.4.2", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.2" }, "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "dev": true, + "requires": { + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "json5": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, "remark-parse": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", - "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz", + "integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==", "dev": true, "requires": { "collapse-white-space": "^1.0.2", @@ -3977,31 +5260,64 @@ "vfile-location": "^2.0.0", "xtend": "^4.0.1" } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", + "dev": true + }, + "unist-util-visit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", + "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", + "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } } } }, - "@mdx-js/mdxast": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@mdx-js/mdxast/-/mdxast-0.16.8.tgz", - "integrity": "sha512-PcTGLgPIywggyTA7NwQIKTP8lH1Nxfz4IBhuhpO+66OVpfib1M3oAscYrvoWh0eSiuIpvNqmXYsnTWIWgZl2sA==", - "dev": true, - "requires": { - "unist-util-visit": "^1.3.0" - } + "@mdx-js/react": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.5.8.tgz", + "integrity": "sha512-L3rehITVxqDHOPJFGBSHKt3Mv/p3MENYlGIwLNYU89/iVqTLMD/vz8hL9RQtKqRoMbKuWpzzLlKIObqJzthNYg==", + "dev": true }, - "@mdx-js/tag": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@mdx-js/tag/-/tag-0.16.8.tgz", - "integrity": "sha512-19dIHmmCHyZpKxsOxAPNB1itG9DKnnSYOsnibYQbyl5YXxZTDMyGD7tZitGm7y7vQpcLhQxmAHykM3l7yeKCDg==", + "@mdx-js/util": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.8.tgz", + "integrity": "sha512-a7Gjjw8bfBSertA/pTWBA/9WKEhgaSxvQE2NTSUzaknrzGFOhs4alZSHh3RHmSFdSWv5pUuzAgsWseMLhWEVkQ==", "dev": true }, "@metascraper/helpers": { - "version": "5.7.21", - "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.7.21.tgz", - "integrity": "sha512-wcgoVCqV8fU5YrGEKxWyUQo4nbZK3p//0Wav/hLGZ632Qb6VNpfJtUTxqHndGkG5xNeqfNtXNnX64XZaUc7FDg==", + "version": "5.11.6", + "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.11.6.tgz", + "integrity": "sha512-DKCJMz5Q4wrBPZVfJdeNarmW2WHm3Y7D6M78KKA/D0mcXPikKLoiBxjyPtjc5tEE/5er+PYFijDBmyTT60M2bg==", "requires": { "audio-extensions": "0.0.0", - "chrono-node": "~1.3.11", + "chrono-node": "~1.4.3", "condense-whitespace": "~2.0.0", "entities": "~2.0.0", "file-extension": "~4.0.5", @@ -4009,12 +5325,12 @@ "image-extensions": "~1.1.0", "is-relative-url": "~3.0.0", "is-uri": "~1.2.0", - "iso-639-3": "~1.2.0", + "iso-639-3": "~2.0.0", "isostring": "0.0.1", "lodash": "~4.17.15", "memoize-one": "~5.1.1", - "mime-types": "~2.1.24", - "normalize-url": "~4.5.0", + "mime-types": "~2.1.26", + "normalize-url": "~5.0.0", "smartquotes": "~2.3.1", "title": "~3.4.1", "truncate": "~2.1.0", @@ -4036,25 +5352,31 @@ } }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.43.0" } }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.0.0.tgz", + "integrity": "sha512-bAEm2fx8Dq/a35Z6PIRkkBBJvR56BbEJvhpNtvCZ4W9FyORSna77fn+xtYFjqk5JpBS+fMnAOG/wFgkQBmB7hw==" } } }, + "@mikaelkristiansson/domready": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.10.tgz", + "integrity": "sha512-6cDuZeKSCSJ1KvfEQ25Y8OXUjqDJZ+HgUs6dhASWbAX8fxVraTfPsSeRe2bN+4QJDsgUaXaMWBYfRomCr04GGg==", + "dev": true + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -4065,12 +5387,388 @@ "glob-to-regexp": "^0.3.0" } }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + } + } + }, "@nodelib/fs.stat": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", "dev": true }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@pieh/friendly-errors-webpack-plugin": { + "version": "1.7.0-chalk-2", + "resolved": "https://registry.npmjs.org/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz", + "integrity": "sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0", + "strip-ansi": "^3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.2.0.tgz", + "integrity": "sha512-rjdNzcWroULJeD/Y0+eETy9LhM7c5tbPF+wqT5G680rwDkh3iothIPEqGAuEE2WJlXEaAq293aO6ySzsIU518Q==", + "dev": true, + "requires": { + "ansi-html": "^0.0.7", + "error-stack-parser": "^2.0.4", + "html-entities": "^1.2.1", + "lodash.debounce": "^4.0.8", + "react-dev-utils": "^9.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000989", + "electron-to-chromium": "^1.3.247", + "node-releases": "^1.1.29" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "node-releases": { + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "react-dev-utils": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", + "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", + "dev": true, + "requires": { + "@babel/code-frame": "7.5.5", + "address": "1.1.2", + "browserslist": "4.7.0", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "fork-ts-checker-webpack-plugin": "1.5.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "6.5.0", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^6.3.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^6.0.3", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "sockjs-client": "1.4.0", + "strip-ansi": "5.2.0", + "text-table": "0.2.0" + } + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -4125,6 +5823,18 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, + "@reach/router": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.3.tgz", + "integrity": "sha512-gOIAiFhWdiVGSVjukKeNKkCRBLmnORoTPyBihI/jLunICPgxdP30DroAvPQuf1eVfQbfGJQDJkwhJXsNPMnVWw==", + "dev": true, + "requires": { + "create-react-context": "0.3.0", + "invariant": "^2.2.3", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4" + } + }, "@restart/context": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", @@ -4140,10 +5850,16 @@ "any-observable": "^0.3.0" } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, "@sindresorhus/slugify": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.6.0.tgz", - "integrity": "sha512-m6smRWGuY0kr0oRdfuTNHWvtBlgtr/ixSa9xiGzFtRjXHghQIlf8s8ZKPWSXj/KraaYuvI//bVBEcncIMzjxVg==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.9.1.tgz", + "integrity": "sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5", @@ -4151,41 +5867,42 @@ } }, "@sinonjs/commons": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz", - "integrity": "sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz", + "integrity": "sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ==", "dev": true, "requires": { "type-detect": "4.0.8" } }, + "@sinonjs/fake-timers": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.0.tgz", + "integrity": "sha512-atR1J/jRXvQAb47gfzSK8zavXy7BcpnYq21ALon0U99etu99vsir0trzIO3wpeLtW+LLVY6X7EkfVTbjGSH8Ww==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, "@sinonjs/formatio": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", - "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", + "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", "dev": true, "requires": { "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^3.1.0" + "@sinonjs/samsam": "^5.0.2" } }, "@sinonjs/samsam": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.1.tgz", - "integrity": "sha512-wRSfmyd81swH0hA1bxJZJ57xr22kC07a1N4zuIL47yTS04bDk6AoCkczcqHEjcRPmJ+FruGJ9WBQiJwMtIElFw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.0.3.tgz", + "integrity": "sha512-QucHkc2uMJ0pFGjJUDP3F9dq5dx8QIaqISl9QgwLOh6P9yv877uONPGXh/OH/0zmM3tW1JjuJltAZV2l7zU+uQ==", "dev": true, "requires": { - "@sinonjs/commons": "^1.0.2", - "array-from": "^2.1.1", - "lodash": "^4.17.11" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" } }, "@sinonjs/text-encoding": { @@ -4194,350 +5911,19 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-j7KnilGyZzYr/jhcrSYS3FGWMZVaqyCG0vzMCwzvei0coIkczuYMcniK07nI0aHJINciujjH11T72ICW5eL5Ig==", + "@styled-system/css": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@styled-system/css/-/css-5.1.5.tgz", + "integrity": "sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A==", "dev": true }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.2.0.tgz", - "integrity": "sha512-3XHLtJ+HbRCH4n28S7y/yZoEQnRpl0tvTZQsHqvaeNXPra+6vE5tbRliH3ox1yZYPCxrlqaJT/Mg+75GpDKlvQ==", - "dev": true - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.2.0.tgz", - "integrity": "sha512-yTr2iLdf6oEuUE9MsRdvt0NmdpMBAkgK8Bjhl6epb+eQWk6abBaX3d65UZ3E3FWaOwePyUgNyNCMVG61gGCQ7w==", - "dev": true - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.2.0.tgz", - "integrity": "sha512-U9m870Kqm0ko8beHawRXLGLvSi/ZMrl89gJ5BNcT452fAjtF2p4uRzXkdzvGJJJYBgx7BmqlDjBN/eCp5AAX2w==", - "dev": true - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.2.0.tgz", - "integrity": "sha512-gH2qItapwCUp6CCqbxvzBbc4dh4OyxdYKsW3EOkYexr0XUmQL0ScbdNh6DexkZ01T+sdClniIbnCObsXcnx3sQ==", - "dev": true - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.2.0.tgz", - "integrity": "sha512-C0Uy+BHolCHGOZ8Dnr1zXy/KgpBOkEUYY9kI/HseHVPeMbluaX3CijJr7D4C5uR8zrc1T64nnq/k63ydQuGt4w==", - "dev": true - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.2.0.tgz", - "integrity": "sha512-7YvynOpZDpCOUoIVlaaOUU87J4Z6RdD6spYN4eUb5tfPoKGSF9OG2NuhgYnq4jSkAxcpMaXWPf1cePkzmqTPNw==", - "dev": true - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.2.0.tgz", - "integrity": "sha512-hYfYuZhQPCBVotABsXKSCfel2slf/yvJY8heTVX1PCTaq/IgASq1IyxPPKJ0chWREEKewIU/JMSsIGBtK1KKxw==", - "dev": true - }, - "@svgr/babel-preset": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.2.0.tgz", - "integrity": "sha512-iLetHpRCQXfK47voAs5/uxd736cCyocEdorisjAveZo8ShxJ/ivSZgstBmucI1c8HyMF5tOrilJLoFbhpkPiKw==", + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "dev": true, "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", - "@svgr/babel-plugin-svg-dynamic-title": "^4.2.0", - "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", - "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", - "@svgr/babel-plugin-transform-svg-component": "^4.2.0" - } - }, - "@svgr/core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.2.0.tgz", - "integrity": "sha512-nvzXaf2VavqjMCTTfsZfjL4o9035KedALkMzk82qOlHOwBb8JT+9+zYDgBl0oOunbVF94WTLnvGunEg0csNP3Q==", - "dev": true, - "requires": { - "@svgr/plugin-jsx": "^4.2.0", - "camelcase": "^5.3.1", - "cosmiconfig": "^5.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", - "parse-json": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.2.0.tgz", - "integrity": "sha512-IvAeb7gqrGB5TH9EGyBsPrMRH/QCzIuAkLySKvH2TLfLb2uqk98qtJamordRQTpHH3e6TORfBXoTo7L7Opo/Ow==", - "dev": true, - "requires": { - "@babel/types": "^7.4.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } - } - }, - "@svgr/plugin-jsx": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.2.0.tgz", - "integrity": "sha512-AM1YokmZITgveY9bulLVquqNmwiFo2Px2HL+IlnTCR01YvWDfRL5QKdnF7VjRaS5MNP938mmqvL0/8oz3zQMkg==", - "dev": true, - "requires": { - "@babel/core": "^7.4.3", - "@svgr/babel-preset": "^4.2.0", - "@svgr/hast-util-to-babel-ast": "^4.2.0", - "rehype-parse": "^6.0.0", - "unified": "^7.1.0", - "vfile": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", - "dev": true - }, - "unist-util-stringify-position": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.0.tgz", - "integrity": "sha512-Uz5negUTrf9zm2ZT2Z9kdOL7Mr7FJLyq3ByqagUi7QZRVK1HnspVazvSqwHt73jj7APHtpuJ4K110Jm8O6/elw==", - "dev": true, - "requires": { - "@types/unist": "^2.0.2" - } - }, - "vfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.0.tgz", - "integrity": "sha512-WMNeHy5djSl895BqE86D7WqA0Ie5fAIeGCa7V1EqiXyJg5LaGch2SUaZueok5abYQGH6mXEAsZ45jkoILIOlyA==", - "dev": true, - "requires": { - "@types/unist": "^2.0.2", - "is-buffer": "^2.0.0", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - } - }, - "vfile-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.0.tgz", - "integrity": "sha512-YS6qg6UpBfIeiO+6XlhPOuJaoLvt1Y9g2cmlwqhBOOU0XRV8j5RLeoz72t6PWLvNXq3EBG1fQ05wNPrUoz0deQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.2", - "unist-util-stringify-position": "^1.1.1" - }, - "dependencies": { - "unist-util-stringify-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", - "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", - "dev": true - } - } - } - } - }, - "@svgr/plugin-svgo": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.2.0.tgz", - "integrity": "sha512-zUEKgkT172YzHh3mb2B2q92xCnOAMVjRx+o0waZ1U50XqKLrVQ/8dDqTAtnmapdLsGurv8PSwenjLCUpj6hcvw==", - "dev": true, - "requires": { - "cosmiconfig": "^5.2.0", - "merge-deep": "^3.0.2", - "svgo": "^1.2.1" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", - "parse-json": "^4.0.0" - } - }, - "css-select": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", - "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^2.1.2", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "svgo": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.2.2.tgz", - "integrity": "sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.28", - "css-url-regex": "^1.1.0", - "csso": "^3.5.1", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - } - } - } - }, - "@svgr/webpack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.2.0.tgz", - "integrity": "sha512-sm3UUJHmRlqEg8w8bjUT+FAMf5lkgCydxotEapinpd10kzrpQP++Qd+bmuepE3hsIUU68BO24vgQALQ92qBZEw==", - "dev": true, - "requires": { - "@babel/core": "^7.4.3", - "@babel/plugin-transform-react-constant-elements": "^7.0.0", - "@babel/preset-env": "^7.4.3", - "@babel/preset-react": "^7.0.0", - "@svgr/core": "^4.2.0", - "@svgr/plugin-jsx": "^4.2.0", - "@svgr/plugin-svgo": "^4.2.0", - "loader-utils": "^1.2.3" + "defer-to-connect": "^1.0.1" } }, "@textlint/ast-node-types": { @@ -4577,6 +5963,17 @@ } } }, + "@theme-ui/typography": { + "version": "0.2.46", + "resolved": "https://registry.npmjs.org/@theme-ui/typography/-/typography-0.2.46.tgz", + "integrity": "sha512-66VMjZ/7fvhwtJHwYZH4/Vl+wYpLXN2QzNU6wn/7VcBf9xJZPXEumI8wSp9P1R2eEjLAlaz8tpl1VDMGPDxsVA==", + "dev": true, + "requires": { + "compass-vertical-rhythm": "^1.4.5", + "modularscale": "^2.0.1", + "object-assign": "^4.1.1" + } + }, "@types/accepts": { "version": "1.3.5", "resolved": "http://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", @@ -4585,16 +5982,6 @@ "@types/node": "*" } }, - "@types/agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@types/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-8mrhPstU+ZX0Ugya8tl5DsDZ1I5ZwQzbL/8PA0z8Gj0k9nql7nkaMzmPVLj+l/nixWaliXi+EBiLA8bptw3z7Q==", - "dev": true, - "requires": { - "@types/events": "*", - "@types/node": "*" - } - }, "@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", @@ -4602,18 +5989,18 @@ "dev": true }, "@types/archiver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-3.0.0.tgz", - "integrity": "sha512-orghAMOF+//wSg4ru2znk6jt0eIPvKTtMVLH7XcYcjbcRyAXRClDlh27QVdqnAvVM37yu9xDP6Nh7egRhNr8tQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-3.1.0.tgz", + "integrity": "sha512-nTvHwgWONL+iXG+9CX+gnQ/tTOV+qucAjwpXqeUn4OCRMxP42T29FFP/7XaOo0EqqO3TlENhObeZEe7RUJAriw==", "dev": true, "requires": { "@types/glob": "*" } }, "@types/babel__core": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", - "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", + "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -4624,12 +6011,12 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -4646,12 +6033,12 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -4669,12 +6056,12 @@ }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -4682,21 +6069,21 @@ } }, "@types/babel__traverse": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", - "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz", + "integrity": "sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw==", "dev": true, "requires": { "@babel/types": "^7.3.0" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } @@ -4704,102 +6091,101 @@ } }, "@types/basic-auth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/basic-auth/-/basic-auth-1.1.2.tgz", - "integrity": "sha512-NzkkcC+gkkILWaBi3+/z/3do6Ybk6TWeTqV5zCVXmG2KaBoT5YqlJvfqP44HCyDA+Cu58pp7uKAxy/G58se/TA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/basic-auth/-/basic-auth-1.1.3.tgz", + "integrity": "sha512-W3rv6J0IGlxqgE2eQ2pTb0gBjaGtejQpJ6uaCjz3UQ65+TFTPC5/lAE+POfx1YLdjtxvejJzsIAfd3MxWiVmfg==", "dev": true, "requires": { "@types/node": "*" } }, "@types/bcryptjs": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.1.tgz", - "integrity": "sha512-CVJ8ExtzUQJzLJbEk/lWrHD3MTvstTodjWidcH23gCii5WSD0z1TPSLqSdtbn5eCDw+DxfKgoUALi+loe8ftXA==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.2.tgz", + "integrity": "sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==", "dev": true }, "@types/bluebird": { - "version": "3.5.22", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.22.tgz", - "integrity": "sha512-wQamz3CYZCz9QVxhPOF+Odu2jZifcXkGJDff7580sx/TCR6/9Zsgv+iGe2/o4Upcs0RDFLVJuEtYSEFeAqDTSA==", + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.30.tgz", + "integrity": "sha512-8LhzvcjIoqoi1TghEkRMkbbmM+jhHnBokPGkJWjclMK+Ks0MxEBow3/p2/iFTZ+OIbJHQDSfpgdZEb+af3gfVw==", "dev": true }, "@types/body-parser": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", - "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", "requires": { "@types/connect": "*", "@types/node": "*" } }, "@types/bson": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.0.tgz", - "integrity": "sha512-pq/rqJwJWkbS10crsG5bgnrisL8pML79KlMKQMoQwLUjlPAkrUHMvHJ3oGwE7WHR61Lv/nadMwXVAD2b+fpD8Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.1.tgz", + "integrity": "sha512-K6VAEdLVJFBxKp8m5cRTbUfeZpuSvOuLKJLrgw9ANIXo00RiyGzgH4BKWWR4F520gV4tWmxG7q9sKQRVDuzrBw==", "dev": true, "requires": { "@types/node": "*" } }, "@types/bull": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@types/bull/-/bull-3.5.12.tgz", - "integrity": "sha512-2RYoqUZin0ZzrlWCEZlFmdsFmF+J1cWnig71foHY0drLSZTtJqS+Fg2aORpOWzXIUc9PmI9WWqAd6hVe+MaZyw==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@types/bull/-/bull-3.12.1.tgz", + "integrity": "sha512-mn1xmqKBNxllUGuOSBDOvsRpLHPDTSOsGQiHTv6t1gvGtIc/L1IFsN3YTmwf3AZenKzUcBQDGFLrCKt+abhrvQ==", "dev": true, "requires": { "@types/ioredis": "*" } }, "@types/bunyan": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.4.tgz", - "integrity": "sha512-bxOF3fsm69ezKxdcJ7Oo/PsZMOJ+JIV/QJO2IADfScmR3sLulR88dpSnz6+q+9JJ1kD7dXFFgUrGRSKHLkOX7w==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.6.tgz", + "integrity": "sha512-YiozPOOsS6bIuz31ilYqR5SlLif4TBWsousN2aCWLi5233nZSX19tFbcQUPdR7xJ8ypPyxkCGNxg0CIV5n9qxQ==", "dev": true, "requires": { - "@types/events": "*", "@types/node": "*" } }, "@types/case-sensitive-paths-webpack-plugin": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@types/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz", - "integrity": "sha512-ah/PG3Iz3CLuHk8bczITiGvDcNLogZQfJDL+e7pcJXKdD/5Qp1FB6lxSjPsfXw8fHbhEfaJIq9om3hK6ir391g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.4.tgz", + "integrity": "sha512-/tJtLk60YcY0UHnURl088gObI8cTEj8aevANmIN8/VcFb5vOW39y73RB792x0E4dtTyfy3r7634X+9k39yzv+g==", "dev": true, "requires": { "@types/webpack": "*" } }, "@types/cheerio": { - "version": "0.22.8", - "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.8.tgz", - "integrity": "sha512-LzF540VOFabhS2TR2yYFz2Mu/fTfkA+5AwYddtJbOJGwnYrr2e7fHadT7/Z3jNGJJdCRlO3ySxmW26NgRdwhNA==", - "dev": true - }, - "@types/classnames": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.7.tgz", - "integrity": "sha512-rzOhiQ55WzAiFgXRtitP/ZUT8iVNyllEpylJ5zHzR4vArUvMB39GTk+Zon/uAM0JxEFAWnwsxC2gH8s+tZ3Myg==", - "dev": true - }, - "@types/clean-css": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.0.tgz", - "integrity": "sha512-P+gDCIBAXZ/Q5e9d/Z9Rtn16P5Pr1YIO3gZcY7ZvaQ9ErgmOYtFQlLHZ2P/xcrIyN8TEZrI03EZmdmv1154sjA==", + "version": "0.22.17", + "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.17.tgz", + "integrity": "sha512-izlm+hbqWN9csuB9GSMfCnAyd3/57XZi3rfz1B0C4QBGVMp+9xQ7+9KYnep+ySfUrCWql4lGzkLf0XmprXcz9g==", "dev": true, "requires": { "@types/node": "*" } }, - "@types/commander": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/@types/commander/-/commander-2.12.2.tgz", - "integrity": "sha512-0QEFiR8ljcHp9bAbWxecjVRuAMr16ivPiGOw6KFQBVrVd0RQIcM3xKdRisH2EDWgVWujiYtHwhSkSUoAAGzH7Q==", + "@types/classnames": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.10.tgz", + "integrity": "sha512-1UzDldn9GfYYEsWWnn/P4wkTlkZDH7lDb0wBMGbtIQc9zXEQq7FlKBdZUn6OBqD8sKZZ2RQO2mAjGpXiDGoRmQ==", + "dev": true + }, + "@types/clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-A1HQhQ0hkvqqByJMgg+Wiv9p9XdoYEzuwm11SVo1mX2/4PSdhjcrUlilJQoqLscIheC51t1D5g+EFWCXZ2VTQQ==", "dev": true, "requires": { - "commander": "*" + "@types/node": "*" } }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, "@types/common-tags": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.0.tgz", @@ -4807,14 +6193,20 @@ "dev": true }, "@types/compression-webpack-plugin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/compression-webpack-plugin/-/compression-webpack-plugin-2.0.0.tgz", - "integrity": "sha512-UPaWgei0nx3HafALKSVb3UYrDxoLnS7reeBF10gXHGkGf0aQe6Qkdb8J3XsCewhoPiW6JUrr7gG4HZ2acfMPsQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/compression-webpack-plugin/-/compression-webpack-plugin-2.0.1.tgz", + "integrity": "sha512-40oKg2aByfUPShpYBkldYwOcO34yaqOIPdlUlR1+F3MFl2WfpqYq2LFKOcgjU70d1r1L8r99XHkxYdhkGajHSw==", "dev": true, "requires": { "@types/webpack": "*" } }, + "@types/configstore": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/configstore/-/configstore-2.1.1.tgz", + "integrity": "sha1-zR6FU2M60xhcPy8jns/10mQ+krY=", + "dev": true + }, "@types/connect": { "version": "3.4.32", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", @@ -4823,10 +6215,20 @@ "@types/node": "*" } }, + "@types/connect-history-api-fallback": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.3.tgz", + "integrity": "sha512-7SxFCd+FLlxCfwVwbyPxbR4khL9aNikJhrorw8nUIOqeuooc9gifBuDQOJw5kzN7i6i3vLn9G8Wde/4QDihpYw==", + "dev": true, + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, "@types/consolidate": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/consolidate/-/consolidate-0.0.34.tgz", - "integrity": "sha512-qpr8xIkywhjyaQUwTjdb8QuhRD1EIf55ExcyK1KdUtxysb/47Em+cJze7OXLkGmmuXa+PrfCNM25bJ/h472r4Q==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@types/consolidate/-/consolidate-0.14.0.tgz", + "integrity": "sha512-az7GpbuJoBJC/rGb/m7ZIsIvNY6NdUlklydmZ3RO+rPqgclj/dck3KEDesr44oZ7hk8Afs3tPJOKECVocVKcQQ==", "dev": true, "requires": { "@types/bluebird": "*", @@ -4834,9 +6236,9 @@ } }, "@types/convict": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@types/convict/-/convict-4.2.0.tgz", - "integrity": "sha512-p+gNRe4RPjpl1lTBUomFJ42P8ymArH/P93DFJ0iY873BJ4ZmogcKc6TbHgZQmtQMsy3jxcAo0HcTjidXwo8uKg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@types/convict/-/convict-4.2.1.tgz", + "integrity": "sha512-2cd51m3i0yeY1i3dKxcqJKeS5Q4jZnjP37OseoNeIX1OM0AhmGPuuYmwJ9OqtsU35YrREQxdb2VeX5sM3cwGMQ==", "dev": true }, "@types/cookie": { @@ -4846,18 +6248,18 @@ "dev": true }, "@types/cookie-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.1.tgz", - "integrity": "sha512-iJY6B3ZGufLiDf2OCAgiAAQuj1sMKC/wz/7XCEjZ+/MDuultfFJuSwrBKcLSmJ5iYApLzCCYBYJZs0Ws8GPmwA==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.2.tgz", + "integrity": "sha512-uwcY8m6SDQqciHsqcKDGbo10GdasYsPCYkH3hVegj9qAah6pX5HivOnOuI3WYmyQMnOATV39zv/Ybs0bC/6iVg==", "dev": true, "requires": { "@types/express": "*" } }, "@types/cookies": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.2.tgz", - "integrity": "sha512-jnihWgshWystcJKrz8C9hV+Ot9lqOUyAh2RF+o3BEo6K6AS2l4zYCb9GYaBuZ3C6Il59uIGqpE3HvCun4KKeJA==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz", + "integrity": "sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw==", "requires": { "@types/connect": "*", "@types/express": "*", @@ -4866,17 +6268,17 @@ } }, "@types/cors": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.4.tgz", - "integrity": "sha512-ipZjBVsm2tF/n8qFGOuGBkUij9X9ZswVi9G3bx/6dz7POpVa6gVHcj1wsX/LVEn9MMF41fxK/PnZPPoTD1UFPw==", + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg==", "requires": { "@types/express": "*" } }, "@types/cron": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@types/cron/-/cron-1.7.1.tgz", - "integrity": "sha512-48brwgU18DqA0mQX1As5OcJEo1yNjaXMM6Mk4r8K1dOzLJRQ37FE/kCivKx7ClKEHfhX2FdcxKzJ1B744a+V3A==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@types/cron/-/cron-1.7.2.tgz", + "integrity": "sha512-AEpNLRcsVSc5AdseJKNHpz0d4e8+ow+abTaC0fKDbAU86rF1evoFF0oC2fV9FdqtfVXkG2LKshpLTJCFOpyvTg==", "dev": true, "requires": { "@types/node": "*", @@ -4884,33 +6286,42 @@ } }, "@types/cross-spawn": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.0.tgz", - "integrity": "sha512-evp2ZGsFw9YKprDbg8ySgC9NA15g3YgiI8ANkGmKKvvi0P2aDGYLPxQIC5qfeKNUOe3TjABVGuah6omPRpIYhg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.1.tgz", + "integrity": "sha512-MtN1pDYdI6D6QFDzy39Q+6c9rl2o/xN7aWGe6oZuzqq5N6+YuwFsWiEAv3dNzvzN9YzU+itpN8lBzFpphQKLAw==", "dev": true, "requires": { "@types/node": "*" } }, - "@types/dompurify": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-0.0.33.tgz", - "integrity": "sha512-lUN9iC6b4txeaEef2PW7zIdhEKAp0Sw9bymOcXXZ7BaepB0nsDJYcLIrFfgpIkRSoZWBJ8IcYunB2hAXuHL1NA==", - "dev": true - }, - "@types/dotenv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/dotenv/-/dotenv-4.0.3.tgz", - "integrity": "sha512-mmhpINC/HcLGQK5ikFJlLXINVvcxhlrV+ZOUJSN7/ottYl+8X4oSXzS9lBtDkmWAl96EGyGyLrNvk9zqdSH8Fw==", + "@types/css-modules-loader-core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", + "integrity": "sha512-LMbyf7THPqLCPHIXAj79v9Pa193MeOHgp1fBFRR6s6VvEVHUFIcM5bc/WttslOf+lao4TURNN1X1zfW5wr2CHQ==", "dev": true, "requires": { - "@types/node": "*" + "postcss": "7.x.x" + } + }, + "@types/debug": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-0.0.30.tgz", + "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==", + "dev": true + }, + "@types/dompurify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-2.0.1.tgz", + "integrity": "sha512-OQ16dECrRv/I//woKkVUxyVGYR94W3qp3Wy//B63awHVe3h/1/URFqP5a/V2m4k01DEvWs1+z7FWW3xfM1lH3Q==", + "dev": true, + "requires": { + "@types/trusted-types": "*" } }, "@types/enzyme": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.1.15.tgz", - "integrity": "sha512-6b4JWgV+FNec1c4+8HauGbXg5gRc1oQK93t2+4W+bHjG/PzO+iPvagY6d6bXAZ+t+ps51Zb2F9LQ4vl0S0Epog==", + "version": "3.10.5", + "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.5.tgz", + "integrity": "sha512-R+phe509UuUYy9Tk0YlSbipRpfVtIzb/9BHn5pTEtjJTF5LXvUjrIQcZvNyANNEyFrd2YGs196PniNT1fgvOQA==", "dev": true, "requires": { "@types/cheerio": "*", @@ -4918,9 +6329,9 @@ } }, "@types/enzyme-adapter-react-16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.3.tgz", - "integrity": "sha512-9eRLBsC/Djkys05BdTWgav8v6fSCjyzjNuLwG2sfa2b2g/VAN10luP0zB0VwtOWFQ0LGjIboJJvIsVdU5gqRmg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.6.tgz", + "integrity": "sha512-VonDkZ15jzqDWL8mPFIQnnLtjwebuL9YnDkqeCDYnB4IVgwUm0mwKkqhrxLL6mb05xm7qqa3IE95m8CZE9imCg==", "dev": true, "requires": { "@types/enzyme": "*" @@ -4944,15 +6355,23 @@ "@types/events": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz", - "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==" + "integrity": "sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA==", + "dev": true + }, + "@types/expect": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", + "dev": true }, "@types/express": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.16.0.tgz", - "integrity": "sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w==", + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.4.tgz", + "integrity": "sha512-DO1L53rGqIDUEvOjJKmbMEQ5Z+BM2cIEPy/eV3En+s166Gz+FeuzRerxcab757u/U4v4XF4RYrZPmqKa+aY/2w==", "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "*", + "@types/qs": "*", "@types/serve-static": "*" } }, @@ -4965,39 +6384,61 @@ "@types/express": "*" } }, - "@types/express-serve-static-core": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz", - "integrity": "sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w==", + "@types/express-jwt": { + "version": "0.0.42", + "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz", + "integrity": "sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==", + "requires": { + "@types/express": "*", + "@types/express-unless": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.3.tgz", + "integrity": "sha512-sHEsvEzjqN+zLbqP+8OXTipc10yH1QLR+hnr5uw29gi9AhCAAAdri8ClNV7iMdrJrIzXIQtlkPvq8tJGhj3QJQ==", "requires": { - "@types/events": "*", "@types/node": "*", "@types/range-parser": "*" } }, "@types/express-unless": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.0.32.tgz", - "integrity": "sha512-6YpJyFNlDDnPnRjMOvJCoDYlSDDmG/OEEUsPk7yhNkL4G9hUYtgab6vi1CcWsGSSSM0CsvNlWTG+ywAGnvF03g==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz", + "integrity": "sha512-5fuvg7C69lemNgl0+v+CUxDYWVPSfXHhJPst4yTLcqi4zKJpORCxnDrnnilk3k0DTq/WrAUdvXFs01+vUqUZHw==", "requires": { "@types/express": "*" } }, "@types/flat": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/@types/flat/-/flat-0.0.28.tgz", - "integrity": "sha1-XHiBSdhabPj/X18ACs3ZEs3qQnQ=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/flat/-/flat-5.0.0.tgz", + "integrity": "sha512-GcgAp7RXXGmA61spVEKZYpIy3/iV6GHbTW9f9kaKwHVQgnWitt6X026e+3N6j8ep1bkIWj83qPHQ3Y9Ft8FqiQ==", "dev": true }, + "@types/fs-capacitor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", + "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", + "requires": { + "@types/node": "*" + } + }, "@types/fs-extra": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz", - "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==", "dev": true, "requires": { "@types/node": "*" } }, + "@types/get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@types/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha512-TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q==", + "dev": true + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", @@ -5009,21 +6450,23 @@ "@types/node": "*" } }, - "@types/graphql": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@types/graphql/-/graphql-0.13.3.tgz", - "integrity": "sha512-YNGkX5HtcDtufyQquww05yoWYiDdZPPubLafXqukYqGmpawHjodAXwufhTemqDdgGk48WU7RX2Ouj0VTc9b3AA==" - }, "@types/graphql-upload": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.0.tgz", - "integrity": "sha512-xeDYfZb0SeRpCRuivN9TXLEVsbG0F4inFtx03yadZeaTXr1kC224/ZvlV6NKqQ//HNvUxneYcEoUB5ugJc8dnA==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.3.tgz", + "integrity": "sha512-hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA==", "requires": { "@types/express": "*", - "@types/graphql": "*", - "@types/koa": "*" + "@types/fs-capacitor": "*", + "@types/koa": "*", + "graphql": "^14.5.3" } }, + "@types/hapi__joi": { + "version": "16.0.12", + "resolved": "https://registry.npmjs.org/@types/hapi__joi/-/hapi__joi-16.0.12.tgz", + "integrity": "sha512-xJYifuz59jXdWY5JMS15uvA3ycS3nQYOGqoIIE0+fwQ0qI3/4CxBc6RHsOTp6wk9M0NWEdpcTl02lOQOKMifbQ==", + "dev": true + }, "@types/helmet": { "version": "0.0.45", "resolved": "https://registry.npmjs.org/@types/helmet/-/helmet-0.0.45.tgz", @@ -5033,10 +6476,16 @@ "@types/express": "*" } }, + "@types/history": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.5.tgz", + "integrity": "sha512-wLD/Aq2VggCJXSjxEwrMafIP51Z+13H78nXIX0ABEuIGhmB5sNGbR113MOKo+yfw+RDo1ZU3DM6yfnnRF/+ouw==", + "dev": true + }, "@types/html-minifier": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-3.5.2.tgz", - "integrity": "sha512-yikK28/KlVyf8g9i/k+TDFlteLuZ6QQTUdVqvKtzEB+8DSLCTjxfh6IK45KnW4rYFI3Y8T4LWpYJMTmfJleWaQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-3.5.3.tgz", + "integrity": "sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg==", "dev": true, "requires": { "@types/clean-css": "*", @@ -5044,6 +6493,12 @@ "@types/uglify-js": "*" } }, + "@types/html-minifier-terser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.0.0.tgz", + "integrity": "sha512-q95SP4FdkmF0CwO0F2q0H6ZgudsApaY/yCtAQNRn1gduef5fGpyEphzy0YCq/N0UFvDSnLg5V8jFK/YGXlDiCw==", + "dev": true + }, "@types/html-to-text": { "version": "1.4.31", "resolved": "https://registry.npmjs.org/@types/html-to-text/-/html-to-text-1.4.31.tgz", @@ -5051,9 +6506,9 @@ "dev": true }, "@types/html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha512-in9rViBsTRB4ZApndZ12It68nGzSMHVK30JD7c49iLIHMFeTPbP7I7wevzMv7re2o0k5TlU6Ry/beyrmgWX7Bg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/html-webpack-plugin/-/html-webpack-plugin-3.2.2.tgz", + "integrity": "sha512-KsL5cHtNWhOQF9Cu+Dpn7GemzQRxdKhe1/LgZUSku33B5L4Cx2/p3DX6YbeRNOoI552MNbB/VNbCDNEYU//iAw==", "dev": true, "requires": { "@types/html-minifier": "*", @@ -5062,23 +6517,23 @@ } }, "@types/http-assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.0.tgz", - "integrity": "sha512-8CBLG8RmxSvoY07FE6M/QpvJ7J5KzeKqF8eWN7Dq6Ks+lBTQae8Roc2G81lUu2Kw5Ju1gymOuvgyUsussbjAaA==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", + "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==" }, "@types/http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-l+s0IoxSHqhLFJPDHRfO235kgrCkvFD8JmdV/T9C4BKBYPIjrQopGFH4r7h2e3jQqgJRCthRCAZIxDoFnj1zwQ==", + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.3.tgz", + "integrity": "sha512-wIPqXANye5BbORbuh74exbwNzj+UWCwWyeEFJzUQ7Fq3W2NSAy+7x7nX1fgbEypr2/TdKqpeuxLnXWgzN533/Q==", "dev": true, "requires": { "@types/node": "*" } }, "@types/http-proxy-middleware": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@types/http-proxy-middleware/-/http-proxy-middleware-0.19.2.tgz", - "integrity": "sha512-aXcAs2VEaiHwlFlEqMJ+sNSFCO+wuWXcvdBk5Un7f0tUv1eTIIAmkd4S5D/Yi5JI0xofPpm9h3017TngbrLh7A==", + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@types/http-proxy-middleware/-/http-proxy-middleware-0.19.3.tgz", + "integrity": "sha512-lnBTx6HCOUeIJMLbI/LaL5EmdKLhczJY5oeXZpX/cXE4rRqb3RmV7VcMpiEfYkmTjipv3h7IAyIINe4plEv7cA==", "dev": true, "requires": { "@types/connect": "*", @@ -5087,9 +6542,9 @@ } }, "@types/ioredis": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.0.10.tgz", - "integrity": "sha512-1ImAFcW5eg4f9UrftlVQPmGCkK1VyCqJ12c2wy3NlEQvzBC0GX64WlN01xj5iETqvsjczJHU+CRMPraBy9pX+g==", + "version": "4.14.9", + "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.14.9.tgz", + "integrity": "sha512-yNdzppM6vY4DYqXCnt4A3PXArxsMWeJCYxFlyl4AJKrNSGMEAP9TPcXR+8Q6zh9glcCtxmwMQhi4pwdqqHH3OA==", "dev": true, "requires": { "@types/node": "*" @@ -5102,9 +6557,9 @@ "dev": true }, "@types/istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" @@ -5121,12 +6576,13 @@ } }, "@types/jest": { - "version": "24.0.23", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.23.tgz", - "integrity": "sha512-L7MBvwfNpe7yVPTXLn32df/EK+AMBFAFvZrRuArGs7npEWnlziUXK+5GMIUTI4NIuwok3XibsjXCs5HxviYXjg==", + "version": "25.1.4", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.1.4.tgz", + "integrity": "sha512-QDDY2uNAhCV7TMCITrxz+MRk1EizcsevzfeS6LykIlq2V1E5oO4wXG8V2ZEd9w7Snxeeagk46YbMgZ8ESHx3sw==", "dev": true, "requires": { - "jest-diff": "^24.3.0" + "jest-diff": "^25.1.0", + "pretty-format": "^25.1.0" } }, "@types/jest-axe": { @@ -5139,35 +6595,21 @@ "axe-core": "^3.0.3" } }, - "@types/joi": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@types/joi/-/joi-13.3.0.tgz", - "integrity": "sha512-nOnsbHvoo5DsQEh8VGlbQlfg9+/iFSxE5RQKLNkAODIqyupdEkBCZf6RCNxR+9X0egMIkJ43NnwkEJKxLogsIA==", - "dev": true - }, "@types/jsdom": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-12.2.3.tgz", - "integrity": "sha512-CxYWGFsBs0VZ/lU9zxfWk7zYfOlQQuSs5yzk34KW/vQQJGE8OGOYxJnqj9kGHE1SBZGVJvhXs1TafIpZL8RvXw==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.0.tgz", + "integrity": "sha512-I+qrFCzB97VlGJgvzGEwcUqmajpwqwTalmMvVfgJqFRVsY80lcCEQEGLJuVvge+whQyB1xcqTstAdxJshVVq0g==", "dev": true, "requires": { "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^4.0.0" - }, - "dependencies": { - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - } + "@types/parse5": "*", + "@types/tough-cookie": "*" } }, "@types/json-schema": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", - "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", + "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", "dev": true }, "@types/json5": { @@ -5177,23 +6619,23 @@ "dev": true }, "@types/jsonwebtoken": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.3.5.tgz", - "integrity": "sha512-VGM1gb+LwsQ5EPevvbvdnKncajBdYqNcrvixBif1BsiDQiSF1q+j4bBTvKC6Bt9n2kqNSx+yNTY2TVJ360E7EQ==", + "version": "8.3.8", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.3.8.tgz", + "integrity": "sha512-g2ke5+AR/RKYpQxd+HJ2yisLHGuOV0uourOcPtKlcT5Zqv4wFg9vKhFpXEztN4H/6Y6RSUKioz/2PTFPP30CTA==", "dev": true, "requires": { "@types/node": "*" } }, "@types/keygrip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz", - "integrity": "sha1-/1QEYtL7TQqIRBzq8n0oewHD2Hg=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", + "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" }, "@types/koa": { - "version": "2.0.49", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.0.49.tgz", - "integrity": "sha512-WQWpCH8O4Dslk8IcXfazff40aM1jXX7BQRbADIj/fKozVPu76P/wQE4sRe2SCWMn8yNkOcare2MkDrnZqLMkPQ==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.2.tgz", + "integrity": "sha512-2UPelagNNW6bnc1I5kIzluCaheXRA9S+NyOdXEFFj9Az7jc15ek5V03kb8OTbb3tdZ5i2BIJObe86PhHvpMolg==", "requires": { "@types/accepts": "*", "@types/cookies": "*", @@ -5204,32 +6646,32 @@ } }, "@types/koa-compose": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.4.tgz", - "integrity": "sha512-ioou0rxkuWL+yBQYsHUQAzRTfVxAg8Y2VfMftU+Y3RA03/MzuFL0x/M2sXXj3PkfnENbHsjeHR1aMdezLYpTeA==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", + "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", "requires": { "@types/koa": "*" } }, "@types/linkifyjs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/linkifyjs/-/linkifyjs-2.1.1.tgz", - "integrity": "sha512-rTXD/qsdI0aAf1tOtacWaE47K2QLz5C/g7rmB6kYyNuRKWMtStcQjVAM5R/T6kaiR8EVLMwPZ1RqX3aA/CS95g==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/linkifyjs/-/linkifyjs-2.1.3.tgz", + "integrity": "sha512-V3Xt9wgaOvDPXcpOy3dC8qXCxy3cs0Lr/Hqgd9Bi6m3sf/vpbpTtfmVR0LJklrqYEjaAmc7e3Xh/INT2rCAKjQ==", "dev": true, "requires": { "@types/react": "*" } }, "@types/lodash": { - "version": "4.14.118", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.118.tgz", - "integrity": "sha512-iiJbKLZbhSa6FYRip/9ZDX6HXhayXLDGY2Fqws9cOkEQ6XeKfaxB0sC541mowZJueYyMnVUmmG+al5/4fCDrgw==", + "version": "4.14.149", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz", + "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==", "dev": true }, "@types/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz", - "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" }, "@types/lru-cache": { "version": "5.1.0", @@ -5238,15 +6680,15 @@ "dev": true }, "@types/luxon": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-1.12.0.tgz", - "integrity": "sha512-+UzPmwHSEEyv7aGlNkVpuFxp/BirXgl8NnPGCtmyx2KXIzAapoW3IqSVk87/Z3PUk8vEL8Pe1HXEMJbNBOQgtg==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-1.22.0.tgz", + "integrity": "sha512-riAvdx85rU7OXCrjW3f7dIf7fuJDrxck2Dkjd0weh6ul7q+wumrwe6+/tD8v7yOKnZAuEnTFF4FU7b+5W/I3bw==", "dev": true }, "@types/marked": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.6.0.tgz", - "integrity": "sha512-TxwhgR9VsIfRDJ3WwFokG8Xu+ea0nYGDRHdI783WJ983uffatz0ytIeUEIBOwPvRy241KRSNVyywQltuTqDh0w==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.7.3.tgz", + "integrity": "sha512-WXdEKuT3azHxLTThd5dwnpLt2Q9QiC8iKj09KZRtVqro3pX8hhY+GbD8FZOae6SBBEJ22yKJn3c7ejL0aucAcA==", "dev": true }, "@types/mime": { @@ -5255,9 +6697,9 @@ "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==" }, "@types/mini-css-extract-plugin": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.2.0.tgz", - "integrity": "sha512-oHec+Vasp+K3C1Hb9HpwbA9Iw8ywqDgo9edWQJdBqxu05JH2AQsR56Zo5THpYbu1ieh/xJCvMRIHRdvrUBDmcA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.1.tgz", + "integrity": "sha512-+mN04Oszdz9tGjUP/c1ReVwJXxSniLd7lF++sv+8dkABxVNthg6uccei+4ssKxRHGoMmPxdn7uBdJWONSJGTGQ==", "dev": true, "requires": { "@types/webpack": "*" @@ -5269,6 +6711,15 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, + "@types/mkdirp": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", + "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/mongodb": { "version": "3.1.22", "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.1.22.tgz", @@ -5280,62 +6731,69 @@ } }, "@types/ms": { - "version": "0.7.30", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.30.tgz", - "integrity": "sha512-OftRLCgAzJP7vmKn9by/GVjnf4hloz/pXNOwPo0vKGAfXI7GqWXJi9N2kRar4cP5s1dGwuwcagWqO6iHBTq1Mg==", + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", "dev": true }, "@types/node": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.2.tgz", - "integrity": "sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==" + "version": "12.12.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.34.tgz", + "integrity": "sha512-BneGN0J9ke24lBRn44hVHNeDlrXRYF+VRp0HbSUNnEZahXGAysHZIqnf/hER6aabdBgzM4YOV4jrR8gj4Zfi0g==" }, "@types/node-fetch": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.3.tgz", - "integrity": "sha512-X3TNlzZ7SuSwZsMkb5fV7GrPbVKvHc2iwHmslb8bIxRKWg2iqkfm3F/Wd79RhDpOXR7wCtKAwc5Y2JE6n/ibyw==", - "dev": true, + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.5.tgz", + "integrity": "sha512-IWwjsyYjGw+em3xTvWVQi5MgYKbRs0du57klfTaZkv/B24AEQ/p/IopNeqIYNy3EsfHOpg8ieQSDomPcsYMHpA==", "requires": { - "@types/node": "*" + "@types/node": "*", + "form-data": "^3.0.0" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "form-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, "@types/nodemailer": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-4.6.2.tgz", - "integrity": "sha512-FZfU5OewHnzPU1YC2XrpIhKDl3A4Aw6BvaOo6d/XeVk43JJ6qzptdo6BZAdMRCtmTqKlUSVmLTMYFgvsU99sug==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.0.tgz", + "integrity": "sha512-KY7bFWB0MahRZvVW4CuW83qcCDny59pJJ0MQ5ifvfcjNwPlIT0vW4uARO4u1gtkYnWdhSvURegecY/tzcukJcA==", "dev": true, "requires": { - "@types/events": "*", "@types/node": "*" } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, "@types/nunjucks": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.1.1.tgz", - "integrity": "sha512-8Isd49iSR8TfqrfmcaimQZG9/uwqkZw7uJGSn4Do3JD6QMlNwzDUtXoW1bM9INUaR7Eld2LYcJrKVECF7YOd1w==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.1.3.tgz", + "integrity": "sha512-42IiIIBdoB7ZDwCVhCWYT4fMCj+4TeacuVgh7xyT2du5EhkpA+OFeeDdYTFCUt1MrHb8Aw7ZqFvr8s1bwP9l8w==", "dev": true }, "@types/oauth": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.0.tgz", - "integrity": "sha512-1oouefxKPGiDkb5m6lNxDkFry3PItCOJ+tlNtEn/gRvWShb2Rb3y0pccOIGwN/AwHUpwsuwlRwSpg7aoCN3bQQ==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@types/oauth/-/oauth-0.9.1.tgz", + "integrity": "sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==", "dev": true, "requires": { "@types/node": "*" } }, - "@types/object-diff": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@types/object-diff/-/object-diff-0.0.0.tgz", - "integrity": "sha1-yecnRxRvOiNxTqPj29agJ9mRHaY=", - "dev": true - }, "@types/on-finished": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@types/on-finished/-/on-finished-2.3.1.tgz", @@ -5345,19 +6803,31 @@ "@types/node": "*" } }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/parse5": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.2.tgz", + "integrity": "sha512-BOl+6KDs4ItndUWUFchy3aEqGdHhw0BC4Uu+qoDonN/f0rbUnJbm71Ulj8Tt9jLFRaAxPLKvdS1bBLfx1qXR9g==", + "dev": true + }, "@types/passport": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.2.tgz", - "integrity": "sha512-Pf39AYKf8q+YoONym3150cEwfUD66dtwHJWvbeOzKxnA0GZZ/vAXhNWv9vMhKyRQBQZiQyWQnhYBEBlKW6G8wg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.3.tgz", + "integrity": "sha512-nyztuxtDPQv9utCzU0qW7Gl8BY2Dn8BKlYAFFyxKipFxjaVd96celbkLCV/tRqqBUZ+JB8If3UfgV8347DTo3Q==", "dev": true, "requires": { "@types/express": "*" } }, "@types/passport-facebook": { - "version": "2.1.8", - "resolved": "http://registry.npmjs.org/@types/passport-facebook/-/passport-facebook-2.1.8.tgz", - "integrity": "sha512-5FGF6zNN0ZELetEdIDjVjfHSJfXSehNWeRLv9/8JD6Des4Z9A7sthhyXVRQUXeUxv0SmQ/i+IHZjR8R/G61wIg==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@types/passport-facebook/-/passport-facebook-2.1.9.tgz", + "integrity": "sha512-7Y5aHo35Io9fRvStBgXasf+6rRJ5SMiu1D3+cnUuxM1GS+QlgFnH+YTZjye0XgF4EWzxlXKTeLlK2DFU8+0Jpw==", "dev": true, "requires": { "@types/express": "*", @@ -5376,9 +6846,9 @@ } }, "@types/passport-oauth2": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.5.tgz", - "integrity": "sha512-q/pT4RKkiHU1W20P2qUAtVmua3bVF1b8Tulag/niDISS+8CGrRthmQxvPhkIVtJb68ssCxn8ck+eagInGuKHDQ==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.8.tgz", + "integrity": "sha512-tlX16wyFE5YJR2pHpZ308dgB1MV9/Ra2wfQh71eWk+/umPoD1Rca2D4N5M27W7nZm1wqUNGTk1I864nHvEgiFA==", "dev": true, "requires": { "@types/express": "*", @@ -5387,9 +6857,9 @@ } }, "@types/passport-strategy": { - "version": "0.2.33", - "resolved": "https://registry.npmjs.org/@types/passport-strategy/-/passport-strategy-0.2.33.tgz", - "integrity": "sha512-tmj//XbNqCWmD+PJ/KnxAouircAmMGLN9IHBO3utH5DXuHHHYN4ZG53DRrQBjlZMiS/1b5IP38U2ay1GfbcQrQ==", + "version": "0.2.35", + "resolved": "https://registry.npmjs.org/@types/passport-strategy/-/passport-strategy-0.2.35.tgz", + "integrity": "sha512-o5D19Jy2XPFoX2rKApykY15et3Apgax00RRLf0RUotPDUsYrQa7x4howLYr9El2mlUApHmCMv5CZ1IXqKFQ2+g==", "dev": true, "requires": { "@types/express": "*", @@ -5406,9 +6876,9 @@ } }, "@types/prettier": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.0.tgz", - "integrity": "sha512-gDE8JJEygpay7IjA/u3JiIURvwZW08f0cZSZLAzFoX/ZmeqvS0Sqv+97aKuHpNsalAMMhwPe+iAS6fQbfmbt7A==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", "dev": true }, "@types/prop-types": { @@ -5423,15 +6893,30 @@ "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==", "dev": true }, + "@types/qs": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.1.tgz", + "integrity": "sha512-lhbQXx9HKZAPgBkISrBcmAcMpZsmpe/Cd/hY7LGZS5OfkySUBItnPZHgQPssWYUET8elF+yCFBbP1Q0RZPTdaw==" + }, "@types/range-parser": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.2.tgz", - "integrity": "sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + }, + "@types/reach__router": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.2.tgz", + "integrity": "sha512-OTPBURw7aF3q+ejjcBQKjEFsiv4hr0oEFfIgUfdaSQfvnNSSu3I/Cfy1JvoDaTnbt6ZByiFWC5Y9AMhf4x0WOA==", + "dev": true, + "requires": { + "@types/history": "*", + "@types/react": "*" + } }, "@types/react": { - "version": "16.8.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.15.tgz", - "integrity": "sha512-dMhzw1rWK+wwJWvPp5Pk12ksSrm/z/C/+lOQbMZ7YfDQYnJ02bc0wtg4EJD9qrFhuxFrf/ywNgwTboucobJqQg==", + "version": "16.9.31", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.31.tgz", + "integrity": "sha512-NpYJpNMWScFXtx3A2BJMeew2G3+9SEslVWMdxNJ6DLvxIuxWjY1bizK9q5Y1ujhln31vtjmhjOAYDr9Xx3k9FQ==", "dev": true, "requires": { "@types/prop-types": "*", @@ -5458,36 +6943,36 @@ } }, "@types/react-copy-to-clipboard": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.2.6.tgz", - "integrity": "sha512-v4/yLsuPf8GSFuTy9fA1ABpL5uuy04vwW7qs+cfxSe1UU/M/KK95rF3N3GRseismoK9tA28SvpwVsAg/GWoF3A==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.3.0.tgz", + "integrity": "sha512-iideNPRyroENqsOFh1i2Dv3zkviYS9r/9qD9Uh3Z9NNoAAqqa2x53i7iGndGNnJFIo20wIu7Hgh77tx1io8bgw==", "dev": true, "requires": { "@types/react": "*" } }, "@types/react-dom": { - "version": "16.8.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.4.tgz", - "integrity": "sha512-eIRpEW73DCzPIMaNBDP5pPIpK1KXyZwNgfxiVagb5iGiz6da+9A5hslSX6GAQKdO7SayVCS/Fr2kjqprgAvkfA==", + "version": "16.9.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.6.tgz", + "integrity": "sha512-S6ihtlPMDotrlCJE9ST1fRmYrQNNwfgL61UB4I1W7M6kPulUKx9fXAleW5zpdIjUQ4fTaaog8uERezjsGUj9HQ==", "dev": true, "requires": { "@types/react": "*" } }, "@types/react-helmet": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-5.0.10.tgz", - "integrity": "sha512-wGr0J7yncqwOS4ae+yYeMd4L3Gh43CgYcbq9bXEeSozB4d/+Z/XLT9wyMUwfWImWtOLCFLP6Xnt7w5P6+02gZg==", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/@types/react-helmet/-/react-helmet-5.0.15.tgz", + "integrity": "sha512-CCjqvecDJTXRrHG8aTc2YECcQCl26za/q+NaBRvy/wtm0Uh38koM2dpv2bG1xJV4ckz3t1lm2/5KU6nt2s9BWg==", "dev": true, "requires": { "@types/react": "*" } }, "@types/react-relay": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/react-relay/-/react-relay-5.0.1.tgz", - "integrity": "sha512-nvLlSmkQN/OBu9hLvJGtE8KmN5TviKZIWyU7IKUa0X6OPvl21Qf6gUFPEYWcNL+ql/490kPxSzJzZCeVrw3yQg==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/react-relay/-/react-relay-7.0.3.tgz", + "integrity": "sha512-laZ9nGDqQd9VyljJ2w8tGDcFZz9dm8K6NHsyDR8jig1eLzjYf/3ayQl+N3hnrfOVLUQsmuvy4dsyyJzjCIJAHA==", "dev": true, "requires": { "@types/react": "*", @@ -5495,36 +6980,36 @@ } }, "@types/react-responsive": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/react-responsive/-/react-responsive-3.0.1.tgz", - "integrity": "sha512-ti7MKe0AuWCGpNkRzRsRB8ExS7NZotXtDtD27rX4HiZML37SetbIp3cw5FDXIeqIC7a3TzWuPjv/I9Qcu4YL3w==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@types/react-responsive/-/react-responsive-8.0.2.tgz", + "integrity": "sha512-DTvm3Hb77v0hme7L4GYzRjLQqlZP+zNImFBzdKbSH7CsQ5c7QebGnSQX2Xf3BaA0rm/TQE57eFMhMGLcMe/A9w==", "dev": true, "requires": { "@types/react": "*" } }, "@types/react-test-renderer": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.8.1.tgz", - "integrity": "sha512-8gU69ELfJGxzVWVYj4MTtuHxz9nO+d175XeQ1XrXXxesUBsB4KK6OCfzVhEX6leZWWBDVtMJXp/rUjhClzL7gw==", + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz", + "integrity": "sha512-4eJr1JFLIAlWhzDkBCkhrOIWOvOxcCAfQh+jiKg7l/nNZcCIL2MHl2dZhogIFKyHzedVWHaVP1Yydq/Ruu4agw==", "dev": true, "requires": { "@types/react": "*" } }, "@types/react-transition-group": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.0.14.tgz", - "integrity": "sha512-pa7qB0/mkhwWMBFoXhX8BcntK8G4eQl4sIfSrJCxnivTYRQWjOWf2ClR9bWdm0EUFBDHzMbKYS+QYfDtBzkY4w==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz", + "integrity": "sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA==", "dev": true, "requires": { "@types/react": "*" } }, "@types/recompose": { - "version": "0.26.5", - "resolved": "https://registry.npmjs.org/@types/recompose/-/recompose-0.26.5.tgz", - "integrity": "sha512-Il5stz/Z3pVIMl48pyggl6nnhRLQ8N8YN8hi0Anm0M5UjVh2uMSY0ah2vzwZZKxnca4NzyJArloSjsJ9fL2vWw==", + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/@types/recompose/-/recompose-0.30.7.tgz", + "integrity": "sha512-kEvD7XMguXgG7jJJS//cE1QTbkFj2qDtIPAg1FvXxE8D6jD1C0WabJjT7cVitC7TK0N5I3yp2955hqNFFZV0wg==", "dev": true, "requires": { "@types/react": "*" @@ -5537,11 +7022,21 @@ "dev": true }, "@types/relay-runtime": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@types/relay-runtime/-/relay-runtime-5.0.5.tgz", - "integrity": "sha512-ZfhRGH8kYnMUeV3NBSYsy99hvJ/GiWAZ4Kc7KG7SuKXdYAHNuHV69TJnHmnmuh54EZytu3NplYDwccerghykpQ==", + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@types/relay-runtime/-/relay-runtime-8.0.7.tgz", + "integrity": "sha512-xZLDJ+qUR4snjdJ+idCIB/diQBAFw9BDAANSeOt2XoGQNKp5yZjPPZKO7tBiT9iBtDjxnhk+eW0b4Le9lw3GIg==", "dev": true }, + "@types/rimraf": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.4.tgz", + "integrity": "sha512-8gBudvllD2A/c0CcEX/BivIDorHFt5UI5m46TsNj8DjWCCTTZT74kEe4g+QsY7P/B9WdO98d82zZgXO/RQzu2Q==", + "dev": true, + "requires": { + "@types/glob": "*", + "@types/node": "*" + } + }, "@types/sane": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/sane/-/sane-2.0.0.tgz", @@ -5573,15 +7068,21 @@ "dev": true }, "@types/sinon": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.0.11.tgz", - "integrity": "sha512-6ee09Ugx6GyEr0opUIakmxIWFNmqYPjkqa3/BuxCBokA0klsOLPgMD5K4q40lH7/yZVuJVzOfQpd7pipwjngkQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.2.tgz", + "integrity": "sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", "dev": true }, "@types/source-map-support": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.5.0.tgz", - "integrity": "sha512-OrnAz5K5dXDgMdeRRoXIjDAvkodQ9ESvVJCyzrhzUJKmCkXgmYx/KLUBcVFe5eS4FiohfcY7YPxsdkmSwJz9wA==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/source-map-support/-/source-map-support-0.5.1.tgz", + "integrity": "sha512-VDqnZe9D2zR19qbeRvwYyHSp7AtUtCkTaRVFQ8wzwH9TXw9kKKq/vBhfEnFEXVupO2M0lBMA9mr/XyQ6gEkUOA==", "dev": true, "requires": { "@types/node": "*" @@ -5623,10 +7124,22 @@ "integrity": "sha512-7tgh3R6vwtjj01URmhWXFSkWnm4wDJjsqLm8WPwIWadYjfsKAFi0HqabMQCU2JJ4TbeSGkb51qv27bBPN5Bubw==", "dev": true }, + "@types/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=", + "dev": true + }, "@types/tough-cookie": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz", - "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==", + "dev": true + }, + "@types/trusted-types": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-1.0.4.tgz", + "integrity": "sha512-6jtHrHpmiXOXoJ31Cg9R+iEVwuEKPf0XHwFUI93eEPXx492/J2JHyafkleKE2EYzZprayk9FSjTyK1GDqcwDng==", "dev": true }, "@types/uglify-js": { @@ -5653,13 +7166,10 @@ "dev": true }, "@types/uuid": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.4.tgz", - "integrity": "sha512-tPIgT0GUmdJQNSHxp0X2jnpQfBSTfGxUMc/2CXBU2mnyTFVYVa2ojpoQ74w0U2yn2vw3jnC640+77lkFFpdVDw==", - "dev": true, - "requires": { - "@types/node": "*" - } + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.2.tgz", + "integrity": "sha512-8Ly3zIPTnT0/8RCU6Kg/G3uTICf9sRwYOpUzSIM3503tLIKcnJPRuinHhXngJUy2MntrEf6dlpOHXJju90Qh5w==", + "dev": true }, "@types/verror": { "version": "1.10.3", @@ -5679,34 +7189,35 @@ } }, "@types/vfile-message": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-1.0.1.tgz", - "integrity": "sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz", + "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==", "dev": true, "requires": { - "@types/node": "*", - "@types/unist": "*" + "vfile-message": "*" } }, "@types/vinyl": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.2.tgz", - "integrity": "sha512-2iYpNuOl98SrLPBZfEN9Mh2JCJ2EI9HU35SfgBEb51DcmaHkhp8cKMblYeBqMQiwXMgAD3W60DbQ4i/UdLiXhw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.4.tgz", + "integrity": "sha512-2o6a2ixaVI2EbwBPg1QYLGQoHK56p/8X/sGfKbFC8N6sY9lfjsMf/GprtkQkSya0D4uRiutRZ2BWj7k3JvLsAQ==", "dev": true, "requires": { + "@types/expect": "^1.20.4", "@types/node": "*" } }, "@types/webpack": { - "version": "4.4.31", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.4.31.tgz", - "integrity": "sha512-WNALmv/wxy2+OoF7A5GD8BVotXnkuMHlojVWKj/neFHU3Ut2Azbu1A7Yi2Vr6eX3z+31XgR/dJ5NpX4pQZ7ieQ==", + "version": "4.41.10", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.10.tgz", + "integrity": "sha512-vIy0qaq8AjOjZLuFPqpo7nAJzcoVXMdw3mvpNN07Uvdy0p1IpJeLNBe3obdRP7FX2jIusDE7z1pZa0A6qYUgnA==", "dev": true, "requires": { "@types/anymatch": "*", "@types/node": "*", "@types/tapable": "*", "@types/uglify-js": "*", + "@types/webpack-sources": "*", "source-map": "^0.6.0" }, "dependencies": { @@ -5729,33 +7240,52 @@ } }, "@types/webpack-bundle-analyzer": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.1.tgz", - "integrity": "sha512-9M9jingj0izx1VfglYYJ+dvd0YCMlFgtrSCeb+C3VIQP8hmTXGJ5qqVeqiBnv0ffMyeKWqyij4K2F4VBcazQNw==", + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.3.tgz", + "integrity": "sha512-p8EXyKfq311FFFfRuAR9tOHFFTQ9DqGrjRQYXbjjEMfl9pKGaTtRy1zFJtPMyZHfRoqh5rsYPVSVknkl004M7A==", "dev": true, "requires": { "@types/webpack": "*" } }, "@types/webpack-dev-server": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz", - "integrity": "sha512-eizwVjKPHA7pBMqNGx3bi+cxqMV625Rt/NEy27N432YG9Tm2q+iLglBgvMNTALMDPtkv9zO3nDKfp76PhWRfFA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz", + "integrity": "sha512-2nwwQ/qHRghUirvG/gEDkOQDa+d881UTJM7EG9ok5KNaYCjYVvy7fdaO528Lcym9OQDn75SvruPYVVvMJxqO0g==", "dev": true, "requires": { + "@types/connect-history-api-fallback": "*", "@types/express": "*", "@types/http-proxy-middleware": "*", "@types/serve-static": "*", "@types/webpack": "*" } }, - "@types/ws": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-5.1.2.tgz", - "integrity": "sha512-NkTXUKTYdXdnPE2aUUbGOXE1XfMK527SCvU/9bj86kyFF6kZ9ZnOQ3mK5jADn98Y2vEUD/7wKDgZa7Qst2wYOg==", + "@types/webpack-sources": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.7.tgz", + "integrity": "sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/ws": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.3.tgz", + "integrity": "sha512-VT/GK7nvDA7lfHy40G3LKM+ICqmdIsBLBHGXcWD97MtqQEjNMX+7Gudo8YGpaSlYdTX7IFThhCE8Jx09HegymQ==", "dev": true, "requires": { - "@types/events": "*", "@types/node": "*" } }, @@ -5766,27 +7296,36 @@ "dev": true }, "@types/yargs": { - "version": "12.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-12.0.12.tgz", - "integrity": "sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw==", - "dev": true - }, - "@types/yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.3.3.tgz", - "integrity": "sha512-12cCbwu5PbQudkq2xCIS/QhB7hCMrsNPXK+vJtqy/zFqtzVkPRGy12O5Yy0gUK086f3VHV/P4a4R4CjMW853pA==", + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", + "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.3.3", - "eslint-utils": "^1.4.2", + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "dev": true + }, + "@types/yoga-layout": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.1.tgz", + "integrity": "sha512-OpfgQXWLZn5Dl7mOd8dBNcV8NywXbYYoHjUpa64vJ/RQABaxMzJ5bVicKLGIvIiMnQPtPgKNgXb5jkv9fkOQtw==", + "dev": true, + "optional": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.26.0.tgz", + "integrity": "sha512-4yUnLv40bzfzsXcTAtZyTjbiGUXMrcIJcIMioI22tSOyAxpdXiZ4r7YQUU8Jj6XXrLz9d5aMHPQf5JFR7h27Nw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.26.0", "functional-red-black-tree": "^1.0.1", - "regexpp": "^2.0.1", + "regexpp": "^3.0.0", "tsutils": "^3.17.1" }, "dependencies": { @@ -5802,24 +7341,25 @@ } }, "@typescript-eslint/eslint-plugin-tslint": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.3.3.tgz", - "integrity": "sha512-zJCrQLrwakkYyMaCySW8I35gl2StOc3xJ0LqhhHXkRTWsFtMYLD92HhFcJyW2zpOQYi+rJXhTE5rrXXV75Rlew==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-2.26.0.tgz", + "integrity": "sha512-HmVOPwMS3rkz919/W5ZUr5r6G7UjEI1SeOcVKUZeUfn7ZlEObjuV5yF5ipisi9M9wOkVFEIAfyjTh6EgfTjf7g==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "2.3.3", - "lodash.memoize": "^4.1.2" + "@typescript-eslint/experimental-utils": "2.26.0", + "lodash": "^4.17.15" } }, "@typescript-eslint/experimental-utils": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.3.3.tgz", - "integrity": "sha512-MQ4jKPMTU1ty4TigJCRKFPye2qyQdH8jzIIkceaHgecKFmkNS1hXPqKiZ+mOehkz6+HcN5Nuvwm+frmWZR9tdg==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.26.0.tgz", + "integrity": "sha512-RELVoH5EYd+JlGprEyojUv9HeKcZqF7nZUGSblyAw1FwOGNnmQIU8kxJ69fttQvEwCsX5D6ECJT8GTozxrDKVQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.3.3", - "eslint-scope": "^5.0.0" + "@typescript-eslint/typescript-estree": "2.26.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" }, "dependencies": { "eslint-scope": { @@ -5831,37 +7371,58 @@ "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } + }, + "eslint-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", + "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } } } }, "@typescript-eslint/parser": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.3.3.tgz", - "integrity": "sha512-+cV53HuYFeeyrNW8x/rgPmbVrzzp/rpRmwbJnNtwn4K8mroL1BdjxwQh7X9cUHp9rm4BBiEWmD3cSBjKG7d5mw==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.26.0.tgz", + "integrity": "sha512-+Xj5fucDtdKEVGSh9353wcnseMRkPpEAOY96EEenN7kJVrLqy/EVwtIh3mxcUz8lsFXW1mT5nN5vvEam/a5HiQ==", "dev": true, "requires": { "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.3.3", - "@typescript-eslint/typescript-estree": "2.3.3", + "@typescript-eslint/experimental-utils": "2.26.0", + "@typescript-eslint/typescript-estree": "2.26.0", "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.3.3.tgz", - "integrity": "sha512-GkACs12Xp8d/STunNv/iSMYJFQrkrax9vuPZySlgSzoJJtw1cp6tbEw4qsLskQv6vloLrkFJHcTJ0a/yCB5cIA==", + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.26.0.tgz", + "integrity": "sha512-3x4SyZCLB4zsKsjuhxDLeVJN6W29VwBnYpCsZ7vIdPel9ZqLfIZJgJXO47MNUkurGpQuIBALdPQKtsSnWpE1Yg==", "dev": true, "requires": { - "glob": "^7.1.4", + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", "is-glob": "^4.0.1", - "lodash.unescape": "4.0.1", - "semver": "^6.3.0" + "lodash": "^4.17.15", + "semver": "^6.3.0", + "tsutils": "^3.17.1" }, "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -5886,216 +7447,193 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } } } }, "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "@webassemblyjs/ast": "1.9.0" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", "@xtuc/long": "4.2.2" } }, - "@webpack-contrib/schema-utils": { - "version": "1.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz", - "integrity": "sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chalk": "^2.3.2", - "strip-ansi": "^4.0.0", - "text-table": "^0.2.0", - "webpack-log": "^1.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, "@wry/equality": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz", @@ -6117,14 +7655,14 @@ "dev": true }, "a-sync-waterfall": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.0.tgz", - "integrity": "sha1-OOgxnXk3niRiiEW1O5ZyKyng5Hw=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" }, "abab": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", - "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==" }, "abort-controller": { "version": "3.0.0", @@ -6144,49 +7682,44 @@ } }, "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==" - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", - "dev": true + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" }, "acorn-globals": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz", - "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, "requires": { "acorn": "^6.0.1", "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + } } }, - "acorn-jsx": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", - "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", - "dev": true - }, "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==" - }, - "add-dom-event-listener": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", - "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", - "dev": true, - "requires": { - "object-assign": "4.x" - } + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true }, "address": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", - "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", "dev": true }, "agent-base": { @@ -6197,14 +7730,32 @@ "es6-promisify": "^5.0.0" } }, - "airbnb-prop-types": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.13.2.tgz", - "integrity": "sha512-2FN6DlHr6JCSxPPi25EnqGaXC4OC3/B3k1lCd6MMYrZ51/Gf/1qDfaR+JElzWa+Tl7cY2aYOlsYJGFeQyVHIeQ==", + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, "requires": { - "array.prototype.find": "^2.0.4", - "function.prototype.name": "^1.1.0", + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } + } + }, + "airbnb-prop-types": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz", + "integrity": "sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA==", + "dev": true, + "requires": { + "array.prototype.find": "^2.1.0", + "function.prototype.name": "^1.1.1", "has": "^1.0.3", "is-regex": "^1.0.4", "object-is": "^1.0.1", @@ -6212,7 +7763,7 @@ "object.entries": "^1.1.0", "prop-types": "^15.7.2", "prop-types-exact": "^1.2.0", - "react-is": "^16.8.6" + "react-is": "^16.9.0" }, "dependencies": { "loose-envify": { @@ -6236,9 +7787,9 @@ } }, "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz", + "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==", "dev": true } } @@ -6268,12 +7819,12 @@ "dev": true }, "akismet-api": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/akismet-api/-/akismet-api-4.2.0.tgz", - "integrity": "sha512-HJcF3QYWmiQb3TkcXLxGvc0L0HyGA7edm3GRCXvFWzGKFfsqgCjoehx6Lzmpb5sCUAJQmxu1HpWjv8n7u0GstQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/akismet-api/-/akismet-api-5.0.0.tgz", + "integrity": "sha512-GdFa93txqJM3gGaeXJs0gAXNCIpcBFnCs8ylmPDGCRUecqkfl4+n9AqE0izQv5hWwvM1b47JQjD3pj0BR+zK5Q==", "requires": { "bluebird": "^3.1.1", - "superagent": "^3.8.0" + "superagent": "^5.1.1" } }, "alphanum-sort": { @@ -6297,6 +7848,49 @@ "emoji-regex": "~6.1.0" } }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "ansi-colors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", @@ -6356,175 +7950,132 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" } }, "apollo-cache-control": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.8.1.tgz", - "integrity": "sha512-yQy5KB/OuX90PsdztWc4vfc4R//ZmW/AxNgXKWga0xW5OzEsysdJWHAsTzb40/rkJ9VNeQ+0N5wGikiS+jSCzg==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.9.0.tgz", + "integrity": "sha512-iLT6IT4Ul5cMfBcJAvhpk3a7AD6fXqvFxNmJEPVapVJHbSKYIjra4PTis13sOyN5Y3WQS6a+NRFxAW8+hL3q3Q==", "requires": { - "apollo-server-env": "2.4.1", - "graphql-extensions": "0.8.1" - }, - "dependencies": { - "apollo-server-env": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.1.tgz", - "integrity": "sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg==", - "requires": { - "node-fetch": "^2.1.2", - "util.promisify": "^1.0.0" - } - }, - "graphql-extensions": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.8.1.tgz", - "integrity": "sha512-d/L4x7/PPWhviJqi7jIWOVJPzfzagYgPizSQUpa+3hozbWhwpWEnfxwgL5/If5MnPUikBnqlkOLCyjHMNdipYA==", - "requires": { - "@apollographql/apollo-tools": "^0.4.0", - "apollo-server-env": "2.4.1", - "apollo-server-types": "0.2.1" - } - } + "apollo-server-env": "^2.4.3", + "graphql-extensions": "^0.11.0" } }, "apollo-datasource": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.6.1.tgz", - "integrity": "sha512-oy7c+9Up8PSZwJ1qTK9Idh1acDpIocvw+C0zcHg14ycvNz7qWHSwLUSaAjuQMd9SYFzB3sxfyEhyfyhIogT2+Q==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.0.tgz", + "integrity": "sha512-Yja12BgNQhzuFGG/5Nw2MQe0hkuQy2+9er09HxeEyAf2rUDIPnhPrn1MDoZTB8MU7UGfjwITC+1ofzKkkrZobA==", "requires": { - "apollo-server-caching": "0.5.0", - "apollo-server-env": "2.4.1" - }, - "dependencies": { - "apollo-server-env": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.1.tgz", - "integrity": "sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg==", - "requires": { - "node-fetch": "^2.1.2", - "util.promisify": "^1.0.0" - } - } + "apollo-server-caching": "^0.5.1", + "apollo-server-env": "^2.4.3" } }, "apollo-engine-reporting": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-1.4.3.tgz", - "integrity": "sha512-xv27qfc9dhi1yaWOhNQRmfF+SoLy74hl+M42arpIWdkoDe22fVTmTIqxqGwo4TFR3Z2OkAV5tNzuuOI/icd0Rg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-1.7.0.tgz", + "integrity": "sha512-jsjSnoHrRmk4XXK4aFU17YSJILmWsilKRwIeN74QJsSxjn5SCVF4EI/ebf/MNrTHpft8EhShx+wdkAcOD9ivqA==", "requires": { - "apollo-engine-reporting-protobuf": "0.4.0", - "apollo-graphql": "^0.3.3", - "apollo-server-caching": "0.5.0", - "apollo-server-env": "2.4.1", - "apollo-server-types": "0.2.1", + "apollo-engine-reporting-protobuf": "^0.4.4", + "apollo-graphql": "^0.4.0", + "apollo-server-caching": "^0.5.1", + "apollo-server-env": "^2.4.3", + "apollo-server-errors": "^2.4.0", + "apollo-server-types": "^0.3.0", "async-retry": "^1.2.1", - "graphql-extensions": "0.9.1" - }, - "dependencies": { - "apollo-server-env": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.1.tgz", - "integrity": "sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg==", - "requires": { - "node-fetch": "^2.1.2", - "util.promisify": "^1.0.0" - } - }, - "graphql-extensions": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.9.1.tgz", - "integrity": "sha512-JR/KStdwALd48B/xSG/Mi85zamuJd8THvVlzGM5juznPDN0wTYG5SARGzzvoqHxgxuUHYdzpvESwMAisORJdCQ==", - "requires": { - "@apollographql/apollo-tools": "^0.4.0", - "apollo-server-env": "2.4.1", - "apollo-server-types": "0.2.1" - } - } + "graphql-extensions": "^0.11.0" } }, "apollo-engine-reporting-protobuf": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.4.0.tgz", - "integrity": "sha512-cXHZSienkis8v4RhqB3YG3DkaksqLpcxApRLTpRMs7IXNozgV7CUPYGFyFBEra1ZFgUyHXx4G9MpelV+n2cCfA==", + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.4.4.tgz", + "integrity": "sha512-SGrIkUR7Q/VjU8YG98xcvo340C4DaNUhg/TXOtGsMlfiJDzHwVau/Bv6zifAzBafp2lj0XND6Daj5kyT/eSI/w==", "requires": { - "protobufjs": "^6.8.6" + "@apollo/protobufjs": "^1.0.3" } }, "apollo-env": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.5.1.tgz", - "integrity": "sha512-fndST2xojgSdH02k5hxk1cbqA9Ti8RX4YzzBoAB4oIe1Puhq7+YlhXGXfXB5Y4XN0al8dLg+5nAkyjNAR2qZTw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.2.tgz", + "integrity": "sha512-Vb/doL1ZbzkNDJCQ6kYGOrphRx63rMERYo3MT2pzm2pNEdm6AK60InMgJaeh3RLK3cjGllOXFAgP8IY+m+TaEg==", "requires": { + "@types/node-fetch": "2.5.5", "core-js": "^3.0.1", "node-fetch": "^2.2.0", "sha.js": "^2.4.11" - }, - "dependencies": { - "core-js": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz", - "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==" - } } }, "apollo-graphql": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.3.3.tgz", - "integrity": "sha512-t3CO/xIDVsCG2qOvx2MEbuu4b/6LzQjcBBwiVnxclmmFyAxYCIe7rpPlnLHSq7HyOMlCWDMozjoeWfdqYSaLqQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.1.tgz", + "integrity": "sha512-dz2wtGeCqUDAKAj4KXLKLZiFY791aoXduul3KcLo8/6SwqWlsuZiPe0oB8mENHZZc/EchCpTMTJZX2ZENsOt2A==", "requires": { - "apollo-env": "0.5.1", + "apollo-env": "^0.6.2", "lodash.sortby": "^4.7.0" } }, "apollo-link": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.2.tgz", - "integrity": "sha512-Uk/BC09dm61DZRDSu52nGq0nFhq7mcBPTjy5EEH1eunJndtCaNXQhQz/BjkI2NdrfGI+B+i5he6YSoRBhYizdw==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.13.tgz", + "integrity": "sha512-+iBMcYeevMm1JpYgwDEIDt/y0BB7VWyvlm/7x+TIPNLHCTCMgcEgDuW5kH86iQZWo0I7mNwQiTOz+/3ShPFmBw==", "requires": { - "@types/graphql": "0.12.6", - "apollo-utilities": "^1.0.0", - "zen-observable-ts": "^0.8.9" + "apollo-utilities": "^1.3.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.9.3", + "zen-observable-ts": "^0.8.20" }, "dependencies": { - "@types/graphql": { - "version": "0.12.6", - "resolved": "https://registry.npmjs.org/@types/graphql/-/graphql-0.12.6.tgz", - "integrity": "sha512-wXAVyLfkG1UMkKOdMijVWFky39+OD/41KftzqfX1Oejd0Gm6dOIKjCihSVECg6X7PHjftxXmfOKA/d1H79ZfvQ==" + "apollo-utilities": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.3.tgz", + "integrity": "sha512-F14aX2R/fKNYMvhuP2t9GD9fggID7zp5I96MF5QeKYWDWTrkRdHRp4+SVfXUVN+cXOaB/IebfvRtzPf25CM0zw==", + "requires": { + "@wry/equality": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "ts-invariant": "^0.4.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.0.tgz", + "integrity": "sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg==" + } + } } } }, "apollo-server-caching": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.0.tgz", - "integrity": "sha512-l7ieNCGxUaUAVAAp600HjbUJxVaxjJygtPV0tPTe1Q3HkPy6LEWoY6mNHV7T268g1hxtPTxcdRu7WLsJrg7ufw==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.1.tgz", + "integrity": "sha512-L7LHZ3k9Ao5OSf2WStvQhxdsNVplRQi7kCAPfqf9Z3GBEnQ2uaL0EgO0hSmtVHfXTbk5CTRziMT1Pe87bXrFIw==", "requires": { "lru-cache": "^5.0.0" } }, "apollo-server-core": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.8.1.tgz", - "integrity": "sha512-BpvhKdycTI1v5n8biJ5c/DVF7MCbTL3JtB9llHGkqYgHaTH1gXguh2qD8Vcki+rpUNO5P1lcj5V6oVXoSUFXlA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.11.0.tgz", + "integrity": "sha512-jHLOqwTRlyWzqWNRlwr2M/xfrt+lw2pHtKYyxUGRjWFo8EM5TX1gDcTKtbtvx9p5m+ZBDAhcWp/rpq0vSz4tqg==", "requires": { - "@apollographql/apollo-tools": "^0.4.0", + "@apollographql/apollo-tools": "^0.4.3", "@apollographql/graphql-playground-html": "1.6.24", "@types/graphql-upload": "^8.0.0", "@types/ws": "^6.0.0", - "apollo-cache-control": "0.8.1", - "apollo-datasource": "0.6.1", - "apollo-engine-reporting": "1.4.3", - "apollo-server-caching": "0.5.0", - "apollo-server-env": "2.4.1", - "apollo-server-errors": "2.3.1", - "apollo-server-plugin-base": "0.6.1", - "apollo-server-types": "0.2.1", - "apollo-tracing": "0.8.1", + "apollo-cache-control": "^0.9.0", + "apollo-datasource": "^0.7.0", + "apollo-engine-reporting": "^1.7.0", + "apollo-server-caching": "^0.5.1", + "apollo-server-env": "^2.4.3", + "apollo-server-errors": "^2.4.0", + "apollo-server-plugin-base": "^0.7.0", + "apollo-server-types": "^0.3.0", + "apollo-tracing": "^0.9.0", "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "0.9.1", + "graphql-extensions": "^0.11.0", "graphql-tag": "^2.9.2", "graphql-tools": "^4.0.0", "graphql-upload": "^8.0.2", @@ -6534,68 +8085,13 @@ }, "dependencies": { "@types/ws": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-6.0.2.tgz", - "integrity": "sha512-22XiR1ox9LftTaAtn/c5JCninwc7moaqbkJfaDUb7PkaUitcf5vbTZHdq9dxSMviCm9C3W85rzB8e6yNR70apQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz", + "integrity": "sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==", "requires": { "@types/node": "*" } }, - "apollo-link": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.12.tgz", - "integrity": "sha512-fsgIAXPKThyMVEMWQsUN22AoQI+J/pVXcjRGAShtk97h7D8O+SPskFinCGEkxPeQpE83uKaqafB2IyWdjN+J3Q==", - "requires": { - "apollo-utilities": "^1.3.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3", - "zen-observable-ts": "^0.8.19" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.2.tgz", - "integrity": "sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==", - "requires": { - "@wry/equality": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3" - } - } - } - }, - "apollo-server-env": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.1.tgz", - "integrity": "sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg==", - "requires": { - "node-fetch": "^2.1.2", - "util.promisify": "^1.0.0" - } - }, - "graphql-extensions": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.9.1.tgz", - "integrity": "sha512-JR/KStdwALd48B/xSG/Mi85zamuJd8THvVlzGM5juznPDN0wTYG5SARGzzvoqHxgxuUHYdzpvESwMAisORJdCQ==", - "requires": { - "@apollographql/apollo-tools": "^0.4.0", - "apollo-server-env": "2.4.1", - "apollo-server-types": "0.2.1" - } - }, - "graphql-tools": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.5.tgz", - "integrity": "sha512-kQCh3IZsMqquDx7zfIGWBau42xe46gmqabwYkpPlCLIjcEY1XK+auP7iGRD9/205BPyoQdY8hT96MPpgERdC9Q==", - "requires": { - "apollo-link": "^1.2.3", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - } - }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", @@ -6603,259 +8099,83 @@ "requires": { "async-limiter": "~1.0.0" } - }, - "zen-observable-ts": { - "version": "0.8.19", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz", - "integrity": "sha512-u1a2rpE13G+jSzrg3aiCqXU5tN2kw41b+cBZGmnc+30YimdkKiDj9bTowcB41eL77/17RF/h+393AuVgShyheQ==", - "requires": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" - } } } }, "apollo-server-env": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.0.3.tgz", - "integrity": "sha512-uIfKFH8n8xKO0eLb9Fa79+s2DdMuVethgznvW6SrOYq5VzgkIIobqKEuZPKa5wObw9CkCyju/+Sr7b7WWMFxUQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.3.tgz", + "integrity": "sha512-23R5Xo9OMYX0iyTu2/qT0EUb+AULCBriA9w8HDfMoChB8M+lFClqUkYtaTTHDfp6eoARLW8kDBhPOBavsvKAjA==", "requires": { "node-fetch": "^2.1.2", "util.promisify": "^1.0.0" } }, "apollo-server-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.3.1.tgz", - "integrity": "sha512-errZvnh0vUQChecT7M4A/h94dnBSRL213dNxpM5ueMypaLYgnp4hiCTWIEaooo9E4yMGd1qA6WaNbLDG2+bjcg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.0.tgz", + "integrity": "sha512-ZouZfr2sGavvI18rgdRcyY2ausRAlVtWNOax9zca8ZG2io86dM59jXBmUVSNlVZSmBsIh45YxYC0eRvr2vmRdg==" }, "apollo-server-express": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.8.1.tgz", - "integrity": "sha512-XoWqSuNQkL8ivBq5LXJW6wV0/Ef+m8w4fAK/7PBspLHVfDAbHRyRr6zraotim2Kl7NOnzcqHtb6sB9yozjL0hA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.11.0.tgz", + "integrity": "sha512-9bbiD+zFAx+xyurc9lxYmNa9y79k/gsA1vEyPFVcv7jxzCFC5wc0tcbV7NPX2qi1Nn7K76fxo2fPNYbPFX/y0g==", "requires": { "@apollographql/graphql-playground-html": "1.6.24", "@types/accepts": "^1.3.5", - "@types/body-parser": "1.17.0", + "@types/body-parser": "1.19.0", "@types/cors": "^2.8.4", - "@types/express": "4.17.0", + "@types/express": "4.17.2", "accepts": "^1.3.5", - "apollo-server-core": "2.8.1", - "apollo-server-types": "0.2.1", + "apollo-server-core": "^2.11.0", + "apollo-server-types": "^0.3.0", "body-parser": "^1.18.3", "cors": "^2.8.4", + "express": "^4.17.1", "graphql-subscriptions": "^1.0.0", "graphql-tools": "^4.0.0", + "parseurl": "^1.3.2", "subscriptions-transport-ws": "^0.9.16", "type-is": "^1.6.16" }, "dependencies": { "@types/express": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.0.tgz", - "integrity": "sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw==", + "version": "4.17.2", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.2.tgz", + "integrity": "sha512-5mHFNyavtLoJmnusB8OKJ5bshSzw+qkMIBAobLrIM48HJvunFva9mOa6aBwh64lBFyNwBbs0xiEFuj4eU/NjCA==", "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "*", "@types/serve-static": "*" } - }, - "apollo-link": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.12.tgz", - "integrity": "sha512-fsgIAXPKThyMVEMWQsUN22AoQI+J/pVXcjRGAShtk97h7D8O+SPskFinCGEkxPeQpE83uKaqafB2IyWdjN+J3Q==", - "requires": { - "apollo-utilities": "^1.3.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3", - "zen-observable-ts": "^0.8.19" - }, - "dependencies": { - "apollo-utilities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.2.tgz", - "integrity": "sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==", - "requires": { - "@wry/equality": "^0.1.2", - "fast-json-stable-stringify": "^2.0.0", - "ts-invariant": "^0.4.0", - "tslib": "^1.9.3" - } - } - } - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - } - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "graphql-tools": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.5.tgz", - "integrity": "sha512-kQCh3IZsMqquDx7zfIGWBau42xe46gmqabwYkpPlCLIjcEY1XK+auP7iGRD9/205BPyoQdY8hT96MPpgERdC9Q==", - "requires": { - "apollo-link": "^1.2.3", - "apollo-utilities": "^1.0.1", - "deprecated-decorator": "^0.1.6", - "iterall": "^1.1.3", - "uuid": "^3.1.0" - } - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "zen-observable-ts": { - "version": "0.8.19", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz", - "integrity": "sha512-u1a2rpE13G+jSzrg3aiCqXU5tN2kw41b+cBZGmnc+30YimdkKiDj9bTowcB41eL77/17RF/h+393AuVgShyheQ==", - "requires": { - "tslib": "^1.9.3", - "zen-observable": "^0.8.0" - } } } }, "apollo-server-plugin-base": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.6.1.tgz", - "integrity": "sha512-gLLF0kz4QOOyczDGWuR2ZNDfa1nHfyFNG76ue8Es0/0ujnMT9KoSokXkx1hDh0X7FFTMj/MelYYoNEqgTH88zw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.7.0.tgz", + "integrity": "sha512-//xgYrBYLQSr92W0z3mYsFGoVz3wxKNsv3KcOUBhbOCGTbjZgP7vHOE1vhHhRcpZKKXmjXTVONdrnNJ+XVGi6A==", "requires": { - "apollo-server-types": "0.2.1" + "apollo-server-types": "^0.3.0" } }, "apollo-server-types": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.2.1.tgz", - "integrity": "sha512-ls26d6jjY7x91ctLWtbpQHGW0lcFR1LcOpDvBQUC2aCwQzuW/6yV7F3hfcEdLR9pjIxcA4yAtFQcKf5olDWVkA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.3.0.tgz", + "integrity": "sha512-FMo7kbTkhph9dfIQ3xDbRLObqmdQH9mwSjxhGsX+JxGMRPPXgd3+GZvCeVKOi/udxh//w1otSeAqItjvbj0tfQ==", "requires": { - "apollo-engine-reporting-protobuf": "0.4.0", - "apollo-server-caching": "0.5.0", - "apollo-server-env": "2.4.1" - }, - "dependencies": { - "apollo-server-env": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.1.tgz", - "integrity": "sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg==", - "requires": { - "node-fetch": "^2.1.2", - "util.promisify": "^1.0.0" - } - } + "apollo-engine-reporting-protobuf": "^0.4.4", + "apollo-server-caching": "^0.5.1", + "apollo-server-env": "^2.4.3" } }, "apollo-tracing": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.8.1.tgz", - "integrity": "sha512-zhVNC7N6hg9IJEeSEXFDxcnXD5GJQAbHxaoKVBKEolcIIsz6EGd700ORdagJgFKLReVp9O65HPrZJCg66sVx7g==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.9.0.tgz", + "integrity": "sha512-oqspTrf4BLGbKkIk1vF+I31C2v7PPJmF36TFpT/+zJxNvJw54ji4ZMhtytgVqbVldQEintJmdHQIidYBGKmu+g==", "requires": { - "apollo-server-env": "2.4.1", - "graphql-extensions": "0.8.1" - }, - "dependencies": { - "apollo-server-env": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.1.tgz", - "integrity": "sha512-J4G1Q6qyb7KjjqvQdVM5HUH3QDb52VK1Rv+MWL0rHcstJx9Fh/NK0sS+nujrMfKw57NVUs2d4KuYtl/EnW/txg==", - "requires": { - "node-fetch": "^2.1.2", - "util.promisify": "^1.0.0" - } - }, - "graphql-extensions": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.8.1.tgz", - "integrity": "sha512-d/L4x7/PPWhviJqi7jIWOVJPzfzagYgPizSQUpa+3hozbWhwpWEnfxwgL5/If5MnPUikBnqlkOLCyjHMNdipYA==", - "requires": { - "@apollographql/apollo-tools": "^0.4.0", - "apollo-server-env": "2.4.1", - "apollo-server-types": "0.2.1" - } - } + "apollo-server-env": "^2.4.3", + "graphql-extensions": "^0.11.0" } }, "apollo-utilities": { @@ -6875,6 +8195,12 @@ "buffer-equal": "^1.0.0" } }, + "application-config-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz", + "integrity": "sha1-GTxfCoZUGkxm+6Hi3DhYM2LqXo8=", + "dev": true + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -6887,9 +8213,9 @@ "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==" }, "archiver": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.0.3.tgz", - "integrity": "sha512-d0W7NUyXoLklozHHfvWnHoHS3dvQk8eB22pv5tBwcu1jEO5eZY8W+gHytkAaJ0R8fU2TnNThrWYxjvFlKvRxpw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", + "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", "requires": { "archiver-utils": "^2.1.0", "async": "^2.6.3", @@ -6897,7 +8223,7 @@ "glob": "^7.1.4", "readable-stream": "^3.4.0", "tar-stream": "^2.1.0", - "zip-stream": "^2.1.0" + "zip-stream": "^2.1.2" }, "dependencies": { "async": { @@ -6909,9 +8235,9 @@ } }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6921,15 +8247,10 @@ "path-is-absolute": "^1.0.0" } }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -6956,9 +8277,9 @@ }, "dependencies": { "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -6969,9 +8290,9 @@ } }, "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, "normalize-path": { "version": "3.0.0", @@ -6987,9 +8308,9 @@ "dev": true }, "arg": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", - "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { @@ -7008,6 +8329,14 @@ "requires": { "ast-types-flow": "0.0.7", "commander": "^2.11.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "arr-diff": { @@ -7052,7 +8381,8 @@ "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true }, "array-filter": { "version": "0.0.1", @@ -7071,12 +8401,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "array-from": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", - "dev": true - }, "array-includes": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", @@ -7105,6 +8429,12 @@ } } }, + "array-iterate": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.4.tgz", + "integrity": "sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==", + "dev": true + }, "array-last": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", @@ -7180,26 +8510,189 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "array.prototype.find": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", - "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.1.tgz", + "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.4" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "array.prototype.flat": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", - "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -7223,10 +8716,31 @@ }, "dependencies": { "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", "dev": true + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + } } } }, @@ -7288,12 +8802,6 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, - "ast-metadata-inferer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.1.1.tgz", - "integrity": "sha512-hc9w8Qrgg9Lf9iFcZVhNjUnhrd2BBpTlyCnegPVvCe6O0yMrF57a6Cmh7k+xUsfUOMh9wajOL5AsGOBNEyTCcw==", - "dev": true - }, "ast-types": { "version": "0.11.7", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.7.tgz", @@ -7312,11 +8820,12 @@ "dev": true }, "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, "requires": { - "lodash": "^4.17.10" + "lodash": "^4.17.14" } }, "async-done": { @@ -7342,7 +8851,8 @@ "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true }, "async-limiter": { "version": "1.0.0", @@ -7350,9 +8860,9 @@ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, "async-retry": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz", - "integrity": "sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", + "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", "requires": { "retry": "0.12.0" } @@ -7381,53 +8891,149 @@ "resolved": "https://registry.npmjs.org/audio-extensions/-/audio-extensions-0.0.0.tgz", "integrity": "sha1-0O7+B3+562JYmO7ZmFiQVIzx+NI=" }, + "auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true, + "optional": true + }, "autoprefixer": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.5.1.tgz", - "integrity": "sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ==", + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.5.tgz", + "integrity": "sha512-URo6Zvt7VYifomeAfJlMFnYDhow1rk2bufwkbamPEAtQFcL11moLk4PnR7n9vlu7M+BkXAZkHFA0mIcY7tjQFg==", "dev": true, "requires": { - "browserslist": "^4.5.4", - "caniuse-lite": "^1.0.30000957", + "browserslist": "^4.11.0", + "caniuse-lite": "^1.0.30001036", + "chalk": "^2.4.2", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.14", - "postcss-value-parser": "^3.3.1" + "postcss": "^7.0.27", + "postcss-value-parser": "^4.0.3" }, "dependencies": { - "caniuse-lite": { - "version": "1.0.30000967", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", - "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==", - "dev": true - }, - "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", + "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001037", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001037.tgz", + "integrity": "sha512-qQP40FzWQ1i9RTjxppOUnpM8OwTBFL5DQbjoR9Az32EtM7YUZOw9orFO6rj1C+xWAGzz+X3bUe09Jf5Ep+zpuA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "electron-to-chromium": { + "version": "1.3.384", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.384.tgz", + "integrity": "sha512-9jGNF78o450ymPf63n7/j1HrRAD4xGTsDkKY2X6jtCAWaYgph2A9xQjwfwRpj+AovkARMO+JfZuVCFTdandD6w==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "node-releases": { + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", + "dev": true, + "requires": { + "semver": "^6.3.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" } }, "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", + "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -7435,50 +9041,15 @@ } } }, - "awesome-typescript-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/awesome-typescript-loader/-/awesome-typescript-loader-4.0.1.tgz", - "integrity": "sha512-lx6JJXtuNXyrK1DBx/+w6fbnbcfavMz0a2zszZ89yQ/NAAUE6GzIAtfQ2mkD96piClCoxLpbNpTkVi/H8FJn7w==", - "dev": true, - "requires": { - "chalk": "^2.3.1", - "enhanced-resolve": "3.3.0", - "loader-utils": "^1.1.0", - "lodash": "^4.17.4", - "micromatch": "^3.0.3", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.3" - }, - "dependencies": { - "enhanced-resolve": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.3.0.tgz", - "integrity": "sha512-2qbxE7ek3YxPJ1ML6V+satHkzHpJQKWkRHmRx6mfAoW59yP8YH8BFplbegSP+u2hBd6B6KCOpvJQ3dZAP+hkpg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.5" - } - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - } - } - }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", - "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "axe-core": { "version": "3.4.0", @@ -7486,6 +9057,41 @@ "integrity": "sha512-5C0OdgxPv/DrQguO6Taj5F1dY5OlkWg4SVmZIVABFYKWlnAc5WTLPzG+xJSgIwf2fmY+NiNGiZXhXx2qT0u/9Q==", "dev": true }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", @@ -7550,230 +9156,193 @@ "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "dev": true }, - "babel-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", - "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", "dev": true, "requires": { - "@jest/transform": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/babel__core": "^7.1.0", - "babel-plugin-istanbul": "^5.1.0", - "babel-preset-jest": "^24.9.0", - "chalk": "^2.4.2", - "slash": "^2.0.0" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" }, "dependencies": { - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" } }, - "@jest/fake-timers": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", - "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@jest/types": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-mock": "^24.9.0" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" + "@babel/types": "^7.8.3" } }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" + "@babel/types": "^7.8.3" } }, - "@jest/transform": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", - "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^24.9.0", - "babel-plugin-istanbul": "^5.1.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.1.15", - "jest-haste-map": "^24.9.0", - "jest-regex-util": "^24.9.0", - "jest-util": "^24.9.0", - "micromatch": "^3.1.10", - "pirates": "^4.0.1", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "2.4.1" + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/yargs": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz", - "integrity": "sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, - "jest-haste-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", - "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@jest/types": "^24.9.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.9.0", - "jest-util": "^24.9.0", - "jest-worker": "^24.9.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + } } }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "@babel/traverse": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + } } }, - "jest-mock": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", - "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "@jest/types": "^24.9.0" + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", - "dev": true - }, - "jest-serializer": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz", - "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==", - "dev": true - }, - "jest-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", - "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "@jest/console": "^24.9.0", - "@jest/fake-timers": "^24.9.0", - "@jest/source-map": "^24.9.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", - "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" + "color-convert": "^1.9.0" } }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -7781,23 +9350,188 @@ } } }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", + "babel-jest": { + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.2.4.tgz", + "integrity": "sha512-+yDzlyJVWrqih9i2Cvjpt7COaN8vUwCsKGtxJLzg6I0xhxD54K8mvDUCliPKLufyzHh/c5C4MRj4Vk7VMjOjIg==", "dev": true, "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" + "@jest/transform": "^25.2.4", + "@jest/types": "^25.2.3", + "@types/babel__core": "^7.1.0", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^25.2.1", + "chalk": "^3.0.0", + "slash": "^3.0.0" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true + }, + "schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "babel-plugin-add-module-exports": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.3.3.tgz", + "integrity": "sha512-hC37mm7aAdEb1n8SgggG8a1QuhZapsY/XLCi4ETSH6AVjXBCWEa50CXlOsAMPPWLnSx5Ns6mzz39uvuseh0Xjg==", + "dev": true, + "requires": { + "chokidar": "^2.0.4" + }, + "dependencies": { + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + } + } + }, + "babel-plugin-apply-mdx-type-prop": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.8.tgz", + "integrity": "sha512-xYp5F9mAnZdDRFSd1vF3XQ0GQUbIulCpnuht2jCmK30GAHL8szVL7TgzwhEGamQ6yJmP/gEyYNM9OR5D2n26eA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "7.8.3", + "@mdx-js/util": "^1.5.8" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true } } }, @@ -7811,15 +9545,14 @@ } }, "babel-plugin-emotion": { - "version": "10.0.9", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.9.tgz", - "integrity": "sha512-IfWP12e9/wHtWHxVTzD692Nbcmrmcz2tip7acp6YUqtrP7slAyr5B+69hyZ8jd55GsyNSZwryNnmuDEVe0j+7w==", - "dev": true, + "version": "10.0.29", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.29.tgz", + "integrity": "sha512-7Jpi1OCxjyz0k163lKtqP+LHMg5z3S6A7vMBfHnF06l2unmtsOmFDzZBpGf0CWo1G4m8UACfVcDJiSiRuu/cSw==", "requires": { "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.7.1", - "@emotion/memoize": "0.7.1", - "@emotion/serialize": "^0.11.6", + "@emotion/hash": "0.8.0", + "@emotion/memoize": "0.7.4", + "@emotion/serialize": "^0.11.16", "babel-plugin-macros": "^2.0.0", "babel-plugin-syntax-jsx": "^6.18.0", "convert-source-map": "^1.5.0", @@ -7829,93 +9562,158 @@ }, "dependencies": { "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "babel-plugin-export-metadata": { + "version": "2.3.0-alpha.14", + "resolved": "https://registry.npmjs.org/babel-plugin-export-metadata/-/babel-plugin-export-metadata-2.3.0-alpha.14.tgz", + "integrity": "sha512-BsleN6rMNfd2V0S4Iq99DpZl7jOJhXXP0AjV3O9kzSjF8dEOQsJEfFrrSl2IeM8GShlur9uyhlrvhDLoXAqpVw==", + "dev": true, + "requires": { + "@babel/cli": "^7.5.5", + "@babel/core": "^7.5.5", + "@babel/preset-env": "^7.5.5", + "@babel/template": "^7.4.4", + "babel-core": "7.0.0-bridge.0", + "lodash": "^4.17.14" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "babel-plugin-extract-import-names": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.8.tgz", + "integrity": "sha512-LcLfP8ZRBZMdMAXHLugyvvd5PY0gMmLMWFogWAUsG32X6TYW2Eavx+il2bw73KDbW+UdCC1bAJ3NuU25T1MI3g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "7.8.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true } } }, "babel-plugin-istanbul": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz", - "integrity": "sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", "dev": true, "requires": { - "find-up": "^3.0.0", - "istanbul-lib-instrument": "^3.3.0", - "test-exclude": "^5.2.3" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" } }, "babel-plugin-jest-hoist": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", - "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.1.tgz", + "integrity": "sha512-HysbCQfJhxLlyxDbKcB2ucGYV0LjqK4h6dBoI3RtFuOxTiTWK6XGZMsHb0tGh8iJdV4hC6Z2GCHzVvDeh9i0lQ==", "dev": true, "requires": { "@types/babel__traverse": "^7.0.6" @@ -7954,28 +9752,36 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.0.0.tgz", "integrity": "sha512-MSsoNjn8yLe3s71m4THcOXn1ZKXVHVpKNoRKCAEUe9mrkECAazW+ON5lJnjMPAuAPllAPh/WaUqoSduMu1//ew==", - "dev": true, "requires": { "cosmiconfig": "3.1.0" } }, "babel-plugin-module-resolver": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz", - "integrity": "sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.0.0.tgz", + "integrity": "sha512-3pdEq3PXALilSJ6dnC4wMWr0AZixHRM4utpdpBR9g5QG7B7JwWyukQv7a9hVxkbGFl+nQbrHDqqQOIBtTXTP/Q==", "dev": true, "requires": { - "find-babel-config": "^1.1.0", - "glob": "^7.1.2", - "pkg-up": "^2.0.0", - "reselect": "^3.0.1", - "resolve": "^1.4.0" + "find-babel-config": "^1.2.0", + "glob": "^7.1.6", + "pkg-up": "^3.1.0", + "reselect": "^4.0.0", + "resolve": "^1.13.1" }, "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -7985,34 +9791,86 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } } } }, - "babel-plugin-react-docgen": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-2.0.2.tgz", - "integrity": "sha512-fFendfUUU2KqqE1ki2NyQoZm4uHPoEWPUgBZiPBiowcPZos+4q+chdQh0nlwY5hxs08AMHSH4Pp98RQL0VFS/g==", - "dev": true, - "requires": { - "lodash": "^4.17.10", - "react-docgen": "^3.0.0", - "recast": "^0.14.7" - } - }, "babel-plugin-relay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-relay/-/babel-plugin-relay-5.0.0.tgz", - "integrity": "sha512-IkrocTTmq+QjesIBqwJjSVZfKsonxIGHmuXPkKgIt/gVVZbwLZV7UVXq6aZdmmEc49TG+5LtzlxGAwlQDjGgNQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-relay/-/babel-plugin-relay-9.0.0.tgz", + "integrity": "sha512-2v+7fPI8Iv/MKcutAma8iryVGkwe5Hfmb6rIo0B9USZpMnOYS3TamCq8SwaQLBR5R9RrkbHsx5vxz2cUvhSeOg==", "dev": true, "requires": { "babel-plugin-macros": "^2.0.0" } }, + "babel-plugin-remove-graphql-queries": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.8.1.tgz", + "integrity": "sha512-c/JNri17WypqZNnMsX2PweMe8e5hsJcYNO/VnUBX9iUIvmKBjd143RaUQq0xYa6bpQF0kzpTFVR0sOp+cQlBOQ==", + "dev": true + }, "babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" }, "babel-plugin-syntax-trailing-function-commas": { "version": "7.0.0-beta.0", @@ -8020,14 +9878,11 @@ "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", "dev": true }, - "babel-plugin-transform-dynamic-import": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-dynamic-import/-/babel-plugin-transform-dynamic-import-2.1.0.tgz", - "integrity": "sha512-ja4NWc37+7bV6/uJKCERJEGHEyK1DXgXp8teHvjKC4Jsj3Ib484dJdamFIBtSb40JFniyWZo6ML46usVvfdsSg==", - "dev": true, - "requires": { - "@babel/plugin-syntax-dynamic-import": "^7.0.0" - } + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "dev": true }, "babel-plugin-use-lodash-es": { "version": "0.2.0", @@ -8035,398 +9890,6 @@ "integrity": "sha512-5A9p7y4Q/QuKfA8xmO8Di7N1avRzaiwGVRI/he0I6HZMKGzQXmTXrkxY8rZSDKCTUihyO0hgSLfGj8UIozMAVA==", "dev": true }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true - } - } - }, - "babel-preset-docz": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/babel-preset-docz/-/babel-preset-docz-0.13.6.tgz", - "integrity": "sha512-CTNwxm4s0pl6Tb1i/TMVGQKnovYdJuMKlKAUeXpjnuTevZGm+EbpeWeBSKmM+uPGRrPf4zTZTXMDlxZnA4qu5Q==", - "dev": true, - "requires": { - "@babel/core": "7.2.2", - "@babel/plugin-proposal-class-properties": "7.2.3", - "@babel/plugin-proposal-object-rest-spread": "7.2.0", - "@babel/plugin-syntax-dynamic-import": "7.2.0", - "@babel/plugin-transform-destructuring": "7.2.0", - "@babel/plugin-transform-regenerator": "7.0.0", - "@babel/plugin-transform-runtime": "7.2.0", - "@babel/preset-env": "7.2.3", - "@babel/preset-flow": "7.0.0", - "@babel/preset-react": "7.0.0", - "@babel/preset-typescript": "7.1.0", - "babel-plugin-macros": "^2.4.3", - "babel-plugin-react-docgen": "^2.0.0", - "babel-plugin-transform-dynamic-import": "^2.0.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.21" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/core": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", - "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", - "@babel/helpers": "^7.2.0", - "@babel/parser": "^7.2.2", - "@babel/template": "^7.2.2", - "@babel/traverse": "^7.2.2", - "@babel/types": "^7.2.2", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.10", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } - } - }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==", - "dev": true - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", - "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", - "dev": true, - "requires": { - "regenerator-transform": "^0.13.3" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz", - "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "resolve": "^1.8.1", - "semver": "^5.5.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@babel/preset-env": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.2.3.tgz", - "integrity": "sha512-AuHzW7a9rbv5WXmvGaPX7wADxFkZIqKlbBh1dmZUQp4iwiPpkE/Qnrji6SC4UQCQzvWY/cpHET29eUhXS9cLPw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.2.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.2.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.2.0", - "@babel/plugin-transform-classes": "^7.2.0", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.2.0", - "@babel/plugin-transform-dotall-regex": "^7.2.0", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.2.0", - "@babel/plugin-transform-function-name": "^7.2.0", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "@babel/plugin-transform-modules-systemjs": "^7.2.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-new-target": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.2.0", - "@babel/plugin-transform-parameters": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.2.0", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.2.0", - "browserslist": "^4.3.4", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.3.0" - } - }, - "@babel/preset-react": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", - "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0" - } - }, - "@babel/preset-typescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz", - "integrity": "sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.1.0" - } - }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - } - } - }, - "babel-plugin-macros": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.1.tgz", - "integrity": "sha512-xN3KhAxPzsJ6OQTktCanNpIFnnMsCV+t8OloKxIL72D6+SUZYFn9qfklPgef5HyyDtzYZqqb+fs1S12+gQY82Q==", - "dev": true, - "requires": { - "@babel/runtime": "^7.4.2", - "cosmiconfig": "^5.2.0", - "resolve": "^1.10.0" - }, - "dependencies": { - "resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", - "parse-json": "^4.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - } - } - }, "babel-preset-fbjs": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz", @@ -8462,14 +9925,339 @@ "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" } }, - "babel-preset-jest": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", - "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", + "babel-preset-gatsby": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.3.1.tgz", + "integrity": "sha512-oT/GA1b3xi9xssdwWep874zxD8RZSBg2iL7QHy+emcgkJbYBQJC4NItw561tZGIQqVBJJx8sRaw3V94d1vupOQ==", "dev": true, "requires": { + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/preset-env": "^7.8.7", + "@babel/preset-react": "^7.8.3", + "@babel/runtime": "^7.8.7", + "babel-plugin-dynamic-import-node": "^2.3.0", + "babel-plugin-macros": "^2.8.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24", + "gatsby-core-utils": "^1.1.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "dev": true, + "requires": { + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz", + "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "babel-preset-jest": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.2.1.tgz", + "integrity": "sha512-zXHJBM5iR8oEO4cvdF83AQqqJf3tJrXy3x8nfu2Nlqvn4cneg4Ca8M7cQvC5S9BzDDy1O0tZ9iXru9J6E3ym+A==", + "dev": true, + "requires": { + "@babel/plugin-syntax-bigint": "^7.0.0", "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "babel-plugin-jest-hoist": "^24.9.0" + "babel-plugin-jest-hoist": "^25.2.1" } }, "babel-runtime": { @@ -8496,12 +10284,6 @@ } } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, "bach": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", @@ -8585,11 +10367,28 @@ } } }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" + }, "basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", @@ -8625,28 +10424,91 @@ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" }, - "bfj": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz", - "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==", + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", "dev": true, "requires": { - "bluebird": "^3.5.1", - "check-types": "^7.3.0", - "hoopy": "^0.1.2", - "tryer": "^1.0.0" + "callsite": "1.0.0" + } + }, + "better-opn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-1.0.0.tgz", + "integrity": "sha512-q3eO2se4sFbTERB1dFBDdjTiIIpRohMErpwBX21lhPvmgmQNNrcQj0zbWRhMREDesJvyod9kxBS3kOtdAvkB/A==", + "dev": true, + "requires": { + "open": "^6.4.0" + }, + "dependencies": { + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + } + } + }, + "better-queue": { + "version": "3.8.10", + "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", + "integrity": "sha512-e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA==", + "dev": true, + "requires": { + "better-queue-memory": "^1.0.1", + "node-eta": "^0.9.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "better-queue-memory": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/better-queue-memory/-/better-queue-memory-1.0.4.tgz", + "integrity": "sha512-SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA==", + "dev": true + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "dependencies": { + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + } } }, "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true }, "bintrees": { "version": "1.0.1", @@ -8662,9 +10524,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -8673,6 +10535,12 @@ } } }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -8847,9 +10715,67 @@ "dev": true }, "bowser": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", - "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz", + "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==" + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "brace": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/brace/-/brace-0.11.1.tgz", + "integrity": "sha1-SJb8ydVE7vRfS7dmDbMg07N5/lg=", "dev": true }, "brace-expansion": { @@ -8904,9 +10830,9 @@ } }, "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "browser-resolve": { "version": "1.11.3", @@ -9005,33 +10931,34 @@ } }, "browserslist": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.6.tgz", - "integrity": "sha512-o/hPOtbU9oX507lIqon+UvPYqpx3mHc8cV3QemSBTXwkG8gSQSK6UKvXcE/DcleU3+A59XTUHyCvZ5qGy8xVAg==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz", + "integrity": "sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000963", - "electron-to-chromium": "^1.3.127", - "node-releases": "^1.1.17" + "caniuse-lite": "^1.0.30001038", + "electron-to-chromium": "^1.3.390", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" }, "dependencies": { - "caniuse-lite": { - "version": "1.0.30000967", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", - "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==", - "dev": true - }, "node-releases": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.17.tgz", - "integrity": "sha512-/SCjetyta1m7YXLgtACZGDYJdCSIBAWorDWkGCGZlydP2Ll7J48l7j/JxNYZ+xsgSPbWfdulVS/aY+GdjUsQ7Q==", - "dev": true, - "requires": { - "semver": "^5.3.0" - } + "version": "1.1.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", + "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==", + "dev": true } } }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, "bser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", @@ -9047,19 +10974,48 @@ "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==" }, "buble": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/buble/-/buble-0.19.7.tgz", - "integrity": "sha512-YLgWxX/l+NnfotydBlxqCMPR4FREE4ubuHphALz0FxQ7u2hp3BzxTKQ4nKpapOaRJfEm1gukC68KnT2OymRK0g==", + "version": "0.19.6", + "resolved": "https://registry.npmjs.org/buble/-/buble-0.19.6.tgz", + "integrity": "sha512-9kViM6nJA1Q548Jrd06x0geh+BG2ru2+RMDkIHHgJY/8AcyCs34lTHwra9BX7YdPrZXd5aarkpr/SY8bmPgPdg==", "dev": true, "requires": { - "acorn": "^6.1.1", - "acorn-dynamic-import": "^4.0.0", - "acorn-jsx": "^5.0.1", - "chalk": "^2.4.2", - "magic-string": "^0.25.2", + "chalk": "^2.4.1", + "magic-string": "^0.25.1", "minimist": "^1.2.0", "os-homedir": "^1.0.1", - "regexpu-core": "^4.5.4" + "regexpu-core": "^4.2.0", + "vlq": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "buffer": { @@ -9073,6 +11029,22 @@ "isarray": "^1.0.0" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -9089,6 +11061,12 @@ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, "buffer-from": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", @@ -9119,31 +11097,120 @@ "dev": true }, "bull": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/bull/-/bull-3.8.1.tgz", - "integrity": "sha512-mpcrssn9+sWLRgPHBGfAHmIux1QuXKY3TypuoXG9L492Op234UWuwPXP2DZ+V223Nfv36FubxLdxyNC76BiEoQ==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/bull/-/bull-3.13.0.tgz", + "integrity": "sha512-nP8ICMNHGYDNt6cgPqBPm90n57xA+/Om2wI2EGEOIJtWutjrYt8JAWiiFYjZKrly9UkKlrfG9qgOCwFFdS5xaw==", "requires": { - "cron-parser": "^2.7.3", + "cron-parser": "^2.13.0", "debuglog": "^1.0.0", - "get-port": "^4.2.0", - "ioredis": "^4.5.1", - "lodash": "^4.17.11", - "p-timeout": "^2.0.1", - "promise.prototype.finally": "^3.1.0", - "semver": "^5.6.0", - "util.promisify": "^1.0.0", - "uuid": "^3.2.1" + "get-port": "^5.1.1", + "ioredis": "^4.14.1", + "lodash": "^4.17.15", + "p-timeout": "^3.2.0", + "promise.prototype.finally": "^3.1.2", + "semver": "^6.3.0", + "util.promisify": "^1.0.1", + "uuid": "^3.4.0" }, "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, @@ -9172,43 +11239,35 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", "dev": true, "requires": { - "bluebird": "^3.5.3", - "chownr": "^1.1.1", + "chownr": "^1.1.2", "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" }, "dependencies": { - "bluebird": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", - "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", - "dev": true - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -9220,34 +11279,38 @@ } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { - "yallist": "^3.0.2" + "aggregate-error": "^3.0.0" } }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" } }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } } } }, @@ -9267,33 +11330,101 @@ "unset-value": "^1.0.0" } }, - "cache-loader": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-2.0.1.tgz", - "integrity": "sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ==", + "cache-manager": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", + "integrity": "sha512-XhUuc9eYwkzpK89iNewFwtvcDYMUsvtwzHeyEOPJna/WsVsXcrzsA1ft2M0QqPNunEzLhNCYPo05tEfG+YuNow==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.0", - "normalize-path": "^3.0.0", - "schema-utils": "^1.0.0" + "async": "1.5.2", + "lodash.clonedeep": "4.5.0", + "lru-cache": "4.0.0" }, "dependencies": { - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "lru-cache": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", + "integrity": "sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg=", + "dev": true, + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + } + } + }, + "cache-manager-fs-hash": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/cache-manager-fs-hash/-/cache-manager-fs-hash-0.0.7.tgz", + "integrity": "sha512-7X+FPItAJf1tKKqJx6ljDJQc0fgSR5B+KPxFQLj+vYSL4q9XdrCbZldgsNb6wueRuIooj01wt0FubB08zaefRg==", + "dev": true, + "requires": { + "es6-promisify": "^6.0.0", + "lockfile": "^1.0.4" + }, + "dependencies": { + "es6-promisify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.0.tgz", + "integrity": "sha512-jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw==", "dev": true } } }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "cached-iterable": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/cached-iterable/-/cached-iterable-0.2.1.tgz", @@ -9306,18 +11437,6 @@ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, - "callbag-observe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callbag-observe/-/callbag-observe-1.0.0.tgz", - "integrity": "sha512-ZwNu0qvbyNQMw0pHnbn+Zdmfe0FvHlzQy28b84Ba4kg5O6F/LrVB9/ljGN5hqf6OXYukk38ThhmM/NPdkmrH9w==", - "dev": true - }, - "callbag-subject": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/callbag-subject/-/callbag-subject-1.0.2.tgz", - "integrity": "sha512-pMIKoXxJdO6SypymWQyLJHW/idY0esgT68I6xjYQjGZch0IVPlM5Bd+YSJaQ17fGLJEvK3HsaRaDuU8nmAqWOQ==", - "dev": true - }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -9336,6 +11455,12 @@ "caller-callsite": "^2.0.0" } }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, "callsites": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", @@ -9354,7 +11479,8 @@ "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true }, "camelcase-css": { "version": "2.0.1", @@ -9388,57 +11514,24 @@ "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", - "integrity": "sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000921", - "electron-to-chromium": "^1.3.92", - "node-releases": "^1.1.1" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30000921", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz", - "integrity": "sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw==", - "dev": true - } - } - }, - "electron-to-chromium": { - "version": "1.3.93", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.93.tgz", - "integrity": "sha512-H+tt+fedI+C5zl4yGtzdk17e6mOYAyawolXuAojWBULIbqOz9VR7h0cG5YcivQ1yCXrpw+Rjk6cBw47HlYtnKg==", - "dev": true - } } }, - "caniuse-db": { - "version": "1.0.30001005", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001005.tgz", - "integrity": "sha512-MSRfm2N6FRDSpAJ00ipCuFe0CNink5JJOFzl4S7fLSBJdowhGq3uMxzkWGTjvvReo1PuWfK5YYJydJJ+9mJebw==", - "dev": true - }, "caniuse-lite": { - "version": "1.0.30000859", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000859.tgz", - "integrity": "sha512-BucSdVZocKyKAdThos0fx7Ds941M1jddFazv7U3stFqxyWOc2JrxVn87Qo02DzP9Txb4lw9jIQddh9IT4WA3dQ==", + "version": "1.0.30001038", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz", + "integrity": "sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ==", "dev": true }, "capitalize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capitalize/-/capitalize-2.0.0.tgz", - "integrity": "sha512-HwGrAbSn44Tm5Nz+m02oQHf+9y771rmb/cTbXFcoADy29LFRCj4PhWBT54qxfY2HJBWBplwx17Pd4ek6OFbr/Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/capitalize/-/capitalize-2.0.3.tgz", + "integrity": "sha512-Qc5ksT1/zEJBbFYD05h99hCNEW0cgyD0zzE5WvkgisNnppJ+16zfaSk34evF0j6pGW8hejkRUeygJ5uN5k22SQ==", "dev": true }, "case-sensitive-paths-webpack-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz", - "integrity": "sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==", "dev": true }, "caseless": { @@ -9447,38 +11540,59 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "ccount": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", - "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", + "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==", "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -9507,6 +11621,18 @@ "title-case": "^2.1.0", "upper-case": "^1.1.1", "upper-case-first": "^1.1.0" + }, + "dependencies": { + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "dev": true, + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + } } }, "change-emitter": { @@ -9522,9 +11648,9 @@ "dev": true }, "character-entities-html4": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz", - "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", + "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", "dev": true }, "character-entities-legacy": { @@ -9545,44 +11671,38 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, "check-types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz", - "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", "dev": true }, "cheerio": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", - "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", "requires": { "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", + "dom-serializer": "~0.1.1", "entities": "~1.1.1", "htmlparser2": "^3.9.1", "lodash": "^4.15.0", "parse5": "^3.0.1" }, "dependencies": { - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "requires": { "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" + "entities": "^1.1.1" } }, "parse5": { @@ -9596,49 +11716,38 @@ } }, "chokidar": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.0.tgz", - "integrity": "sha512-ebzWopcacB2J19Jsb5RPtMrzmjUZ5VAQnsL0Ztrix3lswozHbiDp+1Lg3AWSKHdwsps/W2vtshA/x3I827F78g==", - "dev": true, + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", "requires": { - "anymatch": "^3.0.1", - "async-each": "^1.0.3", - "braces": "^3.0.2", - "fsevents": "^2.0.6", - "glob-parent": "^5.0.0", - "is-binary-path": "^2.1.0", - "is-glob": "^4.0.1", - "normalize-path": "^3.0.0", - "readdirp": "^3.0.1" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" }, "dependencies": { "anymatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.1.tgz", - "integrity": "sha512-WQdpV5fo7XSY76HPN4pqdUl13Q282JsV0gQ8OnIxQsqDEHDZJCBkQ89fL1Mb3tNiPzGQnxMHM5G2iG3k9O6yng==", - "dev": true, + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, "binary-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", - "dev": true + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -9647,23 +11756,20 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "fsevents": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.6.tgz", - "integrity": "sha512-vfmKZp3XPM36DNF0qhW+Cdxk7xm7gTEHY1clv1Xq1arwRQuKZgAhw+NZNWbJBtuaNxzNXwhfdPYRrvIbjfS33A==", - "dev": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", "optional": true }, "glob-parent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", - "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", - "dev": true, + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "requires": { "is-glob": "^4.0.1" } @@ -9672,7 +11778,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "requires": { "binary-extensions": "^2.0.0" } @@ -9681,7 +11786,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -9689,29 +11793,32 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "readdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.0.1.tgz", - "integrity": "sha512-emMp13NEwWQQX1yeDgrzDNCSY7NHV6k9HTW0OhyQqOAzYacbqQhnmWiCYjxNPcqMTQ9k77oXQJp28jkytm3+jg==", - "dev": true, + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", "requires": { - "picomatch": "^2.0.4" + "picomatch": "^2.0.7" + }, + "dependencies": { + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==" + } } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "requires": { "is-number": "^7.0.0" } @@ -9733,18 +11840,11 @@ } }, "chrono-node": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-1.3.11.tgz", - "integrity": "sha512-jDWRnY6nYvzfV3HPYBqo+tot7tcsUs9i3arGbMdI0TouPSXP2C2y/Ctp27rxKTQDi6yuTxAB2cw+Q6igGhOhdQ==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-1.4.3.tgz", + "integrity": "sha512-ZyKcnTcr8i7Mt9p4+ixMHEuR6+eMTrjYCL9Rm9TZHviLleCtcZoVzmr2uSc+Vg8MX1YbNCnPbEd4rfV8WvzLcw==", "requires": { - "moment": "2.21.0" - }, - "dependencies": { - "moment": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", - "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==" - } + "dayjs": "^1.8.19" } }, "ci-info": { @@ -9805,6 +11905,18 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "dev": true + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -9815,11 +11927,22 @@ } }, "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", + "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", "dev": true }, + "cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, "cli-truncate": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", @@ -9848,17 +11971,15 @@ "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" } } } @@ -9869,18 +11990,6 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, - "clipboard": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz", - "integrity": "sha1-Ng1taUbpmnof7zleQrqStem1oWs=", - "dev": true, - "optional": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, "clipboardy": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.2.tgz", @@ -10012,28 +12121,13 @@ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", "dev": true }, - "clone-deep": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "for-own": "^0.1.3", - "is-plain-object": "^2.0.1", - "kind-of": "^3.0.2", - "lazy-cache": "^1.0.3", - "shallow-clone": "^0.1.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "mimic-response": "^1.0.0" } }, "clone-stats": { @@ -10053,16 +12147,10 @@ "readable-stream": "^2.3.5" } }, - "closest-file-data": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/closest-file-data/-/closest-file-data-0.1.4.tgz", - "integrity": "sha1-l1+HwTLymdJKA3W59jyj+4j3Kzo=", - "dev": true - }, "cluster-key-slot": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.0.12.tgz", - "integrity": "sha512-21O0kGmvED5OJ7ZTdqQ5lQQ+sjuez33R+d35jZKLwqUb5mqcPHUsxOSzj61+LHVtxGZd1kShbQM3MjB/gBJkVg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", + "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==" }, "co": { "version": "4.6.0", @@ -10078,6 +12166,37 @@ "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "code-point-at": { @@ -10100,45 +12219,18 @@ "typo-js": "*" } }, - "codesandboxer": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/codesandboxer/-/codesandboxer-0.7.2.tgz", - "integrity": "sha512-Fl4UAWi2F0qtFUzY2V+HX/nXm8yGHBW7UZNyBbixOqvwm6zvkx0YLJTFBUp9C5aAjvQP+5Bw6Ie9sN6UK8rebw==", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "form-data": "^2.3.2", - "isomorphic-unfetch": "^2.0.0", - "lz-string": "^1.4.4", - "path-browserify": "^1.0.0" - }, - "dependencies": { - "path-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.0.tgz", - "integrity": "sha512-Hkavx/nY4/plImrZPHRk2CL9vpOymZLgEbMNX1U0bjcBL7QN9wODxyx0yaMZURSQaUtSEvDrfAvxa9oPb0at9g==", - "dev": true - } - } - }, - "codesandboxer-fs": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/codesandboxer-fs/-/codesandboxer-fs-0.4.7.tgz", - "integrity": "sha512-jaOSia4wLmG/E5StQsWT3uLGfE2ojnp5KfveSkZuO4dstoQhE765MSUK2ACURUNoAR0mkc0pV4LGA1zge1dmPg==", - "dev": true, - "requires": { - "codesandboxer": "^0.7.2", - "meow": "^5.0.0", - "pkg-dir": "^2.0.0", - "resolve": "^1.7.1" - } - }, "collapse-white-space": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", "dev": true }, + "collect-v8-coverage": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz", + "integrity": "sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ==", + "dev": true + }, "collection-map": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", @@ -10245,29 +12337,47 @@ } }, "comma-separated-tokens": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.6.tgz", - "integrity": "sha512-f20oA7jsrrmERTS70r3tmRSxR8IJV2MTN7qe6hzgX+3ARfXrdMJFvGWvWQK0xpcBurg9j9eO2MiqzZ8Y+/UPCA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "dev": true + }, + "command-exists": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz", + "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw==", "dev": true }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.0.0.tgz", + "integrity": "sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ==", + "dev": true }, "comment-json": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-1.1.3.tgz", - "integrity": "sha1-aYbDMw/uDEyeAMI5jNYa+l2PI54=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-3.0.2.tgz", + "integrity": "sha512-ysJasbJ671+8mPEmwLOfLFqxoGtSmjyoep+lKRVH4J1/hsGu79fwetMDQWk8de8mVgqDZ43D7JuJAlACqjI1pg==", "dev": true, "requires": { - "json-parser": "^1.0.0" + "core-util-is": "^1.0.2", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } } }, "comment-parser": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.6.2.tgz", - "integrity": "sha512-Wdms0Q8d4vvb2Yk72OwZjwNWtMklbC5Re7lD9cjCP/AG1fhocmc0TrxGBBAXPLy8fZQPrfHGgyygwI0lA7pbzA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.2.tgz", + "integrity": "sha512-4Rjb1FnxtOcv9qsfuaNuVsmmVn4ooVoBHzYfyKteiXwIU84PClyGA5jASoFMwPV93+FPh9spwueXauxFJZkGAg==", "dev": true }, "common-tags": { @@ -10282,24 +12392,38 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "component-classes": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", - "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "dev": true + }, + "compass-vertical-rhythm": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/compass-vertical-rhythm/-/compass-vertical-rhythm-1.4.5.tgz", + "integrity": "sha512-bJo3IYX7xmmZCDYjrT2XolaiNjGZ4E2JvUGxpdU0ecbH4ZLK786wvc8aHKVrGrKct9JlkmJbUi8YLrQWvOc+uA==", "dev": true, "requires": { - "component-indexof": "0.0.3" + "convert-css-length": "^1.0.1", + "object-assign": "^4.1.0", + "parse-unit": "^1.0.1" } }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" }, - "component-indexof": { + "component-inherit": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", - "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, "component-props": { @@ -10315,12 +12439,12 @@ "dev": true }, "compress-commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.0.0.tgz", - "integrity": "sha512-gnETNngrfsAoLBENM8M0DoiCDJkHwz3OfIg4mBtqKDcRgE4oXNwHxHxgHvwKKlrcD7eZ7BVTy4l8t9xVF7q3FQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", + "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", "requires": { "buffer-crc32": "^0.2.13", - "crc32-stream": "^2.0.0", + "crc32-stream": "^3.0.1", "normalize-path": "^3.0.0", "readable-stream": "^2.3.6" }, @@ -10333,18 +12457,18 @@ } }, "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { - "mime-db": ">= 1.40.0 < 2" + "mime-db": ">= 1.43.0 < 2" }, "dependencies": { "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", "dev": true } } @@ -10373,17 +12497,143 @@ } }, "compression-webpack-plugin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-2.0.0.tgz", - "integrity": "sha512-bDgd7oTUZC8EkRx8j0sjyCfeiO+e5sFcfgaFcjVhfQf5lLya7oY2BczxcJ7IUuVjz5m6fy8IECFmVFew3xLk8Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz", + "integrity": "sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug==", "dev": true, "requires": { - "cacache": "^11.2.0", - "find-cache-dir": "^2.0.0", + "cacache": "^13.0.1", + "find-cache-dir": "^3.0.0", "neo-async": "^2.5.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.4.0", + "schema-utils": "^2.6.1", + "serialize-javascript": "^2.1.2", "webpack-sources": "^1.0.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.0.tgz", + "integrity": "sha512-PtXtQb7IrD8O+h6Cq1dbpJH5NzD8+9keN1zZ0YlpDzl1PwXEJEBj6u1Xa92t1Hwluoozd9TNKul5Hi2iqpsWwg==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + } } }, "concat-map": { @@ -10408,24 +12658,76 @@ "resolved": "https://registry.npmjs.org/condense-whitespace/-/condense-whitespace-2.0.0.tgz", "integrity": "sha512-Ath9o58/0rxZXbyoy3zZgrVMoIemi30sukG/btuMKCLyqfQt3dNOWc9N3EHEMa2Q3i0tXQPDJluYFLwy7pJuQw==" }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "confusing-browser-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", + "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", + "dev": true + }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, - "consola": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.6.0.tgz", - "integrity": "sha512-jge0Ip1NVoOafxZq1zxG1sLYVBtKV45BF39VV6YKSWb45nyLOHY51YP0+cBQ2DyOTKhCjtF0XrRJkjTvX4wzgQ==", - "dev": true - }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, + "console-polyfill": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/console-polyfill/-/console-polyfill-0.1.2.tgz", + "integrity": "sha1-ls/tUcr3gYn2mVcubxgnHcN8DjA=", + "dev": true + }, "consolidate": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.0.tgz", @@ -10450,39 +12752,82 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, "content-security-policy-builder": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz", - "integrity": "sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz", + "integrity": "sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==" }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "convert-css-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/convert-css-length/-/convert-css-length-1.0.2.tgz", + "integrity": "sha512-ecV7j3hXyXN1X2XfJBzhMR0o1Obv0v3nHmn0UiS3ACENrzbxE/EknkiunS/fCwQva0U62X1GChi8GaPh4oTlLg==", + "dev": true, + "requires": { + "console-polyfill": "^0.1.2", + "parse-unit": "^1.0.1" + } + }, + "convert-hrtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", + "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==", + "dev": true + }, "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "convict": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/convict/-/convict-4.3.1.tgz", - "integrity": "sha512-BLgyHUJREKCHVZ8rbXKIuNTDX/Is2GB/HZyUqh1IwvV0EeYBWtX+54OCG8tkIiAxB2yKowdP19+RHY5kCQ/SOg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/convict/-/convict-5.2.0.tgz", + "integrity": "sha512-C3cdUwo47cCikZNzu5Vv8AL0MuXVVeg9t/Gyr9qyK5ZpCjOkMPmJ85KUF3CowNeSfj4UtztHxS+hoO9wGRh6kg==", "requires": { - "depd": "1.1.2", - "json5": "1.0.1", + "json5": "2.1.0", "lodash.clonedeep": "4.5.0", - "moment": "2.22.2", - "validator": "7.2.0", - "yargs-parser": "10.0.0" + "moment": "2.24.0", + "validator": "11.1.0", + "yargs-parser": "13.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "requires": { + "minimist": "^1.2.0" + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + }, + "yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, "cookie": { @@ -10491,19 +12836,12 @@ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "cookie-parser": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz", - "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz", + "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==", "requires": { - "cookie": "0.3.1", + "cookie": "0.4.0", "cookie-signature": "1.0.6" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - } } }, "cookie-signature": { @@ -10571,90 +12909,189 @@ } }, "copy-text-to-clipboard": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-1.0.4.tgz", - "integrity": "sha512-4hDE+0bgqm4G/nXnt91CP3rc0vOptaePPU5WfVZuhv2AYNJogdLHR4pF1XPgXDAGY4QCzj9pD7zKATa+50sQPg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.1.1.tgz", + "integrity": "sha512-oSuMj4ArDGSLcLPsDhzWOhalzOVV0ErCHNfZNNr+spC+iWJ6PVSLzPPrJw/rcdFZyOhugn8iw6O0nrpY/ZrEMg==", "dev": true }, "copy-to-clipboard": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz", - "integrity": "sha512-c3GdeY8qxCHGezVb1EFQfHYK/8NZRemgcTIzPq7PuxjHAf/raKibn2QdhHPb/y6q74PMgH6yizaDZlRmw6QyKw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", "dev": true, "requires": { - "toggle-selection": "^1.0.3" + "toggle-selection": "^1.0.6" } }, - "copy-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-PlZRs9CUMnAVylZq+vg2Juew662jWtwOXOqH4lbQD9ZFhRG9R7tVStOgHt21CBGVq7k5yIJaz8TXDLSjV+Lj8Q==", + "copyfiles": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.2.0.tgz", + "integrity": "sha512-iJbHJI+8OKqsq+4JF0rqgRkZzo++jqO6Wf4FUU1JM41cJF6JcY5968XyF4tm3Kkm7ZOMrqlljdm8N9oyY5raGw==", "dev": true, "requires": { - "cacache": "^11.3.2", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "webpack-log": "^2.0.0" + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^0.5.1", + "noms": "0.0.0", + "through2": "^2.0.1", + "yargs": "^13.2.4" }, "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -10662,8 +13099,7 @@ "core-js": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" }, "core-js-compat": { "version": "3.6.4", @@ -10676,32 +13112,52 @@ }, "dependencies": { "browserslist": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz", - "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", + "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001017", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.44" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "caniuse-lite": { - "version": "1.0.30001020", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz", - "integrity": "sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA==", + "version": "1.0.30001037", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001037.tgz", + "integrity": "sha512-qQP40FzWQ1i9RTjxppOUnpM8OwTBFL5DQbjoR9Az32EtM7YUZOw9orFO6rj1C+xWAGzz+X3bUe09Jf5Ep+zpuA==", "dev": true }, "electron-to-chromium": { - "version": "1.3.334", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.334.tgz", - "integrity": "sha512-RcjJhpsVaX0X6ntu/WSBlW9HE9pnCgXS9B8mTUObl1aDxaiOa0Lu+NMveIS5IDC+VELzhM32rFJDCC+AApVwcA==", + "version": "1.3.384", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.384.tgz", + "integrity": "sha512-9jGNF78o450ymPf63n7/j1HrRAD4xGTsDkKY2X6jtCAWaYgph2A9xQjwfwRpj+AovkARMO+JfZuVCFTdandD6w==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "node-releases": { - "version": "1.1.45", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz", - "integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==", + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -10715,6 +13171,39 @@ } } }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, "semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", @@ -10734,9 +13223,9 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", - "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "requires": { "object-assign": "^4", "vary": "^1" @@ -10746,7 +13235,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-3.1.0.tgz", "integrity": "sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q==", - "dev": true, "requires": { "is-directory": "^0.3.1", "js-yaml": "^3.9.0", @@ -10754,124 +13242,6 @@ "require-from-string": "^2.0.1" } }, - "cp-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz", - "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^2.0.0", - "nested-error-stacks": "^2.0.0", - "pify": "^4.0.1", - "safe-buffer": "^5.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "cpy": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-7.2.0.tgz", - "integrity": "sha512-CUYi9WYd7vdtEcq1NKqiS/yY2WdaDCNOBA/AoTQHVJzlpJMqctB8py9JrHgGIft6TgO5m8ZidI4l1ZD+RMr/wA==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "cp-file": "^6.1.0", - "globby": "^9.2.0", - "nested-error-stacks": "^2.1.0" - }, - "dependencies": { - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - } - }, - "fast-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - } - } - }, "crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", @@ -10881,9 +13251,9 @@ }, "dependencies": { "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", + "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -10891,23 +13261,25 @@ } } }, - "crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dev": true, - "requires": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - } - }, "crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", "requires": { "crc": "^3.4.4", - "readable-stream": "^2.0.0" + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "create-ecdh": { @@ -10948,65 +13320,102 @@ } }, "create-react-context": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz", - "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", + "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", "dev": true, "requires": { - "fbjs": "^0.8.0", - "gud": "^1.0.0" + "gud": "^1.0.0", + "warning": "^4.0.3" } }, "cron": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/cron/-/cron-1.7.1.tgz", - "integrity": "sha512-gmMB/pJcqUVs/NklR1sCGlNYM7TizEw+1gebz20BMc/8bTm/r7QUp3ZPSPlG8Z5XRlvb7qhjEjq/+bdIfUCL2A==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", + "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", "requires": { "moment-timezone": "^0.5.x" } }, "cron-parser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-2.11.0.tgz", - "integrity": "sha512-L5LAGlvq2xmCLErhjQRX8IL5v72y8jhGOaxrarYOhse0kJjJGb/vY/0sV/c7F/SylJGkUIY2iZPPJXZD3glZqA==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-2.13.0.tgz", + "integrity": "sha512-UWeIpnRb0eyoWPVk+pD3TDpNx3KCFQeezO224oJIkktBrcW6RoAPOx5zIKprZGfk6vcYSmA8yQXItejSaDBhbQ==", "requires": { "is-nan": "^1.2.1", - "moment-timezone": "^0.5.23" + "moment-timezone": "^0.5.25" } }, "cross-fetch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.0.0.tgz", - "integrity": "sha512-gnx0GnDyW73iDq6DpqceL8i4GGn55PPKDzNwZkopJ3mKPcfJ0BUIXBsnYfJBVw+jFDB+hzIp2ELNRdqoxN6M3w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz", + "integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=", "requires": { - "node-fetch": "2.0.0", - "whatwg-fetch": "2.0.3" + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" }, "dependencies": { "node-fetch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.0.0.tgz", - "integrity": "sha1-mCu6Q+zU8pIqKcwYamu7C7c/y6Y=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" }, "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" } } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -11026,6 +13435,12 @@ "randomfill": "^1.0.3" } }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, "css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", @@ -11046,16 +13461,6 @@ } } }, - "css-animation": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.5.0.tgz", - "integrity": "sha512-hWYoWiOZ7Vr20etzLh3kpWgtC454tW5vn4I6rLANDgpzNSkO7UfOqyCEeaoBSG9CYWQpRkFWTWbWW8o3uZrNLw==", - "dev": true, - "requires": { - "babel-runtime": "6.x", - "component-classes": "^1.2.5" - } - }, "css-blank-pseudo": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", @@ -11065,15 +13470,46 @@ "postcss": "^7.0.5" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -11083,9 +13519,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11109,6 +13545,15 @@ "timsort": "^0.3.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -11118,6 +13563,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -11147,15 +13605,46 @@ "postcss-selector-parser": "^5.0.0-rc.4" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -11165,9 +13654,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11176,30 +13665,205 @@ } }, "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", + "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.23", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.1.1", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.2", + "schema-utils": "^2.6.0" }, "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", + "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" + } + }, + "postcss-modules-scope": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz", + "integrity": "sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-value-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", + "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", + "dev": true + }, + "schema-utils": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -11223,6 +13887,12 @@ "postcss-modules-values": "1.3.0" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -11236,21 +13906,6 @@ "supports-color": "^2.0.0" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -11285,6 +13940,15 @@ "postcss": "^6.0.1" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -11305,15 +13969,46 @@ "postcss": "^7.0.5" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -11323,9 +14018,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11351,14 +14046,14 @@ "dev": true }, "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", + "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", "dev": true, "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" + "cssesc": "^3.0.0", + "fastparse": "^1.1.2", + "regexpu-core": "^4.6.0" }, "dependencies": { "jsesc": { @@ -11367,31 +14062,49 @@ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "dev": true, "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "regenerate": "^1.4.0" + } + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", "dev": true }, "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "dev": true, "requires": { "jsesc": "~0.5.0" } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true } } }, @@ -11418,9 +14131,9 @@ "dev": true }, "css-vars-ponyfill": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/css-vars-ponyfill/-/css-vars-ponyfill-2.1.2.tgz", - "integrity": "sha512-Jfff/j2AGwr+WJaIbxVroTa9sFXy9b0xe5zjWEVQ9aoeCpd0e6iOo4D+d3OoLDTWcHCf2UBTswis/hN6fKEKiA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-vars-ponyfill/-/css-vars-ponyfill-2.2.1.tgz", + "integrity": "sha512-bFdKEQbCtwoDl4/iPaqjGDMZRgnVn6k7c6XUlOrW+OzMIweWV6b5YbajR99dUiAsB1WpfbGGiiE9T1cnSh2pgA==", "dev": true }, "css-what": { @@ -11429,15 +14142,15 @@ "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" }, "cssdb": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.3.0.tgz", - "integrity": "sha512-VHPES/+c9s+I0ryNj+PXvp84nz+ms843z/efpaEINwP/QfGsINL3gpLp5qjapzDNzNzbXxur8uxKxSXImrg4ag==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", "dev": true }, "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "cssnano": { @@ -11452,6 +14165,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "cosmiconfig": { "version": "5.0.7", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", @@ -11483,6 +14205,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -11540,6 +14275,15 @@ "postcss-unique-selectors": "^4.0.1" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -11549,6 +14293,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -11589,6 +14346,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -11598,6 +14364,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -11645,31 +14424,34 @@ } }, "cssom": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", - "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==" + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" }, "cssstyle": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz", - "integrity": "sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz", + "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==", "requires": { - "cssom": "0.3.x" + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } } }, "csstype": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.4.tgz", - "integrity": "sha512-lAJUJP3M6HxFXbqtGRc0iZrdyeN+WzOWeY0q/VnFzI+kqVrYIzC7bWlKqCW7oCIdzoPkvfp82EVvrTlQ8zsWQg==", - "dev": true + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz", + "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==" }, "csv-stringify": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.0.tgz", - "integrity": "sha512-VMYPbE8zWz475smwqb9VbX9cj0y4J0PBl59UdcqzLkzXHZZ8dh4Rmbb0ZywsWEtUml4A96Hn7Q5MW9ppVghYzg==", - "requires": { - "lodash.get": "~4.4.2" - } + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.3.6.tgz", + "integrity": "sha512-kPcRbMvo5NLLD71TAqW5K+g9kbM2HpIZJLAzm73Du8U+5TXmDp9YtXKCBLyxEh0q3Jbg8QhNFBz3b5VJzjZ/jw==" }, "currently-unhandled": { "version": "0.4.1", @@ -11723,6 +14505,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, "requires": { "abab": "^2.0.0", "whatwg-mimetype": "^2.2.0", @@ -11735,13 +14518,12 @@ "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" }, "datauri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/datauri/-/datauri-1.1.0.tgz", - "integrity": "sha512-0q+cTTKx7q8eDteZRIQLTFJuiIsVing17UbWTPssY4JLSMaYsk/VKpNulBDo9NSgQWcvlPrkEHW8kUO67T/7mQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/datauri/-/datauri-2.0.0.tgz", + "integrity": "sha512-zS2HSf9pI5XPlNZgIqJg/wCJpecgU/HA6E/uv2EfaWnW1EiTGLfy/EexTIsC9c99yoCOTXlqeeWk4FkCSuO3/g==", "requires": { - "image-size": "^0.6.2", - "mimer": "^0.3.2", - "semver": "^5.5.0" + "image-size": "^0.7.3", + "mimer": "^1.0.0" } }, "date-fns": { @@ -11930,6 +14712,11 @@ } } }, + "dayjs": { + "version": "1.8.23", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.23.tgz", + "integrity": "sha512-NmYHMFONftoZbeOhVz6jfiXI4zSiPN6NoVWJgC0aZQfYVwzy/ZpESPHuCcI0B8BUMpSJQ08zenHDbofOLKq8hQ==" + }, "debounce": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", @@ -12012,6 +14799,15 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -12019,10 +14815,26 @@ "dev": true }, "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } }, "deep-extend": { "version": "0.6.0", @@ -12035,9 +14847,9 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, "default-compare": { @@ -12067,6 +14879,19 @@ "ip-regex": "^2.1.0" }, "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -12124,6 +14949,12 @@ "clone": "^1.0.2" } }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", @@ -12188,24 +15019,78 @@ } }, "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" }, "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "fast-glob": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -12216,47 +15101,118 @@ "path-is-absolute": "^1.0.0" } }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "merge2": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, @@ -12265,13 +15221,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "dev": true, - "optional": true - }, "denque": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", @@ -12303,9 +15252,9 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detab": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.1.tgz", - "integrity": "sha512-/hhdqdQc5thGrqzjyO/pz76lDZ5GSuAs6goxOaKTsvPk7HNnzAyFN5lyHgqpX4/s1i66K8qMGj+VhA9504x7DQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.3.tgz", + "integrity": "sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A==", "dev": true, "requires": { "repeat-string": "^1.5.4" @@ -12317,6 +15266,12 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true + }, "detect-newline": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", @@ -12339,6 +15294,155 @@ "debug": "^2.6.0" } }, + "devcert": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.1.0.tgz", + "integrity": "sha512-ppyIBJueMMisYvJABaXESY10CwEm1pUXoLOm6TeBO2bbDUQE8ZjJPNADlu31I2InL7hduSgratzRG/dHUDF41w==", + "dev": true, + "requires": { + "@types/configstore": "^2.1.1", + "@types/debug": "^0.0.30", + "@types/get-port": "^3.2.0", + "@types/glob": "^5.0.34", + "@types/lodash": "^4.14.92", + "@types/mkdirp": "^0.5.2", + "@types/node": "^8.5.7", + "@types/rimraf": "^2.0.2", + "@types/tmp": "^0.0.33", + "application-config-path": "^0.1.0", + "command-exists": "^1.2.4", + "configstore": "^3.0.0", + "debug": "^3.1.0", + "eol": "^0.9.1", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "password-prompt": "^1.0.4", + "rimraf": "^2.6.2", + "sudo-prompt": "^8.2.0", + "tmp": "^0.0.33", + "tslib": "^1.10.0" + }, + "dependencies": { + "@types/glob": { + "version": "5.0.36", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.36.tgz", + "integrity": "sha512-KEzSKuP2+3oOjYYjujue6Z3Yqis5HKA1BsIC+jZ1v3lrRNdsqyNNtX0rQf6LSuI4DJJ2z5UV//zBZCcvM0xikg==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/node": { + "version": "8.10.59", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.59.tgz", + "integrity": "sha512-8RkBivJrDCyPpBXhVZcjh7cQxVBSmRk9QM7hOketZzp6Tg79c0N8kkpAIito9bnJ3HCVCHVYz+KHTEbfQNfeVQ==", + "dev": true + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + } + } + }, "dicer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", @@ -12348,15 +15452,21 @@ } }, "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diff-match-patch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", + "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==", "dev": true }, "diff-sequences": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.3.0.tgz", - "integrity": "sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.1.0.tgz", + "integrity": "sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==", "dev": true }, "diffie-hellman": { @@ -12479,59 +15589,60 @@ } }, "docz": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/docz/-/docz-0.13.7.tgz", - "integrity": "sha512-kxbluFEkkIZFC6P2AYNDCi2qQAyRXj6AL0z3mebptvctu0veuB1YqEL1GqTZ9DtuUr4ZLsqmg34MqJrJNzhlHw==", + "version": "2.3.0-alpha.14", + "resolved": "https://registry.npmjs.org/docz/-/docz-2.3.0-alpha.14.tgz", + "integrity": "sha512-jVYWTaq9QdkJsWKRL9jj32UTvzLMaCUHuWWfWuaoSN3q5Y4kfzDrnr8Wh6qimn5DlMShmjpdpYj7IrYIoQPPhA==", "dev": true, "requires": { - "@mdx-js/tag": "^0.16.6", - "@sindresorhus/slugify": "^0.6.0", + "@emotion/core": "^10.0.16", + "@mdx-js/react": "^1.0.27", "array-sort": "^1.0.0", - "callbag-observe": "^1.0.0", - "callbag-subject": "^1.0.2", "capitalize": "^2.0.0", - "deepmerge": "^3.0.0", - "docz-core": "^0.13.7", + "docz-core": "2.3.0-alpha.14", "fast-deep-equal": "^2.0.1", - "lodash": "^4.17.11", - "prop-types": "^15.6.2", - "react": "^16.7.0", - "react-dom": "^16.7.0", - "react-imported-component": "^5.2.4", - "react-router": "^4.3.1", - "react-router-dom": "^4.3.1", - "react-router-hash-link": "^1.2.1", + "gatsby": "^2.13.27", + "gatsby-plugin-eslint": "^2.0.5", + "gatsby-plugin-typescript": "^2.1.6", + "gatsby-theme-docz": "2.3.0-alpha.14", + "lodash": "^4.17.14", + "marksy": "^8.0.0", + "match-sorter": "^3.1.1", + "pascal-case": "^3.1.0", + "prop-types": "^15.7.2", + "scheduler": "^0.15.0", "ulid": "^2.3.0", - "yargs": "^12.0.5" + "yargs": "^13.3.0" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "deepmerge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", - "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -12541,30 +15652,12 @@ "locate-path": "^3.0.0" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -12575,44 +15668,19 @@ "path-exists": "^3.0.0" } }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -12633,88 +15701,86 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, - "react": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz", - "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "scheduler": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", + "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", "dev": true, "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.6" - }, - "dependencies": { - "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } + "object-assign": "^4.1.1" } }, - "react-dom": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", - "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.6" - }, - "dependencies": { - "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -12724,206 +15790,47 @@ } }, "docz-core": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/docz-core/-/docz-core-0.13.7.tgz", - "integrity": "sha512-VPQJj8yKepZMCTX/u/dxq3iW/1i8WkKaY1Aiet4NGz/pcvRHFHu1Pcwsp/3QM1wGNqbXw+96DJBOO7OpRVECXg==", + "version": "2.3.0-alpha.14", + "resolved": "https://registry.npmjs.org/docz-core/-/docz-core-2.3.0-alpha.14.tgz", + "integrity": "sha512-ejX4wyK+dXByEYicD3/pTehegVi72GDfXj6t/rsa7m+Jk86GkHgU5jZIRhbqM1RZE/DymuDUnW0jfVMo4Cpbhg==", "dev": true, "requires": { - "@babel/core": "7.2.2", - "@babel/polyfill": "7.2.5", - "@babel/runtime": "^7.2.0", - "@mdx-js/loader": "^0.16.6", - "@mdx-js/mdx": "^0.16.6", - "@mdx-js/mdxast": "^0.16.6", - "@sindresorhus/slugify": "^0.6.0", - "@svgr/webpack": "^4.1.0", - "art-template": "^4.13.2", - "babel-loader": "^8.0.2", - "babel-preset-docz": "^0.13.6", - "babylon": "^6.18.0", - "cache-loader": "^2.0.0", - "chalk": "^2.4.1", - "chokidar": "^2.0.4", - "common-tags": "^1.8.0", - "cpy": "^7.0.1", - "deepmerge": "^3.0.0", + "@sindresorhus/slugify": "^0.9.1", + "chalk": "^2.4.2", + "chokidar": "^3.0.2", "detect-port": "^1.3.0", - "docz-utils": "^0.13.6", - "dotenv": "^6.2.0", + "docz-utils": "^2.3.0-alpha.2", "env-dot-prop": "^2.0.1", - "express": "^4.16.4", "fast-deep-equal": "^2.0.1", - "fast-glob": "^2.2.4", - "file-loader": "^3.0.1", - "find-up": "^3.0.0", - "friendly-errors-webpack-plugin": "^1.7.0", - "fs-extra": "^7.0.1", + "fast-glob": "^3.0.4", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", "get-pkg-repo": "^4.1.0", - "happypack": "^5.0.0", - "html-minifier": "^3.5.21", - "humanize-string": "^1.0.2", - "koa-range": "^0.3.0", - "load-cfg": "^0.13.3", - "lodash": "^4.17.11", - "mini-html-webpack-plugin": "^0.2.3", - "p-reduce": "^1.0.0", - "progress-estimator": "^0.2.2", - "react-dev-utils": "^7.0.0", - "react-docgen-typescript-loader": "^3.0.0-rc.0", - "react-hot-loader": "^4.6.3", - "rehype-docz": "^0.13.6", - "rehype-slug": "^2.0.2", - "remark-docz": "^0.13.3", - "remark-frontmatter": "^1.3.1", - "remark-parse": "^6.0.2", - "resolve": "^1.9.0", - "signale": "^1.3.0", - "source-map-loader": "^0.2.4", - "terser-webpack-plugin": "^1.2.0", - "titleize": "^1.0.1", - "url-loader": "^1.1.2", - "webpack": "^4.28.2", - "webpack-bundle-analyzer": "^3.0.3", - "webpack-chain": "^5.0.1", - "webpack-dev-server": "^3.1.14", - "webpack-hot-client": "^4.1.1", - "webpack-manifest-plugin": "^2.0.4", - "webpackbar": "^3.1.4", - "ws": "^6.1.2", - "yargs": "^12.0.5" + "humanize-string": "^2.1.0", + "latest-version": "^5.1.0", + "load-cfg": "^2.1.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "ora": "^3.4.0", + "react-docgen": "^4.1.1", + "react-docgen-actual-name-handler": "^2.1.0", + "react-docgen-external-proptypes-handler": "^1.0.3", + "react-docgen-typescript": "^1.12.5", + "recast": "^0.18.1", + "resolve": "^1.11.1", + "shelljs": "^0.8.3", + "signale": "^1.4.0", + "titleize": "^2.1.0", + "typescript": "3.5.3", + "wait-on": "^3.3.0", + "xstate": "^4.6.7", + "yargs": "^13.3.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/core": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", - "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.2.2", - "@babel/helpers": "^7.2.0", - "@babel/parser": "^7.2.2", - "@babel/template": "^7.2.2", - "@babel/traverse": "^7.2.2", - "@babel/types": "^7.2.2", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.10", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==", - "dev": true - }, - "@babel/polyfill": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.2.5.tgz", - "integrity": "sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug==", - "dev": true, - "requires": { - "core-js": "^2.5.7", - "regenerator-runtime": "^0.12.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - }, "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", "dev": true }, "ansi-regex": { @@ -12932,50 +15839,22 @@ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "color-convert": "^1.9.0" } }, - "browserslist": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", - "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000929", - "electron-to-chromium": "^1.3.103", - "node-releases": "^1.1.3" + "fill-range": "^7.0.1" } }, "camelcase": { @@ -12984,938 +15863,138 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "caniuse-lite": { - "version": "1.0.30000967", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", - "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deepmerge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", - "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", - "dev": true - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dev": true, - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "~1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.4", - "qs": "6.5.2", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "fast-glob": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", - "integrity": "sha512-0BvMaZc1k9F+MeWWMe8pL6YltFzZYcJsYU7D4JyDA6PAczaXvxqQQ/z+mDF7/4Mw01DeUc+i3CTKajnkANkV4w==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", + "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", "dev": true, "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "pump": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { - "minimist": "^1.2.0" + "is-glob": "^4.0.1" } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "is-extglob": "^2.1.1" } }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" + "p-locate": "^4.1.0" } }, "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", + "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", "dev": true }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", - "dev": true, - "optional": true - }, - "node-releases": { - "version": "1.1.17", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.17.tgz", - "integrity": "sha512-/SCjetyta1m7YXLgtACZGDYJdCSIBAWorDWkGCGZlydP2Ll7J48l7j/JxNYZ+xsgSPbWfdulVS/aY+GdjUsQ7Q==", + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { - "semver": "^5.3.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "opn": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", - "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -13924,205 +16003,152 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, - "react-dev-utils": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-7.0.5.tgz", - "integrity": "sha512-zJnqqb0x6gd63E3xoz5pXAxBPNaW75Hyz7GgQp0qPhMroBCRQtRvG67AoTZZY1z4yCYVJQZAfQJFdnea0Ujbug==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "address": "1.0.3", - "browserslist": "4.4.1", - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.6.1", - "find-up": "3.0.0", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.0.0", - "immer": "1.10.0", - "inquirer": "6.2.1", - "is-root": "2.0.0", - "loader-utils": "1.2.3", - "opn": "5.4.0", - "pkg-up": "2.0.0", - "react-error-overlay": "^5.1.4", - "recursive-readdir": "2.2.2", - "shell-quote": "1.6.1", - "sockjs-client": "1.3.0", - "strip-ansi": "5.0.0", - "text-table": "0.2.0" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "remark-frontmatter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.1.tgz", - "integrity": "sha512-Zj/fDMYnSVgMCeKp8fXIhtMoZq4G6E1dnwfMoO8fVXrm/+oVSiN8YMREtwN2cctgK9EsnYSeS1ExX2hcX/fE1A==", - "dev": true, - "requires": { - "fault": "^1.0.1", - "xtend": "^4.0.1" - } - }, - "remark-parse": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", - "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", - "dev": true, - "requires": { - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^1.1.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^1.0.0", - "vfile-location": "^2.0.0", - "xtend": "^4.0.1" - } - }, "resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "dev": true, "requires": { "path-parse": "^1.0.6" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", - "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", - "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.0.0" + "ansi-regex": "^4.1.0" } }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "async-limiter": "~1.0.0" + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -14131,195 +16157,162 @@ } } }, - "docz-theme-default": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/docz-theme-default/-/docz-theme-default-0.13.7.tgz", - "integrity": "sha512-N/T6IJG4K9VldqgnA07AkzOxAZ5eUS3wa4XlvOZ+ADOM8b3s6O3RFD6Fr1xVaHpEKmPi1Ia9qVVYZuYxN0vfYA==", - "dev": true, - "requires": { - "@emotion/core": "^10.0.5", - "@emotion/styled": "^10.0.5", - "codemirror": "^5.42.2", - "copy-text-to-clipboard": "^1.0.4", - "docz": "^0.13.7", - "emotion-theming": "^10.0.5", - "facepaint": "^1.2.1", - "hotkeys-js": "^3.4.1", - "lodash.flattendepth": "^4.7.0", - "lodash.get": "^4.4.2", - "match-sorter": "^2.3.0", - "polished": "^2.3.1", - "prop-types": "15.6.2", - "rc-tooltip": "^3.7.3", - "re-resizable": "^4.11.0", - "react": "^16.7.0", - "react-codemirror2": "^5.1.0", - "react-dom": "^16.7.0", - "react-feather": "^1.1.5", - "react-live": "^1.12.0", - "react-perfect-scrollbar": "^1.4.2", - "react-powerplug": "^1.0.0", - "react-sizes": "^1.0.4", - "webfontloader": "^1.6.28" - }, - "dependencies": { - "react": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz", - "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.6" - }, - "dependencies": { - "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - }, - "react-dom": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", - "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.6" - }, - "dependencies": { - "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - } - } - }, "docz-utils": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/docz-utils/-/docz-utils-0.13.6.tgz", - "integrity": "sha512-nUrenLbuY/qlbKwJrIp133OGmxgzCgQJ4bJc1BerJrjAbr27Fqgarmqzwlmoa02yMsF3kHp5F9dxTTOnA2C5UA==", + "version": "2.3.0-alpha.2", + "resolved": "https://registry.npmjs.org/docz-utils/-/docz-utils-2.3.0-alpha.2.tgz", + "integrity": "sha512-wSB/RHo/RKB/BoeQGTBu91vFxIIDx6GJJ6RFHrayJHrQAXWkxcAvksWXxn8uwRCh7OuwUSuhtyS3hP2hu5Tg+Q==", "dev": true, "requires": { - "@babel/generator": "^7.2.2", - "@babel/parser": "^7.2.3", - "@babel/traverse": "^7.2.3", - "codesandboxer-fs": "^0.4.7", - "fs-extra": "^7.0.1", - "humanize-string": "^1.0.2", + "@babel/generator": "^7.5.5", + "@babel/parser": "^7.5.5", + "@babel/traverse": "^7.5.5", + "art-template": "^4.13.2", + "fs-extra": "^8.1.0", + "humanize-string": "^2.1.0", "js-string-escape": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "lodash.flatten": "^4.4.0", - "lodash.get": "^4.4.2", - "prettier": "^1.15.3", - "remark-frontmatter": "^1.3.1", + "jsx-ast-utils": "^2.2.1", + "lodash": "^4.17.14", + "prettier": "^1.18.2", + "remark-frontmatter": "^1.3.2", "remark-parse": "^6.0.2", - "remark-parse-yaml": "^0.0.1", - "remark-slug": "^5.1.1", - "signale": "^1.3.0", - "strip-indent": "^2.0.0", - "to-vfile": "^5.0.2", + "remark-parse-yaml": "^0.0.2", + "remark-slug": "^5.1.2", + "signale": "^1.4.0", + "strip-indent": "^3.0.0", + "to-vfile": "^6.0.0", "unescape-js": "^1.1.1", - "unified": "^7.1.0", + "unified": "^8.3.2", "unist-util-find": "^1.0.1", - "unist-util-is": "^2.1.2", - "unist-util-visit": "^1.4.0" + "unist-util-is": "^3.0.0", + "unist-util-visit": "^1.4.1" }, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "@babel/types": "^7.4.4", + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.8.3" } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, - "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.11" + "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -14329,33 +16322,22 @@ "ms": "^2.1.1" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true }, "remark-frontmatter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.1.tgz", - "integrity": "sha512-Zj/fDMYnSVgMCeKp8fXIhtMoZq4G6E1dnwfMoO8fVXrm/+oVSiN8YMREtwN2cctgK9EsnYSeS1ExX2hcX/fE1A==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz", + "integrity": "sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==", "dev": true, "requires": { "fault": "^1.0.1", @@ -14385,10 +16367,25 @@ "xtend": "^4.0.1" } }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + }, "unist-util-visit": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.0.tgz", - "integrity": "sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "dev": true, "requires": { "unist-util-visit-parents": "^2.0.0" @@ -14396,12 +16393,6 @@ } } }, - "dom-align": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.8.2.tgz", - "integrity": "sha512-17vInOylbB7H4qua7QRsmQT05FFTZemO8BhnOPgF9BPqjAPDyQr/9V8fmJbn05vQ31m2gu3EJSSYN2u94szUZg==", - "dev": true - }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -14412,10 +16403,13 @@ } }, "dom-helpers": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", - "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==", - "dev": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.1.2" + } }, "dom-iterator": { "version": "1.0.0", @@ -14464,6 +16458,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, "requires": { "webidl-conversions": "^4.0.2" } @@ -14472,15 +16467,14 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, "requires": { "domelementtype": "1" } }, "dompurify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.7.tgz", - "integrity": "sha512-S3O0lk6rFJtO01ZTzMollCOGg+WAtCwS3U5E2WSDY/x/sy7q70RjEC4Dmrih5/UqzLLB9XoKJ8KqwBxaNvBu4A==" + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.8.tgz", + "integrity": "sha512-vIOSyOXkMx81ghEalh4MLBtDHMx1bhKlaqHDMqM2yeitJ996SLOk5mGdDpI9ifJAgokred8Rmu219fX4OltqXw==" }, "domutils": { "version": "1.5.1", @@ -14515,14 +16509,9 @@ } }, "dotenv": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz", - "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==" - }, - "dotenv-expand": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", - "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" }, "dtrace-provider": { "version": "0.8.7", @@ -14539,6 +16528,12 @@ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "duplexify": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", @@ -14593,15 +16588,15 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "ejs": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", "dev": true }, "electron-to-chromium": { - "version": "1.3.131", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.131.tgz", - "integrity": "sha512-NSO4jLeyGLWrT4mzzfYX8vt1MYCoMI5LxSYAjt0H9+LF/14JyiKJSyyjA6AJTxflZlEM5v3QU33F0ohbPMCAPg==", + "version": "1.3.392", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.392.tgz", + "integrity": "sha512-/hsgeVdReDsyTBE0aU9FRdh1wnNPrX3xlz3t61F+CJPOT+Umfi9DXHsCX85TEgWZQqlow0Rw44/4/jbU2Sqgkg==", "dev": true }, "elegant-spinner": { @@ -14638,30 +16633,24 @@ "dev": true }, "emotion-theming": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.10.tgz", - "integrity": "sha512-E4SQ3Y91avxxydDgubi/po/GaC5MM1XHm8kcClKg1PA/TeOye0PiLBzAzlgt9dBzDRV9+qHDunsayPvzVYIYng==", + "version": "10.0.27", + "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz", + "integrity": "sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==", "dev": true, "requires": { - "@emotion/weak-memoize": "0.2.2", - "hoist-non-react-statics": "^3.3.0", - "object-assign": "^4.1.1" + "@babel/runtime": "^7.5.5", + "@emotion/weak-memoize": "0.2.5", + "hoist-non-react-statics": "^3.3.0" }, "dependencies": { "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "dev": true, "requires": { "react-is": "^16.7.0" } - }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", - "dev": true } } }, @@ -14687,6 +16676,95 @@ "once": "^1.4.0" } }, + "engine.io": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz", + "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ws": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", + "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz", + "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", + "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, "enhanced-resolve": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz", @@ -14717,56 +16795,40 @@ "resolved": "https://registry.npmjs.org/env-rewrite/-/env-rewrite-1.0.2.tgz", "integrity": "sha1-PjRKla8b2qs0pVlHm4vjq9CAQYM=" }, + "envinfo": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.0.tgz", + "integrity": "sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ==", + "dev": true + }, "enzyme": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.9.0.tgz", - "integrity": "sha512-JqxI2BRFHbmiP7/UFqvsjxTirWoM1HfeaJrmVSZ9a1EADKkZgdPcAuISPMpoUiHlac9J4dYt81MC5BBIrbJGMg==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz", + "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==", "dev": true, "requires": { - "array.prototype.flat": "^1.2.1", - "cheerio": "^1.0.0-rc.2", - "function.prototype.name": "^1.1.0", + "array.prototype.flat": "^1.2.3", + "cheerio": "^1.0.0-rc.3", + "enzyme-shallow-equal": "^1.0.1", + "function.prototype.name": "^1.1.2", "has": "^1.0.3", - "html-element-map": "^1.0.0", - "is-boolean-object": "^1.0.0", - "is-callable": "^1.1.4", - "is-number-object": "^1.0.3", - "is-regex": "^1.0.4", - "is-string": "^1.0.4", + "html-element-map": "^1.2.0", + "is-boolean-object": "^1.0.1", + "is-callable": "^1.1.5", + "is-number-object": "^1.0.4", + "is-regex": "^1.0.5", + "is-string": "^1.0.5", "is-subset": "^0.1.1", "lodash.escape": "^4.0.1", "lodash.isequal": "^4.5.0", - "object-inspect": "^1.6.0", - "object-is": "^1.0.1", + "object-inspect": "^1.7.0", + "object-is": "^1.0.2", "object.assign": "^4.1.0", - "object.entries": "^1.0.4", - "object.values": "^1.0.4", - "raf": "^3.4.0", + "object.entries": "^1.1.1", + "object.values": "^1.1.1", + "raf": "^3.4.1", "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.1.2" - }, - "dependencies": { - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - } - } - }, - "enzyme-adapter-react-16": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.12.1.tgz", - "integrity": "sha512-GB61gvY97XvrA6qljExGY+lgI6BBwz+ASLaRKct9VQ3ozu0EraqcNn3CcrUckSGIqFGa1+CxO5gj5is5t3lwrw==", - "dev": true, - "requires": { - "enzyme-adapter-utils": "^1.11.0", - "object.assign": "^4.1.0", - "object.values": "^1.1.0", - "prop-types": "^15.7.2", - "react-is": "^16.8.6", - "react-test-renderer": "^16.0.0-0", - "semver": "^5.6.0" + "string.prototype.trim": "^1.2.1" }, "dependencies": { "define-properties": { @@ -14778,6 +16840,200 @@ "object-keys": "^1.0.12" } }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", + "dev": true + }, + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + } + } + }, + "enzyme-adapter-react-16": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz", + "integrity": "sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q==", + "dev": true, + "requires": { + "enzyme-adapter-utils": "^1.13.0", + "enzyme-shallow-equal": "^1.0.1", + "has": "^1.0.3", + "object.assign": "^4.1.0", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "react-is": "^16.12.0", + "react-test-renderer": "^16.0.0-0", + "semver": "^5.7.0" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -14788,13 +17044,13 @@ } }, "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" } @@ -14811,63 +17067,110 @@ } }, "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz", + "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==", "dev": true }, - "react-test-renderer": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.8.6.tgz", - "integrity": "sha512-H2srzU5IWYT6cZXof6AhUcx/wEyJddQ8l7cLM/F7gDXYyPr4oq+vCIxJYXVGhId1J706sqziAjuOEjyNkfgoEw==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.13.6" - }, - "dependencies": { - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", - "dev": true - }, - "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "enzyme-adapter-utils": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz", - "integrity": "sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz", + "integrity": "sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ==", "dev": true, "requires": { - "airbnb-prop-types": "^2.13.2", - "function.prototype.name": "^1.1.0", + "airbnb-prop-types": "^2.15.0", + "function.prototype.name": "^1.1.2", "object.assign": "^4.1.0", - "object.fromentries": "^2.0.0", + "object.fromentries": "^2.0.2", "prop-types": "^15.7.2", - "semver": "^5.6.0" + "semver": "^5.7.1" }, "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -14877,6 +17180,18 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "object.fromentries": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", @@ -14888,29 +17203,56 @@ "react-is": "^16.8.1" } }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", - "dev": true - }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "enzyme-shallow-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz", + "integrity": "sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ==", + "dev": true, + "requires": { + "has": "^1.0.3", + "object-is": "^1.0.2" + }, + "dependencies": { + "object-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", "dev": true } } }, "enzyme-to-json": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.3.5.tgz", - "integrity": "sha512-DmH1wJ68HyPqKSYXdQqB33ZotwfUhwQZW3IGXaNXgR69Iodaoj8TF/D9RjLdz4pEhGq2Tx2zwNUIjBuqoZeTgA==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.4.4.tgz", + "integrity": "sha512-50LELP/SCPJJGic5rAARvU7pgE3m1YaNj7JLM+Qkhl5t7PAs6fiyc8xzc50RnkKPFQCv0EeFVjEWdIFRGPWMsA==", "dev": true, "requires": { - "lodash": "^4.17.4" + "lodash": "^4.17.15", + "react-is": "^16.12.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz", + "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==", + "dev": true + } } }, + "eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "dev": true + }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -14924,18 +17266,17 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "error-stack-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz", - "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", "dev": true, "requires": { - "stackframe": "^1.0.4" + "stackframe": "^1.1.1" } }, "es-abstract": { @@ -15061,9 +17402,9 @@ } }, "eslint": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.5.1.tgz", - "integrity": "sha512-32h99BoLYStT1iq1v2P9uwpyznQ4M2jRiFB6acitKz52Gqn+vPaMDUTB1bYi1WN4Nquj2w+t+bimYUG83DC55A==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -15073,19 +17414,19 @@ "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.2", + "eslint-utils": "^1.4.3", "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.1", + "espree": "^6.1.2", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", - "globals": "^11.7.0", + "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.4.1", + "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", @@ -15094,7 +17435,7 @@ "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", + "optionator": "^0.8.3", "progress": "^2.0.0", "regexpp": "^2.0.1", "semver": "^6.1.2", @@ -15106,23 +17447,96 @@ }, "dependencies": { "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -15141,6 +17555,12 @@ "esutils": "^2.0.2" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "eslint-scope": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", @@ -15151,6 +17571,21 @@ "estraverse": "^4.1.1" } }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, "glob-parent": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", @@ -15171,6 +17606,15 @@ } } }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -15178,9 +17622,9 @@ "dev": true }, "import-fresh": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", - "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -15188,151 +17632,576 @@ } }, "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "run-async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, "strip-json-comments": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", "dev": true }, - "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, "eslint-config-prettier": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.3.0.tgz", - "integrity": "sha512-EWaGjlDAZRzVFveh2Jsglcere2KK5CJBhkNSa1xs3KfMUGdRiT7lG089eqPdvlzWHpAqaekubOsOMu8W8Yk71A==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz", + "integrity": "sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==", "dev": true, "requires": { "get-stdin": "^6.0.0" + } + }, + "eslint-config-react-app": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", + "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.9" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", + "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" }, "dependencies": { - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } } } }, - "eslint-plugin-compat": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.3.0.tgz", - "integrity": "sha512-QCgYy3pZ+zH10dkBJus1xER0359h1UhJjufhQRqp9Owm6BEoLZeSqxf2zINwL1OGao9Yc96xPYIW3nQj5HUryg==", + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", + "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", "dev": true, "requires": { - "@babel/runtime": "^7.4.5", - "ast-metadata-inferer": "^0.1.1", - "browserslist": "^4.6.3", - "caniuse-db": "^1.0.30000977", - "lodash.memoize": "4.1.2", - "mdn-browser-compat-data": "^0.0.84", - "semver": "^6.1.2" + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" }, "dependencies": { - "@babel/runtime": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", - "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "browserslist": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.2.tgz", - "integrity": "sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw==", + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001004", - "electron-to-chromium": "^1.3.295", - "node-releases": "^1.1.38" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" } }, - "caniuse-lite": { - "version": "1.0.30001005", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001005.tgz", - "integrity": "sha512-g78miZm1Z5njjYR216a5812oPiLgV1ssndgGxITHWUopmjUrCswMisA0a2kSB7a0vZRox6JOKhM51+efmYN8Mg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.296", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz", - "integrity": "sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ==", - "dev": true - }, - "node-releases": { - "version": "1.1.39", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", - "integrity": "sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "semver": "^6.3.0" + "glob": "^7.1.3" + } + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", + "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "eslint-plugin-graphql": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-3.1.1.tgz", + "integrity": "sha512-VNu2AipS8P1BAnE/tcJ2EmBWjFlCnG+1jKdUlFNDQjocWZlFiPpMu9xYNXePoEXK+q+jG51M/6PdhOjEgJZEaQ==", + "dev": true, + "requires": { + "graphql-config": "^2.0.1", + "lodash": "^4.11.1" + } + }, + "eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" } }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } } } }, "eslint-plugin-jsdoc": { - "version": "15.9.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-15.9.7.tgz", - "integrity": "sha512-i+bfhx9zPw9DkbrRvxH5i0f8NIizUHACSSMiGJXhznP4qOoWi/o3TQMjaP8+vwzPSqlXL/orf+KbuH8xN70ZRg==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-22.1.0.tgz", + "integrity": "sha512-54NdbICM7KrxsGUqQsev9aIMqPXyvyBx2218Qcm0TQ16P9CtBI+YY4hayJR6adrxlq4Ej0JLpgfUXWaQVFqmQg==", "dev": true, "requires": { - "comment-parser": "^0.6.2", + "comment-parser": "^0.7.2", "debug": "^4.1.1", - "jsdoctypeparser": "5.0.1", + "jsdoctypeparser": "^6.1.0", "lodash": "^4.17.15", - "object.entries-ponyfill": "^1.0.1", - "regextras": "^0.6.1" + "regextras": "^0.7.0", + "semver": "^6.3.0", + "spdx-expression-parse": "^3.0.0" }, "dependencies": { "debug": { @@ -15343,6 +18212,12 @@ "requires": { "ms": "^2.1.1" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -15397,31 +18272,45 @@ } }, "eslint-plugin-prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.1.tgz", - "integrity": "sha512-A+TZuHZ0KU0cnn56/9mfR7/KjUJ9QNVXUhwvRFSR7PGPe0zQR6PTkmyqg1AtUUEOzTqeRsUwyKFh0oVZKVCrtA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz", + "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" } }, "eslint-plugin-react": { - "version": "7.15.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.15.1.tgz", - "integrity": "sha512-YotSItgMPwLGlr3df44MGVyXnHkmKcpkHTzpte3QwJtocr3nFqCXCuoxFZeBtnT8RHdj038NlTvam3dcAFrMcA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz", + "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==", "dev": true, "requires": { - "array-includes": "^3.0.3", + "array-includes": "^3.1.1", "doctrine": "^2.1.0", "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0", - "object.values": "^1.1.0", + "jsx-ast-utils": "^2.2.3", + "object.entries": "^1.1.1", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", "prop-types": "^15.7.2", - "resolve": "^1.12.0" + "resolve": "^1.15.1", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.2", + "xregexp": "^4.3.0" }, "dependencies": { + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -15431,10 +18320,78 @@ "object-keys": "^1.0.12" } }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, "jsx-ast-utils": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", - "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", "dev": true, "requires": { "array-includes": "^3.0.3", @@ -15450,14 +18407,26 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", "dev": true, "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "has": "^1.0.3" } @@ -15480,16 +18449,28 @@ } }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "dev": true, "requires": { "path-parse": "^1.0.6" } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, + "eslint-plugin-react-hooks": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", + "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==", + "dev": true + }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -15501,12 +18482,12 @@ } }, "eslint-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", - "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.0.0" + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { @@ -15515,33 +18496,27 @@ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", "dev": true }, - "esm": { - "version": "3.2.22", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.22.tgz", - "integrity": "sha512-z8YG7U44L82j1XrdEJcqZOLUnjxco8pO453gKOlaMD1/md1n/5QrscAmYG+oKUspsmDLuBFZrpbxI6aQ67yRxA==", - "dev": true - }, "espree": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz", - "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { - "acorn": "^7.0.0", - "acorn-jsx": "^5.0.2", + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" }, "dependencies": { "acorn": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", - "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", "dev": true }, "acorn-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", - "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", + "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true } } @@ -15552,9 +18527,9 @@ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz", + "integrity": "sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==", "dev": true, "requires": { "estraverse": "^4.0.0" @@ -15584,6 +18559,15 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "eval": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.4.tgz", + "integrity": "sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw==", + "dev": true, + "requires": { + "require-like": ">= 0.1.1" + } + }, "event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", @@ -15594,15 +18578,21 @@ "es5-ext": "~0.10.14" } }, + "event-source-polyfill": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.12.tgz", + "integrity": "sha512-WjOTn0LIbaN08z/8gNt3GYAomAdm6cZ2lr/QdvhTTEipr5KR6lds2ziUH+p/Iob4Lk6NClKhwPOmn1NjQEcJCg==", + "dev": true + }, "event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, "eventemitter2": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", - "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.3.1.tgz", + "integrity": "sha512-cxfu3g0IBn/JEhAPV33NZTi8llQQ5j62D0Yf4ir1U9uQ1DlRZLL3Hh2E/+TWDprSy4BETWvrGBZMUexuC2b6Lw==", "dev": true }, "eventemitter3": { @@ -15642,41 +18632,82 @@ "dev": true }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", "dev": true, "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "dependencies": { - "cross-spawn": { + "get-stream": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - } + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -15687,12 +18718,6 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, - "exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -15735,17 +18760,116 @@ } }, "expect": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-24.8.0.tgz", - "integrity": "sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/expect/-/expect-25.2.4.tgz", + "integrity": "sha512-hfuPhPds4yOsZtIw4kwAg70r0hqGmpqekgA+VX7pf/3wZ6FY+xIOXZhNsPMMMsspYG/YIsbAiwqsdnD4Ht+bCA==", "dev": true, "requires": { - "@jest/types": "^24.8.0", - "ansi-styles": "^3.2.0", - "jest-get-type": "^24.8.0", - "jest-matcher-utils": "^24.8.0", - "jest-message-util": "^24.8.0", - "jest-regex-util": "^24.3.0" + "@jest/types": "^25.2.3", + "ansi-styles": "^4.0.0", + "jest-get-type": "^25.2.1", + "jest-matcher-utils": "^25.2.3", + "jest-message-util": "^25.2.4", + "jest-regex-util": "^25.2.1" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "diff-sequences": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.1.tgz", + "integrity": "sha512-foe7dXnGlSh3jR1ovJmdv+77VQj98eKCHHwJPbZ2eEf0fHwKbkZicpPxEch9smZ+n2dnF6QFwkOQdLq9hpeJUg==", + "dev": true + }, + "jest-diff": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.3.tgz", + "integrity": "sha512-VtZ6LAQtaQpFsmEzps15dQc5ELbJxy4L2DOSo2Ev411TUEtnJPkAMD7JneVypeMJQ1y3hgxN9Ao13n15FAnavg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.1", + "jest-get-type": "^25.2.1", + "pretty-format": "^25.2.3" + } + }, + "jest-get-type": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.1.tgz", + "integrity": "sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w==", + "dev": true + }, + "jest-matcher-utils": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.2.3.tgz", + "integrity": "sha512-ZmiXiwQRVM9MoKjGMP5YsGGk2Th5ncyRxfXKz5AKsmU8m43kgNZirckVzaP61MlSa9LKmXbevdYqVp1ZKAw2Rw==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "jest-diff": "^25.2.3", + "jest-get-type": "^25.2.1", + "pretty-format": "^25.2.3" + } + }, + "pretty-format": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "dev": true, + "requires": { + "@jest/types": "^25.2.3", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } } }, "expect-ct": { @@ -15856,6 +18980,11 @@ "mime-db": "1.43.0" } }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -15938,12 +19067,197 @@ "resolved": "https://registry.npmjs.org/express-enforces-ssl/-/express-enforces-ssl-1.1.0.tgz", "integrity": "sha1-zynGphxb3YAuLH7SZaSpjnSH0aw=" }, - "express-static-gzip": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/express-static-gzip/-/express-static-gzip-0.3.2.tgz", - "integrity": "sha512-xFOW5Lxrh4xLey5i6gGWHOFznJayGCxazUau0kq7ElUh1t7q2B6IlvWv4d3UJwJej+aXEu9os/VpzPvRchdNiA==", + "express-graphql": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/express-graphql/-/express-graphql-0.9.0.tgz", + "integrity": "sha512-wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w==", + "dev": true, "requires": { - "serve-static": "^1.12.3" + "accepts": "^1.3.7", + "content-type": "^1.0.4", + "http-errors": "^1.7.3", + "raw-body": "^2.4.1" + }, + "dependencies": { + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", + "dev": true, + "requires": { + "mime-db": "1.43.0" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + } + } + }, + "express-static-gzip": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/express-static-gzip/-/express-static-gzip-2.0.6.tgz", + "integrity": "sha512-RWpcgN8NkbOZLXQ14tVzM0nEZpb9GGVt5vGGECzy1CU5Og1AMdKSoU15k2xtTYKN34t4HC3qCXrHvxnTqcG1iw==", + "requires": { + "serve-static": "^1.14.1" + }, + "dependencies": { + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + } } }, "extend": { @@ -16051,17 +19365,17 @@ } } }, + "extract-files": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-5.0.1.tgz", + "integrity": "sha512-qRW6y9eKF0VbCyOoOEtFhzJ3uykAw8GKwQVXyAIqwocyEWW4m+v+evec34RwtUkkxxHh7NKBLJ6AnXM8W4dH5w==", + "dev": true + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, - "facepaint": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/facepaint/-/facepaint-1.2.1.tgz", - "integrity": "sha512-oNvBekbhsm/0PNSOWca5raHNAi6dG960Bx6LJgxDPNF59WpuspgQ17bN5MKwOr7JcFdQYc7StW3VZ28DBZLavQ==", - "dev": true - }, "fancy-log": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", @@ -16075,34 +19389,24 @@ } }, "farce": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/farce/-/farce-0.2.6.tgz", - "integrity": "sha1-PTB/rp6sRqFI/VU13uLfvPZTuoM=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/farce/-/farce-0.2.8.tgz", + "integrity": "sha512-x4N70Ti9nOo6/waNJUZMLDd/U6+WA0gV+AUE1gFS/npD/FliTUCKbBLNQYbgeejzDdw0MgtPCCjRX8kPTHjspA==", "dev": true, "requires": { - "dom-helpers": "^3.3.1", + "dom-helpers": "^3.4.0", "invariant": "^2.2.4", "is-promise": "^2.1.0", "query-string": "^5.1.1", - "redux": "^4.0.0", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - } + "redux": "^4.0.1", + "warning": "^4.0.3" } }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true }, "fast-diff": { "version": "1.2.0", @@ -16134,12 +19438,32 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "fast-memoize": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz", + "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==", "dev": true }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz", + "integrity": "sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "fault": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.2.tgz", @@ -16231,15 +19555,50 @@ "integrity": "sha512-l0rOL3aKkoi6ea7MNZe6OHgqYYpn48Qfflr8Pe9G9JPPTx5A+sfboK91ZufzIs59/lPqh351l0eb6iKU9J5oGg==" }, "file-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "dev": true, "requires": { "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" + "schema-utils": "^0.4.5" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } } }, + "file-type": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", + "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", + "dev": true + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -16291,26 +19650,11 @@ } }, "final-form-arrays": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-1.1.2.tgz", - "integrity": "sha512-Pmq3MXI9zbSsY7WZ2eodWQAHpsw2/i5YkagzcCgqzRcSSHB8BD3yWi7YPSGTPXuG0ixcQe9VAYpQ+UEWcqf4zg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/final-form-arrays/-/final-form-arrays-3.0.2.tgz", + "integrity": "sha512-TfO8aZNz3RrsZCDx8GHMQcyztDNpGxSSi9w4wpSNKlmv2PfFWVVM8P7Yj5tj4n0OWax+x5YwTLhT5BnqSlCi+w==", "dev": true }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - } - }, "find-babel-config": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz", @@ -16394,17 +19738,10 @@ } } }, - "find-parent-dir": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", - "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", - "dev": true - }, "find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { "version": "2.1.0", @@ -16415,6 +19752,15 @@ "locate-path": "^2.0.0" } }, + "find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "dev": true, + "requires": { + "semver-regex": "^2.0.0" + } + }, "findup-sync": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", @@ -16458,18 +19804,18 @@ "dev": true }, "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.0.tgz", + "integrity": "sha512-6KSMM+cHHzXC/hpldXApL2S8Uz+QZv+tq5o/L0KQYleoG+GcwrnIJhTWC7tCOiKQp8D/fIvryINU1OZCCwevjA==", "dev": true, "requires": { - "is-buffer": "~2.0.3" + "is-buffer": "~2.0.4" }, "dependencies": { "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true } } @@ -16486,9 +19832,9 @@ }, "dependencies": { "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -16517,16 +19863,11 @@ "dev": true }, "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "dev": true }, - "flexbuffer": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/flexbuffer/-/flexbuffer-0.0.6.tgz", - "integrity": "sha1-A5/fI/iCPkQMOPMnfm/vEXQhWzA=" - }, "fluent-intl-polyfill": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/fluent-intl-polyfill/-/fluent-intl-polyfill-0.1.0.tgz", @@ -16553,19 +19894,13 @@ "readable-stream": "^2.0.4" } }, - "fn-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", - "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", - "dev": true - }, "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", + "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", "dev": true, "requires": { - "debug": "^3.2.6" + "debug": "^3.0.0" }, "dependencies": { "debug": { @@ -16576,11 +19911,6 @@ "requires": { "ms": "^2.1.1" } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" } } }, @@ -16589,15 +19919,6 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", @@ -16609,14 +19930,13 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "fork-ts-checker-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.2.tgz", + "integrity": "sha512-3Qe6GxiidhyChpNcfQ9qaNEeO0FavxpvS1ArEy3boSWT05uCUTWPFMNl4OeH3XqsZymWv7t6EkTyj6YHJbVXig==", "dev": true, "requires": { "babel-code-frame": "^6.22.0", "chalk": "^2.4.1", - "chokidar": "^2.0.4", "micromatch": "^3.1.10", "minimatch": "^3.0.4", "semver": "^5.6.0", @@ -16624,37 +19944,40 @@ "worker-rpc": "^0.1.0" }, "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "color-convert": "^1.9.0" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -16685,14 +20008,14 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "found": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/found/-/found-0.4.9.tgz", - "integrity": "sha512-6MEtaqmkkvcX92S3HxSZnoHhEOntNAh+sQglrfsYLbqIhyibUy9Udgbitw8oujGd445spPgCyKkPO3mSTdVAfQ==", + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/found/-/found-0.4.10.tgz", + "integrity": "sha512-AlZVFd8Y7wWTVp8y6Bf2naseEVXuB44UQhUVRXeWVvuPBv5cnOFA8xddqa/oOYwBBuBN2iVxweMcwTYiGJRFjQ==", "dev": true, "requires": { - "@babel/runtime-corejs3": "^7.5.5", + "@babel/runtime-corejs3": "^7.6.2", "@restart/context": "^2.1.4", - "farce": "^0.2.8", + "farce": "^0.3.0", "invariant": "^2.2.4", "is-promise": "^2.1.0", "lodash": "^4.17.15", @@ -16704,26 +20027,16 @@ "warning": "^4.0.3" }, "dependencies": { - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.1.2" - } - }, "farce": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/farce/-/farce-0.2.8.tgz", - "integrity": "sha512-x4N70Ti9nOo6/waNJUZMLDd/U6+WA0gV+AUE1gFS/npD/FliTUCKbBLNQYbgeejzDdw0MgtPCCjRX8kPTHjspA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/farce/-/farce-0.3.0.tgz", + "integrity": "sha512-PGLUvEImEJ60ogk8/90gAuHiuF15bHJRTzuBie68/1CuEZF/JTo1wsx18m0JdMBdNmV1t6wtAtjsAc2EjD2fmA==", "dev": true, "requires": { - "dom-helpers": "^3.4.0", "invariant": "^2.2.4", "is-promise": "^2.1.0", "query-string": "^5.1.1", - "redux": "^4.0.1", + "redux": "^4.0.4", "warning": "^4.0.3" } }, @@ -16761,26 +20074,16 @@ "object-assign": "^4.1.1", "react-is": "^16.8.1" } - }, - "redux": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.4.tgz", - "integrity": "sha512-vKv4WdiJxOWKxK0yRoaK3Y4pxxB0ilzVx6dszU2W8wLxlb2yikRph4iV/ymtdJ6ZxpBLFbyrxklnT5yBbQSl3Q==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } } } }, "found-relay": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/found-relay/-/found-relay-0.4.3.tgz", - "integrity": "sha512-1zn4WZ1c0mn/BF1yq38MZkIlc2r2LpNO901emRo1hb25Lwl9rpwWVHfSHffh56C44hdZ8i4tbIA2sPnFONpFiw==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/found-relay/-/found-relay-0.7.0.tgz", + "integrity": "sha512-5mhRSzu9eQXfcfRs4IzKsp0Tm84U86ZVWp9V/CxGiCuq9du0HHe2v7eB903AD2xIVQsMxZbTq5g33CvonvqURQ==", "dev": true, "requires": { - "@babel/runtime-corejs3": "^7.5.5", + "@babel/runtime-corejs3": "^7.6.3", "is-promise": "^2.1.0", "lodash": "^4.17.15", "prop-types": "^15.7.2", @@ -16833,49 +20136,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "friendly-errors-webpack-plugin": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz", - "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - } - } - }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -16896,14 +20156,36 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, + "fs-exists-cached": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", + "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=", + "dev": true + }, "fs-extra": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", - "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + } + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" } }, "fs-mkdirp-stream": { @@ -16916,6 +20198,12 @@ "through2": "^2.0.3" } }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -16946,25 +20234,29 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "optional": true, "requires": { @@ -16974,13 +20266,15 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, "requires": { @@ -16990,37 +20284,43 @@ }, "chownr": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "optional": true, "requires": { @@ -17029,25 +20329,29 @@ }, "deep-extend": { "version": "0.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, "requires": { @@ -17056,13 +20360,15 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { @@ -17078,7 +20384,8 @@ }, "glob": { "version": "7.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "optional": true, "requires": { @@ -17092,13 +20399,15 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", - "bundled": true, + "resolved": false, + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "optional": true, "requires": { @@ -17107,7 +20416,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "requires": { @@ -17116,7 +20426,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, "requires": { @@ -17126,19 +20437,22 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true, "optional": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, "requires": { @@ -17147,13 +20461,15 @@ }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, "requires": { @@ -17162,13 +20478,15 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true, "optional": true }, "minipass": { "version": "2.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, "optional": true, "requires": { @@ -17178,7 +20496,8 @@ }, "minizlib": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "dev": true, "optional": true, "requires": { @@ -17187,7 +20506,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "optional": true, "requires": { @@ -17196,7 +20516,8 @@ }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true, "optional": true }, @@ -17209,7 +20530,8 @@ }, "needle": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "dev": true, "optional": true, "requires": { @@ -17220,7 +20542,8 @@ }, "node-pre-gyp": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "dev": true, "optional": true, "requires": { @@ -17238,7 +20561,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { @@ -17248,13 +20572,15 @@ }, "npm-bundled": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "dev": true, "optional": true, "requires": { @@ -17264,7 +20590,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "requires": { @@ -17276,19 +20603,22 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, "requires": { @@ -17297,19 +20627,22 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, "requires": { @@ -17319,19 +20652,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "optional": true, "requires": { @@ -17343,7 +20679,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -17351,7 +20688,8 @@ }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { @@ -17366,7 +20704,8 @@ }, "rimraf": { "version": "2.6.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "optional": true, "requires": { @@ -17375,43 +20714,50 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, "requires": { @@ -17422,7 +20768,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "requires": { @@ -17431,7 +20778,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, "requires": { @@ -17440,13 +20788,15 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "dev": true, "optional": true, "requires": { @@ -17461,13 +20811,15 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "optional": true, "requires": { @@ -17476,13 +20828,15 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "dev": true, "optional": true } @@ -17531,14 +20885,93 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz", - "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz", + "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "is-callable": "^1.1.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "functions-have-names": "^1.2.0" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "functional-red-black-tree": { @@ -17547,15 +20980,2377 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "g-status": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/g-status/-/g-status-2.0.2.tgz", - "integrity": "sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==", + "functions-have-names": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz", + "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==", + "dev": true + }, + "gatsby": { + "version": "2.20.9", + "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.20.9.tgz", + "integrity": "sha512-qvLBT3SvMpFMaEIFMm9q8YGKyBD6/T/xbQN0Ong0I9ecnqCUY3y9riPnhTsqHCcs1jVCRcUxgavf5BjRhTLfvg==", "dev": true, "requires": { - "arrify": "^1.0.1", - "matcher": "^1.0.0", - "simple-git": "^1.85.0" + "@babel/code-frame": "^7.8.3", + "@babel/core": "^7.8.7", + "@babel/parser": "^7.8.8", + "@babel/polyfill": "^7.8.7", + "@babel/runtime": "^7.8.7", + "@babel/traverse": "^7.8.6", + "@hapi/joi": "^15.1.1", + "@mikaelkristiansson/domready": "^1.0.10", + "@pieh/friendly-errors-webpack-plugin": "1.7.0-chalk-2", + "@pmmmwh/react-refresh-webpack-plugin": "^0.2.0", + "@reach/router": "^1.3.3", + "@typescript-eslint/eslint-plugin": "^2.24.0", + "@typescript-eslint/parser": "^2.24.0", + "address": "1.1.2", + "autoprefixer": "^9.7.4", + "axios": "^0.19.2", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.0.6", + "babel-plugin-add-module-exports": "^0.3.3", + "babel-plugin-dynamic-import-node": "^2.3.0", + "babel-plugin-remove-graphql-queries": "^2.8.1", + "babel-preset-gatsby": "^0.3.1", + "better-opn": "1.0.0", + "better-queue": "^3.8.10", + "bluebird": "^3.7.2", + "browserslist": "^4.9.1", + "cache-manager": "^2.11.1", + "cache-manager-fs-hash": "^0.0.7", + "chalk": "^2.4.2", + "chokidar": "3.3.1", + "common-tags": "^1.8.0", + "compression": "^1.7.4", + "convert-hrtime": "^3.0.0", + "copyfiles": "^2.2.0", + "core-js": "^2.6.11", + "cors": "^2.8.5", + "css-loader": "^1.0.1", + "date-fns": "^2.11.0", + "debug": "^3.2.6", + "del": "^5.1.0", + "detect-port": "^1.3.0", + "devcert": "^1.1.0", + "dotenv": "^8.2.0", + "eslint": "^6.8.0", + "eslint-config-react-app": "^5.2.0", + "eslint-loader": "^2.2.1", + "eslint-plugin-flowtype": "^3.13.0", + "eslint-plugin-graphql": "^3.1.1", + "eslint-plugin-import": "^2.20.1", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-react": "^7.19.0", + "eslint-plugin-react-hooks": "^1.7.0", + "event-source-polyfill": "^1.0.12", + "express": "^4.17.1", + "express-graphql": "^0.9.0", + "fast-levenshtein": "^2.0.6", + "file-loader": "^1.1.11", + "flat": "^4.1.0", + "fs-exists-cached": "1.0.0", + "fs-extra": "^8.1.0", + "gatsby-cli": "^2.11.3", + "gatsby-core-utils": "^1.1.1", + "gatsby-graphiql-explorer": "^0.3.1", + "gatsby-link": "^2.3.1", + "gatsby-plugin-page-creator": "^2.2.1", + "gatsby-react-router-scroll": "^2.2.1", + "gatsby-telemetry": "^1.2.2", + "glob": "^7.1.6", + "got": "8.3.2", + "graphql": "^14.6.0", + "graphql-compose": "^6.3.8", + "graphql-playground-middleware-express": "^1.7.12", + "hasha": "^5.2.0", + "invariant": "^2.2.4", + "is-relative": "^1.0.0", + "is-relative-url": "^3.0.0", + "is-wsl": "^2.1.1", + "jest-worker": "^24.9.0", + "json-loader": "^0.5.7", + "json-stringify-safe": "^5.0.1", + "latest-version": "5.1.0", + "lodash": "^4.17.15", + "lokijs": "^1.5.8", + "md5": "^2.2.1", + "md5-file": "^3.2.3", + "micromatch": "^3.1.10", + "mime": "^2.4.4", + "mini-css-extract-plugin": "^0.8.2", + "mitt": "^1.2.0", + "mkdirp": "^0.5.1", + "moment": "^2.24.0", + "name-all-modules-plugin": "^1.0.1", + "normalize-path": "^2.1.1", + "null-loader": "^3.0.0", + "opentracing": "^0.14.4", + "optimize-css-assets-webpack-plugin": "^5.0.3", + "p-defer": "^3.0.0", + "parseurl": "^1.3.3", + "physical-cpu-count": "^2.0.0", + "pnp-webpack-plugin": "^1.6.4", + "postcss-flexbugs-fixes": "^4.2.0", + "postcss-loader": "^3.0.0", + "prompts": "^2.3.1", + "prop-types": "^15.7.2", + "raw-loader": "^0.5.1", + "react-dev-utils": "^4.2.3", + "react-error-overlay": "^3.0.0", + "react-hot-loader": "^4.12.20", + "react-refresh": "^0.7.0", + "redux": "^4.0.5", + "redux-thunk": "^2.3.0", + "semver": "^5.7.1", + "shallow-compare": "^1.2.2", + "sift": "^5.1.0", + "signal-exit": "^3.0.2", + "slugify": "^1.4.0", + "socket.io": "^2.3.0", + "stack-trace": "^0.0.10", + "string-similarity": "^1.2.2", + "style-loader": "^0.23.1", + "terser-webpack-plugin": "^1.4.3", + "true-case-path": "^2.2.1", + "type-of": "^2.0.1", + "url-loader": "^1.1.2", + "util.promisify": "^1.0.1", + "uuid": "^3.4.0", + "v8-compile-cache": "^1.1.2", + "webpack": "~4.42.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-dev-server": "^3.10.3", + "webpack-hot-middleware": "^2.25.0", + "webpack-merge": "^4.2.2", + "webpack-stats-plugin": "^0.3.1", + "xstate": "^4.8.0", + "yaml-loader": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "dev": true, + "requires": { + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + } + }, + "date-fns": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.11.1.tgz", + "integrity": "sha512-3RdUoinZ43URd2MJcquzBbDQo+J87cSzB8NkXdZiN5ia1UNyep0oCyitfiL88+R7clGTeq/RniXAc16gWyAu1w==", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "detect-port-alt": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.3.tgz", + "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "es-abstract": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", + "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": ">=0.0.5" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "filesize": { + "version": "3.5.11", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", + "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", + "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, + "gatsby-cli": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.11.3.tgz", + "integrity": "sha512-ek1L/CVB2ak+tbRgPUriotf2MhYVnZIQUogldD5PxPqLizN7expOTjoDcnV5DHG1zsmD19/TfXBj1hp6+DuOpQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/runtime": "^7.8.7", + "@hapi/joi": "^15.1.1", + "better-opn": "^1.0.0", + "bluebird": "^3.7.2", + "chalk": "^2.4.2", + "clipboardy": "^2.2.0", + "common-tags": "^1.8.0", + "configstore": "^5.0.1", + "convert-hrtime": "^3.0.0", + "core-js": "^2.6.11", + "envinfo": "^7.5.0", + "execa": "^3.4.0", + "fs-exists-cached": "^1.0.0", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.1.1", + "gatsby-telemetry": "^1.2.2", + "hosted-git-info": "^3.0.4", + "ink": "^2.7.1", + "ink-spinner": "^3.0.1", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.15", + "meant": "^1.0.1", + "node-fetch": "^2.6.0", + "object.entries": "^1.1.1", + "opentracing": "^0.14.4", + "pretty-error": "^2.1.1", + "progress": "^2.0.3", + "prompts": "^2.3.1", + "react": "^16.8.0", + "redux": "^4.0.5", + "resolve-cwd": "^2.0.0", + "semver": "^6.3.0", + "signal-exit": "^3.0.2", + "source-map": "0.7.3", + "stack-trace": "^0.0.10", + "strip-ansi": "^5.2.0", + "update-notifier": "^3.0.1", + "uuid": "3.4.0", + "yargs": "^12.0.5", + "yurnalist": "^1.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "gzip-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", + "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "dev": true, + "requires": { + "duplexer": "^0.1.1" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "hosted-git-info": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-root": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", + "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", + "dev": true + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "mini-css-extract-plugin": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "opn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", + "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true + }, + "p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dev": true, + "requires": { + "postcss": "^6.0.1" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true + }, + "react-dev-utils": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-4.2.3.tgz", + "integrity": "sha512-uvmkwl5uMexCmC0GUv1XGQP0YjfYePJufGg4YYiukhqk2vN1tQxwWJIBERqhOmSi80cppZg8mZnPP/kOMf1sUQ==", + "dev": true, + "requires": { + "address": "1.0.3", + "babel-code-frame": "6.26.0", + "chalk": "1.1.3", + "cross-spawn": "5.1.0", + "detect-port-alt": "1.1.3", + "escape-string-regexp": "1.0.5", + "filesize": "3.5.11", + "global-modules": "1.0.0", + "gzip-size": "3.0.0", + "inquirer": "3.3.0", + "is-root": "1.0.0", + "opn": "5.1.0", + "react-error-overlay": "^3.0.0", + "recursive-readdir": "2.2.1", + "shell-quote": "1.6.1", + "sockjs-client": "1.1.4", + "strip-ansi": "3.0.1", + "text-table": "0.2.0" + }, + "dependencies": { + "address": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", + "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "react-error-overlay": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-3.0.0.tgz", + "integrity": "sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw==", + "dev": true + }, + "recursive-readdir": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", + "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", + "dev": true, + "requires": { + "minimatch": "3.0.3" + }, + "dependencies": { + "minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + } + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "sockjs-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", + "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", + "dev": true, + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "terser-webpack-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", + "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "gatsby-core-utils": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.1.1.tgz", + "integrity": "sha512-EboPcBx37YQVUKN9JH753S54nDxjRmOefbR0i08KTmaVgQ1lZnDXJr8JfrImmMqupZlOkPQX1mWlXfp+r1jGhA==", + "dev": true, + "requires": { + "ci-info": "2.0.0", + "configstore": "^5.0.1", + "node-object-hash": "^2.0.0" + } + }, + "gatsby-graphiql-explorer": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.3.1.tgz", + "integrity": "sha512-HTW0ST3zQGxOORCpmRKhy4lO48SwA9QHBfVBTm8zUWh5jgJOtDZa+O0CLxEieQhdb54lRt/PuZlozJCYFLEkYA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "gatsby-link": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-2.3.1.tgz", + "integrity": "sha512-waVhJ7klcAOgAD3UjX5P3LWYCee4GwZ7jqJS7dj8tTeiumXV1NAur4gjNiUZF8w3+0HQ4uY0vBjy+TozRRVk6Q==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "@types/reach__router": "^1.3.0", + "prop-types": "^15.7.2" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + } + } + }, + "gatsby-page-utils": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-0.1.1.tgz", + "integrity": "sha512-g4ETSZM7wlMycHPKwQ7QqxkqnwbXCgwg2Sqh2DyCsd5qwtPm6RrQht3cnbsKAeuo7gWsbqzv088YGa3krrIREw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "bluebird": "^3.7.2", + "chokidar": "3.3.1", + "fs-exists-cached": "^1.0.0", + "gatsby-core-utils": "^1.1.1", + "glob": "^7.1.6", + "lodash": "^4.17.15", + "micromatch": "^3.1.10" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "gatsby-plugin-alias-imports": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/gatsby-plugin-alias-imports/-/gatsby-plugin-alias-imports-1.0.5.tgz", + "integrity": "sha512-q58JrSjuVNh4NApamqElR0zqwm55FOb9vFAVb2i2ftPRu0uYzWJkbOz2IN3vSw7a+5PmGzX7VL8XDFXlNHrMNA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.2.0" + } + }, + "gatsby-plugin-compile-es6-packages": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gatsby-plugin-compile-es6-packages/-/gatsby-plugin-compile-es6-packages-2.1.0.tgz", + "integrity": "sha512-yrYAAjabHWJr3ARi8xzDm01dbBfyOxEWTwGkL3BMdgL/opfLvTrwLmfium4kSelnLs70DYY3rYDwyHjqyFsnFQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "regex-escape": "^3.4.8" + } + }, + "gatsby-plugin-emotion": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-emotion/-/gatsby-plugin-emotion-4.2.1.tgz", + "integrity": "sha512-ygXxkpnWJdDOAgb1XA9TbVCRLkaAYTFLTsqVQXMBhnrknb5iPNO+MP0fZ5LRqWgBALyJ629nxs0efUpnT/RSWw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "@emotion/babel-preset-css-prop": "^10.0.27" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "gatsby-plugin-eslint": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/gatsby-plugin-eslint/-/gatsby-plugin-eslint-2.0.8.tgz", + "integrity": "sha512-vAMy37povmQJNg6ZxY78fkWR3pKwG8MNMhO3u+4vXj2MYT5avhFvHPJTAb126ZCuygf30gAWlpwbV50zP894Jw==", + "dev": true + }, + "gatsby-plugin-mdx": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.1.4.tgz", + "integrity": "sha512-id2/LALN7eseTGN05v1n16XCYggrl2UTzWOJOQME9rh25jNK+KT5ywaPY6vNYimeAW7wWdad3rl6hORpv4L6yw==", + "dev": true, + "requires": { + "@babel/core": "^7.8.7", + "@babel/generator": "^7.8.8", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/preset-env": "^7.8.7", + "@babel/preset-react": "^7.8.3", + "@babel/types": "^7.8.7", + "camelcase-css": "^2.0.1", + "change-case": "^3.1.0", + "core-js": "2", + "dataloader": "^1.4.0", + "debug": "^4.1.1", + "escape-string-regexp": "^1.0.5", + "eval": "^0.1.4", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.1.1", + "gray-matter": "^4.0.2", + "json5": "^2.1.2", + "loader-utils": "^1.4.0", + "lodash": "^4.17.15", + "mdast-util-to-string": "^1.1.0", + "mdast-util-toc": "^3.1.0", + "mime": "^2.4.4", + "p-queue": "^5.0.0", + "pretty-bytes": "^5.3.0", + "remark": "^10.0.1", + "remark-retext": "^3.1.3", + "retext-english": "^3.0.4", + "static-site-generator-webpack-plugin": "^3.4.2", + "style-to-object": "^0.3.0", + "underscore.string": "^3.3.5", + "unified": "^8.4.2", + "unist-util-map": "^1.0.5", + "unist-util-remove": "^1.0.3", + "unist-util-visit": "^1.4.1" + }, + "dependencies": { + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "dev": true, + "requires": { + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz", + "integrity": "sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, + "json5": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "longest-streak": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", + "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "dev": true + }, + "markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "remark": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", + "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==", + "dev": true, + "requires": { + "remark-parse": "^6.0.0", + "remark-stringify": "^6.0.0", + "unified": "^7.0.0" + }, + "dependencies": { + "unified": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", + "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "@types/vfile": "^3.0.0", + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^3.0.0", + "x-is-string": "^0.1.0" + } + } + } + }, + "remark-parse": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", + "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", + "dev": true, + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "remark-stringify": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz", + "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^1.0.1", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dev": true, + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "vfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", + "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", + "dev": true, + "requires": { + "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + } + } + }, + "gatsby-plugin-page-creator": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.2.1.tgz", + "integrity": "sha512-RRlk7FUScyEj1S6PlGpdj/lrJmps+rl7sQNauOBCIGt3Sod5alin0l8aQJa/ldpI6DIPbp4PWIpqkPsWxED/LA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "bluebird": "^3.7.2", + "fs-exists-cached": "^1.0.0", + "gatsby-page-utils": "^0.1.1", + "glob": "^7.1.6", + "lodash": "^4.17.15", + "micromatch": "^3.1.10" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "gatsby-plugin-react-helmet-async": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet-async/-/gatsby-plugin-react-helmet-async-1.0.16.tgz", + "integrity": "sha512-kLMoY/Bh9t4hIfGepXAms7fuByhLQehy/TTFT0qyLQGcY77y7thMIdM3V6wIVwGC7bbXHSgFcYlVTlarXTkKMw==", + "dev": true + }, + "gatsby-plugin-root-import": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/gatsby-plugin-root-import/-/gatsby-plugin-root-import-2.0.5.tgz", + "integrity": "sha512-/yA6rFjfjiFb8D6nCjfFrrGqYQMkOt4J3u2o6s7VYEF/zpA5dw2C9ENJ5fDKkJSCbbwLiEIGVMMee3vMEip2zA==", + "dev": true + }, + "gatsby-plugin-typescript": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.3.1.tgz", + "integrity": "sha512-dT+YStwH1CcMk4vCtyNrqefjCqGyVInuXrVnqfOJQD+V6Wxo7gt8t+54uGdsjQJthRCz5xVGO9ylrHvOKzmU9g==", + "dev": true, + "requires": { + "@babel/core": "^7.8.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/preset-typescript": "^7.8.3", + "@babel/runtime": "^7.8.7", + "babel-plugin-remove-graphql-queries": "^2.8.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "gatsby-react-router-scroll": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.2.1.tgz", + "integrity": "sha512-mkaG6NNIbWPNiU8Wj3aawUQa7AqI42Skrnh0VCLUCSDvUgCjOJOZfxM0FVPA/masNiVsCprq3a6xz7fmW93jgQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "scroll-behavior": "^0.9.12", + "warning": "^3.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "gatsby-source-filesystem": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-2.2.2.tgz", + "integrity": "sha512-uHHCiTp8/q9JF0Yr14Q5aJZ07jUJSV6HJSnrSVnEIF4PfRQkVJG5FHQULmxJUXWQhIoy17EGuzqVjxMsFY69QA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7", + "better-queue": "^3.8.10", + "bluebird": "^3.7.2", + "chokidar": "3.3.1", + "file-type": "^12.4.2", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.1.1", + "got": "^9.6.0", + "md5-file": "^3.2.3", + "mime": "^2.4.4", + "pretty-bytes": "^5.3.0", + "progress": "^2.0.3", + "read-chunk": "^3.2.0", + "valid-url": "^1.0.9", + "xstate": "^4.8.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + } + } + }, + "gatsby-telemetry": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.2.2.tgz", + "integrity": "sha512-I1RkcbLIR7jg+SRu71FT5c7eEqDScmJ8/sZ/mfYVwARo6Kq6obB0VzlYHVYd+KjdeiuQb6YIHhlxUn37eGq7Vw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/runtime": "^7.8.7", + "bluebird": "^3.7.2", + "boxen": "^4.2.0", + "configstore": "^5.0.1", + "envinfo": "^7.5.0", + "fs-extra": "^8.1.0", + "gatsby-core-utils": "^1.1.1", + "git-up": "4.0.1", + "is-docker": "2.0.0", + "lodash": "^4.17.15", + "node-fetch": "2.6.0", + "resolve-cwd": "^2.0.0", + "source-map": "^0.7.3", + "stack-trace": "^0.0.10", + "stack-utils": "1.0.2", + "uuid": "3.4.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/runtime": { + "version": "7.9.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", + "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "gatsby-theme-docz": { + "version": "2.3.0-alpha.14", + "resolved": "https://registry.npmjs.org/gatsby-theme-docz/-/gatsby-theme-docz-2.3.0-alpha.14.tgz", + "integrity": "sha512-kP2KPJsP/alJxDdJmOlu3sVme8gyEmxxmyFEqy6IYl3bAbSjDhWMhBXxMORMPL3PCkCkPEuJI0cIZAsfhwtw+w==", + "dev": true, + "requires": { + "@emotion/core": "^10.0.14", + "@emotion/styled": "^10.0.14", + "@loadable/component": "^5.10.2", + "@mdx-js/mdx": "^1.1.0", + "@mdx-js/react": "^1.0.27", + "@theme-ui/typography": "^0.2.5", + "babel-plugin-export-metadata": "2.3.0-alpha.14", + "copy-text-to-clipboard": "^2.1.0", + "emotion-theming": "^10.0.14", + "fs-extra": "^8.1.0", + "gatsby": "^2.13.27", + "gatsby-plugin-alias-imports": "^1.0.5", + "gatsby-plugin-compile-es6-packages": "^2.0.0", + "gatsby-plugin-emotion": "^4.1.2", + "gatsby-plugin-mdx": "^1.0.13", + "gatsby-plugin-react-helmet-async": "^1.0.5", + "gatsby-plugin-root-import": "^2.0.5", + "gatsby-source-filesystem": "^2.1.35", + "lodash": "^4.17.14", + "mdx-utils": "^0.2.0", + "prism-react-renderer": "^1.0.2", + "prop-types": "^15.7.2", + "re-resizable": "^6.1.0", + "react-feather": "^2.0.3", + "react-frame-component": "^4.1.1", + "react-helmet-async": "^1.0.4", + "react-live": "^2.2.1", + "react-resize-detector": "^4.2.1", + "rehype-docz": "^2.3.0-alpha.2", + "rehype-slug": "^2.0.3", + "remark-docz": "^2.1.0", + "remark-frontmatter": "^1.3.2", + "theme-ui": "^0.2.38", + "typescript": "3.5.3", + "typography-theme-moraga": "^0.16.19", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "remark-frontmatter": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.3.tgz", + "integrity": "sha512-fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==", + "dev": true, + "requires": { + "fault": "^1.0.1", + "xtend": "^4.0.1" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, "gensync": { @@ -17570,6 +23365,12 @@ "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", "dev": true }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, "get-pkg-repo": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.1.0.tgz", @@ -17583,14 +23384,14 @@ } }, "get-port": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", - "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" }, "get-stdin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", - "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", "dev": true }, "get-stream": { @@ -17624,10 +23425,20 @@ "assert-plus": "^1.0.0" } }, + "git-up": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", + "integrity": "sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "parse-url": "^5.0.0" + } + }, "github-slugger": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.2.1.tgz", - "integrity": "sha512-SsZUjg/P03KPzQBt7OxJPasGw6NRO5uOgiZ5RGXVud5iSIZ0eNZeNp5rTwCxtavrRUa/A77j8mePVc5lEvk0KQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", + "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", "dev": true, "requires": { "emoji-regex": ">=6.0.0 <=6.1.1" @@ -17637,6 +23448,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "optional": true, "requires": { "inflight": "^1.0.4", "inherits": "2", @@ -17649,6 +23461,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -17658,6 +23471,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, "requires": { "is-extglob": "^2.1.0" } @@ -17769,25 +23583,29 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "optional": true, "requires": { @@ -17797,13 +23615,15 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, "requires": { @@ -17813,37 +23633,43 @@ }, "chownr": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "optional": true, "requires": { @@ -17852,25 +23678,29 @@ }, "deep-extend": { "version": "0.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, "requires": { @@ -17879,13 +23709,15 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { @@ -17901,7 +23733,8 @@ }, "glob": { "version": "7.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "optional": true, "requires": { @@ -17915,13 +23748,15 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", - "bundled": true, + "resolved": false, + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "optional": true, "requires": { @@ -17930,7 +23765,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "requires": { @@ -17939,7 +23775,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, "requires": { @@ -17949,19 +23786,22 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true, "optional": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, "requires": { @@ -17970,13 +23810,15 @@ }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, "requires": { @@ -17985,13 +23827,15 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true, "optional": true }, "minipass": { "version": "2.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, "optional": true, "requires": { @@ -18001,7 +23845,8 @@ }, "minizlib": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "dev": true, "optional": true, "requires": { @@ -18010,7 +23855,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "optional": true, "requires": { @@ -18019,13 +23865,15 @@ }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true, "optional": true }, "needle": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "dev": true, "optional": true, "requires": { @@ -18036,7 +23884,8 @@ }, "node-pre-gyp": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "dev": true, "optional": true, "requires": { @@ -18054,7 +23903,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { @@ -18064,13 +23914,15 @@ }, "npm-bundled": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "dev": true, "optional": true, "requires": { @@ -18080,7 +23932,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "requires": { @@ -18092,19 +23945,22 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, "requires": { @@ -18113,19 +23969,22 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, "requires": { @@ -18135,19 +23994,22 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "optional": true, "requires": { @@ -18159,7 +24021,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -18167,7 +24030,8 @@ }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { @@ -18182,7 +24046,8 @@ }, "rimraf": { "version": "2.6.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "optional": true, "requires": { @@ -18191,43 +24056,50 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, "requires": { @@ -18238,7 +24110,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "requires": { @@ -18247,7 +24120,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, "requires": { @@ -18256,13 +24130,15 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "dev": true, "optional": true, "requires": { @@ -18277,13 +24153,15 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "optional": true, "requires": { @@ -18292,13 +24170,15 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "dev": true, "optional": true } @@ -18447,13 +24327,22 @@ } }, "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", "dev": true, "requires": { "min-document": "^2.19.0", - "process": "~0.5.1" + "process": "^0.11.10" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" } }, "global-modules": { @@ -18487,13 +24376,14 @@ "dev": true }, "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "dev": true, "requires": { "array-union": "^1.0.1", - "dir-glob": "^2.0.0", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", "glob": "^7.1.2", "ignore": "^3.3.5", "pify": "^3.0.0", @@ -18501,9 +24391,9 @@ }, "dependencies": { "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -18525,49 +24415,110 @@ "sparkles": "^1.0.0" } }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "dev": true, - "optional": true, - "requires": { - "delegate": "^3.1.2" - } - }, "google-fonts-complete": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/google-fonts-complete/-/google-fonts-complete-1.2.2.tgz", - "integrity": "sha512-SBRwK46kHYD27qSxNYdOlxv0pFs/o6BervcLRC3dY8BPoizE1FnGc3wRcXbtTUi/V7zAdZMBfnfP4db3Z4adUw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/google-fonts-complete/-/google-fonts-complete-2.1.0.tgz", + "integrity": "sha512-VRTGBvWdYE7NJuv/KbKp4hakK8QgsV9Z7LRAPdXmQ+cDqjZYZAMEKpBUYeO+uWsnTvMNaAtxTrFVCZrTGyb8VQ==", "dev": true, "requires": { - "postcss": "^4.1.16" + "postcss": "^7.0.18" }, "dependencies": { - "js-base64": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", - "dev": true - }, - "postcss": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-4.1.16.tgz", - "integrity": "sha1-TESbTIr53zyvbTf44eV10DYXWNw=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "es6-promise": "~2.3.0", - "js-base64": "~2.1.8", - "source-map": "~0.4.2" + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { - "amdefine": ">=0.0.4" + "has-flag": "^3.0.0" + } + } + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -18578,17 +24529,27 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "graphql": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.13.2.tgz", - "integrity": "sha512-QZ5BL8ZO/B20VA8APauGBg3GyEgZ19eduvpLWoq5x7gMmWnHoy8rlQWPLmWgFvo1yNgjSEFMesmS4R6pPr7xog==", + "version": "14.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.6.0.tgz", + "integrity": "sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==", "requires": { - "iterall": "^1.2.1" + "iterall": "^1.2.2" + } + }, + "graphql-compose": { + "version": "6.3.8", + "resolved": "https://registry.npmjs.org/graphql-compose/-/graphql-compose-6.3.8.tgz", + "integrity": "sha512-o0/jzQEMIpSjryLKwmD1vGrCubiPxD0LxlGTgWDSu38TBepu2GhugC9gYgTEbtiCZAHPtvkZ90SzzABOWZyQLA==", + "dev": true, + "requires": { + "graphql-type-json": "^0.2.4", + "object-path": "^0.11.4" } }, "graphql-config": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.2.1.tgz", - "integrity": "sha512-U8+1IAhw9m6WkZRRcyj8ZarK96R6lQBQ0an4lp76Ps9FyhOXENC5YQOxOFGm5CxPrX2rD0g3Je4zG5xdNJjwzQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.2.2.tgz", + "integrity": "sha512-mtv1ejPyyR2mJUUZNhljggU+B/Xl8tJJWf+h145hB+1Y48acSghFalhNtXfPBcYl2tJzpb+lGxfj3O7OjaiMgw==", "requires": { "graphql-import": "^0.7.1", "graphql-request": "^1.5.0", @@ -18598,17 +24559,19 @@ } }, "graphql-extensions": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.2.1.tgz", - "integrity": "sha512-/1FTPSWSffDjlRyMAV2UwQhojLmca9aQD0ieo1IYiqT5SE+uOWi4r83QF1CoER0sREIsH3s+nTmdH3cvQVG3MA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.11.0.tgz", + "integrity": "sha512-zd4qfUiJoYBx2MwJusM36SEJ+YmJ1ki8YF8nlm9mgaPDUzsnmFq4lxULxUfhLAXFwZw7MbEN2vV4V6WiNgSJLg==", "requires": { - "apollo-server-env": "^2.0.3" + "@apollographql/apollo-tools": "^0.4.3", + "apollo-server-env": "^2.4.3", + "apollo-server-types": "^0.3.0" } }, "graphql-fields": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/graphql-fields/-/graphql-fields-1.1.0.tgz", - "integrity": "sha1-okZtHEFFVNq4DA93d9a6mg4PdbQ=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/graphql-fields/-/graphql-fields-2.0.3.tgz", + "integrity": "sha512-x3VE5lUcR4XCOxPIqaO4CE+bTK8u6gVouOdpQX9+EKHr+scqtK5Pp/l8nIGqIpN1TUlkKE6jDCCycm/WtLRAwA==" }, "graphql-import": { "version": "0.7.1", @@ -18627,86 +24590,107 @@ } }, "graphql-playground-html": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz", - "integrity": "sha512-et3huQFEuAZgAiUfs9a+1Wo/JDX94k7XqNRc8LhpGT8k2NwIhMAbZKqudVF/Ww4+XDoEB4LUTSFGRPBYvKrcKQ==", + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.13.tgz", + "integrity": "sha512-5DNtVeaWrfxrobA2Vp3ypWjAQYGPIXyZ3rdQXy4m4nDJnc4UALPSZRh9y+U4kp8GaoPp1aCgIJerDSRBOT9HnA==" + }, + "graphql-playground-middleware-express": { + "version": "1.7.12", + "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.12.tgz", + "integrity": "sha512-17szgonnVSxWVrgblLRHHLjWnMUONfkULIwSunaMvYx8k5oG3yL86cyGCbHuDFUFkyr2swLhdfYl4mDfDXuvOA==", + "dev": true, "requires": { - "graphql-config": "2.0.0" + "graphql-playground-html": "1.6.12" }, "dependencies": { - "graphql-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.0.0.tgz", - "integrity": "sha512-//hZmROEk79zzPlH6SVTQeXd8NVV65rquz1zxZeO6oEuX5KNnii8+oznLu7d897EfJ+NShTZtsY9FMmxxkWmJw==", - "requires": { - "graphql-import": "^0.4.0", - "graphql-request": "^1.4.0", - "js-yaml": "^3.10.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "graphql-import": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.4.5.tgz", - "integrity": "sha512-G/+I08Qp6/QGTb9qapknCm3yPHV0ZL7wbaalWFpxsfR8ZhZoTBe//LsbsCKlbALQpcMegchpJhpTSKiJjhaVqQ==", - "requires": { - "lodash": "^4.17.4" - } - } - } + "graphql-playground-html": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.12.tgz", + "integrity": "sha512-yOYFwwSMBL0MwufeL8bkrNDgRE7eF/kTHiwrqn9FiR9KLcNIl1xw9l9a+6yIRZM56JReQOHpbQFXTZn1IuSKRg==", + "dev": true } } }, "graphql-redis-subscriptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/graphql-redis-subscriptions/-/graphql-redis-subscriptions-2.1.0.tgz", - "integrity": "sha512-edur8YlwIsjk9K1Ao8vgEQkNKvt11FCTlOIFfxMKYIHOVv4zMvDsv7fs282LxMJBJGDCDDcdc1c5iKj0BjXO+Q==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/graphql-redis-subscriptions/-/graphql-redis-subscriptions-2.2.1.tgz", + "integrity": "sha512-Rk0hapKUZuZpJIv3rG5rmd1SX3f+9k1k5AXoh8bxbM3Vkdzh28WM7kvJOqq1pJuO3gQ4OAoqzciNT0MMHRylXQ==", "requires": { "ioredis": "^4.6.3", - "iterall": "^1.2.2" + "iterall": "^1.3.0" + }, + "dependencies": { + "iterall": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" + } } }, "graphql-request": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.6.0.tgz", - "integrity": "sha512-qqAPLZuaGlwZDsMQ2FfgEyZMcXFMsPPDl6bQQlmwP/xCnk1TqxkE1S644LsHTXAHYPvmRWsIimfdcnys5+o+fQ==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz", + "integrity": "sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==", "requires": { - "cross-fetch": "2.0.0" + "cross-fetch": "2.2.2" } }, "graphql-schema-linter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/graphql-schema-linter/-/graphql-schema-linter-0.2.0.tgz", - "integrity": "sha512-IXldy6nCmzAZgweBzQUGPLVO1aRLRy/n/jEm8h8pQHmMYoHv2hQgUcRQRaCbjcdNKYKToN1cfHvdgtGJ+DWSNQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/graphql-schema-linter/-/graphql-schema-linter-0.2.4.tgz", + "integrity": "sha512-163dyjcqBavDcJQkujwChuNws3qT4eiYz9YWhwPcWzLWXXHLLKHJe/+Mq5lfbUfHWc7+Fv+urEWda1ikgCdozQ==", "dev": true, "requires": { "chalk": "^2.0.1", "columnify": "^1.5.4", - "commander": "^2.11.0", - "cosmiconfig": "^4.0.0", - "figures": "^2.0.0", + "commander": "^3.0.0", + "cosmiconfig": "^5.2.1", "glob": "^7.1.2", - "graphql": "^14.0.0", - "lodash": "^4.17.4" + "graphql": "^14.0.0" }, "dependencies": { - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0", - "require-from-string": "^2.0.1" + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -18717,15 +24701,6 @@ "path-is-absolute": "^1.0.0" } }, - "graphql": { - "version": "14.1.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.1.1.tgz", - "integrity": "sha512-C5zDzLqvfPAgTtP8AUPIt9keDabrdRAqSWjj2OPRKrKxI9Fb65I36s1uCs1UUBFnSWTdO7hyHi7z1ZbwKMKF6Q==", - "dev": true, - "requires": { - "iterall": "^1.2.2" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -18735,13 +24710,22 @@ "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "graphql-schema-typescript": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/graphql-schema-typescript/-/graphql-schema-typescript-1.2.9.tgz", - "integrity": "sha512-IGbQW8aC7MfXqJuaTZ0zHoqLGHUPHX+skV6qf0buqCbumqKyQ+cy8vqUqQksMr8Y/Ga++sB8cvMSQ6yeUbF6rQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/graphql-schema-typescript/-/graphql-schema-typescript-1.3.2.tgz", + "integrity": "sha512-sFk4niR5gn1kH1OUXezJbpazcb0H6u2a0F9foj+9yq119iOAHvPf4SbY1dqHl4FrE5lKlQ/zYsxNovyyUuwJ5w==", "dev": true, "requires": { "yargs": "^11.0.0" @@ -18756,30 +24740,43 @@ } }, "graphql-tag": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.1.tgz", - "integrity": "sha512-jApXqWBzNXQ8jYa/HLkZJaVw9jgwNqZkywa2zfFn16Iv1Zb7ELNHkJaXHR7Quvd5SIGsy6Ny7SUKATgnu05uEg==" + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.3.tgz", + "integrity": "sha512-4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA==" }, "graphql-tools": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-3.0.5.tgz", - "integrity": "sha512-MawfVPwaqy+L48IiP4QXHpFFOgCH+vWmB9oeU70lckac22nOpDLwbkKtddtdodoTHV54EKbkTpPdW6u6bcjjFA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.7.tgz", + "integrity": "sha512-rApl8sT8t/W1uQRcwzxMYyUBiCl/XicluApiDkNze5TX/GR0BSTQMjM2UcRGdTmkbsb1Eqq6afkyyeG/zMxZYQ==", "requires": { - "apollo-link": "1.2.2", + "apollo-link": "^1.2.3", "apollo-utilities": "^1.0.1", "deprecated-decorator": "^0.1.6", "iterall": "^1.1.3", "uuid": "^3.1.0" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } } }, + "graphql-type-json": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.2.4.tgz", + "integrity": "sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w==", + "dev": true + }, "graphql-upload": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.0.7.tgz", - "integrity": "sha512-gi2yygbDPXbHPC7H0PNPqP++VKSoNoJO4UrXWq4T0Bi4IhyUd3Ycop/FSxhx2svWIK3jdXR/i0vi91yR1aAF0g==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz", + "integrity": "sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==", "requires": { "busboy": "^0.3.1", "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.2", + "http-errors": "^1.7.3", "object-path": "^0.11.4" }, "dependencies": { @@ -18812,6 +24809,24 @@ } } }, + "gray-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", + "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", + "dev": true, + "requires": { + "js-yaml": "^3.11.0", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + } + }, + "gray-percentage": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gray-percentage/-/gray-percentage-2.0.0.tgz", + "integrity": "sha1-tyonTRsTeRBKAFC2OyB9xT/lb5k=", + "dev": true + }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", @@ -19129,23 +25144,23 @@ } }, "gulp-typescript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz", - "integrity": "sha512-YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==", + "version": "6.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-6.0.0-alpha.1.tgz", + "integrity": "sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==", "dev": true, "requires": { - "ansi-colors": "^3.0.5", + "ansi-colors": "^4.1.1", "plugin-error": "^1.0.1", "source-map": "^0.7.3", - "through2": "^3.0.0", - "vinyl": "^2.1.0", + "through2": "^3.0.1", + "vinyl": "^2.2.0", "vinyl-fs": "^3.0.3" }, "dependencies": { "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "source-map": { @@ -19190,104 +25205,35 @@ "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", "dev": true }, - "handlebars": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.0.tgz", - "integrity": "sha512-yss1ZbupTpRfe86dpM1abxnnSfxa6eIRn3laqBPIgRYy87qgYtX6xinSOeybjYo/4AVzdTTWK5Kr06A6AllxJg==", - "dev": true, - "requires": { - "eslint-plugin-compat": "^3.3.0", - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "happypack": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/happypack/-/happypack-5.0.1.tgz", - "integrity": "sha512-AzXVxLzX0mtv0T40Kic72rfcGK4Y2b/cDdtcyw+e+V/13ozl7x0+EZ4hvrL1rJ8MoefR9+FfUJQsK2irH0GWOw==", - "dev": true, - "requires": { - "async": "1.5.0", - "json-stringify-safe": "5.0.1", - "loader-utils": "1.1.0", - "serialize-error": "^2.1.0" - }, - "dependencies": { - "async": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz", - "integrity": "sha1-J5ZkJyNXOFlWVjP8YnRES+4vjOM=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - } - } - }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "^5.1.0", + "ajv": "^6.5.5", "har-schema": "^2.0.0" }, "dependencies": { "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" } } }, @@ -19303,21 +25249,64 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", "dev": true }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "^1.4.1" + } }, "has-value": { "version": "1.0.0", @@ -19348,6 +25337,12 @@ } } }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, "hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", @@ -19368,10 +25363,65 @@ "minimalistic-assert": "^1.0.1" } }, + "hasha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", + "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", + "dev": true, + "requires": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "dependencies": { + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "hast-to-hyperscript": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz", + "integrity": "sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA==", + "dev": true, + "requires": { + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.2.1", + "unist-util-is": "^3.0.0", + "web-namespaces": "^1.1.2" + }, + "dependencies": { + "style-to-object": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz", + "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==", + "dev": true, + "requires": { + "inline-style-parser": "0.1.1" + } + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + } + } + }, "hast-util-from-parse5": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.0.tgz", - "integrity": "sha512-A7ev5OseS/J15214cvDdcI62uwovJO2PB60Xhnq7kaxvvQRFDEccuqbkrFXU03GPBGopdPqlpQBRqIcDS/Fjbg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", + "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", "dev": true, "requires": { "ccount": "^1.0.3", @@ -19382,38 +25432,67 @@ } }, "hast-util-has-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.2.tgz", - "integrity": "sha512-EBzRiKIIe9wouLSjqun5ti0oYcEe5U1eEpuOPtcihmP3KvFRovOmmXypf1B/QalQr9S4YoVgLOSg6gW98ihRbA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", + "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", "dev": true }, "hast-util-is-element": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.0.2.tgz", - "integrity": "sha512-4MEtyofNi3ZunPFrp9NpTQdNPN24xvLX3M+Lr/RGgPX6TLi+wR4/DqeoyQ7lwWcfUp4aevdt4RR0r7ZQPFbHxw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.0.4.tgz", + "integrity": "sha512-NFR6ljJRvDcyPP5SbV7MyPBgF47X3BsskLnmw1U34yL+X6YC0MoBx9EyMg8Jtx4FzGH95jw8+c1VPLHaRA0wDQ==", "dev": true }, "hast-util-parse-selector": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.1.tgz", - "integrity": "sha512-Xyh0v+nHmQvrOqop2Jqd8gOdyQtE8sIP9IQf7mlVDqp924W4w/8Liuguk2L2qei9hARnQSG2m+wAOCxM7npJVw==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", + "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==", "dev": true }, + "hast-util-raw": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-5.0.2.tgz", + "integrity": "sha512-3ReYQcIHmzSgMq8UrDZHFL0oGlbuVGdLKs8s/Fe8BfHFAyZDrdv1fy/AGn+Fim8ZuvAHcJ61NQhVMtyfHviT/g==", + "dev": true, + "requires": { + "hast-util-from-parse5": "^5.0.0", + "hast-util-to-parse5": "^5.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^5.0.0", + "unist-util-position": "^3.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hast-util-to-parse5": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-5.1.2.tgz", + "integrity": "sha512-ZgYLJu9lYknMfsBY0rBV4TJn2xiwF1fXFFjbP6EE7S0s5mS8LIKBVWzhA1MeIs1SWW6GnnE4In6c3kPb+CWhog==", + "dev": true, + "requires": { + "hast-to-hyperscript": "^7.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, "hast-util-to-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.1.tgz", - "integrity": "sha512-EC6awGe0ZMUNYmS2hMVaKZxvjVtQA4RhXjtgE20AxGG49MM7OUUfaHc6VcVYv2YwzNlrZQGe5teimCxW1Rk+fA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.3.tgz", + "integrity": "sha512-3lDgDE5OdpTfP3aFeKRWEwdIZ4vprztvp+AoD+RhF7uGOBs1yBDWZFadxnjcUV4KCoI3vB9A7gdFO98hEXA90w==", "dev": true }, "hastscript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.0.0.tgz", - "integrity": "sha512-xJtuJ8D42Xtq5yJrnDg/KAIxl2cXBXKoiIJwmWX9XMf8113qHTGl/Bf7jEsxmENJ4w6q4Tfl8s/Y6mEZo8x8qw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", + "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", "dev": true, "requires": { "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.2.0", - "property-information": "^5.0.1", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" } }, @@ -19433,9 +25512,9 @@ } }, "helmet": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.2.tgz", - "integrity": "sha512-okUo+MeWgg00cKB8Csblu8EXgcIoDyb5ZS/3u0W4spCimeVuCUvVZ6Vj3O2VJ1Sxpyb8jCDvzu0L1KKT11pkIg==", + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.22.0.tgz", + "integrity": "sha512-Xrqicn2nm1ZIUxP3YGuTBmbDL04neKsIT583Sjh0FkiwKDXYCMUqGqC88w3NUvVXtA75JyR2Jn6jw6ZEMOD+ZA==", "requires": { "depd": "2.0.0", "dns-prefetch-control": "0.2.0", @@ -19444,7 +25523,7 @@ "feature-policy": "0.3.0", "frameguard": "3.1.0", "helmet-crossdomain": "0.4.0", - "helmet-csp": "2.9.4", + "helmet-csp": "2.10.0", "hide-powered-by": "1.1.0", "hpkp": "2.0.0", "hsts": "2.2.0", @@ -19467,26 +25546,14 @@ "integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA==" }, "helmet-csp": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.9.4.tgz", - "integrity": "sha512-qUgGx8+yk7Xl8XFEGI4MFu1oNmulxhQVTlV8HP8tV3tpfslCs30OZz/9uQqsWPvDISiu/NwrrCowsZBhFADYqg==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.10.0.tgz", + "integrity": "sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w==", "requires": { - "bowser": "^2.7.0", + "bowser": "2.9.0", "camelize": "1.0.0", "content-security-policy-builder": "2.1.0", "dasherize": "2.0.0" - }, - "dependencies": { - "bowser": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.7.0.tgz", - "integrity": "sha512-aIlMvstvu8x+34KEiOHD3AsBgdrzg6sxALYiukOWhFvGMbQI6TRP/iY0LMhUrHs56aD6P1G0Z7h45PUJaa5m9w==" - }, - "content-security-policy-builder": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz", - "integrity": "sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==" - } } }, "hex-color-regex": { @@ -19500,20 +25567,6 @@ "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz", "integrity": "sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==" }, - "history": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/history/-/history-4.9.0.tgz", - "integrity": "sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^2.2.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^0.4.0" - } - }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -19525,11 +25578,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "hoek": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-5.0.3.tgz", - "integrity": "sha512-Bmr56pxML1c9kU+NS51SMFkiVQAb+9uFfXwyqR2tn4w2FPvmPt65eZ9aCcEfRXd9G74HkZnILC6p967pED4aiw==" - }, "hoist-non-react-statics": { "version": "2.5.5", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", @@ -19557,12 +25605,6 @@ "integrity": "sha512-Ba4+0M4YvIDUUsprMjhVTU1yN9F2/LJSAl69ZpzaLT4l4j5mwTS6jqqW9Ojvj6lKz/veqPzpJBqGbXspOb533A==", "dev": true }, - "hotkeys-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.6.4.tgz", - "integrity": "sha512-6SPs2XfSA2HBEDfiERX+XPjeY7JgR4lapVLmDxqd0229IymXlbT6aQbTaIh7kGg1FamzDUeqjUoWlDWX8NRkug==", - "dev": true - }, "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -19614,9 +25656,9 @@ "dev": true }, "html-element-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.0.1.tgz", - "integrity": "sha512-BZSfdEm6n706/lBfXKWa4frZRZcT5k1cOusw95ijZsHlI+GdgY0v95h6IzO3iIDf2ROwq570YTwqNPqHcNMozw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.2.0.tgz", + "integrity": "sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw==", "dev": true, "requires": { "array-filter": "^1.0.0" @@ -19634,6 +25676,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, "requires": { "whatwg-encoding": "^1.0.1" } @@ -19644,135 +25687,173 @@ "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", "dev": true }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", + "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" }, "dependencies": { "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "uglify-js": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz", + "integrity": "sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==", + "requires": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } } } }, "html-minifier-terser": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.2.tgz", - "integrity": "sha512-VAaitmbBuHaPKv9bj47XKypRhgDxT/cDLvsPiiF7w+omrN3K0eQhpigV9Z1ilrmHa9e0rOYcD6R/+LCDADGcnQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.5.tgz", + "integrity": "sha512-cBSFFghQh/uHcfSiL42KxxIRMF7A144+3E44xdlctIjxEmkEfCvouxNyFH2wysXk1fCGBPwtcr3hDWlGTfkDew==", "dev": true, "requires": { - "camel-case": "^3.0.0", - "clean-css": "^4.2.1", - "commander": "^4.0.0", + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", "he": "^1.2.0", - "param-case": "^2.1.1", + "param-case": "^3.0.3", "relateurl": "^0.2.7", - "terser": "^4.3.9" + "terser": "^4.6.3" }, "dependencies": { + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, "commander": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", - "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true }, + "dot-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "dev": true, + "requires": { + "tslib": "^1.10.0" + } + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "dev": true, + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "param-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", + "dev": true, + "requires": { + "dot-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true } } }, "html-to-text": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-4.0.0.tgz", - "integrity": "sha512-QQl5EEd97h6+3crtgBhkEAO6sQnZyDff8DAeJzoSkOc1Dqe1UvTUZER0B+KjBe6fPZqq549l2VUhtracus3ndA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-5.1.1.tgz", + "integrity": "sha512-Bci6bD/JIfZSvG4s0gW/9mMKwBRoe/1RWLxUME/d6WUSZCdY7T60bssf/jFf7EYXRyqU4P5xdClVqiYU0/ypdA==", "requires": { - "he": "^1.0.0", - "htmlparser2": "^3.9.2", - "lodash": "^4.17.4", - "optimist": "^0.6.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "he": "^1.2.0", + "htmlparser2": "^3.10.1", + "lodash": "^4.17.11", + "minimist": "^1.2.0" } }, + "html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "dev": true + }, "html-webpack-plugin": { - "version": "4.0.0-beta.11", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz", - "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.4.tgz", + "integrity": "sha512-BREQzUbFfIQS39KqxkT2L1Ot0tuu1isako1CaCQLrgEQ43zi2ScHAe3SMTnVBWsStnIsGtl8jprDdxwZkNhrwQ==", "dev": true, "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", "html-minifier-terser": "^5.0.1", "loader-utils": "^1.2.3", "lodash": "^4.17.15", @@ -19781,6 +25862,29 @@ "util.promisify": "1.0.0" }, "dependencies": { + "@types/tapable": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.5.tgz", + "integrity": "sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -19793,7 +25897,6 @@ "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, "requires": { "domelementtype": "^1.3.1", "domhandler": "^2.3.0", @@ -19806,14 +25909,12 @@ "domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" }, "readable-stream": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19822,6 +25923,12 @@ } } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -19832,6 +25939,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -19846,14 +25954,22 @@ "dev": true }, "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", + "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", "dev": true, "requires": { - "eventemitter3": "^3.0.0", + "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", + "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "dev": true + } } }, "http-proxy-agent": { @@ -19927,147 +26043,114 @@ } } }, - "humanize-duration": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.18.0.tgz", - "integrity": "sha512-reYy4EJMqlhX13TDlgSqLYfVGKOoixoEzsSL6DBlp22dScWN8Q2eMgDF4L0q28mzbgO40rnBy3WyEUQEhfYALw==", + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "humanize-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/humanize-string/-/humanize-string-1.0.2.tgz", - "integrity": "sha512-PH5GBkXqFxw5+4eKaKRIkD23y6vRd/IXSl7IldyJxEXpDH9SEIXRORkBtkGni/ae2P7RVOw6Wxypd2tGXhha1w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/humanize-string/-/humanize-string-2.1.0.tgz", + "integrity": "sha512-sQ+hqmxyXW8Cj7iqxcQxD7oSy3+AXnIZXdUF9lQMkzaG8dtbKAB8U7lCtViMnwQ+MpdCKsO2Kiij3G6UUXq/Xg==", "dev": true, "requires": { - "decamelize": "^1.0.0" + "decamelize": "^2.0.0" + }, + "dependencies": { + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "requires": { + "xregexp": "4.0.0" + } + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true + } } }, "husky": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-2.2.0.tgz", - "integrity": "sha512-lG33E7zq6v//H/DQIojPEi1ZL9ebPFt3MxUMD8MR0lrS2ljEPiuUUxlziKIs/o9EafF0chL7bAtLQkcPvXmdnA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.3.tgz", + "integrity": "sha512-VxTsSTRwYveKXN4SaH1/FefRJYCtx+wx04sSVcOpD7N2zjoHxa+cEJ07Qg5NmV3HAK+IRKOyNVpi2YBIVccIfQ==", "dev": true, "requires": { - "cosmiconfig": "^5.2.0", - "execa": "^1.0.0", - "find-up": "^3.0.0", - "get-stdin": "^7.0.0", - "is-ci": "^2.0.0", - "pkg-dir": "^4.1.0", - "please-upgrade-node": "^3.1.1", - "read-pkg": "^5.0.0", - "run-node": "^1.0.0", - "slash": "^2.0.0" + "chalk": "^3.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.5.1", + "cosmiconfig": "^6.0.0", + "find-versions": "^3.2.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" }, "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", - "parse-json": "^4.0.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "pump": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "requires": { - "ci-info": "^2.0.0" - } - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "p-locate": "^4.1.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -20077,65 +26160,57 @@ "dev": true }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "pkg-dir": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.1.0.tgz", - "integrity": "sha512-55k9QN4saZ8q518lE6EFgYiu95u3BWkSajCifhdQjvLvmr8IpnRbhI+UGpWJQfa0KzDguHeeWT1ccO1PmkOi3A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "semver-compare": "^1.0.0" } }, - "read-pkg": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz", - "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^4.0.0", - "type-fest": "^0.4.1" - } - }, - "resolve": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", - "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true }, "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true } } @@ -20158,12 +26233,71 @@ "dev": true }, "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", "dev": true, "requires": { - "postcss": "^6.0.1" + "postcss": "^7.0.14" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "ieee754": { @@ -20194,9 +26328,9 @@ "integrity": "sha1-uOa/YDnfAFbjM1AqALZjejEF2JQ=" }, "image-size": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.3.tgz", - "integrity": "sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==" + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", + "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==" }, "immer": { "version": "1.10.0", @@ -20254,51 +26388,57 @@ } } }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "dependencies": { "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -20307,14 +26447,35 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true } } }, @@ -20336,6 +26497,12 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", @@ -20362,33 +26529,417 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, + "ink": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz", + "integrity": "sha512-s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^4.2.1", + "arrify": "^2.0.1", + "auto-bind": "^4.0.0", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-truncate": "^2.1.0", + "is-ci": "^2.0.0", + "lodash.throttle": "^4.1.1", + "log-update": "^3.0.0", + "prop-types": "^15.6.2", + "react-reconciler": "^0.24.0", + "scheduler": "^0.18.0", + "signal-exit": "^3.0.2", + "slice-ansi": "^3.0.0", + "string-length": "^3.1.0", + "widest-line": "^3.1.0", + "wrap-ansi": "^6.2.0", + "yoga-layout-prebuilt": "^1.9.3" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "optional": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "optional": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "optional": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "optional": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "optional": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "optional": true + }, + "log-update": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.4.0.tgz", + "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==", + "dev": true, + "optional": true, + "requires": { + "ansi-escapes": "^3.2.0", + "cli-cursor": "^2.1.0", + "wrap-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "optional": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "optional": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "optional": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true, + "optional": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "optional": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "optional": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "optional": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "optional": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "optional": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "optional": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "optional": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "optional": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "scheduler": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", + "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "dev": true, + "optional": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "optional": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "ink-spinner": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ink-spinner/-/ink-spinner-3.0.1.tgz", + "integrity": "sha512-AVR4Z/NXDQ7dT5ltWcCzFS9Dd4T8eaO//E2UO8VYNiJcZpPCSJ11o5A0UVPcMlZxGbGD6ikUFDR3ZgPUQk5haQ==", + "dev": true, + "optional": true, + "requires": { + "cli-spinners": "^1.0.0", + "prop-types": "^15.5.10" + }, + "dependencies": { + "cli-spinners": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "dev": true, + "optional": true + } + } + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "dev": true + }, "inquirer": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", - "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", - "external-editor": "^3.0.0", + "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.10", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", - "rxjs": "^6.1.0", + "rxjs": "^6.4.0", "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -20397,6 +26948,15 @@ "requires": { "ansi-regex": "^4.1.0" } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -20408,12 +26968,83 @@ "requires": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" + } + }, + "internal-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", + "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", + "dev": true, + "requires": { + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" }, "dependencies": { - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true } } @@ -20425,11 +27056,29 @@ "dev": true }, "intersection-observer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.6.0.tgz", - "integrity": "sha512-WUVAqGJr08yh73XKe1JhylQ9BiBIytrkt8SH5Knu7Uy44ij5cICi6PbVLIbV/D2eIx9LJVkGBo9WF80R4VXJ+w==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.7.0.tgz", + "integrity": "sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==", "dev": true }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "dependencies": { + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + } + } + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -20442,29 +27091,29 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true }, "ioredis": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.9.0.tgz", - "integrity": "sha512-YzfCLsN++Ct43QqGK9CWxaEK6OUvJ7rnENieAPNw3DVp/oF2uBrP2NJChbhO74Ng3LWA+i5zdIEUsZYr6dKDIQ==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.16.1.tgz", + "integrity": "sha512-g76Mm9dE7BLuewncu1MimGZw5gDDjDwjoRony/VoSxSJEKAhuYncDEwYKYjtHi2NWsTNIB6XXRjE64uVa/wpKQ==", "requires": { - "cluster-key-slot": "^1.0.6", - "debug": "^3.1.0", + "cluster-key-slot": "^1.1.0", + "debug": "^4.1.1", "denque": "^1.1.0", - "flexbuffer": "0.0.6", "lodash.defaults": "^4.2.0", "lodash.flatten": "^4.4.0", - "redis-commands": "1.4.0", + "redis-commands": "1.5.0", "redis-errors": "^1.2.0", "redis-parser": "^3.0.0", "standard-as-callback": "^2.0.1" }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { "ms": "^2.1.1" } @@ -20526,6 +27175,12 @@ "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", "dev": true }, + "is-alphanumeric": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", + "dev": true + }, "is-alphanumerical": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", @@ -20536,24 +27191,30 @@ "is-decimal": "^1.0.0" } }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, "requires": { "binary-extensions": "^1.0.0" } }, "is-boolean-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", - "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz", + "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==", "dev": true }, "is-buffer": { @@ -20647,7 +27308,12 @@ "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", + "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==", "dev": true }, "is-eot": { @@ -20667,13 +27333,10 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -20691,6 +27354,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -20701,6 +27365,53 @@ "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", "dev": true }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "dependencies": { + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + } + } + }, + "is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, "is-keyword-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-keyword-js/-/is-keyword-js-1.0.3.tgz", @@ -20717,11 +27428,21 @@ } }, "is-nan": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.2.1.tgz", - "integrity": "sha1-n69ltvttskt/XAYoR16nH5iEAeI=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz", + "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==", "requires": { - "define-properties": "^1.1.1" + "define-properties": "^1.1.3" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + } } }, "is-negated-glob": { @@ -20730,6 +27451,12 @@ "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", "dev": true }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -20749,9 +27476,9 @@ } }, "is-number-object": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", - "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", "dev": true }, "is-obj": { @@ -20760,6 +27487,12 @@ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, "is-observable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", @@ -20794,9 +27527,9 @@ } }, "is-path-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz", - "integrity": "sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, "is-path-in-cwd": { @@ -20806,16 +27539,24 @@ "dev": true, "requires": { "is-path-inside": "^2.1.0" + }, + "dependencies": { + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + } } }, "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true }, "is-plain-obj": { "version": "1.1.0", @@ -20831,6 +27572,11 @@ "isobject": "^3.0.1" } }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" + }, "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -20881,21 +27627,36 @@ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, - "is-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.0.0.tgz", - "integrity": "sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg==", + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", "dev": true }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "dev": true + }, + "is-ssh": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz", + "integrity": "sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==", + "dev": true, + "requires": { + "protocols": "^1.1.0" + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", - "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true }, "is-subset": { @@ -20977,6 +27738,15 @@ "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", "dev": true }, + "is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "dev": true, + "requires": { + "is-invalid-path": "^0.1.0" + } + }, "is-whitespace-character": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", @@ -21012,28 +27782,26 @@ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "isemail": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.2.tgz", - "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==", - "requires": { - "punycode": "2.x.x" - } - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "iso-639-3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/iso-639-3/-/iso-639-3-1.2.0.tgz", - "integrity": "sha512-jNvD2P4JHNckQH7pc0R0SQ4oPCpyEtgs0nTtjB+DZCUDdygz0cOAxlcnq5KgNjjsqMHbR4Sbgwz2+DflzAZvlQ==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/iso-639-3/-/iso-639-3-2.0.0.tgz", + "integrity": "sha512-Pp+ctEs/pna6/rj05a5VR3qYxJHBZi95wp20C6Snf/WeghrkR/4G44LPJFqlbyo67XntkcUaxwrGmMeyY+F4mA==" }, "isobject": { "version": "3.0.1", @@ -21062,16 +27830,6 @@ } } }, - "isomorphic-unfetch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-2.1.1.tgz", - "integrity": "sha512-nd8AULy4i2rA8dv0nOBT9xieIegd3xi7NDxTQ9+iNXDTyaG6VbUYW3F+TdMRqxqXhDFWM2k7fttKx9W2Wd8JpQ==", - "dev": true, - "requires": { - "node-fetch": "^2.1.2", - "unfetch": "^3.1.0" - } - }, "isostring": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isostring/-/isostring-0.0.1.tgz", @@ -21083,93 +27841,152 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", "dev": true }, "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", + "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", "dev": true, "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" + "@babel/core": "^7.7.5", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "dependencies": { - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/types": "^7.4.4", + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "dev": true, + "requires": { + "@babel/types": "^7.9.0", "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", - "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", - "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/types": "^7.4.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.11" + "lodash": "^4.17.13" } }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -21179,29 +27996,22 @@ "ms": "^2.1.1" } }, - "semver": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", - "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "dependencies": { + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -21209,16 +28019,57 @@ } } }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", "dev": true, "requires": { "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", + "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" }, "dependencies": { @@ -21231,29 +28082,6 @@ "ms": "^2.1.1" } }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -21263,12 +28091,23 @@ } }, "istanbul-reports": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", - "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-Vm9xwCiQ8t2cNNnckyeAV0UdxKpcQUz4nMxsBvIu8n2kmPSiyb5uaF/8LpmKr+yqL/MdOXaX2Nmdo4Qyxium9Q==", "dev": true, "requires": { - "handlebars": "^4.1.2" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "iterall": { @@ -21276,151 +28115,120 @@ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.2.2.tgz", "integrity": "sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==" }, - "javascript-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.0.0.tgz", - "integrity": "sha512-zzK8+ByrzvOL6N92hRewwUKL0wN0TOaIuUjX0Jj8lraxWvr5wHYs2YTjaj2lstF+8qMv5cmPPef47va8NT8lDw==", - "dev": true - }, "jest": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-24.8.0.tgz", - "integrity": "sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-25.2.4.tgz", + "integrity": "sha512-Lu4LXxf4+durzN/IFilcAoQSisOwgHIXgl9vffopePpSSwFqfj1Pj4y+k3nL8oTbnvjxgDIsEcepy6he4bWqnQ==", "dev": true, "requires": { - "import-local": "^2.0.0", - "jest-cli": "^24.8.0" + "@jest/core": "^25.2.4", + "import-local": "^3.0.2", + "jest-cli": "^25.2.4" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "pump": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "jest-cli": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.8.0.tgz", - "integrity": "sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.2.4.tgz", + "integrity": "sha512-zeY2pRDWKj2LZudIncvvguwLMEdcnJqc2jJbwza1beqi80qqLvkPF/BjbFkK2sIV3r+mfTJS+7ITrvK6pCdRjg==", "dev": true, "requires": { - "@jest/core": "^24.8.0", - "@jest/test-result": "^24.8.0", - "@jest/types": "^24.8.0", - "chalk": "^2.0.1", + "@jest/core": "^25.2.4", + "@jest/test-result": "^25.2.4", + "@jest/types": "^25.2.3", + "chalk": "^3.0.0", "exit": "^0.1.2", - "import-local": "^2.0.0", + "import-local": "^3.0.2", "is-ci": "^2.0.0", - "jest-config": "^24.8.0", - "jest-util": "^24.8.0", - "jest-validate": "^24.8.0", + "jest-config": "^25.2.4", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", "prompts": "^2.0.1", - "realpath-native": "^1.1.0", - "yargs": "^12.0.2" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" + "realpath-native": "^2.0.0", + "yargs": "^15.3.1" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "p-locate": "^4.1.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -21429,40 +28237,52 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", "dev": true, "requires": { - "cliui": "^4.0.0", + "cliui": "^6.0.0", "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -21472,101 +28292,191 @@ } }, "jest-axe": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jest-axe/-/jest-axe-3.2.0.tgz", - "integrity": "sha512-QSQwSwG72/cpmhJU0fBsaUUvu9mb2uAqhccGQVG6JbIV8sK+aIXh8hYl7vxraMF/I6soQod1aqSdD/j7LjpVFQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jest-axe/-/jest-axe-3.4.0.tgz", + "integrity": "sha512-iKAq/cBxvyizSkpSY+CTndsXy2v5IWAkYXqanPF6bGaGXJ3fEtzEWQRVeZ0SHCEbsjnvDaOly5nwiiDOz0suDw==", "dev": true, "requires": { - "axe-core": "3.3.1", - "chalk": "2.4.2", - "jest-matcher-utils": "24.8.0", - "lodash.merge": "4.6.2" + "axe-core": "^3.5.1", + "chalk": "^3.0.0", + "jest-matcher-utils": "^25.1.0", + "lodash.merge": "^4.6.2" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, "axe-core": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.3.1.tgz", - "integrity": "sha512-gw1T0JptHPF4AdLLqE8yQq3Z7YvsYkpFmFWd84r6hnq/QoKRr8icYHFumhE7wYl5TVIHgVlchMyJsAYh0CfwCQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.1.tgz", + "integrity": "sha512-mwpDgPwWB+5kMHyLjlxh4w25ClJfqSxi+c6LQ4ix349TdCUctMwJNPTkhPD1qP9SYIjFgjeVpVZWCvK9oBGwCg==", "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-changed-files": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.8.0.tgz", - "integrity": "sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.2.3.tgz", + "integrity": "sha512-EFxy94dvvbqRB36ezIPLKJ4fDIC+jAdNs8i8uTwFpaXd6H3LVc3ova1lNS4ZPWk09OCR2vq5kSdSQgar7zMORg==", "dev": true, "requires": { - "@jest/types": "^24.8.0", - "execa": "^1.0.0", - "throat": "^4.0.0" + "@jest/types": "^25.2.3", + "execa": "^3.2.0", + "throat": "^5.0.0" }, "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" } } } }, "jest-config": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.8.0.tgz", - "integrity": "sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.2.4.tgz", + "integrity": "sha512-fxy3nIpwJqOUQJRVF/q+pNQb6dv5b9YufOeCbpPZJ/md1zXpiupbhfehpfODhnKOfqbzSiigtSLzlWWmbRxnqQ==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^24.8.0", - "@jest/types": "^24.8.0", - "babel-jest": "^24.8.0", - "chalk": "^2.0.1", + "@jest/test-sequencer": "^25.2.4", + "@jest/types": "^25.2.3", + "babel-jest": "^25.2.4", + "chalk": "^3.0.0", + "deepmerge": "^4.2.2", "glob": "^7.1.1", - "jest-environment-jsdom": "^24.8.0", - "jest-environment-node": "^24.8.0", - "jest-get-type": "^24.8.0", - "jest-jasmine2": "^24.8.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.8.0", - "jest-util": "^24.8.0", - "jest-validate": "^24.8.0", - "micromatch": "^3.1.10", - "pretty-format": "^24.8.0", - "realpath-native": "^1.1.0" + "jest-environment-jsdom": "^25.2.4", + "jest-environment-node": "^25.2.4", + "jest-get-type": "^25.2.1", + "jest-jasmine2": "^25.2.4", + "jest-regex-util": "^25.2.1", + "jest-resolve": "^25.2.3", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", + "micromatch": "^4.0.2", + "pretty-format": "^25.2.3", + "realpath-native": "^2.0.0" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -21576,214 +28486,838 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.1.tgz", + "integrity": "sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "pretty-format": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "dev": true, + "requires": { + "@jest/types": "^25.2.3", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, "jest-diff": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.8.0.tgz", - "integrity": "sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.1.0.tgz", + "integrity": "sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw==", "dev": true, "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.3.0", - "jest-get-type": "^24.8.0", - "pretty-format": "^24.8.0" + "chalk": "^3.0.0", + "diff-sequences": "^25.1.0", + "jest-get-type": "^25.1.0", + "pretty-format": "^25.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.2.3.tgz", + "integrity": "sha512-d3/tmjLLrH5fpRGmIm3oFa3vOaD/IjPxtXVOrfujpfJ9y1tCDB1x/tvunmdOVAyF03/xeMwburl6ITbiQT1mVA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + }, + "dependencies": { + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + } } }, "jest-each": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.8.0.tgz", - "integrity": "sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.2.3.tgz", + "integrity": "sha512-RTlmCjsBDK2c9T5oO4MqccA3/5Y8BUtiEy7OOQik1iyCgdnNdHbI0pNEpyapZPBG0nlvZ4mIu7aY6zNUvLraAQ==", "dev": true, "requires": { - "@jest/types": "^24.8.0", - "chalk": "^2.0.1", - "jest-get-type": "^24.8.0", - "jest-util": "^24.8.0", - "pretty-format": "^24.8.0" + "@jest/types": "^25.2.3", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.1", + "jest-util": "^25.2.3", + "pretty-format": "^25.2.3" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.1.tgz", + "integrity": "sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w==", + "dev": true + }, + "pretty-format": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "dev": true, + "requires": { + "@jest/types": "^25.2.3", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } } }, "jest-environment-jsdom": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz", - "integrity": "sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.2.4.tgz", + "integrity": "sha512-5dm+tNwrLmhELdjAwiQnVGf/U9iFMWdTL4/wyrMg2HU6RQnCiuxpWbIigLHUhuP1P2Ak0F4k3xhjrikboKyShA==", "dev": true, "requires": { - "@jest/environment": "^24.8.0", - "@jest/fake-timers": "^24.8.0", - "@jest/types": "^24.8.0", - "jest-mock": "^24.8.0", - "jest-util": "^24.8.0", - "jsdom": "^11.5.1" + "@jest/environment": "^25.2.4", + "@jest/fake-timers": "^25.2.4", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", + "jsdom": "^15.2.1" }, "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "escodegen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true }, "jsdom": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", - "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", + "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", "dev": true, "requires": { "abab": "^2.0.0", - "acorn": "^5.5.3", - "acorn-globals": "^4.1.0", + "acorn": "^7.1.0", + "acorn-globals": "^4.3.2", "array-equal": "^1.0.0", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": "^1.0.0", - "data-urls": "^1.0.0", + "cssom": "^0.4.1", + "cssstyle": "^2.0.0", + "data-urls": "^1.1.0", "domexception": "^1.0.1", - "escodegen": "^1.9.1", + "escodegen": "^1.11.1", "html-encoding-sniffer": "^1.0.2", - "left-pad": "^1.3.0", - "nwsapi": "^2.0.7", - "parse5": "4.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.0", "pn": "^1.1.0", - "request": "^2.87.0", - "request-promise-native": "^1.0.5", - "sax": "^1.2.4", + "request": "^2.88.0", + "request-promise-native": "^1.0.7", + "saxes": "^3.1.9", "symbol-tree": "^3.2.2", - "tough-cookie": "^2.3.4", + "tough-cookie": "^3.0.1", "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", "webidl-conversions": "^4.0.2", - "whatwg-encoding": "^1.0.3", - "whatwg-mimetype": "^2.1.0", - "whatwg-url": "^6.4.1", - "ws": "^5.2.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^7.0.0", "xml-name-validator": "^3.0.0" } }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true }, - "whatwg-url": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", - "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" } + }, + "ws": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", + "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", + "dev": true } } }, "jest-environment-node": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.8.0.tgz", - "integrity": "sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.2.4.tgz", + "integrity": "sha512-Jkc5Y8goyXPrLRHnrUlqC7P4o5zn2m4zw6qWoRJ59kxV1f2a5wK+TTGhrhCwnhW/Ckpdl/pm+LufdvhJkvJbiw==", "dev": true, "requires": { - "@jest/environment": "^24.8.0", - "@jest/fake-timers": "^24.8.0", - "@jest/types": "^24.8.0", - "jest-mock": "^24.8.0", - "jest-util": "^24.8.0" - } - }, - "jest-get-type": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.8.0.tgz", - "integrity": "sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ==", - "dev": true - }, - "jest-haste-map": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.8.0.tgz", - "integrity": "sha512-ZBPRGHdPt1rHajWelXdqygIDpJx8u3xOoLyUBWRW28r3tagrgoepPrzAozW7kW9HrQfhvmiv1tncsxqHJO1onQ==", - "dev": true, - "requires": { - "@jest/types": "^24.8.0", - "anymatch": "^2.0.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.7", - "graceful-fs": "^4.1.15", - "invariant": "^2.2.4", - "jest-serializer": "^24.4.0", - "jest-util": "^24.8.0", - "jest-worker": "^24.6.0", - "micromatch": "^3.1.10", - "sane": "^4.0.3", - "walker": "^1.0.7" + "@jest/environment": "^25.2.4", + "@jest/fake-timers": "^25.2.4", + "@jest/types": "^25.2.3", + "jest-mock": "^25.2.3", + "jest-util": "^25.2.3", + "semver": "^6.3.0" }, "dependencies": { - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "jest-jasmine2": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz", - "integrity": "sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^24.8.0", - "@jest/test-result": "^24.8.0", - "@jest/types": "^24.8.0", - "chalk": "^2.0.1", - "co": "^4.6.0", - "expect": "^24.8.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^24.8.0", - "jest-matcher-utils": "^24.8.0", - "jest-message-util": "^24.8.0", - "jest-runtime": "^24.8.0", - "jest-snapshot": "^24.8.0", - "jest-util": "^24.8.0", - "pretty-format": "^24.8.0", - "throat": "^4.0.0" - } + "jest-get-type": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz", + "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==", + "dev": true }, - "jest-junit": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-6.4.0.tgz", - "integrity": "sha512-GXEZA5WBeUich94BARoEUccJumhCgCerg7mXDFLxWwI2P7wL3Z7sGWk+53x343YdBLjiMR9aD/gYMVKO+0pE4Q==", + "jest-haste-map": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.2.3.tgz", + "integrity": "sha512-pAP22OHtPr4qgZlJJFks2LLgoQUr4XtM1a+F5UaPIZNiCRnePA0hM3L7aiJ0gzwiNIYwMTfKRwG/S1L28J3A3A==", "dev": true, "requires": { - "jest-validate": "^24.0.0", - "mkdirp": "^0.5.1", - "strip-ansi": "^4.0.0", - "xml": "^1.0.1" + "@jest/types": "^25.2.3", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.3", + "jest-serializer": "^25.2.1", + "jest-util": "^25.2.3", + "jest-worker": "^25.2.1", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7", + "which": "^2.0.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-worker": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.1.tgz", + "integrity": "sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } }, - "jest-leak-detector": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz", - "integrity": "sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g==", + "jest-jasmine2": { + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.2.4.tgz", + "integrity": "sha512-juoKrmNmLwaheNbAg71SuUF9ovwUZCFNTpKVhvCXWk+SSeORcIUMptKdPCoLXV3D16htzhTSKmNxnxSk4SrTjA==", "dev": true, "requires": { - "pretty-format": "^24.8.0" + "@babel/traverse": "^7.1.0", + "@jest/environment": "^25.2.4", + "@jest/source-map": "^25.2.1", + "@jest/test-result": "^25.2.4", + "@jest/types": "^25.2.3", + "chalk": "^3.0.0", + "co": "^4.6.0", + "expect": "^25.2.4", + "is-generator-fn": "^2.0.0", + "jest-each": "^25.2.3", + "jest-matcher-utils": "^25.2.3", + "jest-message-util": "^25.2.4", + "jest-runtime": "^25.2.4", + "jest-snapshot": "^25.2.4", + "jest-util": "^25.2.3", + "pretty-format": "^25.2.3", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "diff-sequences": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.1.tgz", + "integrity": "sha512-foe7dXnGlSh3jR1ovJmdv+77VQj98eKCHHwJPbZ2eEf0fHwKbkZicpPxEch9smZ+n2dnF6QFwkOQdLq9hpeJUg==", + "dev": true + }, + "jest-diff": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.3.tgz", + "integrity": "sha512-VtZ6LAQtaQpFsmEzps15dQc5ELbJxy4L2DOSo2Ev411TUEtnJPkAMD7JneVypeMJQ1y3hgxN9Ao13n15FAnavg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.1", + "jest-get-type": "^25.2.1", + "pretty-format": "^25.2.3" + } + }, + "jest-get-type": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.1.tgz", + "integrity": "sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w==", + "dev": true + }, + "jest-matcher-utils": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.2.3.tgz", + "integrity": "sha512-ZmiXiwQRVM9MoKjGMP5YsGGk2Th5ncyRxfXKz5AKsmU8m43kgNZirckVzaP61MlSa9LKmXbevdYqVp1ZKAw2Rw==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "jest-diff": "^25.2.3", + "jest-get-type": "^25.2.1", + "pretty-format": "^25.2.3" + } + }, + "pretty-format": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "dev": true, + "requires": { + "@jest/types": "^25.2.3", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } + } + }, + "jest-junit": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-10.0.0.tgz", + "integrity": "sha512-dbOVRyxHprdSpwSAR9/YshLwmnwf+RSl5hf0kCGlhAcEeZY9aRqo4oNmaT0tLC16Zy9D0zekDjWkjHGjXlglaQ==", + "dev": true, + "requires": { + "jest-validate": "^24.9.0", + "mkdirp": "^0.5.1", + "strip-ansi": "^5.2.0", + "uuid": "^3.3.3", + "xml": "^1.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@types/yargs": { + "version": "13.0.8", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz", + "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "jest-leak-detector": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.2.3.tgz", + "integrity": "sha512-yblCMPE7NJKl7778Cf/73yyFWAas5St0iiEBwq7RDyaz6Xd4WPFnPz2j7yDb/Qce71A1IbDoLADlcwD8zT74Aw==", + "dev": true, + "requires": { + "jest-get-type": "^25.2.1", + "pretty-format": "^25.2.3" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.1.tgz", + "integrity": "sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w==", + "dev": true + }, + "pretty-format": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "dev": true, + "requires": { + "@jest/types": "^25.2.3", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + } } }, "jest-localstorage-mock": { @@ -21793,48 +29327,175 @@ "dev": true }, "jest-matcher-utils": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz", - "integrity": "sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz", + "integrity": "sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ==", "dev": true, "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.8.0", - "jest-get-type": "^24.8.0", - "pretty-format": "^24.8.0" + "chalk": "^3.0.0", + "jest-diff": "^25.1.0", + "jest-get-type": "^25.1.0", + "pretty-format": "^25.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-message-util": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.8.0.tgz", - "integrity": "sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.2.4.tgz", + "integrity": "sha512-9wWMH3Bf+GVTv0GcQLmH/FRr0x0toptKw9TA8U5YFLVXx7Tq9pvcNzTyJrcTJ+wLqNbMPPJlJNft4MnlcrtF5Q==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.8.0", - "@jest/types": "^24.8.0", + "@jest/test-result": "^25.2.4", + "@jest/types": "^25.2.3", "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", + "chalk": "^3.0.0", + "micromatch": "^4.0.2", + "slash": "^3.0.0", "stack-utils": "^1.0.1" }, "dependencies": { - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "stack-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", + "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, "jest-mock": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.8.0.tgz", - "integrity": "sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.2.3.tgz", + "integrity": "sha512-xlf+pyY0j47zoCs8zGGOGfWyxxLximE8YFOfEK8s4FruR8DtM/UjNj61um+iDuMAFEBDe1bhCXkqiKoCmWjJzg==", "dev": true, "requires": { - "@jest/types": "^24.8.0" + "@jest/types": "^25.2.3" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + } } }, "jest-mock-console": { @@ -21850,153 +29511,239 @@ "dev": true }, "jest-regex-util": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.3.0.tgz", - "integrity": "sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==", + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.1.tgz", + "integrity": "sha512-wroFVJw62LdqTdkL508ZLV82FrJJWVJMIuYG7q4Uunl1WAPTf4ftPKrqqfec4SvOIlvRZUdEX2TFpWR356YG/w==", "dev": true }, "jest-resolve": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.8.0.tgz", - "integrity": "sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.2.3.tgz", + "integrity": "sha512-1vZMsvM/DBH258PnpUNSXIgtzpYz+vCVCj9+fcy4akZl4oKbD+9hZSlfe9RIDpU0Fc28ozHQrmwX3EqFRRIHGg==", "dev": true, "requires": { - "@jest/types": "^24.8.0", + "@jest/types": "^25.2.3", "browser-resolve": "^1.11.3", - "chalk": "^2.0.1", + "chalk": "^3.0.0", "jest-pnp-resolver": "^1.2.1", - "realpath-native": "^1.1.0" + "realpath-native": "^2.0.0", + "resolve": "^1.15.1" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "resolve": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } } }, "jest-resolve-dependencies": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz", - "integrity": "sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.2.4.tgz", + "integrity": "sha512-qhUnK4PfNHzNdca7Ub1mbAqE0j5WNyMTwxBZZJjQlUrdqsiYho/QGK65FuBkZuSoYtKIIqriR9TpGrPEc3P5Gg==", "dev": true, "requires": { - "@jest/types": "^24.8.0", - "jest-regex-util": "^24.3.0", - "jest-snapshot": "^24.8.0" + "@jest/types": "^25.2.3", + "jest-regex-util": "^25.2.1", + "jest-snapshot": "^25.2.4" + }, + "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + } } }, "jest-runner": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.8.0.tgz", - "integrity": "sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.2.4.tgz", + "integrity": "sha512-5xaIfqqxck9Wg2CV4b9KmJtf/sWO7zWQx7O+34GCLGPzoPcVmB3mZtdrQI1/jS3Reqjru9ycLjgLHSf6XoxRqA==", "dev": true, "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.8.0", - "@jest/test-result": "^24.8.0", - "@jest/types": "^24.8.0", - "chalk": "^2.4.2", + "@jest/console": "^25.2.3", + "@jest/environment": "^25.2.4", + "@jest/test-result": "^25.2.4", + "@jest/types": "^25.2.3", + "chalk": "^3.0.0", "exit": "^0.1.2", - "graceful-fs": "^4.1.15", - "jest-config": "^24.8.0", - "jest-docblock": "^24.3.0", - "jest-haste-map": "^24.8.0", - "jest-jasmine2": "^24.8.0", - "jest-leak-detector": "^24.8.0", - "jest-message-util": "^24.8.0", - "jest-resolve": "^24.8.0", - "jest-runtime": "^24.8.0", - "jest-util": "^24.8.0", - "jest-worker": "^24.6.0", + "graceful-fs": "^4.2.3", + "jest-config": "^25.2.4", + "jest-docblock": "^25.2.3", + "jest-haste-map": "^25.2.3", + "jest-jasmine2": "^25.2.4", + "jest-leak-detector": "^25.2.3", + "jest-message-util": "^25.2.4", + "jest-resolve": "^25.2.3", + "jest-runtime": "^25.2.4", + "jest-util": "^25.2.3", + "jest-worker": "^25.2.1", "source-map-support": "^0.5.6", - "throat": "^4.0.0" + "throat": "^5.0.0" }, "dependencies": { - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "jest-docblock": { - "version": "24.3.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.3.0.tgz", - "integrity": "sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg==", + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { - "detect-newline": "^2.1.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.1.tgz", + "integrity": "sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } }, "jest-runtime": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.8.0.tgz", - "integrity": "sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.2.4.tgz", + "integrity": "sha512-6ehOUizgIghN+aV5YSrDzTZ+zJ9omgEjJbTHj3Jqes5D52XHfhzT7cSfdREwkNjRytrR7mNwZ7pRauoyNLyJ8Q==", "dev": true, "requires": { - "@jest/console": "^24.7.1", - "@jest/environment": "^24.8.0", - "@jest/source-map": "^24.3.0", - "@jest/transform": "^24.8.0", - "@jest/types": "^24.8.0", - "@types/yargs": "^12.0.2", - "chalk": "^2.0.1", + "@jest/console": "^25.2.3", + "@jest/environment": "^25.2.4", + "@jest/source-map": "^25.2.1", + "@jest/test-result": "^25.2.4", + "@jest/transform": "^25.2.4", + "@jest/types": "^25.2.3", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0", + "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "jest-config": "^24.8.0", - "jest-haste-map": "^24.8.0", - "jest-message-util": "^24.8.0", - "jest-mock": "^24.8.0", - "jest-regex-util": "^24.3.0", - "jest-resolve": "^24.8.0", - "jest-snapshot": "^24.8.0", - "jest-util": "^24.8.0", - "jest-validate": "^24.8.0", - "realpath-native": "^1.1.0", - "slash": "^2.0.0", - "strip-bom": "^3.0.0", - "yargs": "^12.0.2" + "graceful-fs": "^4.2.3", + "jest-config": "^25.2.4", + "jest-haste-map": "^25.2.3", + "jest-message-util": "^25.2.4", + "jest-mock": "^25.2.3", + "jest-regex-util": "^25.2.1", + "jest-resolve": "^25.2.3", + "jest-snapshot": "^25.2.4", + "jest-util": "^25.2.3", + "jest-validate": "^25.2.3", + "realpath-native": "^2.0.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.3.1" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -22008,80 +29755,42 @@ } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "p-locate": "^4.1.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -22090,46 +29799,64 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true }, "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", "dev": true, "requires": { - "cliui": "^4.0.0", + "cliui": "^6.0.0", "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -22139,176 +29866,358 @@ } }, "jest-serializer": { - "version": "24.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.4.0.tgz", - "integrity": "sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q==", + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.1.tgz", + "integrity": "sha512-fibDi7M5ffx6c/P66IkvR4FKkjG5ldePAK1WlbNoaU4GZmIAkS9Le/frAwRUFEX0KdnisSPWf+b1RC5jU7EYJQ==", "dev": true }, "jest-snapshot": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.8.0.tgz", - "integrity": "sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.2.4.tgz", + "integrity": "sha512-nIwpW7FZCq5p0AE3Oyqyb6jL0ENJixXzJ5/CD/XRuOqp3gS5OM3O/k+NnTrniCXxPFV4ry6s9HNfiPQBi0wcoA==", "dev": true, "requires": { "@babel/types": "^7.0.0", - "@jest/types": "^24.8.0", - "chalk": "^2.0.1", - "expect": "^24.8.0", - "jest-diff": "^24.8.0", - "jest-matcher-utils": "^24.8.0", - "jest-message-util": "^24.8.0", - "jest-resolve": "^24.8.0", - "mkdirp": "^0.5.1", + "@jest/types": "^25.2.3", + "@types/prettier": "^1.19.0", + "chalk": "^3.0.0", + "expect": "^25.2.4", + "jest-diff": "^25.2.3", + "jest-get-type": "^25.2.1", + "jest-matcher-utils": "^25.2.3", + "jest-message-util": "^25.2.4", + "jest-resolve": "^25.2.3", + "make-dir": "^3.0.0", "natural-compare": "^1.4.0", - "pretty-format": "^24.8.0", - "semver": "^5.5.0" + "pretty-format": "^25.2.3", + "semver": "^6.3.0" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } + }, + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "diff-sequences": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.1.tgz", + "integrity": "sha512-foe7dXnGlSh3jR1ovJmdv+77VQj98eKCHHwJPbZ2eEf0fHwKbkZicpPxEch9smZ+n2dnF6QFwkOQdLq9hpeJUg==", + "dev": true + }, + "jest-diff": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.2.3.tgz", + "integrity": "sha512-VtZ6LAQtaQpFsmEzps15dQc5ELbJxy4L2DOSo2Ev411TUEtnJPkAMD7JneVypeMJQ1y3hgxN9Ao13n15FAnavg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.1", + "jest-get-type": "^25.2.1", + "pretty-format": "^25.2.3" + } + }, + "jest-get-type": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.1.tgz", + "integrity": "sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w==", + "dev": true + }, + "jest-matcher-utils": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.2.3.tgz", + "integrity": "sha512-ZmiXiwQRVM9MoKjGMP5YsGGk2Th5ncyRxfXKz5AKsmU8m43kgNZirckVzaP61MlSa9LKmXbevdYqVp1ZKAw2Rw==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "jest-diff": "^25.2.3", + "jest-get-type": "^25.2.1", + "pretty-format": "^25.2.3" + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "pretty-format": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "dev": true, + "requires": { + "@jest/types": "^25.2.3", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, "jest-util": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.8.0.tgz", - "integrity": "sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.2.3.tgz", + "integrity": "sha512-7tWiMICVSo9lNoObFtqLt9Ezt5exdFlWs5fLe1G4XLY2lEbZc814cw9t4YHScqBkWMfzth8ASHKlYBxiX2rdCw==", "dev": true, "requires": { - "@jest/console": "^24.7.1", - "@jest/fake-timers": "^24.8.0", - "@jest/source-map": "^24.3.0", - "@jest/test-result": "^24.8.0", - "@jest/types": "^24.8.0", - "callsites": "^3.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.15", + "@jest/types": "^25.2.3", + "chalk": "^3.0.0", "is-ci": "^2.0.0", - "mkdirp": "^0.5.1", - "slash": "^2.0.0", - "source-map": "^0.6.0" + "make-dir": "^3.0.0" }, "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "jest-validate": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.8.0.tgz", - "integrity": "sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA==", + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.2.3.tgz", + "integrity": "sha512-GObn91jzU0B0Bv4cusAwjP6vnWy78hJUM8MOSz7keRfnac/ZhQWIsUjvk01IfeXNTemCwgR57EtdjQMzFZGREg==", "dev": true, "requires": { - "@jest/types": "^24.8.0", - "camelcase": "^5.0.0", - "chalk": "^2.0.1", - "jest-get-type": "^24.8.0", - "leven": "^2.1.0", - "pretty-format": "^24.8.0" + "@jest/types": "^25.2.3", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "jest-get-type": "^25.2.1", + "leven": "^3.1.0", + "pretty-format": "^25.2.3" }, "dependencies": { + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "jest-get-type": { + "version": "25.2.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.1.tgz", + "integrity": "sha512-EYjTiqcDTCRJDcSNKbLTwn/LcDPEE7ITk8yRMNAOjEsN6yp+Uu+V1gx4djwnuj/DvWg0YGmqaBqPVGsPxlvE7w==", + "dev": true + }, + "pretty-format": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.2.3.tgz", + "integrity": "sha512-IP4+5UOAVGoyqC/DiomOeHBUKN6q00gfyT2qpAsRH64tgOKB2yF7FHJXC18OCiU0/YFierACup/zdCOWw0F/0w==", + "dev": true, + "requires": { + "@jest/types": "^25.2.3", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true } } }, "jest-watcher": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.8.0.tgz", - "integrity": "sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw==", + "version": "25.2.4", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.2.4.tgz", + "integrity": "sha512-p7g7s3zqcy69slVzQYcphyzkB2FBmJwMbv6k6KjI5mqd6KnUnQPfQVKuVj2l+34EeuxnbXqnrjtUFmxhcL87rg==", "dev": true, "requires": { - "@jest/test-result": "^24.8.0", - "@jest/types": "^24.8.0", - "@types/yargs": "^12.0.9", - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "jest-util": "^24.8.0", - "string-length": "^2.0.0" - } - }, - "jest-worker": { - "version": "24.6.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz", - "integrity": "sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ==", - "dev": true, - "requires": { - "merge-stream": "^1.0.1", - "supports-color": "^6.1.0" + "@jest/test-result": "^25.2.4", + "@jest/types": "^25.2.3", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "jest-util": "^25.2.3", + "string-length": "^3.1.0" }, "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "@jest/types": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.2.3.tgz", + "integrity": "sha512-6oLQwO9mKif3Uph3RX5J1i3S7X7xtDHWBaaaoeKw8hOzV6YUd0qDcYcHZ6QXMHDIzSr7zzrEa51o2Ovlj6AtKQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" } } } }, - "joi": { - "version": "13.4.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-13.4.0.tgz", - "integrity": "sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==", + "jest-worker": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz", + "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==", + "dev": true, "requires": { - "hoek": "5.x.x", - "isemail": "3.x.x", - "topo": "3.x.x" + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "jquery": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", - "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==", - "optional": true - }, "js-base64": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", "dev": true }, - "js-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", - "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", - "dev": true - }, "js-string-escape": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -22318,7 +30227,8 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true }, "js-yaml": { "version": "3.13.1", @@ -22336,66 +30246,94 @@ "optional": true }, "jsdoctypeparser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-5.0.1.tgz", - "integrity": "sha512-dYwcK6TKzvq+ZKtbp4sbQSW9JMo6s+4YFfUs5D/K7bZsn3s1NhEhZ+jmIPzby0HbkbECBe+hNPEa6a+E21o94w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz", + "integrity": "sha512-UCQBZ3xCUBv/PLfwKAJhp6jmGOSLFNKzrotXGNgbKhWvz27wPsCsVeP7gIcHPElQw2agBmynAitXqhxR58XAmA==", "dev": true }, "jsdom": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.0.0.tgz", - "integrity": "sha512-rJnHm7CHyIj4tDyz9VaCt0f0P0nEh/wEmMfwp9mMixy+L/r8OW/BNcgmIlfZuBBnVQS3eRBpvd/qM3R7vr7e3A==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.2.2.tgz", + "integrity": "sha512-pDFQbcYtKBHxRaP55zGXCJWgFHkDAYbKcsXEK/3Icu9nKYZkutUXfLBwbD+09XDutkYSHcgfQLZ0qvpAAm9mvg==", "requires": { - "abab": "^2.0.0", - "acorn": "^6.0.4", - "acorn-globals": "^4.3.0", - "array-equal": "^1.0.0", - "cssom": "^0.3.4", - "cssstyle": "^1.1.1", - "data-urls": "^1.1.0", - "domexception": "^1.0.1", - "escodegen": "^1.11.0", - "html-encoding-sniffer": "^1.0.2", - "nwsapi": "^2.1.3", - "parse5": "5.1.0", - "pn": "^1.1.0", - "request": "^2.88.0", - "request-promise-native": "^1.0.5", - "saxes": "^3.1.9", - "symbol-tree": "^3.2.2", - "tough-cookie": "^2.5.0", - "w3c-hr-time": "^1.0.1", - "w3c-xmlserializer": "^1.1.2", - "webidl-conversions": "^4.0.2", + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.0.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^7.0.0", - "ws": "^6.1.2", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", "xml-name-validator": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" } }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "decimal.js": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", + "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } }, "escodegen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", @@ -22403,108 +30341,94 @@ } }, "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "whatwg-encoding": "^1.0.5" } }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "saxes": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.0.tgz", + "integrity": "sha512-LXTZygxhf8lfwKaTP/8N9CsVdjTlea3teze4lL6u37ivbgGbV0GGMuNtS/I9rnD/HC2/txUM7Df4S2LVl1qhiA==", "requires": { - "mime-db": "1.40.0" + "xmlchars": "^2.2.0" } }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "optional": true }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", "requires": { - "async-limiter": "~1.0.0" + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "requires": { + "punycode": "^2.1.1" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "webidl-conversions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.0.0.tgz", + "integrity": "sha512-jTZAeJnc6D+yAOjygbJOs33kVQIk5H6fj9SFDOhIKjsf9HiAzL/c+tAJsc8ASWafvhNkH+wJZms47pmajkhatA==" + }, + "whatwg-url": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.0.0.tgz", + "integrity": "sha512-41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.0", + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "ws": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", + "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==" } } }, @@ -22514,29 +30438,24 @@ "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-parser": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/json-parser/-/json-parser-1.1.5.tgz", - "integrity": "sha1-5i7FJh0aal/CDoEqMgdAxtkAVnc=", - "dev": true, - "requires": { - "esprima": "^2.7.0" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - } - } - }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -22568,6 +30487,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, "requires": { "minimist": "^1.2.0" } @@ -22622,26 +30542,27 @@ } }, "jsx-ast-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.1.0.tgz", - "integrity": "sha512-yDGDG2DS4JcqhA6blsuYbtsT09xL8AoLuUR2Gb5exrw7UEM19sBcOTq+YBBhrNbl0PUC4R4LnFu+dHg2HKeVvA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", + "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", "dev": true, "requires": { - "array-includes": "^3.0.3" + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" } }, "juice": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/juice/-/juice-5.2.0.tgz", - "integrity": "sha512-0l6GZmT3efexyaaay3SchKT5kG311N59TEFP5lfvEy0nz9SNqjx311plJ3b4jze7arsmDsiHQLh/xnAuk0HFTQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/juice/-/juice-6.0.0.tgz", + "integrity": "sha512-5T3JPgXYiw6A6axsb9E09Gzq46WbfJeDirY6nMrqY55iAdqEoPDxSr1GpXqYfoyndx4ujpBPXGLzBRzbiqOOaw==", "requires": { "cheerio": "^0.22.0", "commander": "^2.15.1", "cross-spawn": "^6.0.5", "deep-extend": "^0.6.0", - "mensch": "^0.3.3", + "mensch": "^0.3.4", "slick": "^1.12.2", - "web-resource-inliner": "^4.3.1" + "web-resource-inliner": "^4.3.3" }, "dependencies": { "cheerio": { @@ -22667,40 +30588,21 @@ "lodash.some": "^4.4.0" } }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "domelementtype": "1" - } - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "readable-stream": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", - "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -22712,9 +30614,9 @@ "dev": true }, "just-extend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", - "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz", + "integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==", "dev": true }, "jwa": { @@ -22728,43 +30630,47 @@ } }, "jwks-rsa": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-1.6.0.tgz", - "integrity": "sha512-gLhpd7Ka7Jy8ofm9OVj0PFPtSdx3+W2dncF3UCA1wDTAbvfiB1GhHbbyQlz8bqLF5+rge7pgD/DALRfgZi8Fgg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-1.7.0.tgz", + "integrity": "sha512-tq7DVJt9J6wTvl9+AQfwZIiPSuY2Vf0F+MovfRTFuBqLB1xgDVhegD33ChEAQ6yBv9zFvUIyj4aiwrSA5VehUw==", "requires": { "@types/express-jwt": "0.0.42", - "debug": "^2.6.9", + "debug": "^4.1.0", "jsonwebtoken": "^8.5.1", "limiter": "^1.1.4", - "lru-memoizer": "^1.12.0", - "ms": "^2.1.1", + "lru-memoizer": "^2.0.1", + "ms": "^2.1.2", "request": "^2.88.0" }, "dependencies": { - "@types/express-jwt": { - "version": "0.0.42", - "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz", - "integrity": "sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==", - "requires": { - "@types/express": "*", - "@types/express-unless": "*" - } - }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "aws4": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", - "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" }, "har-validator": { "version": "5.1.3", @@ -22788,25 +30694,25 @@ "mime-db": "1.43.0" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -22815,7 +30721,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -22825,24 +30731,22 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } } }, "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } } } }, @@ -22858,7 +30762,17 @@ "keymaster": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/keymaster/-/keymaster-1.6.2.tgz", - "integrity": "sha1-4a5U0OqUiPn2C2a2aPAumhlGxus=" + "integrity": "sha1-4a5U0OqUiPn2C2a2aPAumhlGxus=", + "dev": true + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } }, "killable": { "version": "1.0.1", @@ -22877,13 +30791,14 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, - "koa-range": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/koa-range/-/koa-range-0.3.0.tgz", - "integrity": "sha1-NYjjSWRzqDmhvSZNKkKx2FvX/qw=", + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", "dev": true, "requires": { - "stream-slice": "^0.1.2" + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" } }, "last-run": { @@ -22896,11 +30811,14 @@ "es6-weak-map": "^2.0.1" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } }, "lazystream": { "version": "1.0.0", @@ -22914,6 +30832,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, "requires": { "invert-kv": "^1.0.0" } @@ -22927,33 +30846,19 @@ "flush-write-stream": "^1.0.2" } }, - "left-pad": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", - "dev": true - }, "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levenary": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.0.tgz", - "integrity": "sha512-VHcwhO0UTpUW7rLPN2/OiWJdgA1e9BqEDALhrgCe/F+uUJnep6CoUsTzMeP8Rh0NGr9uKquXxqe7lwLZo509nQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", "dev": true, "requires": { "leven": "^3.1.0" - }, - "dependencies": { - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - } } }, "levn": { @@ -23000,237 +30905,187 @@ "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, "linkifyjs": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-2.1.8.tgz", - "integrity": "sha512-j3QpiEr4UYzN5foKhrr9Sr06VI9vSlI4HisDWt+7Mq+TWDwpJ6H/LLpogYsXcyUIJLVhGblXXdUnblHsVNMPpg==", - "requires": { - "jquery": "^3.3.1", - "react": "^16.4.2", - "react-dom": "^16.4.2" - }, - "dependencies": { - "react": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz", - "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==", - "optional": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.6" - } - }, - "react-dom": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", - "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==", - "optional": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.13.6" - } - }, - "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", - "optional": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-2.1.9.tgz", + "integrity": "sha512-74ivurkK6WHvHFozVaGtQWV38FzBwSTGNmJolEgFp7QgR2bl6ArUWlvT4GcHKbPe1z3nWYi+VUdDZk16zDOVug==" }, "lint-staged": { - "version": "8.1.6", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-8.1.6.tgz", - "integrity": "sha512-QT13AniHN6swAtTjsrzxOfE4TVCiQ39xESwLmjGVNCMMZ/PK5aopwvbxLrzw+Zf9OxM3cQG6WCx9lceLzETOnQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.1.1.tgz", + "integrity": "sha512-wAeu/ePaBAOfwM2+cVbgPWDtn17B0Sxiv0NvNEqDAIvB8Yhvl60vafKFiK4grcYn87K1iK+a0zVoETvKbdT9/Q==", "dev": true, "requires": { - "chalk": "^2.3.1", - "commander": "^2.14.1", - "cosmiconfig": "^5.0.2", - "debug": "^3.1.0", + "chalk": "^3.0.0", + "commander": "^4.0.1", + "cosmiconfig": "^6.0.0", + "debug": "^4.1.1", "dedent": "^0.7.0", - "del": "^3.0.0", - "execa": "^1.0.0", - "find-parent-dir": "^0.3.0", - "g-status": "^2.0.2", - "is-glob": "^4.0.0", - "is-windows": "^1.0.2", - "listr": "^0.14.2", - "listr-update-renderer": "^0.5.0", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "micromatch": "^3.1.8", - "npm-which": "^3.0.1", - "p-map": "^1.1.1", - "path-is-inside": "^1.0.2", - "pify": "^3.0.0", - "please-upgrade-node": "^3.0.2", - "staged-git-files": "1.1.2", - "string-argv": "^0.0.2", - "stringify-object": "^3.2.2", - "yup": "^0.27.0" + "execa": "^3.4.0", + "listr": "^0.14.3", + "log-symbols": "^3.0.0", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "string-argv": "0.3.1", + "stringify-object": "^3.3.0" }, "dependencies": { - "cosmiconfig": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.0.tgz", - "integrity": "sha512-nxt+Nfc3JAqf4WIWd0jXLjTJZmsPLrA9DDc4nRw2KFJQJK7DNooqSXrNI7tzLG50CF8axczly5UV929tBmh/7g==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.0", - "parse-json": "^4.0.0" + "color-convert": "^1.9.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" } }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "del": { + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "log-symbols": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "chalk": "^2.4.2" }, "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } } } }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" } } } @@ -23250,14 +31105,6 @@ "listr-verbose-renderer": "^0.5.0", "p-map": "^2.0.0", "rxjs": "^6.3.3" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - } } }, "listr-silent-renderer": { @@ -23282,6 +31129,12 @@ "strip-ansi": "^3.0.1" }, "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, "chalk": { "version": "1.1.3", "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -23293,14 +31146,6 @@ "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - } } }, "figures": { @@ -23343,72 +31188,88 @@ "cli-cursor": "^2.1.0", "date-fns": "^1.27.2", "figures": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "load-cfg": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/load-cfg/-/load-cfg-0.13.3.tgz", - "integrity": "sha512-BBgG2bY21XgF7SaDcn6Anb0I0fsahqMid6nfGt0jhnR+hNwfyTdmufi8RIElEEnvEyuqM/JSYhmwT+2rR/v+Tg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/load-cfg/-/load-cfg-2.1.0.tgz", + "integrity": "sha512-gge8ggp7RPNXLgYQzXQ2MRvu3JqUedtO6SjFLufw8ShMK48lRrOh0eyW9sBq/R/We1TXc9YaYHSnkOMzvBvRPg==", "dev": true, "requires": { - "deepmerge": "^3.0.0", - "esm": "^3.0.84", - "find-up": "^3.0.0", - "fs-extra": "^7.0.1" + "@babel/core": "^7.5.5", + "@babel/preset-env": "^7.5.5", + "@babel/register": "^7.5.5", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0", + "lodash": "^4.17.14" }, "dependencies": { - "deepmerge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz", - "integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow==", - "dev": true - }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -23416,6 +31277,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true } } }, @@ -23443,6 +31310,29 @@ } } }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + } + } + }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -23450,14 +31340,14 @@ "dev": true }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" + "emojis-list": "^3.0.0", + "json5": "^2.1.2" }, "dependencies": { "big.js": { @@ -23465,6 +31355,27 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true } } }, @@ -23478,10 +31389,14 @@ "path-exists": "^3.0.0" } }, - "lock": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/lock/-/lock-0.1.4.tgz", - "integrity": "sha1-/sfervF+fDoKVeHaBCgD4l2RdF0=" + "lockfile": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", + "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "dev": true, + "requires": { + "signal-exit": "^3.0.2" + } }, "lodash": { "version": "4.17.15", @@ -23489,15 +31404,9 @@ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash-es": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.14.tgz", - "integrity": "sha512-7zchRrGa8UZXjD/4ivUWP1867jDkhzTG2c/uj739utSd7O/pFFdxspCemIFKEEjErbcqRzn8nKnGsi7mvTgRPA==", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", + "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==", "dev": true }, "lodash._reinterpolate": { @@ -23521,6 +31430,12 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.deburr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", @@ -23543,6 +31458,12 @@ "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=", "dev": true }, + "lodash.every": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", + "integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=", + "dev": true + }, "lodash.filter": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", @@ -23559,12 +31480,6 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, - "lodash.flattendepth": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.flattendepth/-/lodash.flattendepth-4.7.0.tgz", - "integrity": "sha1-tNLRT8fZxT3rlmQuthb/8ipgky8=", - "dev": true - }, "lodash.foreach": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", @@ -23573,7 +31488,8 @@ "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true }, "lodash.has": { "version": "4.5.2", @@ -23586,18 +31502,6 @@ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, "lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", @@ -23640,6 +31544,12 @@ "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" }, + "lodash.maxby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", + "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=", + "dev": true + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -23692,18 +31602,25 @@ } }, "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, "requires": { - "lodash._reinterpolate": "~3.0.0" + "lodash._reinterpolate": "^3.0.0" } }, "lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", + "dev": true, + "optional": true + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", "dev": true }, "lodash.unescape": { @@ -23729,6 +31646,37 @@ "dev": true, "requires": { "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "log-update": { @@ -23740,29 +31688,55 @@ "ansi-escapes": "^3.0.0", "cli-cursor": "^2.0.0", "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } } }, "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz", + "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==", "dev": true }, - "loglevelnext": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", - "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", - "dev": true, - "requires": { - "es6-symbol": "^3.1.1", - "object.assign": "^4.1.0" - } + "lokijs": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.8.tgz", + "integrity": "sha512-D8E3TBrY35o1ELnonp2MF8b3wKu2tVNl2TqRjvS+95oPMMe7OoIAxNY1qr+5BEZwnWn2V4ErAjVt000DonM+FA==", + "dev": true }, "lolex": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.0.1.tgz", - "integrity": "sha512-UHuOBZ5jjsKuzbB/gRNNW8Vg8f00Emgskdq2kvZxgBJCS0aqquAuXai/SkWORlKeZEiNQWZjFZOqIUcH9LqKCw==", - "dev": true + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz", + "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } }, "long": { "version": "4.0.0", @@ -23779,6 +31753,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, "requires": { "js-tokens": "^3.0.0" } @@ -23807,6 +31782,12 @@ "lower-case": "^1.1.2" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -23823,14 +31804,12 @@ } }, "lru-memoizer": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-1.13.0.tgz", - "integrity": "sha512-q0wMolfI7yimhZ36kBAfMLOIuDBpRkieN9do0YPjSzCaiy6r73s8wOEq7Ue/B95VSRbXzfnOr1O1QdJc5UIqaw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.0.tgz", + "integrity": "sha512-oKjxgJhL+m1wfEkez7/a6iyRZUdohej+2u04qCaAQ7BBfx/qD4RH3jOQhPsd8Y3pcm7IhcNtE3kCEIDCMPiJFQ==", "requires": { - "lock": "~0.1.2", - "lodash": "^4.17.4", - "lru-cache": "~4.0.0", - "very-fast-args": "^1.1.0" + "lodash.clonedeep": "^4.5.0", + "lru-cache": "~4.0.0" }, "dependencies": { "lru-cache": { @@ -23854,20 +31833,14 @@ } }, "luxon": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.12.0.tgz", - "integrity": "sha512-enPnPIHd5ZnZT0vpj9Xv8aq4j0yueAkhnh4xUKUHpqlgSm1r/8s6xTMjfyp2ugOWP7zivqJqgVTkW+rpHed61w==" - }, - "lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", - "dev": true + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.22.2.tgz", + "integrity": "sha512-vq6eSaOOw1fKob+JXwfu0e3/UFUT4G4HTFRJab7dch8J1OdOGW/vXqCiJsY7rm2In+5gKNYx0EtnYT0Tc5V4Qw==" }, "magic-string": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.2.tgz", - "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==", + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { "sourcemap-codec": "^1.4.4" @@ -23921,12 +31894,6 @@ "tmpl": "1.0.x" } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -23968,23 +31935,43 @@ "dev": true }, "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==", "dev": true }, - "match-sorter": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-2.3.0.tgz", - "integrity": "sha512-0/F1ezfjs5vegTvdH0sJEDrIi+w7wvUeDW/yqLMsK6jQWgNNJRv8jYCLBc8QrCxQNpSEpei6vrOcnJwAbnYhkw==", + "marksy": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/marksy/-/marksy-8.0.0.tgz", + "integrity": "sha512-mmHcKZojCQAGuKTuu3153viXdCuxUmsSxomFaSOBTkOlfWFOZBmDhmJkOp0CsPMNRQ7m6oN2wflvAHLpBNZVPw==", "dev": true, "requires": { - "diacritic": "0.0.2" + "@babel/standalone": "^7.4.5", + "he": "^1.2.0", + "marked": "^0.3.12" }, "dependencies": { - "diacritic": { - "version": "0.0.2", - "bundled": true, + "marked": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "dev": true + } + } + }, + "match-sorter": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-3.1.1.tgz", + "integrity": "sha512-Qlox3wRM/Q4Ww9rv1cBmYKNJwWVX/WC+eA3+1S3Fv4EOhrqyp812ZEfVFKQk0AP6RfzmPUUOwEZBbJ8IRt8SOw==", + "dev": true, + "requires": { + "remove-accents": "0.4.2" + }, + "dependencies": { + "remove-accents": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", + "integrity": "sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U=", "dev": true } } @@ -24001,19 +31988,10 @@ "stack-trace": "0.0.10" } }, - "matcher": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz", - "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.4" - } - }, "matchmediaquery": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.0.tgz", - "integrity": "sha512-u0dlv+VENJ+3YepvwSPBieuvnA6DWfaYa/ctwysAR13y4XLJNyt7bEVKzNj/Nvjo+50d88Pj+xL9xaSo6JmX/w==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", + "integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==", "dev": true, "requires": { "css-mediaquery": "^0.1.2" @@ -24045,6 +32023,26 @@ } } }, + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dev": true, + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "md5-file": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", + "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.1.0" + } + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -24065,55 +32063,106 @@ } }, "mdast-squeeze-paragraphs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-3.0.4.tgz", - "integrity": "sha512-sUu55X5JWisBqfiq2pwQv4SnLb11EBua0NWjvcl6WORfV18MdWoyODE2tS4pyqjwXbFTaq3y3Ca/4OMNvx8B0Q==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-3.0.5.tgz", + "integrity": "sha512-xX6Vbe348Y/rukQlG4W3xH+7v4ZlzUbSY4HUIQCuYrF2DrkcHx584mCaFxkWoDZKNUfyLZItHC9VAqX3kIP7XA==", "dev": true, "requires": { "unist-util-remove": "^1.0.0" } }, + "mdast-util-compact": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz", + "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==", + "dev": true, + "requires": { + "unist-util-visit": "^1.1.0" + } + }, "mdast-util-definitions": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.3.tgz", - "integrity": "sha512-P6wpRO8YVQ1iv30maMc93NLh7COvufglBE8/ldcOyYmk5EbfF0YeqlLgtqP/FOBU501Kqar1x5wYWwB3Nga74g==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", + "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", "dev": true, "requires": { "unist-util-visit": "^1.0.0" } }, "mdast-util-to-hast": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-4.0.0.tgz", - "integrity": "sha512-yOTZSxR1aPvWRUxVeLaLZ1sCYrK87x2Wusp1bDM/Ao2jETBhYUKITI3nHvgy+HkZW54HuCAhHnS0mTcbECD5Ig==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-7.0.0.tgz", + "integrity": "sha512-vxnXKSZgvPG2grZM3kxaF052pxsLtq8TPAkiMkqYj1nFTOazYUPXt3LFYIEB6Ws/IX7Uyvljzk64kD6DwZl/wQ==", "dev": true, "requires": { "collapse-white-space": "^1.0.0", "detab": "^2.0.0", "mdast-util-definitions": "^1.2.0", "mdurl": "^1.0.1", - "trim": "0.0.1", "trim-lines": "^1.0.0", - "unist-builder": "^1.0.1", - "unist-util-generated": "^1.1.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", "unist-util-position": "^3.0.0", - "unist-util-visit": "^1.1.0", - "xtend": "^4.0.1" + "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==", + "dev": true + }, + "unist-util-visit": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", + "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", + "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + } + } + }, + "mdast-util-to-nlcst": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-3.2.3.tgz", + "integrity": "sha512-hPIsgEg7zCvdU6/qvjcR6lCmJeRuIEpZGY5xBV+pqzuMOvQajyyF8b6f24f8k3Rw8u40GwkI3aAxUXr3bB2xag==", + "dev": true, + "requires": { + "nlcst-to-string": "^2.0.0", + "repeat-string": "^1.5.2", + "unist-util-position": "^3.0.0", + "vfile-location": "^2.0.0" } }, "mdast-util-to-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.0.5.tgz", - "integrity": "sha512-2qLt/DEOo5F6nc2VFScQiHPzQ0XXcabquRJxKMhKte8nt42o08HUxNDPk7tt0YPxnWjAT11I1SYi0X0iPnfI5A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", "dev": true }, - "mdn-browser-compat-data": { - "version": "0.0.84", - "resolved": "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-0.0.84.tgz", - "integrity": "sha512-fAznuGNaQMQiWLVf+gyp33FaABTglYWqMT7JqvH+4RZn2UQPD12gbMqxwP9m0lj8AAbNpu5/kD6n4Ox1SOffpw==", + "mdast-util-toc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-3.1.0.tgz", + "integrity": "sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w==", "dev": true, "requires": { - "extend": "3.0.2" + "github-slugger": "^1.2.1", + "mdast-util-to-string": "^1.0.5", + "unist-util-is": "^2.1.2", + "unist-util-visit": "^1.1.0" } }, "mdn-data": { @@ -24128,11 +32177,42 @@ "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", "dev": true }, + "mdx-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/mdx-utils/-/mdx-utils-0.2.0.tgz", + "integrity": "sha512-kRhSIrvJ/++jz+ppDNqG3vjJSqSipjqdh2BqYXxUTJBo1cO+hRtQwuudM0ljAWKf5WmePwT4OBRjoCrhmiK+RA==", + "dev": true + }, + "meant": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", + "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==", + "dev": true + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + } + } + }, "memoize-one": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", @@ -24177,9 +32257,9 @@ "dev": true }, "mensch": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.3.tgz", - "integrity": "sha1-4gD/TdgjcX+OBWOzLj9UgfyiYrI=" + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.4.tgz", + "integrity": "sha512-IAeFvcOnV9V0Yk+bFhYR07O3yNina9ANIN5MoXBKYJ/RLYPurd2d0yw14MDhpr9/momp0WofT1bPUh3hkzdi/g==" }, "meow": { "version": "5.0.0", @@ -24198,42 +32278,11 @@ "yargs-parser": "^10.0.0" } }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, - "merge-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", - "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", - "dev": true, - "requires": { - "is-plain-obj": "^1.1" - } - }, "merge-source-map": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", @@ -24252,13 +32301,10 @@ } }, "merge-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", - "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", - "dev": true, - "requires": { - "readable-stream": "^2.0.1" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "merge2": { "version": "1.2.2", @@ -24267,277 +32313,37 @@ "dev": true }, "metascraper-author": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/metascraper-author/-/metascraper-author-5.8.0.tgz", - "integrity": "sha512-k7yZMMOi2+Vh7RoIIpc4Q6FJ2HueQZ/tVqoQueBWIzlyWpJGDkJmI1Wi7P3XfHLJEKxkg8d15bP24Z6WWIbaXw==", + "version": "5.11.6", + "resolved": "https://registry.npmjs.org/metascraper-author/-/metascraper-author-5.11.6.tgz", + "integrity": "sha512-OtxpUJR8h0A0J2pUdZrreWtDATJkWZEGO7Ru6aNiMpU4Otk6H5v6wFHR4S41rHVbrfXZzj2hiQV2RcZOu+3JPg==", "requires": { - "@metascraper/helpers": "^5.8.0", + "@metascraper/helpers": "^5.11.6", "lodash": "~4.17.15" - }, - "dependencies": { - "@metascraper/helpers": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.8.0.tgz", - "integrity": "sha512-12UG36W2X8oirM3M88Z13PVyLiOwKCvshydDNAK4/naO95Xi7dzMOcf8VXw375DYKnllfi8YdWzYJU8ie0BejA==", - "requires": { - "audio-extensions": "0.0.0", - "chrono-node": "~1.3.11", - "condense-whitespace": "~2.0.0", - "entities": "~2.0.0", - "file-extension": "~4.0.5", - "has-values": "~2.0.1", - "image-extensions": "~1.1.0", - "is-relative-url": "~3.0.0", - "is-uri": "~1.2.0", - "iso-639-3": "~1.2.0", - "isostring": "0.0.1", - "lodash": "~4.17.15", - "memoize-one": "~5.1.1", - "mime-types": "~2.1.24", - "normalize-url": "~4.5.0", - "smartquotes": "~2.3.1", - "title": "~3.4.1", - "truncate": "~2.1.0", - "url-regex": "~5.0.0", - "video-extensions": "~1.1.0" - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "has-values": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", - "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - } } }, "metascraper-description": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/metascraper-description/-/metascraper-description-5.8.0.tgz", - "integrity": "sha512-JHtHiHBIGMr7bZYoqbT6NnMSnIuMTMItxBAQfdW9RDQCK9l/M1yGi/usMcvXiPYUVlzPfuCcwqeN3xMj3JyLEg==", + "version": "5.11.6", + "resolved": "https://registry.npmjs.org/metascraper-description/-/metascraper-description-5.11.6.tgz", + "integrity": "sha512-rGD6hEWLHPlZ/091htCoFAJGft2oRDAaAoDcnafMdTBcuukBIpZ3QNOR3rYpliWHbpS8cwiX2Q9IawyqB4iK0g==", "requires": { - "@metascraper/helpers": "^5.8.0" - }, - "dependencies": { - "@metascraper/helpers": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.8.0.tgz", - "integrity": "sha512-12UG36W2X8oirM3M88Z13PVyLiOwKCvshydDNAK4/naO95Xi7dzMOcf8VXw375DYKnllfi8YdWzYJU8ie0BejA==", - "requires": { - "audio-extensions": "0.0.0", - "chrono-node": "~1.3.11", - "condense-whitespace": "~2.0.0", - "entities": "~2.0.0", - "file-extension": "~4.0.5", - "has-values": "~2.0.1", - "image-extensions": "~1.1.0", - "is-relative-url": "~3.0.0", - "is-uri": "~1.2.0", - "iso-639-3": "~1.2.0", - "isostring": "0.0.1", - "lodash": "~4.17.15", - "memoize-one": "~5.1.1", - "mime-types": "~2.1.24", - "normalize-url": "~4.5.0", - "smartquotes": "~2.3.1", - "title": "~3.4.1", - "truncate": "~2.1.0", - "url-regex": "~5.0.0", - "video-extensions": "~1.1.0" - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "has-values": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", - "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - } + "@metascraper/helpers": "^5.11.6" } }, "metascraper-image": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/metascraper-image/-/metascraper-image-5.8.0.tgz", - "integrity": "sha512-qDwQcjbSlb5NAdFgbCARaGjRUEzWMiYEA/r2AhJzCFsRZxC9gdurk2M0dhN6NCB6FvEv0JtQwQbkWokvuLKkiQ==", + "version": "5.11.6", + "resolved": "https://registry.npmjs.org/metascraper-image/-/metascraper-image-5.11.6.tgz", + "integrity": "sha512-2GB16BhWc2ZX7fK4z8mYmRNxwHZmnHcsb0cjJisJm6lxVexW1mvstqXKxiNCv+yoDtssnXaE7psBsHRP8hAR1Q==", "requires": { - "@metascraper/helpers": "^5.8.0" - }, - "dependencies": { - "@metascraper/helpers": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.8.0.tgz", - "integrity": "sha512-12UG36W2X8oirM3M88Z13PVyLiOwKCvshydDNAK4/naO95Xi7dzMOcf8VXw375DYKnllfi8YdWzYJU8ie0BejA==", - "requires": { - "audio-extensions": "0.0.0", - "chrono-node": "~1.3.11", - "condense-whitespace": "~2.0.0", - "entities": "~2.0.0", - "file-extension": "~4.0.5", - "has-values": "~2.0.1", - "image-extensions": "~1.1.0", - "is-relative-url": "~3.0.0", - "is-uri": "~1.2.0", - "iso-639-3": "~1.2.0", - "isostring": "0.0.1", - "lodash": "~4.17.15", - "memoize-one": "~5.1.1", - "mime-types": "~2.1.24", - "normalize-url": "~4.5.0", - "smartquotes": "~2.3.1", - "title": "~3.4.1", - "truncate": "~2.1.0", - "url-regex": "~5.0.0", - "video-extensions": "~1.1.0" - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "has-values": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", - "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - } + "@metascraper/helpers": "^5.11.6" } }, "metascraper-title": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/metascraper-title/-/metascraper-title-5.8.0.tgz", - "integrity": "sha512-ar6zqFGrHPeri8ymoWoHRJ29msmG7f8P5fLd1/A3NvFHXJA3XMTw4w1uLC9tg8MSABAG9t8vISmzB5NdB6MedQ==", + "version": "5.11.6", + "resolved": "https://registry.npmjs.org/metascraper-title/-/metascraper-title-5.11.6.tgz", + "integrity": "sha512-oIVEo+erZZ1s/3E4VGh1Dk9AGeunHQaR0bslkBT3OuwO0hqf94n5pA0fMmbhmv/Pdon+ZTTL6JV+uEYQnV6EKw==", "requires": { - "@metascraper/helpers": "^5.8.0", + "@metascraper/helpers": "^5.11.6", "lodash": "~4.17.15" - }, - "dependencies": { - "@metascraper/helpers": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@metascraper/helpers/-/helpers-5.8.0.tgz", - "integrity": "sha512-12UG36W2X8oirM3M88Z13PVyLiOwKCvshydDNAK4/naO95Xi7dzMOcf8VXw375DYKnllfi8YdWzYJU8ie0BejA==", - "requires": { - "audio-extensions": "0.0.0", - "chrono-node": "~1.3.11", - "condense-whitespace": "~2.0.0", - "entities": "~2.0.0", - "file-extension": "~4.0.5", - "has-values": "~2.0.1", - "image-extensions": "~1.1.0", - "is-relative-url": "~3.0.0", - "is-uri": "~1.2.0", - "iso-639-3": "~1.2.0", - "isostring": "0.0.1", - "lodash": "~4.17.15", - "memoize-one": "~5.1.1", - "mime-types": "~2.1.24", - "normalize-url": "~4.5.0", - "smartquotes": "~2.3.1", - "title": "~3.4.1", - "truncate": "~2.1.0", - "url-regex": "~5.0.0", - "video-extensions": "~1.1.0" - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "has-values": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-2.0.1.tgz", - "integrity": "sha512-+QdH3jOmq9P8GfdjFg0eJudqx1FqU62NQJ4P16rOEHeRdl7ckgwn6uqQjzYE0ZoHVV/e5E2esuJ5Gl5+HUW19w==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - } } }, "methods": { @@ -24582,9 +32388,10 @@ } }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true }, "mime-db": { "version": "1.33.0", @@ -24600,9 +32407,9 @@ } }, "mimer": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/mimer/-/mimer-0.3.2.tgz", - "integrity": "sha512-N6NcgDQAevhP/02DQ/epK6daLy4NKrIHyTlJcO6qBiYn98q+Y4a/knNsAATCe1xLS2F0nEmJp+QYli2s8vKwyQ==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimer/-/mimer-1.0.0.tgz", + "integrity": "sha512-4ZJvCzfcwsBgPbkKXUzGoVZMWjv8IDIygkGzVc7uUYhgnK0t2LmGxxjdgH1i+pn0/KQfB5F/VKUJlfyTSOFQjg==" }, "mimic-fn": { "version": "1.2.0", @@ -24610,6 +32417,12 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -24619,40 +32432,71 @@ "dom-walk": "^0.1.0" } }, + "min-indent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", + "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=", + "dev": true + }, "mini-css-extract-plugin": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", - "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", "dev": true, "requires": { "loader-utils": "^1.1.0", - "normalize-url": "^2.0.1", + "normalize-url": "1.9.1", "schema-utils": "^1.0.0", "webpack-sources": "^1.1.0" }, "dependencies": { - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } } } }, - "mini-html-webpack-plugin": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mini-html-webpack-plugin/-/mini-html-webpack-plugin-0.2.3.tgz", - "integrity": "sha512-wfkLf+CmyDg++K1S0QdAvUvS29DfVHe9SQ63syX8aX375mInzC5uwHxb/1+3exiiv84xnPrf6zsOnReRe15rjg==", - "dev": true, - "requires": { - "webpack-sources": "^1.1.0" - } - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -24688,6 +32532,50 @@ "is-plain-obj": "^1.1.0" } }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", + "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -24718,6 +32606,12 @@ } } }, + "mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -24737,24 +32631,6 @@ } } }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "dev": true, - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", - "dev": true - } - } - }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -24770,6 +32646,15 @@ } } }, + "modularscale": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/modularscale/-/modularscale-2.0.1.tgz", + "integrity": "sha1-VlgG/n46nTGCHsTpRPvpyEAcr9A=", + "dev": true, + "requires": { + "lodash.isnumber": "^3.0.0" + } + }, "moment": { "version": "2.22.2", "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", @@ -24784,18 +32669,31 @@ } }, "mongodb": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.7.tgz", - "integrity": "sha512-2YdWrdf1PJgxcCrT1tWoL6nHuk6hCxhddAAaEh8QJL231ci4+P9FLyqopbTm2Z2sAU6mhCri+wd9r1hOcHdoMw==", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.5.tgz", + "integrity": "sha512-GCjDxR3UOltDq00Zcpzql6dQo1sVry60OXJY3TDmFc2SWFY6c8Gn1Ardidc5jDirvJrx2GC3knGOImKphbSL3A==", "requires": { - "mongodb-core": "3.2.7", - "safe-buffer": "^5.1.2" + "bl": "^2.2.0", + "bson": "^1.1.1", + "denque": "^1.4.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" }, "dependencies": { + "bl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", + "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" } } }, @@ -24818,9 +32716,9 @@ } }, "moo": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz", - "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", + "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==", "dev": true }, "move-concurrently": { @@ -24863,9 +32761,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "6.2.3", @@ -24906,6 +32804,12 @@ "rimraf": "~2.4.0" } }, + "name-all-modules-plugin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/name-all-modules-plugin/-/name-all-modules-plugin-1.0.1.tgz", + "integrity": "sha1-Cr+2rYNXGLn7Te8GdOBmV6lUN1w=", + "dev": true + }, "nan": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", @@ -24944,16 +32848,24 @@ "optional": true }, "nearley": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.16.0.tgz", - "integrity": "sha512-Tr9XD3Vt/EujXbZBv6UAHYoLUSMQAxSsTnm9K3koXzjzNWY195NqALeyrzLZBKzAkL3gl92BcSogqrHjD8QuUg==", + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.19.1.tgz", + "integrity": "sha512-xq47GIUGXxU9vQg7g/y1o1xuKnkO7ev4nRWqftmQrLkfnE/FjRqDaGOUakM8XHPn/6pW3bGjU2wgoJyId90rqg==", "dev": true, "requires": { "commander": "^2.19.0", - "moo": "^0.4.3", + "moo": "^0.5.0", "railroad-diagrams": "^1.0.0", "randexp": "0.4.6", "semver": "^5.4.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "negotiator": { @@ -24967,12 +32879,6 @@ "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", "dev": true }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", - "dev": true - }, "netmask": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", @@ -24985,20 +32891,20 @@ "dev": true }, "nice-try": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "nise": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.10.tgz", - "integrity": "sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-4.0.3.tgz", + "integrity": "sha512-EGlhjm7/4KvmmE6B/UFsKh7eHykRl9VH+au8dduHLCyWUO/hr7+N+WtTvDUwc9zHuM1IaIJs/0lQ6Ag1jDkQSg==", "dev": true, "requires": { - "@sinonjs/formatio": "^3.1.0", + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", - "lolex": "^2.3.2", "path-to-regexp": "^1.7.0" }, "dependencies": { @@ -25008,16 +32914,10 @@ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, - "lolex": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", - "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", - "dev": true - }, "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { "isarray": "0.0.1" @@ -25025,6 +32925,12 @@ } } }, + "nlcst-to-string": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz", + "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==", + "dev": true + }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -25047,15 +32953,30 @@ "minimatch": "^3.0.2" } }, + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "dev": true, + "requires": { + "lodash.toarray": "^4.4.0" + } + }, + "node-eta": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz", + "integrity": "sha1-n7CwmbzSoCGUDmA8ZCVNwAPZp6g=", + "dev": true + }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" }, "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", "dev": true }, "node-int64": { @@ -25116,9 +33037,9 @@ "dev": true }, "node-notifier": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", - "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", + "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", "dev": true, "requires": { "growly": "^1.3.0", @@ -25128,6 +33049,12 @@ "which": "^1.3.0" } }, + "node-object-hash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.0.0.tgz", + "integrity": "sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ==", + "dev": true + }, "node-releases": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.1.tgz", @@ -25138,9 +33065,45 @@ } }, "nodemailer": { - "version": "4.6.7", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.6.7.tgz", - "integrity": "sha512-GIAAYvs9XIP1fBa8wR89ukUh3yjL44pom5LKY5nTZcL+Zp9sRkqL8wgskyBQECQg9CPsDX/fjTZx8MNz20t0jA==" + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.6.tgz", + "integrity": "sha512-/kJ+FYVEm2HuUlw87hjSqTss+GU35D4giOpdSfGp7DO+5h6RlJj7R94YaYHOkoxu1CSaM0d3WRBtCzwXrY6MKA==" + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } }, "normalize-package-data": { "version": "2.4.0", @@ -25158,6 +33121,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -25183,15 +33147,6 @@ "once": "^1.3.2" } }, - "npm-path": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", - "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", - "dev": true, - "requires": { - "which": "^1.2.10" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -25200,17 +33155,6 @@ "path-key": "^2.0.0" } }, - "npm-which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", - "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", - "dev": true, - "requires": { - "commander": "^2.9.0", - "npm-path": "^2.0.2", - "which": "^1.2.10" - } - }, "nth-check": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", @@ -25219,6 +33163,35 @@ "boolbase": "~1.0.0" } }, + "null-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz", + "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, "nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", @@ -25234,655 +33207,31 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "nunjucks": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.1.3.tgz", - "integrity": "sha512-UtlKKAzg9vdtvURdNy9DjGhiB7qYf2R7Ez+hsucOQG5gYJexSggXSSZ+9IpSDyKOlWu/4rMVPH2oVoANOSqNKA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.1.tgz", + "integrity": "sha512-LYlVuC1ZNSalQQkLNNPvcgPt2M9FTY9bs39mTCuFXtqh7jWbYzhDlmz2M6onPiXEhdZo+b9anRhc+uBGuJZ2bQ==", "requires": { "a-sync-waterfall": "^1.0.0", "asap": "^2.0.3", - "chokidar": "^2.0.0", - "postinstall-build": "^5.0.1", - "yargs": "^3.32.0" + "chokidar": "^3.3.0", + "commander": "^3.0.2" }, "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - }, - "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true - } - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", - "optional": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "optional": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "optional": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yargs": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "requires": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", - "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" - } + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" } } }, "nwsapi": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", - "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" }, "oauth": { "version": "0.9.15", @@ -25890,15 +33239,21 @@ "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE=" }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -25927,17 +33282,16 @@ } } }, - "object-diff": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/object-diff/-/object-diff-0.0.4.tgz", - "integrity": "sha1-2IOwRE/o/W4E5ZXXu2ZWgskWBH8=", + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", "dev": true }, "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" }, "object-is": { "version": "1.0.1", @@ -25967,7 +33321,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -26021,22 +33374,95 @@ } } }, - "object.entries-ponyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.entries-ponyfill/-/object.entries-ponyfill-1.0.1.tgz", - "integrity": "sha1-Kavfd8v70mVm3RqiTp2I9lQz0lY=", - "dev": true - }, "object.fromentries": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz", - "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", + "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.11.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", - "has": "^1.0.1" + "has": "^1.0.3" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "object.getownpropertydescriptors": { @@ -26147,12 +33573,42 @@ "mimic-fn": "^1.0.0" } }, + "open": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz", + "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", + "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==", + "dev": true + } + } + }, + "opencollective-postinstall": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", + "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", + "dev": true + }, "opener": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", "dev": true }, + "opentracing": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.4.tgz", + "integrity": "sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA==", + "dev": true + }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -26162,24 +33618,313 @@ "is-wsl": "^1.1.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "optimize-css-assets-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", + "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", + "dev": true, "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" }, "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + } } } }, @@ -26196,6 +33941,66 @@ "wordwrap": "~1.0.0" } }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", @@ -26227,23 +34032,76 @@ "dev": true }, "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" }, "dependencies": { - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -26254,6 +34112,12 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -26261,13 +34125,10 @@ "dev": true }, "p-each-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", - "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", - "dev": true, - "requires": { - "p-reduce": "^1.0.0" - } + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", + "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", + "dev": true }, "p-finally": { "version": "1.0.0", @@ -26299,21 +34160,33 @@ } }, "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", - "dev": true + "p-queue": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-5.0.0.tgz", + "integrity": "sha512-6QfeouDf236N+MAxHch0CVIy8o/KBnmhttKjxZoOkUlzqU+u9rZgEyXH3OdckhTgawbqf5rpzmyR+07+Lv0+zg==", + "dev": true, + "requires": { + "eventemitter3": "^3.1.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } }, "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "requires": { "p-finally": "^1.0.0" } @@ -26361,10 +34234,30 @@ "thunkify": "^2.1.2" } }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parallel-transform": { @@ -26417,6 +34310,18 @@ "safe-buffer": "^5.1.1" } }, + "parse-english": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-4.1.3.tgz", + "integrity": "sha512-IQl1v/ik9gw437T8083coohMihae0rozpc7JYC/9h6hi9xKBSxFwh5HWRpzVC2ZhEs2nUlze2aAktpNBJXdJKA==", + "dev": true, + "requires": { + "nlcst-to-string": "^2.0.0", + "parse-latin": "^4.0.0", + "unist-util-modify-children": "^1.0.0", + "unist-util-visit-children": "^1.0.0" + } + }, "parse-entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", @@ -26446,11 +34351,21 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz", "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=", - "dev": true, "requires": { "error-ex": "^1.3.1" } }, + "parse-latin": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-4.2.1.tgz", + "integrity": "sha512-7T9g6mIsFFpLlo0Zzb2jLWdCt+H9Qtf/hRmMYFi/Mq6Ovi+YKo+AyDFX3OhFfu0vXX5Nid9FKJGKSSzNcTkWiA==", + "dev": true, + "requires": { + "nlcst-to-string": "^2.0.0", + "unist-util-modify-children": "^1.0.0", + "unist-util-visit-children": "^1.0.0" + } + }, "parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", @@ -26463,15 +34378,62 @@ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, + "parse-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz", + "integrity": "sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0" + } + }, + "parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=", + "dev": true + }, "parse-uri": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-uri/-/parse-uri-1.0.0.tgz", "integrity": "sha1-KHLcwi8aeXrN4Vg9igrClVLdrCA=" }, + "parse-url": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz", + "integrity": "sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "normalize-url": "^3.3.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + } + }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", - "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==" + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } }, "parseurl": { "version": "1.3.2", @@ -26479,13 +34441,40 @@ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", "dev": true, "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" + "no-case": "^3.0.3", + "tslib": "^1.10.0" + }, + "dependencies": { + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "dev": true, + "requires": { + "tslib": "^1.10.0" + } + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "dev": true, + "requires": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true + } } }, "pascalcase": { @@ -26527,10 +34516,11 @@ } }, "passport-oauth2": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.4.0.tgz", - "integrity": "sha1-9i+BWDy+EmCb585vFguTlaJ7hq0=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.5.0.tgz", + "integrity": "sha512-kqBt6vR/5VlCK8iCx1/KpY42kQ+NEHZwsSyt4Y6STiNjU+wWICG1i8ucc1FapXDGO15C5O5VZz7+7vRzrDPXXQ==", "requires": { + "base64url": "3.x.x", "oauth": "0.9.x", "passport-strategy": "1.x.x", "uid2": "0.0.x", @@ -26542,6 +34532,31 @@ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" }, + "password-prompt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", + "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.1.0", + "cross-spawn": "^6.0.5" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, "path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", @@ -26560,7 +34575,8 @@ "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true }, "path-exists": { "version": "3.0.0", @@ -26637,12 +34653,6 @@ "sha.js": "^2.4.8" } }, - "perfect-scrollbar": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.4.0.tgz", - "integrity": "sha512-/2Sk/khljhdrsamjJYS5NjrH+GKEHEwh7zFSiYyxROyYKagkE4kSn2zDQDRTOMo8mpT2jikxx6yI1dG7lNP/hw==", - "dev": true - }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -26653,11 +34663,16 @@ "resolved": "https://registry.npmjs.org/permit/-/permit-0.2.4.tgz", "integrity": "sha512-Mp2XTEMD3mPsZIWq3bp0claE4IxXKa4C6nhSDPZgGri8Q4CLjEjAQrP/xGKq2548a2KFENmA1V7W0Lob8kTuzw==" }, + "physical-cpu-count": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", + "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=", + "dev": true + }, "picomatch": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.6.tgz", - "integrity": "sha512-Btng9qVvFsW6FkXYQQK5nEI5i8xdXFDmlKxC7Q8S2Bu5HGWnbQf7ts2kOoxJIrZn5hmw61RZIayAg2zBuJDtyQ==", - "dev": true + "integrity": "sha512-Btng9qVvFsW6FkXYQQK5nEI5i8xdXFDmlKxC7Q8S2Bu5HGWnbQf7ts2kOoxJIrZn5hmw61RZIayAg2zBuJDtyQ==" }, "pidtree": { "version": "0.3.0", @@ -26706,12 +34721,33 @@ } }, "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } } }, "pkg-up": { @@ -26724,9 +34760,9 @@ } }, "please-upgrade-node": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", - "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, "requires": { "semver-compare": "^1.0.0" @@ -26747,39 +34783,52 @@ "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true }, - "polished": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/polished/-/polished-2.3.3.tgz", - "integrity": "sha512-59V4fDbdxtH4I1m9TWxFsoGJbC8nnOpUYo5uFmvMfKp9Qh+6suo4VMUle1TGIIUZIGxfkW+Rs485zPk0wcwR2Q==", + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", "dev": true, "requires": { - "@babel/runtime": "^7.2.0" + "ts-pnp": "^1.1.6" } }, "popper.js": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.6.tgz", - "integrity": "sha512-AGwHGQBKumlk/MDfrSOf0JHhJCImdDMcGNoqKmKkU+68GFazv3CQ6q9r7Ja1sKDZmYWTckY/uLyEznheTDycnA==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "dev": true }, "portfinder": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", - "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", + "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", "dev": true, "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" }, "dependencies": { "async": { - "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } } } }, @@ -26789,16 +34838,47 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "supports-color": "^6.1.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -26806,9 +34886,9 @@ "dev": true }, "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -26817,24 +34897,55 @@ } }, "postcss-advanced-variables": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-advanced-variables/-/postcss-advanced-variables-3.0.0.tgz", - "integrity": "sha512-e5tcG0+l2qaqV65+qQCAW91vX4+mYbh2m5tdBYrzOhYjFgtNmtehmZWotvzWTGbtgbP11tgGirEYy2P7m6HceQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-advanced-variables/-/postcss-advanced-variables-3.0.1.tgz", + "integrity": "sha512-JqVjfkmqPoazMobVeQYzbt7djcDGJfMlpwBd9abTqmzWR40tvIUMXpTU5w3riqz7h+wYPY7V6GF8BIXL/ybEfg==", "dev": true, "requires": { "@csstools/sass-import-resolve": "^1.0.0", "postcss": "^7.0.6" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -26844,9 +34955,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -26855,24 +34966,72 @@ } }, "postcss-attribute-case-insensitive": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.0.tgz", - "integrity": "sha512-K/zqdg0/UgUgC8qR0lDuxYzmowPpnvrrNC5YuoqzhHMubR9AuhsPlpVu3jjkLHgDAzR+ohD/m7//iGnN9WxbzQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "dev": true, "requires": { "postcss": "^7.0.2", - "postcss-selector-parser": "^5.0.0-rc.3" + "postcss-selector-parser": "^6.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "source-map": { @@ -26882,9 +35041,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -26904,6 +35063,15 @@ "postcss-value-parser": "^3.3.1" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.26", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz", @@ -26913,6 +35081,30 @@ "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + } } }, "postcss-value-parser": { @@ -26957,15 +35149,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -26975,9 +35198,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -26996,15 +35219,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27014,9 +35268,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27025,24 +35279,55 @@ } }, "postcss-color-hex-alpha": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.2.tgz", - "integrity": "sha512-8bIOzQMGdZVifoBQUJdw+yIY00omBd2EwkJXepQo9cjp1UOHHHoeRDeSzTP6vakEpaRc6GAIOfvcQR7jBYaG5Q==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "dev": true, "requires": { - "postcss": "^7.0.2", - "postcss-values-parser": "^2.0.0" + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27052,9 +35337,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27073,15 +35358,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27091,9 +35407,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27111,15 +35427,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27129,9 +35476,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27152,6 +35499,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "browserslist": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", @@ -27184,6 +35540,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -27213,6 +35582,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -27222,6 +35600,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -27241,35 +35632,55 @@ } } }, - "postcss-css-variables": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/postcss-css-variables/-/postcss-css-variables-0.11.0.tgz", - "integrity": "sha512-pjqWnJSy8zoentAhRIph/DiOX0EZmT/dpmVbpdSrCSdkdqstl2ViBlAfIIuHvHI+baTV8Gd+WzsVFjDZqVn4dg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.3", - "extend": "^3.0.1", - "postcss": "^6.0.8" - } - }, "postcss-custom-media": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.7.tgz", - "integrity": "sha512-bWPCdZKdH60wKOTG4HKEgxWnZVjAIVNOJDvi3lkuTa90xo/K0YHa2ZnlKLC5e2qF8qCcMQXt0yzQITBp8d0OFA==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "dev": true, "requires": { - "postcss": "^7.0.5" + "postcss": "^7.0.14" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27279,9 +35690,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27290,24 +35701,55 @@ } }, "postcss-custom-properties": { - "version": "8.0.9", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.9.tgz", - "integrity": "sha512-/Lbn5GP2JkKhgUO2elMs4NnbUJcvHX4AaF5nuJDaNkd2chYW1KA5qtOGGgdkBEWcXtKSQfHXzT7C6grEVyb13w==", + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "dev": true, "requires": { - "postcss": "^7.0.5", - "postcss-values-parser": "^2.0.0" + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27317,9 +35759,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27337,15 +35779,46 @@ "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27355,9 +35828,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27375,15 +35848,46 @@ "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27393,9 +35897,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27412,6 +35916,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -27421,6 +35934,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -27449,6 +35975,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -27458,6 +35993,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -27486,6 +36034,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -27495,6 +36052,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -27523,6 +36093,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -27532,6 +36111,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -27561,15 +36153,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27579,9 +36202,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27599,15 +36222,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27617,9 +36271,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27628,23 +36282,54 @@ } }, "postcss-flexbugs-fixes": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", - "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.0.tgz", + "integrity": "sha512-QRE0n3hpkxxS/OGvzOa+PDuy4mh/Jg4o9ui22/ko5iGYOG3M5dfJabjnAZjTdh2G9F85c7Hv8hWcEDEKW/xceQ==", "dev": true, "requires": { - "postcss": "^7.0.0" + "postcss": "^7.0.26" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27654,9 +36339,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27673,15 +36358,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27691,9 +36407,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27710,15 +36426,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27728,9 +36475,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27739,15 +36486,74 @@ } }, "postcss-font-magician": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/postcss-font-magician/-/postcss-font-magician-2.2.1.tgz", - "integrity": "sha512-gSaHBGoexcyZ3wLnJ1LG9ZCygSzkh6PCOWhRJajcPW71nGplK4Y9H+s3WyOJeY1fBlnwXM0W8hlVcDew5LMvlA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/postcss-font-magician/-/postcss-font-magician-2.3.1.tgz", + "integrity": "sha512-2zTGmrNKyFkRtHW5Pg6lMpsCdUTBLqvNUVr+aJozQ7ZC0TljO4JvreQMYyjad/nErUfUiDHK8zMKqN4EtOEOFQ==", "dev": true, "requires": { "bootstrap-fonts-complete": "^1.0.0", "directory-fonts-complete": "^1.2.0", - "google-fonts-complete": "^1.2.2", - "postcss": "^6.0.22" + "google-fonts-complete": "^2.1.0", + "postcss": "^7.0.21" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-font-variant": { @@ -27759,15 +36565,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27777,9 +36614,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27796,15 +36633,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27814,9 +36682,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27834,15 +36702,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27852,9 +36751,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27863,36 +36762,57 @@ } }, "postcss-import": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", - "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", "dev": true, "requires": { - "postcss": "^6.0.1", + "postcss": "^7.0.1", "postcss-value-parser": "^3.2.3", "read-cache": "^1.0.0", "resolve": "^1.1.7" - } - }, - "postcss-initial": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.0.tgz", - "integrity": "sha512-WzrqZ5nG9R9fUtrA+we92R4jhVvEB32IIRTzfIG/PLL8UV4CvbF1ugTEHEFX6vWxl41Xt5RTCJPEZkuWzrOM+Q==", - "dev": true, - "requires": { - "lodash.template": "^4.2.4", - "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27902,9 +36822,78 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", + "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", + "dev": true, + "requires": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -27913,19 +36902,50 @@ } }, "postcss-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.1.tgz", - "integrity": "sha512-8XQGohCbj6+kq8e3w6WlexkGaSjb5S8zoXnH49eB8JC6+qN2kQW+ib6fTjRgCpRRN9eeFOhMlD0NDjThW1DCBg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz", + "integrity": "sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==", "dev": true, "requires": { "camelcase-css": "^2.0.1", - "postcss": "^7.0.14" + "postcss": "^7.0.18" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -27961,15 +36981,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -27979,9 +37030,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -28035,6 +37086,38 @@ "schema-utils": "^1.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28044,6 +37127,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28072,15 +37168,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -28090,9 +37217,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -28109,15 +37236,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -28127,9 +37285,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -28149,6 +37307,15 @@ "stylehacks": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28158,6 +37325,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28191,6 +37371,15 @@ "vendors": "^1.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "browserslist": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", @@ -28223,6 +37412,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "postcss-selector-parser": { @@ -28263,6 +37465,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28272,6 +37483,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28303,6 +37527,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28312,6 +37545,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28345,6 +37591,15 @@ "uniqs": "^2.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "browserslist": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", @@ -28377,6 +37632,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28408,6 +37676,15 @@ "postcss-selector-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28417,6 +37694,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "postcss-selector-parser": { @@ -28448,15 +37738,15 @@ } }, "postcss-mixins": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-mixins/-/postcss-mixins-6.2.1.tgz", - "integrity": "sha512-XfItKgFHAPKa4mayLVwoASYzzRLyW64mEtsVZz7LT7ElrprVZx9D5ivqOi5oQCkUxyiLs9sjg4aiRxr+gK9xkQ==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/postcss-mixins/-/postcss-mixins-6.2.3.tgz", + "integrity": "sha512-gfH5d09YilzDn/CLGFA9Lwv7GTezuyHgnAyXC8AfvhUMpl67ZTewhcpNuOgawClCOD+76XePE2IHO1xMgsOlvA==", "dev": true, "requires": { "globby": "^8.0.1", - "postcss": "^7.0.6", - "postcss-js": "^2.0.0", - "postcss-simple-vars": "^5.0.1", + "postcss": "^7.0.21", + "postcss-js": "^2.0.3", + "postcss-simple-vars": "^5.0.2", "sugarss": "^2.0.0" }, "dependencies": { @@ -28491,39 +37781,10 @@ } } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -28549,12 +37810,71 @@ } }, "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", "dev": true, "requires": { - "postcss": "^6.0.1" + "postcss": "^7.0.5" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "postcss-modules-local-by-default": { @@ -28565,47 +37885,37 @@ "requires": { "css-selector-tokenizer": "^0.7.0", "postcss": "^6.0.1" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "postcss-nested": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.1.1.tgz", - "integrity": "sha512-3+V8+g+i9zUQ/AADNtBj3DVVvSOhRCV7W8Kzn9n4ViWJtSQrSdtIJnxZaupfdTrnhCkY86sAsuKVxBCuyfJDeA==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^5.0.0-rc.4" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^5.4.0" } }, "source-map": { @@ -28625,24 +37935,45 @@ } } }, - "postcss-nesting": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.0.tgz", - "integrity": "sha512-WSsbVd5Ampi3Y0nk/SKr5+K34n52PqMqEfswu6RtU4r7wA8vSD+gM8/D9qq4aJkHImwn1+9iEFTbjoWsQeqtaQ==", + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, "requires": { - "postcss": "^7.0.2" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^5.4.0" } }, "source-map": { @@ -28662,6 +37993,155 @@ } } }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-nested": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.1.tgz", + "integrity": "sha512-AMayXX8tS0HCp4O4lolp4ygj9wBn32DJWXvG6gCv+ZvJrEa00GUxJcJEEzMh87BIe6FrWdYkpR2cuyqHKrxmXw==", + "dev": true, + "requires": { + "postcss": "^7.0.21", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "postcss-normalize-charset": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", @@ -28671,6 +38151,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28680,6 +38169,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28710,6 +38212,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28719,6 +38230,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28750,6 +38274,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28759,6 +38292,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28790,6 +38336,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28799,6 +38354,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28829,6 +38397,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28838,6 +38415,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28868,6 +38458,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28877,6 +38476,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28907,6 +38519,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "browserslist": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", @@ -28939,6 +38560,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -28970,6 +38604,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -28979,6 +38622,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -29008,6 +38664,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -29017,6 +38682,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -29047,6 +38725,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -29056,6 +38743,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -29084,15 +38784,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -29102,9 +38833,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -29121,15 +38852,46 @@ "postcss": "^7.0.2" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -29139,9 +38901,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -29159,15 +38921,46 @@ "postcss-values-parser": "^2.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -29177,9 +38970,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -29262,27 +39055,27 @@ } }, "postcss-preset-env": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.5.0.tgz", - "integrity": "sha512-RdsIrYJd9p9AouQoJ8dFP5ksBJEIegA4q4WzJDih8nevz3cZyIP/q1Eaw3pTVpUAu3n7Y32YmvAW3X07mSRGkw==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", "dev": true, "requires": { - "autoprefixer": "^9.4.2", - "browserslist": "^4.3.5", - "caniuse-lite": "^1.0.30000918", + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", "css-blank-pseudo": "^0.1.4", "css-has-pseudo": "^0.10.0", "css-prefers-color-scheme": "^3.1.1", - "cssdb": "^4.3.0", - "postcss": "^7.0.6", - "postcss-attribute-case-insensitive": "^4.0.0", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", "postcss-color-functional-notation": "^2.0.1", "postcss-color-gray": "^5.0.0", - "postcss-color-hex-alpha": "^5.0.2", + "postcss-color-hex-alpha": "^5.0.3", "postcss-color-mod-function": "^3.0.3", "postcss-color-rebeccapurple": "^4.0.1", - "postcss-custom-media": "^7.0.7", - "postcss-custom-properties": "^8.0.9", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", "postcss-custom-selectors": "^5.1.2", "postcss-dir-pseudo-class": "^5.0.0", "postcss-double-position-gradients": "^1.0.0", @@ -29306,58 +39099,84 @@ "postcss-selector-not": "^4.0.0" }, "dependencies": { - "autoprefixer": { - "version": "9.4.3", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.3.tgz", - "integrity": "sha512-/XSnzDepRkAU//xLcXA/lUWxpsBuw0WiriAHOqnxkuCtzLhaz+fL4it4gp20BQ8n5SyLzK/FOc7A0+u/rti2FQ==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "browserslist": "^4.3.6", - "caniuse-lite": "^1.0.30000921", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.6", - "postcss-value-parser": "^3.3.1" + "color-convert": "^1.9.0" } }, "browserslist": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", - "integrity": "sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz", + "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000921", - "electron-to-chromium": "^1.3.92", - "node-releases": "^1.1.1" + "caniuse-lite": "^1.0.30001030", + "electron-to-chromium": "^1.3.363", + "node-releases": "^1.1.50" } }, "caniuse-lite": { - "version": "1.0.30000921", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz", - "integrity": "sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw==", + "version": "1.0.30001033", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001033.tgz", + "integrity": "sha512-8Ibzxee6ibc5q88cM1usPsMpJOG5CTq0s/dKOmlekPbDGKt+UrnOOTPSjQz3kVo6yL7N4SB5xd+FGLHQmbzh6A==", "dev": true }, - "electron-to-chromium": { - "version": "1.3.93", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.93.tgz", - "integrity": "sha512-H+tt+fedI+C5zl4yGtzdk17e6mOYAyawolXuAojWBULIbqOz9VR7h0cG5YcivQ1yCXrpw+Rjk6cBw47HlYtnKg==", - "dev": true - }, - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "electron-to-chromium": { + "version": "1.3.375", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.375.tgz", + "integrity": "sha512-zmaFnYVBtfpF8bGRYxgPeVAlXB7N3On8rjBE2ROc6wOpTPpzRWaiHo6KkbJMvlH07CH33uks/TEb6kuMMn8q6A==", + "dev": true + }, + "node-releases": { + "version": "1.1.51", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.51.tgz", + "integrity": "sha512-1eQEs6HFYY1kMXQPOLzCf7HdjReErmvn85tZESMczdCNVWP3Y7URYLBAyYynuI7yef1zj4HN5q+oB2x67QU0lw==", + "dev": true, + "requires": { + "semver": "^6.3.0" + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "source-map": { @@ -29367,9 +39186,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -29387,15 +39206,46 @@ "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "chalk": "^2.4.1", + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.5.0" + "supports-color": "^6.1.0" } }, "source-map": { @@ -29405,9 +39255,9 @@ "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -29427,6 +39277,15 @@ "postcss": "^7.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "browserslist": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", @@ -29459,6 +39318,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -29490,6 +39362,15 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -29499,6 +39380,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -29526,138 +39420,6 @@ "requires": { "postcss": "^7.0.2" }, - "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-selector-matches": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-selector-not": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", - "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "postcss": "^7.0.2" - }, - "dependencies": { - "postcss": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", - "integrity": "sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "5.0.0-rc.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz", - "integrity": "sha512-0XvfYuShrKlTk1ooUrVzMCFQRcypsdEIsGqh5IxC5rdtBi4/M/tDAJeSONwC2MTqEFsmPZYAV7Dd4X8rgAfV0A==", - "dev": true, - "requires": { - "cssesc": "^2.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - } - } - }, - "postcss-simple-vars": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.1.tgz", - "integrity": "sha512-nlulz+X0i8CH2e9IbxFfMD9rG4fGx+O4hH7Pwj0bZalRx91gvli85DAymqBQ35X7VBUackGD2iNj7DgsCbwQug==", - "dev": true, - "requires": { - "postcss": "^7.0.2" - }, "dependencies": { "ansi-styles": { "version": "3.2.1", @@ -29691,9 +39453,234 @@ } }, "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-not": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", + "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "5.0.0-rc.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz", + "integrity": "sha512-0XvfYuShrKlTk1ooUrVzMCFQRcypsdEIsGqh5IxC5rdtBi4/M/tDAJeSONwC2MTqEFsmPZYAV7Dd4X8rgAfV0A==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + } + } + }, + "postcss-simple-vars": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz", + "integrity": "sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -29730,6 +39717,15 @@ "svgo": "^1.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -29739,6 +39735,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -29769,6 +39778,15 @@ "uniqs": "^2.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "postcss": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.7.tgz", @@ -29778,6 +39796,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "source-map": { @@ -29804,9 +39835,9 @@ "dev": true }, "postcss-values-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.0.tgz", - "integrity": "sha512-cyRdkgbRRefu91ByAlJow4y9w/hnBmmWgLpWmlFQ2bpIy2eKrqowt3VeYcaHQ08otVXmC9V2JtYW1Z/RpvYR8A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, "requires": { "flatten": "^1.0.2", @@ -29814,26 +39845,21 @@ "uniq": "^1.0.1" } }, - "postinstall-build": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postinstall-build/-/postinstall-build-5.0.1.tgz", - "integrity": "sha1-uRepB5smF42aJK9aXNjLSpkdEbk=" - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "prettier": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", - "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.2.tgz", + "integrity": "sha512-5xJQIPT8BraI7ZnaDwSbu5zLrB6vvi8hVV58yHQ+QK64qrY40dULy0HSRlQ2/2IdzeBpjhDkqdcFBnFeDEMVdg==", "dev": true }, "prettier-linter-helpers": { @@ -29845,6 +39871,12 @@ "fast-diff": "^1.1.2" } }, + "pretty-bytes": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", + "dev": true + }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", @@ -29856,21 +39888,52 @@ } }, "pretty-format": { - "version": "24.8.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.8.0.tgz", - "integrity": "sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", + "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", "dev": true, "requires": { - "@jest/types": "^24.8.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" + "@jest/types": "^25.1.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "react-is": { + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz", + "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==", "dev": true } } @@ -29881,27 +39944,12 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "dev": true }, - "pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "prism-react-renderer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.0.2.tgz", + "integrity": "sha512-0++pJyRfu4v2OxI/Us/5RLui9ESDkTiLkVCtKuPZYdpB8UQWJpnJQhPrWab053XtsKW3oM0sD69uJ6N9exm1Ag==", "dev": true }, - "printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true - }, - "prismjs": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.6.0.tgz", - "integrity": "sha1-EY2V+3pm26InLjQ7NF9SNmWds2U=", - "dev": true, - "requires": { - "clipboard": "^1.5.5" - } - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -29909,9 +39957,9 @@ "dev": true }, "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "process-nextick-args": { @@ -29925,22 +39973,10 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "progress-estimator": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/progress-estimator/-/progress-estimator-0.2.2.tgz", - "integrity": "sha512-GF76Ac02MTJD6o2nMNtmtOFjwWCnHcvXyn5HOWPQnEMO8OTLw7LAvNmrwe8LmdsB+eZhwUu9fX/c9iQnBxWaFA==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cli-spinners": "^1.3.1", - "humanize-duration": "^3.15.3", - "log-update": "^2.3.0" - } - }, "prom-client": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.3.0.tgz", - "integrity": "sha512-OqSf5WOvpGZXkfqPXUHNHpjrbEE/q8jxjktO0i7zg1cnULAtf0ET67/J5R4e4iA4MZx2260tzTzSFSWgMdTZmQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-12.0.0.tgz", + "integrity": "sha512-JbzzHnw0VDwCvoqf8y1WDtq4wSBAbthMB1pcVI/0lzdqHGJI3KBJDXle70XK+c7Iv93Gihqo0a5LlOn+g8+DrQ==", "requires": { "tdigest": "^0.1.1" } @@ -29961,29 +39997,101 @@ "dev": true }, "promise.prototype.finally": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz", - "integrity": "sha512-7p/K2f6dI+dM8yjRQEGrTQs5hTQixUAdOGpMEA3+pVxpX5oHKRSKAXyLw9Q9HUWDTdwtoo39dSHGQtN90HcEwQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz", + "integrity": "sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.9.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.0", "function-bind": "^1.1.1" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + } } }, "prompts": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.1.0.tgz", - "integrity": "sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.1.tgz", + "integrity": "sha512-qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA==", "dev": true, "requires": { - "kleur": "^3.0.2", - "sisteransi": "^1.0.0" + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" } }, "prop-types": { "version": "15.6.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "dev": true, "requires": { "loose-envify": "^1.3.1", "object-assign": "^4.1.1" @@ -30000,40 +40108,20 @@ "reflect.ownkeys": "^0.2.0" } }, - "property-expr": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-1.5.1.tgz", - "integrity": "sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==", - "dev": true - }, "property-information": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.0.1.tgz", - "integrity": "sha512-nAtBDVeSwFM3Ot/YxT7s4NqZmqXI7lLzf46BThvotEtYf2uk2yH0ACYuWQkJ7gxKs49PPtKVY0UlDGkyN9aJlw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.4.0.tgz", + "integrity": "sha512-nmMWAm/3vKFGmmOWOcdLjgq/Hlxa+hsuR/px1Lp/UGEyc5A22A6l78Shc2C0E71sPmAqglni+HrS7L7VJ7AUCA==", "dev": true, "requires": { - "xtend": "^4.0.1" + "xtend": "^4.0.0" } }, - "protobufjs": { - "version": "6.8.8", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", - "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - } + "protocols": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz", + "integrity": "sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==", + "dev": true }, "proxy-addr": { "version": "2.0.6", @@ -30075,9 +40163,9 @@ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, "proxy-polyfill": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/proxy-polyfill/-/proxy-polyfill-0.3.0.tgz", - "integrity": "sha512-0HN+SoV3qKJ1EIIOsEybYgyTTnR26PJ0af/shBqaXLUMIg7/8PHEyQ28QfaDFwmvH77yRuLtclnERgrCq4v+xg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/proxy-polyfill/-/proxy-polyfill-0.3.1.tgz", + "integrity": "sha512-jywE1NIksgIGqZc4uF0QLbXGz2RcHQobsCkAW+8F0nr/6agap+TWksEAKyLnIBafPD88HT9qZR2ec0oomHdjcQ==", "dev": true }, "prr": { @@ -30097,9 +40185,9 @@ "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" }, "pstree.remy": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.6.tgz", - "integrity": "sha512-NdF35+QsqD7EgNEI5mkI/X+UwaxVEbQaz9f4IooEmMUv6ZPmlTQYGjBPJGgrlzNdjSvIy4MWMg6Q6vCgBO2K+w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", + "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", "dev": true }, "public-encrypt": { @@ -30168,9 +40256,9 @@ "dev": true }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "query-string": { "version": "5.1.1", @@ -30215,18 +40303,18 @@ "performance-now": "^2.1.0" } }, + "raf-schd": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz", + "integrity": "sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ==", + "dev": true + }, "railroad-diagrams": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=", "dev": true }, - "ramda": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz", - "integrity": "sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==", - "dev": true - }, "randexp": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", @@ -30256,11 +40344,6 @@ "safe-buffer": "^5.1.0" } }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, "raw-body": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", @@ -30296,106 +40379,99 @@ } }, "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "rc-align": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz", - "integrity": "sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.0.tgz", + "integrity": "sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "dom-align": "^1.7.0", - "prop-types": "^15.5.8", - "rc-util": "^4.0.4" - } - }, - "rc-animate": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.8.2.tgz", - "integrity": "sha512-JUKpst+OSDFQjqhhZliBcmO3Fie1SeiIxsEhS7PbZVz/UjCC8uDtp31+NRxidxy3BnfXbbfZdtG9mNWIDqIfTw==", - "dev": true, - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.6", - "css-animation": "^1.3.2", - "prop-types": "15.x", - "raf": "^3.4.0", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-tooltip": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz", - "integrity": "sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww==", - "dev": true, - "requires": { - "babel-runtime": "6.x", - "prop-types": "^15.5.8", - "rc-trigger": "^2.2.2" - } - }, - "rc-trigger": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.2.tgz", - "integrity": "sha512-op4xCu95/gdHVaysyxxiYxbY+Z+UcIBSUY9nQfLqm1FlitdtnAN+owD5iMPfnnsRXntgcQ5+RdYKNUFQT5DjzA==", - "dev": true, - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.6", - "prop-types": "15.x", - "rc-align": "^2.4.0", - "rc-animate": "2.x", - "rc-util": "^4.4.0" - } - }, - "rc-util": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.6.0.tgz", - "integrity": "sha512-rbgrzm1/i8mgfwOI4t1CwWK7wGe+OwX+dNa7PVMgxZYPBADGh86eD4OcJO1UKGeajIMDUUKMluaZxvgraQIOmw==", - "dev": true, - "requires": { - "add-dom-event-listener": "^1.1.0", - "babel-runtime": "6.x", - "prop-types": "^15.5.10", - "shallowequal": "^0.2.2" + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" }, "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "shallowequal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", - "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { - "lodash.keys": "^3.1.2" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" } } } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, "re-resizable": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-4.11.0.tgz", - "integrity": "sha512-dye+7rERqNf/6mDT1iwps+4Gf42420xuZgygF33uX178DxffqcyeuHbBuJ382FIcB5iP6mMZOhfW7kI0uXwb/Q==", - "dev": true + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.3.2.tgz", + "integrity": "sha512-ngxe4XBSb46vfwXjAwpURacVDig/pPt1kHRhcKlRRIoGICmo4aQHr725jurezepp1pm5jSC6iQhyLYfx3zOC3w==", + "dev": true, + "requires": { + "fast-memoize": "^2.5.1" + } }, "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -30403,21 +40479,58 @@ "prop-types": "^15.6.2" } }, - "react-axe": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/react-axe/-/react-axe-3.3.0.tgz", - "integrity": "sha512-JoxU2jcTla37U6MtqIoYnGaRQcAHkNm9JxTjx2wcEgFm8Zd2A2vo9eboxcmpLjklXDKJwJNbyDo2Jcbbme6xwA==", + "react-ace": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/react-ace/-/react-ace-7.0.5.tgz", + "integrity": "sha512-3iI+Rg2bZXCn9K984ll2OF4u9SGcJH96Q1KsUgs9v4M2WePS4YeEHfW2nrxuqJrAkE5kZbxaCE79k6kqK0YBjg==", "dev": true, "requires": { - "axe-core": "^3.3.2", - "requestidlecallback": "^0.3.0" + "brace": "^0.11.1", + "diff-match-patch": "^1.0.4", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "prop-types": "^15.7.2" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + } } }, - "react-codemirror2": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-codemirror2/-/react-codemirror2-5.1.0.tgz", - "integrity": "sha512-Cksbgbviuf2mJfMyrKmcu7ycK6zX/ukuQO8dvRZdFWqATf5joalhjFc6etnBdGCcPA2LbhIwz+OPnQxLN/j1Fw==", - "dev": true + "react-axe": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/react-axe/-/react-axe-3.4.1.tgz", + "integrity": "sha512-1UDeqesgb5gCj2XPE5WXqKv2xcwGGeWIock3uBVtZSVGbZGVzjmgYf4eRyNJ8BNnHpPQKUs4Ro5jW2+V037deg==", + "dev": true, + "requires": { + "axe-core": "^3.5.0", + "requestidlecallback": "^0.3.0" + }, + "dependencies": { + "axe-core": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.2.tgz", + "integrity": "sha512-9wBDgdzbn06on6Xt+ay7EM4HV+NBOkeXhjK9DMezD8/qvJKeUTzheGHhM+U1uNaX4OvuIR4BePDStRLF7vyOfg==", + "dev": true + } + } }, "react-contenteditable": { "version": "2.1.6", @@ -30430,9 +40543,9 @@ } }, "react-copy-to-clipboard": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz", - "integrity": "sha512-ELKq31/E3zjFs5rDWNCfFL4NvNFQvGRoJdAKReD/rUPA+xxiLPQmZBZBvy2vgH7V0GE9isIQpT9WXbwIVErYdA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", + "integrity": "sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg==", "dev": true, "requires": { "copy-to-clipboard": "^3", @@ -30440,105 +40553,137 @@ } }, "react-dev-utils": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.0.0.tgz", - "integrity": "sha512-HXvxOnABzIQH804ros5dBFryw4x0FU7Tl5KU2xg71jKx0EDsJYK0LuVVdj9qoLIgD1pmjzpjl7q7pjwXKIe37A==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", + "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "address": "1.0.3", - "browserslist": "4.5.4", + "@babel/code-frame": "7.8.3", + "address": "1.1.2", + "browserslist": "4.10.0", "chalk": "2.4.2", - "cross-spawn": "6.0.5", + "cross-spawn": "7.0.1", "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.6.1", - "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.0.1", + "escape-string-regexp": "2.0.0", + "filesize": "6.0.1", + "find-up": "4.1.0", + "fork-ts-checker-webpack-plugin": "3.1.1", "global-modules": "2.0.0", "globby": "8.0.2", - "gzip-size": "5.0.0", + "gzip-size": "5.1.1", "immer": "1.10.0", - "inquirer": "6.2.2", - "is-root": "2.0.0", + "inquirer": "7.0.4", + "is-root": "2.1.0", "loader-utils": "1.2.3", - "opn": "5.4.0", - "pkg-up": "2.0.0", - "react-error-overlay": "^5.1.5", + "open": "^7.0.2", + "pkg-up": "3.1.0", + "react-error-overlay": "^6.0.7", "recursive-readdir": "2.2.2", - "shell-quote": "1.6.1", - "sockjs-client": "1.3.0", - "strip-ansi": "5.2.0", + "shell-quote": "1.7.2", + "strip-ansi": "6.0.0", "text-table": "0.2.0" }, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "browserslist": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.4.tgz", - "integrity": "sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000955", - "electron-to-chromium": "^1.3.122", - "node-releases": "^1.1.13" + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "browserslist": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "caniuse-lite": { - "version": "1.0.30000967", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000967.tgz", - "integrity": "sha512-rUBIbap+VJfxTzrM4akJ00lkvVb5/n5v3EGXfWzSH5zT8aJmGzjA8HWhJ4U6kCpzxozUSnB+yvAYDRPY6mRpgQ==", + "version": "1.0.30001037", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001037.tgz", + "integrity": "sha512-qQP40FzWQ1i9RTjxppOUnpM8OwTBFL5DQbjoR9Az32EtM7YUZOw9orFO6rj1C+xWAGzz+X3bUe09Jf5Ep+zpuA==", "dev": true }, - "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" } }, "detect-port-alt": { @@ -30551,598 +40696,105 @@ "debug": "^2.6.0" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } + "electron-to-chromium": { + "version": "1.3.384", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.384.tgz", + "integrity": "sha512-9jGNF78o450ymPf63n7/j1HrRAD4xGTsDkKY2X6jtCAWaYgph2A9xQjwfwRpj+AovkARMO+JfZuVCFTdandD6w==", + "dev": true }, - "fork-ts-checker-webpack-plugin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.0.1.tgz", - "integrity": "sha512-RrVxSiNtngsFDLQpP2QlrVaJK1zqRdwhtwslmDUWQTg3t3GW8QN7D3EpW/EAI+oqTqL0dGvLyluyYQ/eIrIHvQ==", + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "chalk": "^2.4.1", - "chokidar": "^2.0.4", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0" + "escape-string-regexp": "^1.0.5" }, "dependencies": { - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true } } }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "filesize": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", + "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "optional": true, "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "p-locate": "^4.1.0" } }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "p-limit": "^2.2.0" } }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true } } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "fork-ts-checker-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^3.3.0", + "micromatch": "^3.1.10", "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "global-modules": { @@ -31165,48 +40817,77 @@ "which": "^1.3.1" } }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", "dev": true, "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "duplexer": "^0.1.1", + "pify": "^4.0.1" } }, "inquirer": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz", - "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", + "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", + "ansi-escapes": "^4.2.1", "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", + "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", - "mute-stream": "0.0.7", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.0.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -31217,41 +40898,40 @@ "path-exists": "^3.0.0" } }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", - "dev": true, - "optional": true - }, - "node-releases": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.18.tgz", - "integrity": "sha512-/mnVgm6u/8OwlIsoyRXtTI0RfQcxZoAZbdwyXap0EeWwcOpDDymyCHM2/aR9XKmHXrvizHoPAOs0pcbiJ6RUaA==", - "dev": true, - "requires": { - "semver": "^5.3.0" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "opn": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", - "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node-releases": { + "version": "1.1.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", + "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", "dev": true, "requires": { - "is-wsl": "^1.1.0" + "semver": "^6.3.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -31272,52 +40952,130 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + } } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" } } } }, "react-docgen": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-3.0.0.tgz", - "integrity": "sha512-2UseoLWabFNXuk1Foz4VDPSIAkxz+1Hmmq4qijzUmYHDq0ZSloKDLXtGLpQRcAi/M76hRpPtH1rV4BI5jNAOnQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-4.1.1.tgz", + "integrity": "sha512-o1wdswIxbgJRI4pckskE7qumiFyqkbvCO++TylEDOo2RbMiueIOg8YzKU4X9++r0DjrbXePw/LHnh81GRBTWRw==", "dev": true, "requires": { - "@babel/parser": "^7.1.3", + "@babel/core": "^7.0.0", "@babel/runtime": "^7.0.0", "async": "^2.1.4", "commander": "^2.19.0", - "doctrine": "^2.0.0", + "doctrine": "^3.0.0", "node-dir": "^0.1.10", - "recast": "^0.16.0" + "recast": "^0.17.3" }, "dependencies": { - "recast": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.16.2.tgz", - "integrity": "sha512-O/7qXi51DPjRVdbrpNzoBQH5dnAPQNbfoOFyRiUwreTMJfIHYOEBzwuH+c0+/BTSJ3CQyKs6ILSWXhESH6Op3A==", + "ast-types": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.4.tgz", + "integrity": "sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "ast-types": "0.11.7", + "esutils": "^2.0.2" + } + }, + "recast": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.17.6.tgz", + "integrity": "sha512-yoQRMRrK1lszNtbkGyM4kN45AwylV5hMiuEveUBlxytUViWevjvX6w+tzJt1LH4cfUhWt4NZvy3ThIhu6+m5wQ==", + "dev": true, + "requires": { + "ast-types": "0.12.4", "esprima": "~4.0.0", - "private": "~0.1.5", + "private": "^0.1.8", "source-map": "~0.6.1" } }, @@ -31329,63 +41087,82 @@ } } }, - "react-docgen-typescript": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-1.12.4.tgz", - "integrity": "sha512-OSmUfmdtcz4kLRWPiR8uUdE8ta+s5DV0uXOz1YsWaAUf3Ty64use7DYWK97zH8ZOlD4slq5zUfGc+UbfGLqfEQ==", - "dev": true - }, - "react-docgen-typescript-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-docgen-typescript-loader/-/react-docgen-typescript-loader-3.1.0.tgz", - "integrity": "sha512-gY+b7RkRPty5ZN4NMQ+jwx9MzTVuIj6LJCwdWRAi1+nrHJfH2gMMytQfxFdzQ7BlgD4COWnSE8Ixtl2L62kCRw==", + "react-docgen-actual-name-handler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-docgen-actual-name-handler/-/react-docgen-actual-name-handler-2.1.0.tgz", + "integrity": "sha512-EHdAke/RQQnoU7Gm1iZDcnBblnBVkA0RQGeLChwG6zSEyFaWN+HYZl8P+naY32vXde+aJt/V/QCi6bNt8hI4Pg==", "dev": true, "requires": { - "@webpack-contrib/schema-utils": "^1.0.0-beta.0", - "loader-utils": "^1.2.3", - "react-docgen-typescript": "^1.12.3" + "react-docgen": "^4.1.1", + "recast": "^0.18.1" } }, + "react-docgen-external-proptypes-handler": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-docgen-external-proptypes-handler/-/react-docgen-external-proptypes-handler-1.0.3.tgz", + "integrity": "sha512-jWFA7NCdSnNs9Yr7xAhcUJEwH7qhIKxsyXF5yzzriFiBBfGIlkdzslGWRW4GFD5B8Fu24MTDM1G5q8M3L8+Qdw==", + "dev": true + }, + "react-docgen-typescript": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-1.16.3.tgz", + "integrity": "sha512-xYISCr8mFKfV15talgpicOF/e0DudTucf1BXzu/HteMF4RM3KsfxXkhWybZC3LTVbYrdbammDV26Z4Yuk+MoWg==", + "dev": true + }, "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.18.0" - }, - "dependencies": { - "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } + "scheduler": "^0.19.1" } }, "react-error-overlay": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.6.tgz", - "integrity": "sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", + "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==", "dev": true }, "react-fast-compare": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", + "dev": true }, "react-feather": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/react-feather/-/react-feather-1.1.6.tgz", - "integrity": "sha512-iCofWhTjX+vQwvDmg7o6vg0XrUg1c41yBDZG+l83nz1FiCsleJoUgd3O+kHpOeWMXuPrRIFfCixvcqyOLGOgIg==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/react-feather/-/react-feather-2.0.3.tgz", + "integrity": "sha512-XVjtxIyMxb2RFlqC2APoB/IZvXKDW9uLN1c264XEeZNYe8jIxjQVQpeTo3nxtHiLTgMfgf0ZYxJC6HwmY8+9BA==", + "dev": true, + "requires": { + "prop-types": "^15.7.2" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + } + } }, "react-final-form": { "version": "6.3.0", @@ -31395,55 +41172,28 @@ "requires": { "@babel/runtime": "^7.4.5", "ts-essentials": "^2.0.8" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.2.tgz", - "integrity": "sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - } } }, "react-final-form-arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.0.tgz", - "integrity": "sha512-eJdAlhTKzlDD/d1wedD592a99eJNGO0e9GzY++RLN99P23cMGKSzCmsiGWLPwpY0H/C/LmNSL4XzWyH/aZembA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/react-final-form-arrays/-/react-final-form-arrays-3.1.1.tgz", + "integrity": "sha512-e6S1x9597cvI4QPniOPmllXXandDAqCCuBo4AvXstZYgcV8whsqzk8aCrmQEy6eEfy2tEhvn6f4VI1GY+JBRsg==", "dev": true, "requires": { "@babel/runtime": "^7.4.5" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.4.tgz", - "integrity": "sha512-r24eVUUr0QqNZa+qrImUk8fn5SPhHq+IfYvIoIMg0do3GdK9sMdiLKP3GYVVaxpPKORgm8KRKaNTEhAjgIpLMw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - } } }, + "react-frame-component": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-4.1.1.tgz", + "integrity": "sha512-NfJp90AvYA1R6+uSYafQ+n+UM2HjHqi4WGHeprVXa6quU9d8o6ZFRzQ36uemY82dlkZFzf2jigFx6E4UzNFajA==", + "dev": true + }, "react-helmet": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.2.1.tgz", "integrity": "sha512-CnwD822LU8NDBnjCpZ4ySh8L6HYyngViTZLfBBb3NjtrpN8m49clH8hidHouq20I51Y6TpCTISCBbqiY5GamwA==", + "dev": true, "requires": { "object-assign": "^4.1.1", "prop-types": "^15.5.4", @@ -31451,43 +41201,82 @@ "react-side-effect": "^1.1.0" } }, + "react-helmet-async": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.4.tgz", + "integrity": "sha512-KTGHE9sz8N7+fCkZ2a3vzXH9eIkiTNhL2NhKR7XzzQl3WsGlCHh76arauJUIiGdfhjeMp7DY7PkASAmYFXeJYg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.3.4", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^2.0.4", + "shallowequal": "^1.1.0" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + } + } + }, "react-hot-loader": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.8.4.tgz", - "integrity": "sha512-O98btZXcm24ZgP+aPBD0W9N+GEnkOg6vlLEy/IMZ53u3K/dGqO0I/RU4qrmQzE+wMDLpwNo5TwxaAjVw9Y+IBA==", + "version": "4.12.20", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.20.tgz", + "integrity": "sha512-lPlv1HVizi0lsi+UFACBJaydtRYILWkfHAC/lyCs6ZlAxlOZRQIfYHDqiGaRvL/GF7zyti+Qn9XpnDAUvdFA4A==", "dev": true, "requires": { "fast-levenshtein": "^2.0.6", "global": "^4.3.0", "hoist-non-react-statics": "^3.3.0", "loader-utils": "^1.1.0", - "lodash": "^4.17.11", "prop-types": "^15.6.1", "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.0.2", + "shallowequal": "^1.1.0", "source-map": "^0.7.3" }, "dependencies": { + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "dev": true, "requires": { "react-is": "^16.7.0" } }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "react-is": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", - "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", - "dev": true + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } }, "source-map": { "version": "0.7.3", @@ -31497,19 +41286,6 @@ } } }, - "react-imported-component": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/react-imported-component/-/react-imported-component-5.5.3.tgz", - "integrity": "sha512-aLJRabz6aNUNAgLJp01RLHwcmarztPXFNYVRP+qwsxzLb/s1IX7v6j2nVhgRNacpscLuLnJVk9rStxNZcmRkNQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "crc-32": "^1.2.0", - "detect-node": "^2.0.3", - "prop-types": "15.6.2", - "scan-directory": "^1.0.0" - } - }, "react-is": { "version": "16.8.6", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", @@ -31523,18 +41299,19 @@ "dev": true }, "react-live": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/react-live/-/react-live-1.12.0.tgz", - "integrity": "sha512-zFEpY01fJORF0IiyONqvjwPLBBDp155Ive6tU8ZmetmT2p4XWUKHstnlu4Cayia+n7iu58Owytztu43yvSin8g==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-2.2.2.tgz", + "integrity": "sha512-kJYAzKnPsR4oXleAX9lLsJA330BhTmSWHhr3ienZA2E/0eFDRodGl3I7sge8pp1vjc2K5Aaz73KpFUnV7Lq/DQ==", "dev": true, "requires": { - "buble": "^0.19.3", + "buble": "0.19.6", "core-js": "^2.4.1", - "create-react-context": "^0.2.3", + "create-react-context": "0.2.2", "dom-iterator": "^1.0.0", - "prismjs": "1.6", + "prism-react-renderer": "^1.0.1", "prop-types": "^15.5.8", - "unescape": "^0.2.0" + "react-simple-code-editor": "^0.10.0", + "unescape": "^1.0.1" }, "dependencies": { "core-js": { @@ -31544,9 +41321,9 @@ "dev": true }, "create-react-context": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz", - "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz", + "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==", "dev": true, "requires": { "fbjs": "^0.8.0", @@ -31555,73 +41332,64 @@ } } }, - "react-perfect-scrollbar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-perfect-scrollbar/-/react-perfect-scrollbar-1.5.0.tgz", - "integrity": "sha512-WIZ5RdwwA/npJWjPesPeIS5s/S7h5GsPT4apDOQgiTba7CUIFKqpL77z23MoniQws8Wx9JfMm3CF1170Hehz7Q==", - "dev": true, - "requires": { - "perfect-scrollbar": "^1.4.0", - "prop-types": "^15.6.1" - } - }, "react-popper": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.2.tgz", - "integrity": "sha512-UbFWj55Yt9uqvy0oZ+vULDL2Bw1oxeZF9/JzGyxQ5ypgauRH/XlarA5+HLZWro/Zss6Ht2kqpegtb6sYL8GUGw==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.7.tgz", + "integrity": "sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==", "dev": true, "requires": { "@babel/runtime": "^7.1.2", - "create-react-context": "<=0.2.2", + "create-react-context": "^0.3.0", + "deep-equal": "^1.1.1", "popper.js": "^1.14.4", "prop-types": "^15.6.1", "typed-styles": "^0.0.7", "warning": "^4.0.2" + } + }, + "react-reconciler": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.24.0.tgz", + "integrity": "sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==", + "dev": true, + "optional": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.18.0" }, "dependencies": { - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + "scheduler": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", + "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "dev": true, + "optional": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } } } }, - "react-powerplug": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/react-powerplug/-/react-powerplug-1.0.0.tgz", - "integrity": "sha512-H7U+1sNiOqlaPgZpfciVZ3BMHtXHsd0tkXrOmrwV7ZTpK+YGRddK7+Um1RT2OTe+4G+1muXfyFMAwcnasABMtA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.0.0" - } - }, "react-redux": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.1.3.tgz", - "integrity": "sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.0.tgz", + "integrity": "sha512-EvCAZYGfOLqwV7gh849xy9/pt55rJXPwmYvI4lilPM5rUT/1NxuuN59ipdBksRVSvz0KInbPnp4IfoXJXCqiDA==", "dev": true, "requires": { "@babel/runtime": "^7.5.5", "hoist-non-react-statics": "^3.3.0", - "invariant": "^2.2.4", "loose-envify": "^1.4.0", "prop-types": "^15.7.2", "react-is": "^16.9.0" }, "dependencies": { - "@babel/runtime": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.6.tgz", - "integrity": "sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.2" - } - }, "hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "dev": true, "requires": { "react-is": "^16.7.0" @@ -31648,23 +41416,29 @@ } }, "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true } } }, + "react-refresh": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.7.2.tgz", + "integrity": "sha512-u5l7fhAJXecWUJzVxzMRU2Zvw8m4QmDNHlTrT5uo3KBlYBhmChd7syAakBoay1yIiVhx/8Fi7a6v6kQZfsw81Q==", + "dev": true + }, "react-relay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-relay/-/react-relay-5.0.0.tgz", - "integrity": "sha512-gpUvedaCaPVPT0nMrTbev2TzrU0atgq2j/zAnGHiR9WgqRXwtHsK6FWFN65HRbopO2DzuJx9VZ2I3VO6uL5EMA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/react-relay/-/react-relay-9.0.0.tgz", + "integrity": "sha512-5K0SGkeGBCscS+7d9x0D5czI6ZZtWbmeBu2C6nBFEX4qPKvh0poIn8oJNN1cyXPCmdQPzQBaAbxLbI7v4Vpxiw==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", "fbjs": "^1.0.0", - "nullthrows": "^1.1.0", - "relay-runtime": "5.0.0" + "nullthrows": "^1.1.1", + "relay-runtime": "9.0.0" }, "dependencies": { "core-js": { @@ -31692,106 +41466,75 @@ } }, "react-relay-network-modern": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/react-relay-network-modern/-/react-relay-network-modern-4.0.4.tgz", - "integrity": "sha512-bi4MxHxdehwziGPR9se3c3LfqH7duu5sz5K6sTunQbCsvi/xKeWcHqMhHPJcim9VcABGDOV5CzB9pDHcAOHbsA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/react-relay-network-modern/-/react-relay-network-modern-4.6.1.tgz", + "integrity": "sha512-wgIbgNVPDbJy+WywkyNU5AEOdheViNTmeNdWlqPpM0o7SGcX78Rhw1YbrbRH8Iw2aKVBvv+QGOh96rWDdhzetg==", "dev": true, "requires": { - "@types/relay-runtime": "^5.0.3" - }, - "dependencies": { - "@types/relay-runtime": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/relay-runtime/-/relay-runtime-5.0.3.tgz", - "integrity": "sha512-JSnnY+Qfc5/airey+gXxRgfmBX7PzABH0G8+nYYfhtBdioD+mzl2X9VQCgJLiwFGnFvdZXZcGS3p91OrZEsdWQ==", - "dev": true, - "optional": true - } + "extract-files": "^5.0.1" } }, - "react-responsive": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-7.0.0.tgz", - "integrity": "sha512-RukaKD+UI/MIR+P8eUgVGURfiCafRvvcVnq41scT0eEQWHwDGliH/OAlrwIr1oyz8aKLGroZa+U8mTZV5ihPfA==", + "react-resize-detector": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-4.2.1.tgz", + "integrity": "sha512-ZfPMBPxXi0o3xox42MIEtz84tPSVMW9GgwLHYvjVXlFM+OkNzbeEtpVSV+mSTJmk4Znwomolzt35zHN9LNBQMQ==", "dev": true, "requires": { - "hyphenate-style-name": "^1.0.0", - "matchmediaquery": "^0.3.0", - "prop-types": "^15.6.1" - } - }, - "react-router": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", - "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", - "dev": true, - "requires": { - "history": "^4.7.2", - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.2.4", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.1", - "warning": "^4.0.1" + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", + "prop-types": "^15.7.2", + "raf-schd": "^4.0.2", + "resize-observer-polyfill": "^1.5.1" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "isarray": "0.0.1" + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } } } }, - "react-router-dom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", - "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", + "react-responsive": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-8.0.3.tgz", + "integrity": "sha512-F9VXyLao7O8XHXbLjQbIr4+mC6Zr0RDTwNjd7ixTmYEAyKyNanBkLkFchNaMZgszoSK6PgSs/3m/QDWw33/gpg==", "dev": true, "requires": { - "history": "^4.7.2", - "invariant": "^2.2.4", - "loose-envify": "^1.3.1", + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.3.0", "prop-types": "^15.6.1", - "react-router": "^4.3.1", - "warning": "^4.0.1" - } - }, - "react-router-hash-link": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-router-hash-link/-/react-router-hash-link-1.2.1.tgz", - "integrity": "sha512-ddkCtmk/JwMmuU087TGShQHYyNjsJ+/9CTyuVdvvKf6ACgqk2Ma9ndX2xogo7WWmyq9AjuziBm5bmJ12zBxtsQ==", - "dev": true, - "requires": { - "prop-types": "^15.6.0" + "shallow-equal": "^1.1.0" } }, "react-side-effect": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.2.0.tgz", "integrity": "sha512-v1ht1aHg5k/thv56DRcjw+WtojuuDHFUgGfc+bFHOWsF4ZK6C2V57DO0Or0GPsg6+LSTE0M6Ry/gfzhzSwbc5w==", + "dev": true, "requires": { "shallowequal": "^1.0.1" } }, - "react-sizes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/react-sizes/-/react-sizes-1.0.4.tgz", - "integrity": "sha512-lGSerZk5EA6zPI/44Smq+EkLeU0Nn+JaRxbbxkGMXYmTSs8sq7DvHJDA7GbjUdgi3gKq4omW6vpHIgQO5ekebg==", - "dev": true, - "requires": { - "lodash.throttle": "^4.1.1", - "prop-types": "^15.6.0" - } + "react-simple-code-editor": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/react-simple-code-editor/-/react-simple-code-editor-0.10.0.tgz", + "integrity": "sha512-bL5W5mAxSW6+cLwqqVWY47Silqgy2DKDTR4hDBrLrUqC5BXc29YVx17l2IZk5v36VcDEq1Bszu2oHm1qBwKqBA==", + "dev": true }, "react-static-container": { "version": "1.0.2", @@ -31800,54 +41543,43 @@ "dev": true }, "react-test-renderer": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.12.0.tgz", - "integrity": "sha512-Vj/teSqt2oayaWxkbhQ6gKis+t5JrknXfPVo+aIJ8QwYAqMPH77uptOdrlphyxl8eQI/rtkOYg86i/UWkpFu0w==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz", + "integrity": "sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==", "dev": true, "requires": { "object-assign": "^4.1.1", "prop-types": "^15.6.2", "react-is": "^16.8.6", - "scheduler": "^0.18.0" - }, - "dependencies": { - "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } + "scheduler": "^0.19.1" } }, "react-timeago": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/react-timeago/-/react-timeago-4.1.9.tgz", - "integrity": "sha512-MKucv9nU65BOPqIrClAFxqvpGCC4RdRpqp0P1YIb7C3yT6TQVdcoOlr0k4TDHvLQhbkwd3nbTxiDQMa3iDlZxg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/react-timeago/-/react-timeago-4.4.0.tgz", + "integrity": "sha512-Zj8RchTqZEH27LAANemzMR2RpotbP2aMd+UIajfYMZ9KW4dMcViUVKzC7YmqfiqlFfz8B0bjDw2xUBjmcxDngA==", "dev": true }, "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz", + "integrity": "sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==", "dev": true, "requires": { - "dom-helpers": "^3.4.0", + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" + "prop-types": "^15.6.2" }, "dependencies": { "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.3.tgz", + "integrity": "sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==", "dev": true, "requires": { - "@babel/runtime": "^7.1.2" + "@babel/runtime": "^7.6.3", + "csstype": "^2.6.7" } }, "loose-envify": { @@ -31861,27 +41593,13 @@ } } }, - "react-with-state-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-with-state-props/-/react-with-state-props-2.0.4.tgz", - "integrity": "sha512-tG2Rn/KXPXKy6RBhPeGMgR3JeSd11feNvQMR9ri2V6s8Tu8Q6Yz3pRD8xTOB+IzkEM2Vhf+iau7w2lki7hyHOQ==", + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "dev": true, "requires": { - "@types/prop-types": "^15.5.2", - "@types/react": "^16.0.40", - "awesome-typescript-loader": "^4.0.1", - "prop-types": "^15.6.1", - "ramda": "^0.25.0", - "source-map-loader": "^0.2.3", - "typescript": "^2.7.2" - }, - "dependencies": { - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - } + "mute-stream": "~0.0.4" } }, "read-cache": { @@ -31901,6 +41619,24 @@ } } }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -31948,30 +41684,27 @@ } }, "realpath-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", - "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", - "dev": true, - "requires": { - "util.promisify": "^1.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz", + "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==", + "dev": true }, "recast": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", - "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", + "version": "0.18.8", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.18.8.tgz", + "integrity": "sha512-pxiq+ZAF0mYQuhQI+qqr8nFjgmEOFYA3YUVV8dXM7Mz20vs2WyKM1z2W0v80RZ/WICeNw2EeORg+QdDIgAX2ng==", "dev": true, "requires": { - "ast-types": "0.11.3", + "ast-types": "0.13.3", "esprima": "~4.0.0", - "private": "~0.1.5", + "private": "^0.1.8", "source-map": "~0.6.1" }, "dependencies": { "ast-types": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", - "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", + "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", "dev": true }, "source-map": { @@ -31992,12 +41725,12 @@ } }, "recompose": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.27.1.tgz", - "integrity": "sha512-p7xsyi/rfNjHfdP7vPU02uSFa+Q1eHhjKrvO+3+kRP4Ortj+MxEmpmd+UQtBGM2D2iNAjzNI5rCyBKp9Ob5McA==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.30.0.tgz", + "integrity": "sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", + "@babel/runtime": "^7.0.0", "change-emitter": "^0.1.2", "fbjs": "^0.8.1", "hoist-non-react-statics": "^2.3.1", @@ -32022,12 +41755,20 @@ "requires": { "indent-string": "^3.0.0", "strip-indent": "^2.0.0" + }, + "dependencies": { + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + } } }, "redis-commands": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.4.0.tgz", - "integrity": "sha512-cu8EF+MtkwI4DLIT0x9P8qNTLFhQD4jLfxLR0cCNkeGzs87FN6879JOJwNQR/1zD7aSYNbU0hgsV9zGY71Itvw==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz", + "integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==" }, "redis-errors": { "version": "1.2.0", @@ -32043,15 +41784,32 @@ } }, "redux": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz", - "integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", + "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", "dev": true, "requires": { - "loose-envify": "^1.1.0", + "loose-envify": "^1.4.0", "symbol-observable": "^1.2.0" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + } } }, + "redux-thunk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", + "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==", + "dev": true + }, "referrer-policy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz", @@ -32079,18 +41837,15 @@ } }, "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" }, - "regenerator-transform": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.4.tgz", - "integrity": "sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==", - "dev": true, - "requires": { - "private": "^0.1.6" - } + "regex-escape": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/regex-escape/-/regex-escape-3.4.9.tgz", + "integrity": "sha512-Cv9rjwyQwVhn3L097ysanWsEElurmxDj6Cc4Ut23z7e6hzRbrNvF3Le7yAciMfuzyb0sZwSr0ZHunMNCIoy2/g==", + "dev": true }, "regex-not": { "version": "1.0.2", @@ -32101,10 +41856,105 @@ "safe-regex": "^1.1.0" } }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + } + } + }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", + "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", "dev": true }, "regexpu-core": { @@ -32122,11 +41972,29 @@ } }, "regextras": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.6.1.tgz", - "integrity": "sha512-EzIHww9xV2Kpqx+corS/I7OBmf2rZ0pKKJPsw5Dc+l6Zq1TslDmtRIP9maVn3UH+72MIXmn8zzDgP07ihQogUA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.0.tgz", + "integrity": "sha512-ds+fL+Vhl918gbAUb0k2gVKbTZLsg84Re3DI6p85Et0U0tYME3hyW4nMK8Px4dtDaBA2qNjvG5uWyW7eK5gfmw==", "dev": true }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, "regjsgen": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", @@ -32151,33 +42019,32 @@ } }, "rehype-docz": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/rehype-docz/-/rehype-docz-0.13.6.tgz", - "integrity": "sha512-BY7/fplfPHSAi0/Q7q36WaO8fYEyi7Dq4Us7GFvAbdvndgCkGusrth1ZhTGvi72voamPRkn6mag1DNvJ2pHt5g==", + "version": "2.3.0-alpha.2", + "resolved": "https://registry.npmjs.org/rehype-docz/-/rehype-docz-2.3.0-alpha.2.tgz", + "integrity": "sha512-sgjIj+fAkzKlFa4W5/R+iRde8YCfVlyiqtOiMpYOv9hD6xhIHEcGV8HfrbAjfAaqxNXwDOhVhLfaJWjTX6WogQ==", "dev": true, "requires": { - "docz-utils": "^0.13.6", - "hast-util-to-string": "^1.0.1", - "jsx-ast-utils": "^2.0.1", - "lodash.flatten": "^4.4.0", - "unist-util-is": "^2.1.2" - } - }, - "rehype-parse": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.0.tgz", - "integrity": "sha512-V2OjMD0xcSt39G4uRdMTqDXXm6HwkUbLMDayYKA/d037j8/OtVSQ+tqKwYWOuyBeoCs/3clXRe30VUjeMDTBSA==", - "dev": true, - "requires": { - "hast-util-from-parse5": "^5.0.0", - "parse5": "^5.0.0", - "xtend": "^4.0.1" + "brace": "^0.11.1", + "docz-utils": "^2.3.0-alpha.2", + "hast-util-to-string": "^1.0.2", + "jsx-ast-utils": "^2.2.1", + "lodash": "^4.17.14", + "react-ace": "^7.0.2", + "unist-util-is": "^3.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + } } }, "rehype-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-2.0.2.tgz", - "integrity": "sha512-CDCRfqx4qgfOSDG6t9KoyvrLejrICqhDJu0kNY2r5RhZLr2QHp9gG533nLzp6HLTVT0fSbZbdx8YvqLGpCBjPA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-2.0.3.tgz", + "integrity": "sha512-7hgS91klce+p/1CrgMjV/JKyVmEevTM3YMkFtxF29twydKBSYVcy2x44z74SgCnzANj8H8N0g0O8F1OH1/OXJA==", "dev": true, "requires": { "github-slugger": "^1.1.1", @@ -32193,63 +42060,93 @@ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" }, "relay-compiler": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-5.0.0.tgz", - "integrity": "sha512-q8gKlPRTJe/TwtIokbdXehy1SxDFIyLBZdsfg60J4OcqyviIx++Vhc+h4lXzBY8LsBVaJjTuolftYcXJLhlE6g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-9.0.0.tgz", + "integrity": "sha512-V509bPZMqVvITUcgXFgvO9pcnAKzF7pJXObnxfglOl3JsfJeDwTW1fu/CzPtvk5suxVMK6Cn9fMxZK2GdRXqYQ==", "dev": true, "requires": { "@babel/core": "^7.0.0", - "@babel/generator": "^7.0.0", + "@babel/generator": "^7.5.0", "@babel/parser": "^7.0.0", - "@babel/polyfill": "^7.0.0", "@babel/runtime": "^7.0.0", "@babel/traverse": "^7.0.0", "@babel/types": "^7.0.0", - "babel-preset-fbjs": "^3.1.2", + "babel-preset-fbjs": "^3.3.0", "chalk": "^2.4.1", "fast-glob": "^2.2.2", "fb-watchman": "^2.0.0", "fbjs": "^1.0.0", "immutable": "~3.7.6", - "nullthrows": "^1.1.0", - "relay-runtime": "5.0.0", + "nullthrows": "^1.1.1", + "relay-runtime": "9.0.0", "signedsource": "^1.0.0", - "yargs": "^9.0.0" + "yargs": "^14.2.0" }, "dependencies": { - "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", "dev": true, "requires": { - "esutils": "^2.0.2", + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, "core-js": { @@ -32258,6 +42155,12 @@ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", "dev": true }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "fbjs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", @@ -32274,146 +42177,136 @@ "ua-parser-js": "^0.7.18" } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "locate-path": "^3.0.0" } }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", + "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "relay-compiler-language-typescript": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/relay-compiler-language-typescript/-/relay-compiler-language-typescript-4.13.0.tgz", - "integrity": "sha512-rWmRYHTw4GPze0/g93hKZt3YCqLdf8FpAlquagaMLArFXDh34wAi01xR57Huc3MUV9knC+Jxb9YBXl311X0WCA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/relay-compiler-language-typescript/-/relay-compiler-language-typescript-12.0.0.tgz", + "integrity": "sha512-jTg6aO3FcC6P1mnp6AKdfJcwGx8WQ+ui3HQz9Wn25SbKiqzW4FHBAg9Q38cS/YYOk7a4otcYQPLIcaKE0HXksg==", "dev": true, "requires": { "immutable": "^4.0.0-rc.12", @@ -32435,9 +42328,9 @@ "dev": true }, "relay-runtime": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-5.0.0.tgz", - "integrity": "sha512-lrC2CwfpWWHBAN608eENAt5Bc5zqXXE2O9HSo8tc6Gy5TxfK+fU+x9jdwXQ2mXxVPgANYtYeKzU5UTfcX0aDEw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-9.0.0.tgz", + "integrity": "sha512-bBNeNmwMOnqtCvuPnWdgflFSVwuUbGV7m7os8qHCUCSJ52DT5B/m6K4wisVh3eZ0QWYr7hheRDfmR/3UEdUe5A==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", @@ -32519,19 +42412,44 @@ } }, "remark-docz": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/remark-docz/-/remark-docz-0.13.3.tgz", - "integrity": "sha512-b0UWtd+x+YwHlNhF1kmnxoghi1ivTW4iRxCsWX5YXZN9YKabhBtAHTU1pipmtiJAfL1uQNiV0sM4ZHgIHkM6Ng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/remark-docz/-/remark-docz-2.1.0.tgz", + "integrity": "sha512-5Crfi0xyBEoEJP06eaVZ6FodMWf3SunzL8icubxxqgAaIklgqp9H2hQ6getSe+0VM8yj0P1r2LPrl7GA1PLEPw==", "dev": true, "requires": { - "unist-util-remove": "^1.0.1", - "unist-util-visit": "^1.4.0" + "@babel/generator": "^7.5.5", + "@babel/types": "^7.5.5", + "unist-util-remove": "^1.0.3", + "unist-util-visit": "^1.4.1" }, "dependencies": { + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "dev": true, + "requires": { + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, "unist-util-visit": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.0.tgz", - "integrity": "sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "dev": true, "requires": { "unist-util-visit-parents": "^2.0.0" @@ -32549,6 +42467,284 @@ "xtend": "^4.0.1" } }, + "remark-mdx": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.5.8.tgz", + "integrity": "sha512-wtqqsDuO/mU/ucEo/CDp0L8SPdS2oOE6PRsMm+lQ9TLmqgep4MBmyH8bLpoc8Wf7yjNmae/5yBzUN1YUvR/SsQ==", + "dev": true, + "requires": { + "@babel/core": "7.8.4", + "@babel/helper-plugin-utils": "7.8.3", + "@babel/plugin-proposal-object-rest-spread": "7.8.3", + "@babel/plugin-syntax-jsx": "7.8.3", + "@mdx-js/util": "^1.5.8", + "is-alphabetical": "1.0.4", + "remark-parse": "7.0.2", + "unified": "8.4.2" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/core": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", + "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.4", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", + "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", + "dev": true, + "requires": { + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.9.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", + "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", + "dev": true + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "@babel/traverse": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", + "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", + "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "json5": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "remark-parse": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz", + "integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==", + "dev": true, + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "remark-parse": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", @@ -32573,20 +42769,28 @@ } }, "remark-parse-yaml": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/remark-parse-yaml/-/remark-parse-yaml-0.0.1.tgz", - "integrity": "sha1-gW7HWHrJ4BcV9NagKSbgNnRiocU=", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/remark-parse-yaml/-/remark-parse-yaml-0.0.2.tgz", + "integrity": "sha512-zfs9hl/SKlgLw6ktGeRO+Xh+o+3CUSdo/z/W0pHCwZLNHwgaWkylWaJFHQ/O9eVvTO9PJwnOHVYUIhGpqRYu5g==", "dev": true, "requires": { - "babel-polyfill": "^6.23.0", "js-yaml": "^3.9.0", "unist-util-map": "^1.0.3" } }, + "remark-retext": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-3.1.3.tgz", + "integrity": "sha512-UujXAm28u4lnUvtOZQFYfRIhxX+auKI9PuA2QpQVTT7gYk1OgX6o0OUrSo1KOa6GNrFX+OODOtS5PWIHPxM7qw==", + "dev": true, + "requires": { + "mdast-util-to-nlcst": "^3.2.0" + } + }, "remark-slug": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-5.1.1.tgz", - "integrity": "sha512-r591rdoDPJkSSAVvEaTVUkqbMp7c7AyZfif14V0Dp66GQkOHzaPAS6wyhawSbqpS0ZdTnfJS+TltFoxzi6bdIA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-5.1.2.tgz", + "integrity": "sha512-DWX+Kd9iKycqyD+/B+gEFO3jjnt7Yg1O05lygYSNTe5i5PIxxxPjp5qPBDxPIzp5wreF7+1ROCwRgjEcqmzr3A==", "dev": true, "requires": { "github-slugger": "^1.0.0", @@ -32595,9 +42799,9 @@ } }, "remark-squeeze-paragraphs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-3.0.3.tgz", - "integrity": "sha512-eDvjtwFa9eClqb7XgdF/1H9Pfs2LPnf/P3eRs9ucYAWUuv4WO8ZOVAUeT/1h66rQvghnfctz9au+HEmoKcdoqA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-3.0.4.tgz", + "integrity": "sha512-Wmz5Yj9q+W1oryo8BV17JrOXZgUKVcpJ2ApE2pwnoHwhFKSk4Wp2PmFNbmJMgYSqAdFwfkoe+TSYop5Fy8wMgA==", "dev": true, "requires": { "mdast-squeeze-paragraphs": "^3.0.0" @@ -32643,7 +42847,8 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true }, "renderkid": { "version": "2.0.3", @@ -32706,68 +42911,71 @@ } }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" }, "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "punycode": "^1.4.1" + "mime-db": "1.43.0" } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", "requires": { - "lodash": "^4.17.11" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - } + "lodash": "^4.17.15" } }, "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", "requires": { - "request-promise-core": "1.1.2", + "request-promise-core": "1.1.3", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" } @@ -32787,7 +42995,12 @@ "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=", "dev": true }, "require-main-filename": { @@ -32818,9 +43031,9 @@ "dev": true }, "reselect": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz", - "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.0.0.tgz", + "integrity": "sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==", "dev": true }, "resize-observer-polyfill": { @@ -32879,17 +43092,20 @@ "value-or-function": "^3.0.0" } }, - "resolve-pathname": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", - "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==", - "dev": true - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -32905,11 +43121,27 @@ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, + "retext-english": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-3.0.4.tgz", + "integrity": "sha512-yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==", + "dev": true, + "requires": { + "parse-english": "^4.0.0", + "unherit": "^1.0.4" + } + }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rgb-regex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", @@ -32926,6 +43158,7 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "optional": true, "requires": { "glob": "^6.0.1" } @@ -32959,10 +43192,10 @@ "is-promise": "^2.1.0" } }, - "run-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", - "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", "dev": true }, "run-queue": { @@ -32974,6 +43207,27 @@ "aproba": "^1.1.1" } }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, "rxjs": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", @@ -33056,6 +43310,21 @@ "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } } }, "get-stream": { @@ -33101,23 +43370,18 @@ "dev": true }, "saxes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.9.tgz", - "integrity": "sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw==", + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dev": true, "requires": { - "xmlchars": "^1.3.1" + "xmlchars": "^2.1.1" } }, - "scan-directory": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/scan-directory/-/scan-directory-1.0.0.tgz", - "integrity": "sha512-StSp3ahu7EE1oqVfemF9nV7DVusIaVRuZVa4CZX5rzCUwspqO21wWdNshxZuFIQD7zj/HvvglBoycIizZbTBdw==", - "dev": true - }, "scheduler": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", - "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -33135,12 +43399,36 @@ "ajv-keywords": "^3.1.0" } }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "scroll-behavior": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/scroll-behavior/-/scroll-behavior-0.9.12.tgz", + "integrity": "sha512-18sirtyq1P/VsBX6O/vgw20Np+ngduFXEMO4/NDFXabdOKBL2kjPVUpz1y0+jm99EWwFJafxf5/tCyMeXt9Xyg==", "dev": true, - "optional": true + "requires": { + "dom-helpers": "^3.4.0", + "invariant": "^2.2.4" + } + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, "select-hose": { "version": "2.0.0", @@ -33149,12 +43437,12 @@ "dev": true }, "selfsigned": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", - "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", "dev": true, "requires": { - "node-forge": "0.7.5" + "node-forge": "0.9.0" } }, "semver": { @@ -33168,6 +43456,15 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, "semver-greatest-satisfied-range": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", @@ -33177,32 +43474,11 @@ "sver-compat": "^1.5.0" } }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } + "semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true }, "sentence-case": { "version": "2.1.1", @@ -33214,16 +43490,10 @@ "upper-case-first": "^1.1.2" } }, - "serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=", - "dev": true - }, "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", "dev": true }, "serve-index": { @@ -33241,17 +43511,6 @@ "parseurl": "~1.3.2" } }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -33288,7 +43547,8 @@ "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true }, "sha.js": { "version": "2.4.11", @@ -33299,34 +43559,17 @@ "safe-buffer": "^5.0.1" } }, - "shallow-clone": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", - "dev": true, - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^2.0.1", - "lazy-cache": "^0.2.3", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", - "dev": true, - "requires": { - "is-buffer": "^1.0.2" - } - }, - "lazy-cache": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", - "dev": true - } - } + "shallow-compare": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/shallow-compare/-/shallow-compare-1.2.2.tgz", + "integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg==", + "dev": true + }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==", + "dev": true }, "shallow-equals": { "version": "1.0.0", @@ -33337,7 +43580,8 @@ "shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true }, "shebang-command": { "version": "1.2.0", @@ -33364,12 +43608,123 @@ "jsonify": "~0.0.0" } }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, + "side-channel": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", + "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", + "dev": true, + "requires": { + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "sift": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/sift/-/sift-5.1.0.tgz", + "integrity": "sha1-G78t+w63HlbEzH+1Z/vRNRtlAV4=", + "dev": true + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -33390,6 +43745,37 @@ "chalk": "^2.3.2", "figures": "^2.0.0", "pkg-conf": "^2.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "signedsource": { @@ -33398,26 +43784,6 @@ "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=", "dev": true }, - "simple-git": { - "version": "1.112.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.112.0.tgz", - "integrity": "sha512-3vY0SW+RkO+ElWH07n/PQuKmuNLZSz3VAkxKMr3UMm/QnaSnYFjg3nqT8V6a0QCcUFpkyAWVsruQt4oSIIzPXw==", - "dev": true, - "requires": { - "debug": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -33453,35 +43819,47 @@ "dev": true }, "sinon": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.3.2.tgz", - "integrity": "sha512-thErC1z64BeyGiPvF8aoSg0LEnptSaWE7YhdWWbWXgelOyThent7uKOnnEh9zBxDbKixtr5dEko+ws1sZMuFMA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.0.1.tgz", + "integrity": "sha512-iTTyiQo5T94jrOx7X7QLBZyucUJ2WvL9J13+96HMfm2CGoJYbIPqRfl6wgNcqmzk0DI28jeGx5bUTXizkrqBmg==", "dev": true, "requires": { - "@sinonjs/commons": "^1.4.0", - "@sinonjs/formatio": "^3.2.1", - "@sinonjs/samsam": "^3.3.1", - "diff": "^3.5.0", - "lolex": "^4.0.1", - "nise": "^1.4.10", - "supports-color": "^5.5.0" + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/formatio": "^5.0.1", + "@sinonjs/samsam": "^5.0.3", + "diff": "^4.0.2", + "nise": "^4.0.1", + "supports-color": "^7.1.0" }, "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } } } }, "sisteransi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.0.tgz", - "integrity": "sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", + "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==", "dev": true }, "slash": { @@ -33501,6 +43879,12 @@ "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", "integrity": "sha1-vQSN23TefRymkV+qSldXCzVQwtc=" }, + "slugify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.0.tgz", + "integrity": "sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ==", + "dev": true + }, "smart-buffer": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", @@ -33617,6 +44001,132 @@ } } }, + "socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", + "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", + "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, "sockjs": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", @@ -33635,13 +44145,19 @@ "requires": { "websocket-driver": ">=0.5.1" } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true } } }, "sockjs-client": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", - "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "dev": true, "requires": { "debug": "^3.2.5", @@ -33692,9 +44208,9 @@ } }, "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { "is-plain-obj": "^1.0.0" @@ -33711,43 +44227,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, - "source-map-loader": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.3.tgz", - "integrity": "sha512-MYbFX9DYxmTQFfy2v8FC1XZwpwHKYxg3SK8Wb7VPBKuhDjz8gi9re2819MsG4p49HDyiOSUKlmZ+nQBArW5CGw==", - "dev": true, - "requires": { - "async": "^2.5.0", - "loader-utils": "~0.2.2", - "source-map": "~0.6.1" - }, - "dependencies": { - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", @@ -33761,9 +44240,9 @@ } }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -33782,15 +44261,15 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "sourcemap-codec": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz", - "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==", + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "space-separated-tokens": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.3.tgz", - "integrity": "sha512-/M5RAdBuQlSDPNfA5ube+fkHbHyY08pMuADLmsAQURzo56w90r681oiOoz3o3ZQyWdSeNucpTFjL+Ggd5qui3w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "dev": true }, "sparkles": { @@ -33841,9 +44320,9 @@ "dev": true }, "spdy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", - "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", + "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -33888,9 +44367,9 @@ } }, "readable-stream": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", - "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -33951,20 +44430,24 @@ "dev": true }, "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-BvBTnHGm8boe+HiJFqP19ywEsGlfQAKqW78pbfvUuzCbUuxPPUyLrH5dYFY+Xn9IpLY3b5ZmMcl8jAqXB4wddg==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } }, "stackframe": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz", - "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==", - "dev": true - }, - "staged-git-files": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.2.tgz", - "integrity": "sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz", + "integrity": "sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ==", "dev": true }, "standard-as-callback": { @@ -33997,28 +44480,66 @@ } } }, + "static-site-generator-webpack-plugin": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-3.4.2.tgz", + "integrity": "sha512-39Kn+fZDVjolLYuX5y1rDvksJIW0QEUaEC/AVO/UewNXxGzoSQI1UYnRsL+ocAcN5Yti6d6rJgEL0qZ5tNXfdw==", + "dev": true, + "requires": { + "bluebird": "^3.0.5", + "cheerio": "^0.22.0", + "eval": "^0.1.0", + "url": "^0.11.0", + "webpack-sources": "^0.2.0" + }, + "dependencies": { + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + } + }, + "source-list-map": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", + "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=", + "dev": true + }, + "webpack-sources": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", + "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", + "dev": true, + "requires": { + "source-list-map": "^1.1.1", + "source-map": "~0.5.3" + } + } + } + }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" }, - "std-env": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz", - "integrity": "sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==", - "dev": true, - "requires": { - "ci-info": "^1.6.0" - }, - "dependencies": { - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - } - } - }, "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", @@ -34069,12 +44590,6 @@ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, - "stream-slice": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", - "integrity": "sha1-LcT04bk2+xPz6zmi3vGTJ5jQeks=", - "dev": true - }, "streamsearch": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", @@ -34087,38 +44602,51 @@ "dev": true }, "string-argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", - "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true }, "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", + "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", "dev": true, "requires": { "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" + "strip-ansi": "^5.2.0" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, + "string-similarity": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.2.2.tgz", + "integrity": "sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ==", + "dev": true, + "requires": { + "lodash.every": "^4.6.0", + "lodash.flattendeep": "^4.4.0", + "lodash.foreach": "^4.5.0", + "lodash.map": "^4.6.0", + "lodash.maxby": "^4.6.0" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -34152,6 +44680,99 @@ "integrity": "sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM=", "dev": true }, + "string.prototype.matchall": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", + "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, "string.prototype.padend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", @@ -34164,14 +44785,131 @@ } }, "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz", + "integrity": "sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + } + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + } } }, "string_decoder": { @@ -34203,29 +44941,21 @@ "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" - }, - "dependencies": { - "get-own-enumerable-property-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz", - "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==", - "dev": true - } } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true } } @@ -34247,12 +44977,21 @@ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, - "strip-indent": { + "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -34274,13 +45013,81 @@ } }, "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.1.3.tgz", + "integrity": "sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "loader-utils": "^1.2.3", + "schema-utils": "^2.6.4" + }, + "dependencies": { + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "dev": true, + "requires": { + "inline-style-parser": "0.1.1" } }, "stylehacks": { @@ -34294,6 +45101,15 @@ "postcss-selector-parser": "^3.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "browserslist": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.6.tgz", @@ -34326,6 +45142,19 @@ "chalk": "^2.4.1", "source-map": "^0.6.1", "supports-color": "^5.5.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "postcss-selector-parser": { @@ -34368,6 +45197,12 @@ "ws": "^5.2.0" } }, + "sudo-prompt": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", + "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", + "dev": true + }, "sugarss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", @@ -34409,9 +45244,9 @@ } }, "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "version": "7.0.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", + "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -34437,43 +45272,113 @@ } }, "superagent": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", - "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.2.1.tgz", + "integrity": "sha512-46b4Lkwnlz7Ebdv2FBbfuqb3kVkG1jV/SK3EW6NnwL9a3T4h5hHtegNEQfbXvTFbDoUZXId4W3dMgap2f6ic1g==", "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.2", + "debug": "^4.1.1", + "fast-safe-stringify": "^2.0.7", + "form-data": "^3.0.0", + "formidable": "^1.2.1", + "methods": "^1.1.2", + "mime": "^2.4.4", + "qs": "^6.9.1", + "readable-stream": "^3.4.0", + "semver": "^6.3.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "delayed-stream": "~1.0.0" } + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "form-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", + "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + }, + "qs": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", + "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==" + }, + "readable-stream": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } }, "sver-compat": { "version": "1.5.0", @@ -34562,15 +45467,9 @@ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" }, "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" - }, - "synchronous-promise": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.7.tgz", - "integrity": "sha512-16GbgwTmFMYFyQMLvtQjvNWh30dsFe1cAW5Fg1wm5+dg84L9Pe36mftsIRU95/W2YsISxsz/xq4VB23sqpgb/A==", - "dev": true + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "table": { "version": "5.4.6", @@ -34585,23 +45484,35 @@ }, "dependencies": { "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", @@ -34623,6 +45534,15 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, @@ -34645,9 +45565,9 @@ }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -34664,21 +45584,48 @@ "bintrees": "1.0.1" } }, - "terser": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", - "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, "requires": { - "commander": "^2.19.0", + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + } + } + }, + "terser": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.6.tgz", + "integrity": "sha512-4lYPyeNmstjIIESr/ysHg2vUPRGf2tzF9z2yYwnowXVuVzLEamPN1Gfrz7f8I9uEPuHcbFlW4PLIAsJoxXyJ1g==", + "dev": true, + "requires": { + "commander": "^2.20.0", "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "source-map-support": "~0.5.12" }, "dependencies": { "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "source-map": { @@ -34690,158 +45637,101 @@ } }, "terser-webpack-plugin": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.3.tgz", - "integrity": "sha512-GOK7q85oAb/5kE12fMuLdn2btOS9OBZn4VsecpHDywoUC/jLhSAKOiYo0ezx7ss2EXPMzyEWFoE0s1WLE+4+oA==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz", + "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==", "dev": true, "requires": { - "cacache": "^11.0.2", - "find-cache-dir": "^2.0.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.4.0", + "cacache": "^13.0.1", + "find-cache-dir": "^3.2.0", + "jest-worker": "^25.1.0", + "p-limit": "^2.2.2", + "schema-utils": "^2.6.4", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", - "terser": "^3.16.1", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" + "terser": "^4.4.3", + "webpack-sources": "^1.4.3" }, "dependencies": { - "bluebird": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", - "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", - "dev": true - }, - "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { - "bluebird": "^3.5.3", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", - "graceful-fs": "^4.1.15", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" + "p-locate": "^4.1.0" } }, "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "dev": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "semver": "^6.0.0" } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-try": { @@ -34850,54 +45740,35 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "readable-stream": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", - "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" } }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "source-map": { @@ -34906,57 +45777,33 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true } } }, "test-exclude": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", - "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { - "glob": "^7.1.3", - "minimatch": "^3.0.4", - "read-pkg-up": "^4.0.0", - "require-main-filename": "^2.0.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -34966,56 +45813,6 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "read-pkg-up": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", - "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", - "dev": true, - "requires": { - "find-up": "^3.0.0", - "read-pkg": "^3.0.0" - } - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true } } }, @@ -35025,10 +45822,21 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "theme-ui": { + "version": "0.2.52", + "resolved": "https://registry.npmjs.org/theme-ui/-/theme-ui-0.2.52.tgz", + "integrity": "sha512-JFujorP5aFxIm1UyVCtefN5baXjwh5TXHKFYNWgAP+3rqVvggIr46uSMrRNvDjyhFOQiMK8YI8ctPQrrhcETpw==", + "dev": true, + "requires": { + "@emotion/is-prop-valid": "^0.8.1", + "@styled-system/css": "^5.0.16", + "deepmerge": "^4.0.0" + } + }, "thread-loader": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.2.tgz", - "integrity": "sha512-7xpuc9Ifg6WU+QYw/8uUqNdRwMD+N5gjwHKMqETrs96Qn+7BHwECpt2Brzr4HFlf4IAkZsayNhmGdbkBsTJ//w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz", + "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==", "dev": true, "requires": { "loader-runner": "^2.3.1", @@ -35036,24 +45844,41 @@ "neo-async": "^2.6.0" }, "dependencies": { - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true } } }, "throat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true }, "throng": { @@ -35096,9 +45921,9 @@ "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" }, "thunky": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", - "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "time-stamp": { @@ -35107,6 +45932,12 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, "timekeeper": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-2.2.0.tgz", @@ -35151,25 +45982,6 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "dev": true, - "optional": true - }, - "tiny-invariant": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.4.tgz", - "integrity": "sha512-lMhRd/djQJ3MoaHEBrw8e2/uM4rs9YMNk0iOr8rHQ0QdbM7D4l0gFl3szKdeixrlyfm9Zqi4dxHCM2qVG8ND5g==", - "dev": true - }, - "tiny-warning": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.2.tgz", - "integrity": "sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q==", - "dev": true - }, "title": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/title/-/title-3.4.1.tgz", @@ -35227,9 +46039,9 @@ } }, "titleize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-1.0.1.tgz", - "integrity": "sha512-rUwGDruKq1gX+FFHbTl5qjI7teVO7eOe+C8IcQ7QT+1BK3eEUXJqbZcBOeaRP4FwSC/C1A5jDoIVta0nIQ9yew==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-2.1.0.tgz", + "integrity": "sha512-m+apkYlfiQTKLW+sI4vqUkwMEzfgEUEYSqljx1voUE3Wz/z1ZsxyzSxvH2X8uKVrOp7QkByWt0rA6+gvhCKy6g==", "dev": true }, "tlds": { @@ -35262,6 +46074,12 @@ "is-negated-glob": "^1.0.0" } }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -35271,8 +46089,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -35292,6 +46109,12 @@ } } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -35312,12 +46135,6 @@ "repeat-string": "^1.6.1" } }, - "to-style": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/to-style/-/to-style-1.3.3.tgz", - "integrity": "sha1-Y6K3Cm9KfU/cLtV6C+TnI1y2aZw=", - "dev": true - }, "to-through": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", @@ -35328,31 +46145,51 @@ } }, "to-vfile": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-5.0.2.tgz", - "integrity": "sha512-Gp2q0HCUR+4At6c6mvFKug75NP/8Cu5r7ONvEcJJPBGiDT4HeLBrRnPKJbOe84nHJqYhIah2y367Tr2+IUkwMA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz", + "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==", "dev": true, "requires": { "is-buffer": "^2.0.0", - "vfile": "^3.0.0" + "vfile": "^4.0.0" }, "dependencies": { "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true }, - "vfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", - "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { + "@types/unist": "^2.0.2" + } + }, + "vfile": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.0.tgz", + "integrity": "sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "replace-ext": "1.0.0", - "unist-util-stringify-position": "^1.0.0", - "vfile-message": "^1.0.0" + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" } } } @@ -35368,20 +46205,6 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, - "topo": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/topo/-/topo-3.0.0.tgz", - "integrity": "sha512-Tlu1fGlR90iCdIPURqPiufqAlCZYzLjHYVVbcFWDMcX7+tK8hdZWAfsMrD/pBul9jqHHwFjNdf1WaxA9vTRRhw==", - "requires": { - "hoek": "5.x.x" - } - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", - "dev": true - }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -35395,6 +46218,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, "requires": { "punycode": "^2.1.0" } @@ -35406,9 +46230,9 @@ "dev": true }, "tree-kill": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", - "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "trim": { @@ -35418,9 +46242,9 @@ "dev": true }, "trim-lines": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.1.tgz", - "integrity": "sha512-X+eloHbgJGxczUk1WSjIvn7aC9oN3jVE3rQfRVKcgpavi3jxtCn0VVKtjOBj64Yop96UYn/ujJRpTbCdAF1vyg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.3.tgz", + "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==", "dev": true }, "trim-newlines": { @@ -35447,6 +46271,12 @@ "integrity": "sha512-FHkoUZvG6Egrv9XZAyYGKEyb1JMsFphgPjoczkZC2y6W93U1jswcVURB8MUvtsahEPEVACyxD47JAL63vF4JsQ==", "dev": true }, + "true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "dev": true + }, "truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/truncate/-/truncate-2.1.0.tgz", @@ -35473,29 +46303,72 @@ } }, "ts-jest": { - "version": "23.1.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-23.1.4.tgz", - "integrity": "sha512-9rCSxbWfoZxxeXnSoEIzRNr9hDIQ8iEJAWmSRsWhDHDT8OeuGfURhJQUE8jtJlkyEygs6rngH8RYtHz9cfjmEA==", + "version": "25.3.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.3.0.tgz", + "integrity": "sha512-qH/uhaC+AFDU9JfAueSr0epIFJkGMvUPog4FxSEVAtPOur1Oni5WBJMiQIkfHvc7PviVRsnlVLLY2I6221CQew==", "dev": true, "requires": { - "closest-file-data": "^0.1.4", - "fs-extra": "6.0.1", - "json5": "^0.5.0", - "lodash": "^4.17.10" + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "resolve": "1.x", + "semver": "6.x", + "yargs-parser": "^18.1.1" }, "dependencies": { - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true + }, + "json5": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "yargs-parser": { + "version": "18.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz", + "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } } } }, "ts-loader": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.0.0.tgz", - "integrity": "sha512-lszy+D41R0Te2+loZxADWS+E1+Z55A+i3dFfFie1AZHL++65JRKVDBPQgeWgRrlv5tbxdU3zOtXp8b7AFR6KEg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.2.tgz", + "integrity": "sha512-HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -35505,6 +46378,21 @@ "semver": "^6.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", @@ -35514,6 +46402,23 @@ "fill-range": "^7.0.1" } }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -35529,6 +46434,17 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", @@ -35540,11 +46456,20 @@ } }, "semver": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", - "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -35557,22 +46482,22 @@ } }, "ts-node": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz", - "integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.8.1.tgz", + "integrity": "sha512-10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg==", "dev": true, "requires": { "arg": "^4.1.0", - "diff": "^3.1.0", + "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.6", - "yn": "^3.0.0" + "yn": "3.1.1" } }, "ts-node-dev": { - "version": "1.0.0-pre.37", - "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-1.0.0-pre.37.tgz", - "integrity": "sha512-4xqOeutuwJCsA+cmRoHZqjavySZ8WD/btBBZwXlBQ8PJVkg6YuGzRb8/qeICusQ1bPVL4Myl+XZjZqcIx2WuGw==", + "version": "1.0.0-pre.44", + "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-1.0.0-pre.44.tgz", + "integrity": "sha512-M5ZwvB6FU3jtc70i5lFth86/6Qj5XR5nMMBwVxZF4cZhpO7XcbWw6tbNiJo22Zx0KfjEj9py5DANhwLOkPPufw==", "dev": true, "requires": { "dateformat": "~1.0.4-1.2.3", @@ -35583,15 +46508,16 @@ "node-notifier": "^5.4.0", "resolve": "^1.0.0", "rimraf": "^2.6.1", + "source-map-support": "^0.5.12", "tree-kill": "^1.2.1", "ts-node": "*", "tsconfig": "^7.0.0" }, "dependencies": { "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -35603,9 +46529,9 @@ } }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -35613,6 +46539,12 @@ } } }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, "tsconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", @@ -35626,13 +46558,12 @@ } }, "tsconfig-paths": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.8.0.tgz", - "integrity": "sha512-zZEYFo4sjORK8W58ENkRn9s+HmQFkkwydDG7My5s/fnfr2YYCaiyXe/HBUcIgU8epEKOXwiahOO+KZYjiXlWyQ==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "dev": true, "requires": { "@types/json5": "^0.0.29", - "deepmerge": "^2.0.1", "json5": "^1.0.1", "minimist": "^1.2.0", "strip-bom": "^3.0.0" @@ -35647,6 +46578,37 @@ "chalk": "^2.3.0", "enhanced-resolve": "^4.0.0", "tsconfig-paths": "^3.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "tslib": { @@ -35655,9 +46617,9 @@ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "tslint": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.0.tgz", - "integrity": "sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.0.tgz", + "integrity": "sha512-fXjYd/61vU6da04E505OZQGb2VCN2Mq3doeWcOIryuG+eqdmFUXTYVwdhnbEu2k46LNLgUYt9bI5icQze/j0bQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -35671,20 +46633,40 @@ "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.8.0", + "tslib": "^1.10.0", "tsutils": "^2.29.0" }, "dependencies": { - "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -35694,6 +46676,21 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", + "dev": true } } }, @@ -35746,9 +46743,9 @@ "dev": true }, "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true }, "type-is": { @@ -35760,26 +46757,59 @@ "mime-types": "~2.1.18" } }, + "type-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", + "integrity": "sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI=", + "dev": true + }, "typed-css-modules": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/typed-css-modules/-/typed-css-modules-0.4.2.tgz", - "integrity": "sha512-8L6efZplgnraEw1RWz1Nc6swfLm6PAawivvdwFhzkFa3CJu+cPbK9712i4CAAf+JA0/Ufe19iDTPIk1WSpoz/w==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/typed-css-modules/-/typed-css-modules-0.6.3.tgz", + "integrity": "sha512-p1JYq628LZLxg6IFZEGwBF+rFbWMwz4AyplAsriyFWKDXdShQNAljrjt4qFO9GvvjmNdsuUMmiQji/MVZHu7JQ==", "dev": true, "requires": { - "camelcase": "^4.1.0", + "@types/css-modules-loader-core": "^1.1.0", + "camelcase": "^5.3.1", "chalk": "^2.1.0", "chokidar": "^2.1.2", "css-modules-loader-core": "^1.1.0", "glob": "^7.1.2", "is-there": "^4.4.2", "mkdirp": "^0.5.1", - "yargs": "^8.0.2" + "yargs": "^12.0.5" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -35796,591 +46826,56 @@ "upath": "^1.1.1" } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, - "optional": true, "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -36391,33 +46886,30 @@ "path-is-absolute": "^1.0.0" } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "load-json-file": { + "invert-kv": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "invert-kv": "^2.0.0" } }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, - "optional": true + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } }, "normalize-path": { "version": "3.0.0", @@ -36425,134 +46917,88 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "parse-json": { + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "has-flag": "^3.0.0" } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - }, "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "os-locale": "^3.0.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", "string-width": "^2.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -36575,16 +47021,25 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typeface-manuale": { - "version": "0.0.71", - "resolved": "https://registry.npmjs.org/typeface-manuale/-/typeface-manuale-0.0.71.tgz", - "integrity": "sha512-oaqDlrGz0dhBvNlt6iEtWWs6zFSodhxPlYzK3gDoEBTAQvImWipOqeb4u2XI77sY+UZkS1wu6kAxJYUMySJ+iQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/typeface-manuale/-/typeface-manuale-1.1.4.tgz", + "integrity": "sha512-GP6x/NrPlkWdGFvYQg8QS4aCDAUjKl6zvS590+WqTxDstJzLjNHiBxOruVGkmD8U+WKpLDnaL2ZHWqjN+Z9osg==", "dev": true }, "typeface-nunito": { - "version": "0.0.72", - "resolved": "https://registry.npmjs.org/typeface-nunito/-/typeface-nunito-0.0.72.tgz", - "integrity": "sha512-id43vYQiM9emQ6sbysLDRp8fb39Dk5yW/q6uSPHJnE1XVDSfrxYWFg/YiSoiaK+kO7wbuWb2HSjCAfH96Mabvg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/typeface-nunito/-/typeface-nunito-1.1.3.tgz", + "integrity": "sha512-UNdX9TdK+xcYh/ESVIZq8vK3qf7Q3GwdRoaQmxpWrHkLmIYgno0/571xvfPzfvQx8MmlO4J4iQVEEJfnW3fQkQ==", "dev": true }, "typeface-open-sans": { @@ -36594,21 +47049,21 @@ "dev": true }, "typeface-source-sans-pro": { - "version": "0.0.54", - "resolved": "https://registry.npmjs.org/typeface-source-sans-pro/-/typeface-source-sans-pro-0.0.54.tgz", - "integrity": "sha512-4nsvldyZsOBuvR4oEuUMTquJFVssP4iIVnMEIU4paCWo2940b6r/t95sk7KwDpCablS8DprM/YlhpgqnS7gpKg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/typeface-source-sans-pro/-/typeface-source-sans-pro-1.1.5.tgz", + "integrity": "sha512-a+KZN2X7gzZ91RUKB/9zAiEtRuD+aX7dwNTo121vpZz2MVODWSJfw81XZQmIwZ4jD/5658EMvPJHttS6qT0gZA==", "dev": true }, "typescript": { - "version": "3.3.4000", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.4000.tgz", - "integrity": "sha512-jjOcCZvpkl2+z7JFn0yBOoLQyLoIkNZAs/fYJkUG6VKy6zLPHJGfQJYFHzibB6GJaF/8QrcECtlQ5cpvRHSMEA==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", "dev": true }, "typescript-snapshots-plugin": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/typescript-snapshots-plugin/-/typescript-snapshots-plugin-1.6.0.tgz", - "integrity": "sha512-XiTksn15K5JbfescyewuF/O5bUn2j6tfzshezY8ICPl6TPCa1HkFu411wW/MSazOMuqtyDy7zrYrt6+lWz8fRw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/typescript-snapshots-plugin/-/typescript-snapshots-plugin-1.7.0.tgz", + "integrity": "sha512-mWoH2E7/LnXy19YaJKKTWQCajRAdyFMNeMpUFN8XqB0zf/cNTM5JiiGpdpXtzjb3iyzwSEWcGqD8WA0XRp5eug==", "dev": true }, "typo-js": { @@ -36617,6 +47072,23 @@ "integrity": "sha1-VNjrx5SfGngQkItgAsaEFSbJnVo=", "dev": true }, + "typography-breakpoint-constants": { + "version": "0.16.19", + "resolved": "https://registry.npmjs.org/typography-breakpoint-constants/-/typography-breakpoint-constants-0.16.19.tgz", + "integrity": "sha512-vXjfV9hwAXIOf5+U5GN137ahBkK+sj1TJu/5ksmP+8XB/D80lmGb/m0nKviWaQ3t7HLrK848VGrFS+6E2vcmVg==", + "dev": true + }, + "typography-theme-moraga": { + "version": "0.16.19", + "resolved": "https://registry.npmjs.org/typography-theme-moraga/-/typography-theme-moraga-0.16.19.tgz", + "integrity": "sha512-POIMoW6xqRTGeBtT0cbrrzL+eKj7Z+A+Wzu5kvtgJFY7lZ7KA9TcJBB2YuspLd2yHq5YMxiUBDQiHedb19ttww==", + "dev": true, + "requires": { + "compass-vertical-rhythm": "^1.2.1", + "gray-percentage": "^2.0.0", + "typography-breakpoint-constants": "^0.16.19" + } + }, "ua-parser-js": { "version": "0.7.18", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", @@ -36624,23 +47096,26 @@ "dev": true }, "uglify-js": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.2.tgz", - "integrity": "sha512-/kVQDzwiE9Vy7Y63eMkMozF4jIt0C2+xHctF9YpqNWdE/NLOuMurshkpoYGUlAbeYhACPv0HJPIHJul0Ak4/uw==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, "requires": { - "commander": "~2.15.0", + "commander": "~2.19.0", "source-map": "~0.6.1" }, "dependencies": { "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -36667,6 +47142,16 @@ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", "dev": true }, + "underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "dev": true, + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, "undertaker": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", @@ -36691,26 +47176,34 @@ "dev": true }, "unescape": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/unescape/-/unescape-0.2.0.tgz", - "integrity": "sha1-t4ubYMhvFinfGBv1Pu47yNY2fd8=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz", + "integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, "unescape-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.1.tgz", - "integrity": "sha512-2/6CdybfFt9fzYJhCD6SHfBnqCGNfjhMwPK9Pf+sJRloa/WmyAmxdBVOslOIYkvSIRKX+9xGePF5t1tugtZ63g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.4.tgz", + "integrity": "sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==", "dev": true, "requires": { "string.fromcodepoint": "^0.2.1" } }, - "unfetch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-3.1.2.tgz", - "integrity": "sha512-L0qrK7ZeAudGiKYw6nzFjnJ2D5WHblUBwmHIqtPS6oKUd+Hcpk7/hKsSmcHsTlpd1TbTNsiRBUKRq3bHLNIqIw==", - "dev": true - }, "unherit": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", @@ -36750,37 +47243,60 @@ "dev": true }, "unified": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", - "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", + "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", "dev": true, "requires": { - "@types/unist": "^2.0.0", - "@types/vfile": "^3.0.0", "bail": "^1.0.0", "extend": "^3.0.0", - "is-plain-obj": "^1.1.0", + "is-plain-obj": "^2.0.0", "trough": "^1.0.0", - "vfile": "^3.0.0", - "x-is-string": "^0.1.0" + "vfile": "^4.0.0" }, "dependencies": { "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true }, - "vfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", - "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { + "@types/unist": "^2.0.2" + } + }, + "vfile": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.0.tgz", + "integrity": "sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "replace-ext": "1.0.0", - "unist-util-stringify-position": "^1.0.0", - "vfile-message": "^1.0.0" + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" } } } @@ -36836,15 +47352,21 @@ "through2-filter": "^3.0.0" } }, - "unist-builder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-1.0.3.tgz", - "integrity": "sha512-/KB8GEaoeHRyIqClL+Kam+Y5NWJ6yEiPsAfv1M+O1p+aKGgjR89WwoEHKTyOj17L6kAlqtKpAgv2nWvdbQDEig==", + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { - "object-assign": "^4.1.0" + "crypto-random-string": "^2.0.0" } }, + "unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "dev": true + }, "unist-util-find": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unist-util-find/-/unist-util-find-1.0.1.tgz", @@ -36857,9 +47379,9 @@ } }, "unist-util-generated": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.3.tgz", - "integrity": "sha512-qlPeDqnQnd84KIqwphzOR+l02cxjDzvEYEBl84EjmKRrX4eUmjyAo8xJv1SCDhJqNjyHRnBMZWNKAiBtXE6hBg==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", + "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==", "dev": true }, "unist-util-is": { @@ -36869,27 +47391,44 @@ "dev": true }, "unist-util-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-1.0.4.tgz", - "integrity": "sha512-Qv68pQz05hQbjPI+TubZQI5XII5DScRVWaKNc6+qfmHaFGxaGUbkV8i++mM2nk7XgwXE+vei99d/Q2d1tMA3EQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-1.0.5.tgz", + "integrity": "sha512-dFil/AN6vqhnQWNCZk0GF/G3+Q5YwsB+PqjnzvpO2wzdRtUJ1E8PN+XRE/PRr/G3FzKjRTJU0haqE0Ekl+O3Ag==", "dev": true, "requires": { "object-assign": "^4.0.1" } }, + "unist-util-modify-children": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.6.tgz", + "integrity": "sha512-TOA6W9QLil+BrHqIZNR4o6IA5QwGOveMbnQxnWYq+7EFORx9vz/CHrtzF36zWrW61E2UKw7sM1KPtIgeceVwXw==", + "dev": true, + "requires": { + "array-iterate": "^1.0.0" + } + }, "unist-util-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.0.2.tgz", - "integrity": "sha512-npmFu92l/+b1Ao6uGP4I1WFz9hsKv7qleZ4aliw6x0RVu6A9A3tAf57NMpFfzQ02jxRtJZuRn+C8xWT7GWnH0g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", "dev": true }, "unist-util-remove": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-1.0.1.tgz", - "integrity": "sha512-nL+3O0nBB2Oi8ixVzIfJQLtNOMPIFzwoAIKvhDzEL8B15Nq7EY0KBQPYULjNrEmrwYMCkWp5XGTQiAlYZAL/rw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-1.0.3.tgz", + "integrity": "sha512-mB6nCHCQK0pQffUAcCVmKgIWzG/AXs/V8qpS8K72tMPtOSCMSjDeMc5yN+Ye8rB0FhcE+JvW++o1xRNc0R+++g==", "dev": true, "requires": { - "unist-util-is": "^2.0.0" + "unist-util-is": "^3.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + } } }, "unist-util-remove-position": { @@ -36916,13 +47455,27 @@ "unist-util-is": "^2.1.1" } }, + "unist-util-visit-children": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz", + "integrity": "sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==", + "dev": true + }, "unist-util-visit-parents": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz", - "integrity": "sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", "dev": true, "requires": { - "unist-util-is": "^2.1.2" + "unist-util-is": "^3.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + } } }, "universalify": { @@ -36983,6 +47536,253 @@ "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", "dev": true }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "dev": true, + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + } + } + }, "update-section": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/update-section/-/update-section-0.3.3.tgz", @@ -37045,21 +47845,21 @@ "schema-utils": "^1.0.0" }, "dependencies": { - "mime": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", - "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" } } } @@ -37082,6 +47882,23 @@ } } }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } + } + }, "url-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-5.0.0.tgz", @@ -37091,6 +47908,12 @@ "tlds": "^1.203.0" } }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, "use": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", @@ -37134,16 +47957,44 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" }, "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", "dev": true }, + "v8-to-istanbul": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz", + "integrity": "sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, "v8flags": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", @@ -37154,9 +48005,15 @@ } }, "valid-data-url": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-0.1.6.tgz", - "integrity": "sha512-FXg2qXMzfAhZc0y2HzELNfUeiOjPr+52hU1DNBWiJJ2luXD+dD1R9NA48Ug5aj0ibbxroeGDc/RJv6ThiGgkDw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-2.0.0.tgz", + "integrity": "sha512-dyCZnv3aCey7yfTgIqdZanKl7xWAEEKCbgmR7SKqyK6QT/Z07ROactrgD1eA37C69ODRj7rNOjzKWVPh0EUjBA==" + }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "dev": true }, "validate-npm-package-license": { "version": "3.0.3", @@ -37169,15 +48026,9 @@ } }, "validator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-7.2.0.tgz", - "integrity": "sha512-c8NGTUYeBEcUIGeMppmNVKHE7wwfm3mYbNZxV+c5mlv9fDHI7Ad3p07qfNrn/CvpdkK2k61fOLRO2sTEhgQXmg==" - }, - "value-equal": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", - "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==", - "dev": true + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-11.1.0.tgz", + "integrity": "sha512-qiQ5ktdO7CD6C/5/mYV4jku/7qnqzjrxb3C/Q5wR3vGGinHTgJZN/TdFT3ZX4vXhX2R1PXx42fB1cn5W+uJ4lg==" }, "value-or-function": { "version": "3.0.0", @@ -37206,11 +48057,6 @@ "extsprintf": "^1.2.0" } }, - "very-fast-args": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/very-fast-args/-/very-fast-args-1.1.0.tgz", - "integrity": "sha1-4W0dH6+KbllqJGQh/ZCneWPQs5Y=" - }, "vfile": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", @@ -37324,6 +48170,12 @@ "source-map": "^0.5.1" } }, + "vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", + "dev": true + }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -37331,17 +48183,18 @@ "dev": true }, "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "requires": { - "browser-process-hrtime": "^0.1.2" + "browser-process-hrtime": "^1.0.0" } }, "w3c-xmlserializer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dev": true, "requires": { "domexception": "^1.0.1", "webidl-conversions": "^4.0.2", @@ -37349,11 +48202,65 @@ } }, "wait-for-expect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.1.1.tgz", - "integrity": "sha512-vd9JOqqEcBbCDhARWhW85ecjaEcfBLuXgVBqatfS3iw6oU4kzAcs+sCNjF+TC9YHPImCW7ypsuQc+htscIAQCw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/wait-for-expect/-/wait-for-expect-1.3.0.tgz", + "integrity": "sha512-8fJU7jiA96HfGPt+P/UilelSAZfhMBJ52YhKzlmZQvKEZU2EcD1GQ0yqGB6liLdHjYtYAoGVigYwdxr5rktvzA==", "dev": true }, + "wait-on": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.3.0.tgz", + "integrity": "sha512-97dEuUapx4+Y12aknWZn7D25kkjMk16PbWoYzpSdA8bYpVfS6hpl2a2pOWZ3c+Tyt3/i4/pglyZctG3J4V1hWQ==", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.3", + "core-js": "^2.6.5", + "minimist": "^1.2.0", + "request": "^2.88.0", + "rx": "^4.1.0" + }, + "dependencies": { + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true + } + } + }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", @@ -37430,113 +48337,221 @@ } }, "web-namespaces": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.3.tgz", - "integrity": "sha512-r8sAtNmgR0WKOKOxzuSgk09JsHlpKlB+uHi937qypOu3PZ17UxPrierFKDye/uNHjNTTEshu5PId8rojIPj/tA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", "dev": true }, "web-resource-inliner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.3.1.tgz", - "integrity": "sha512-4DCEuz0E1RJR8Yhki5rg/LLn/bpplFJKdvxQvD4zTGf3N5GxaWvSki0hcLDUbvGpYtkYvbHq3fow8v4V+iVsaQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.3.4.tgz", + "integrity": "sha512-agVAgRhOOi4GVlvKK34oM23tDgH8390HfLnZY2HZl8OFBwKNvUJkH7t89AT2iluQP8w9VHAAKX6Z8EN7/9tqKA==", "requires": { - "async": "^2.1.2", - "chalk": "^1.1.3", - "datauri": "^1.0.4", - "htmlparser2": "^3.9.2", + "async": "^3.1.0", + "chalk": "^2.4.2", + "datauri": "^2.0.0", + "htmlparser2": "^4.0.0", "lodash.unescape": "^4.0.1", - "request": "^2.78.0", + "request": "^2.88.0", "safer-buffer": "^2.1.2", - "valid-data-url": "^0.1.4", - "xtend": "^4.0.0" + "valid-data-url": "^2.0.0", + "xtend": "^4.0.2" }, "dependencies": { + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" } }, "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" }, "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz", + "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==", "requires": { - "domelementtype": "1" + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz", + "integrity": "sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg==", + "requires": { + "dom-serializer": "^0.2.1", + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0" + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", + "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" } }, - "readable-stream": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz", - "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==", + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + }, + "mime-types": { + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "mime-db": "1.43.0" } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" } } }, - "webfontloader": { - "version": "1.6.28", - "resolved": "https://registry.npmjs.org/webfontloader/-/webfontloader-1.6.28.tgz", - "integrity": "sha1-23hhKSU8tujq5UwvsF+HCvZnW64=", - "dev": true - }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true }, "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "version": "4.42.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz", + "integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", "acorn": "^6.2.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", @@ -37548,7 +48563,7 @@ "loader-utils": "^1.2.3", "memory-fs": "^0.4.1", "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", + "mkdirp": "^0.5.3", "neo-async": "^2.6.1", "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", @@ -37559,18 +48574,18 @@ }, "dependencies": { "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -37582,6 +48597,12 @@ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -37589,9 +48610,9 @@ "dev": true }, "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, "requires": { "bluebird": "^3.5.5", @@ -37619,6 +48640,12 @@ } } }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "enhanced-resolve": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", @@ -37642,6 +48669,12 @@ } } }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -37656,6 +48689,32 @@ "path-is-absolute": "^1.0.0" } }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, "neo-async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", @@ -37671,12 +48730,6 @@ "glob": "^7.1.3" } }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -37689,17 +48742,6 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, - "terser": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.2.tgz", - "integrity": "sha512-6FUjJdY2i3WZAtYBtnV06OOcOfzl+4hSKYE9wgac8rkLRBToPDDrBB2AcHwQD/OKDxbnvhVy2YgOPWO2SsKWqg==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - } - }, "terser-webpack-plugin": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", @@ -37726,15 +48768,6 @@ "source-list-map": "^2.0.0", "source-map": "~0.6.1" } - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } } } }, @@ -37751,16 +48784,47 @@ "schema-utils": "^1.0.0", "tapable": "^1.0.0", "webpack-sources": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "webpack-bundle-analyzer": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz", - "integrity": "sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz", + "integrity": "sha512-Nfd8HDwfSx1xBwC+P8QMGvHAOITxNBSvu/J/mCJvOwv+G4VWkU7zir9SSenTtyCi0LnVtmsc7G5SZo1uV+bxRw==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-walk": "^6.1.1", + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", "bfj": "^6.1.1", "chalk": "^2.4.1", "commander": "^2.18.0", @@ -37768,18 +48832,59 @@ "express": "^4.16.3", "filesize": "^3.6.1", "gzip-size": "^5.0.0", - "lodash": "^4.17.10", + "lodash": "^4.17.15", "mkdirp": "^0.5.1", "opener": "^1.5.1", "ws": "^6.0.0" }, "dependencies": { - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", "dev": true }, + "acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", @@ -37791,49 +48896,122 @@ } } }, - "webpack-chain": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-5.2.4.tgz", - "integrity": "sha512-3g0uIbzM/EWnmf52bYhB5IZeBZiw5g9vNqF4iTBEqabpxGxcv+Aj9oL4Cvr19ujOsv/HPvpRFRPLZ/aylv10Wg==", - "dev": true, - "requires": { - "deepmerge": "^1.5.2", - "javascript-stringify": "^2.0.0" - }, - "dependencies": { - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true - } - } - }, "webpack-cli": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.2.tgz", - "integrity": "sha512-FLkobnaJJ+03j5eplxlI0TUxhGCOdfewspIGuvDVtpOlrAuKMFC57K42Ukxqs1tn8947/PM6tP95gQc0DCzRYA==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", "dev": true, "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.5" + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==" + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "enhanced-resolve": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", @@ -37869,6 +49047,24 @@ "locate-path": "^3.0.0" } }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -37878,6 +49074,26 @@ "pump": "^3.0.0" } }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, "import-local": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", @@ -37888,6 +49104,12 @@ "resolve-cwd": "^2.0.0" } }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, "invert-kv": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", @@ -37903,6 +49125,17 @@ "invert-kv": "^2.0.0" } }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -37913,23 +49146,6 @@ "path-exists": "^3.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, "os-locale": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", @@ -37942,9 +49158,9 @@ } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -37984,39 +49200,88 @@ "once": "^1.3.1" } }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs": { + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", + "dev": true, + "requires": { + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -38026,14 +49291,15 @@ } }, "webpack-dev-middleware": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.6.2.tgz", - "integrity": "sha512-A47I5SX60IkHrMmZUlB0ZKSWi29TZTcPz7cha1Z75yYOsgWh/1AcPmQEbC8ZIbU3A1ytSv1PMU0PyPz2Lmz2jg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", "dev": true, "requires": { "memory-fs": "^0.4.1", - "mime": "^2.3.1", - "range-parser": "^1.0.3", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", "webpack-log": "^2.0.0" }, "dependencies": { @@ -38044,9 +49310,21 @@ "dev": true }, "mime": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz", - "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, "webpack-log": { @@ -38062,41 +49340,44 @@ } }, "webpack-dev-server": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.2.1.tgz", - "integrity": "sha512-sjuE4mnmx6JOh9kvSbPYw3u/6uxCLHNWfhWaIPwcXWsvWOPN+nc5baq4i9jui3oOBRXGonK9+OI0jVkaz6/rCw==", + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz", + "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==", "dev": true, "requires": { "ansi-html": "0.0.7", "bonjour": "^3.5.0", - "chokidar": "^2.0.0", - "compression": "^1.5.2", - "connect-history-api-fallback": "^1.3.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", "debug": "^4.1.1", - "del": "^3.0.0", - "express": "^4.16.2", - "html-entities": "^1.2.0", - "http-proxy-middleware": "^0.19.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", - "internal-ip": "^4.2.0", + "internal-ip": "^4.3.0", "ip": "^1.1.5", - "killable": "^1.0.0", - "loglevel": "^1.4.1", - "opn": "^5.1.0", - "portfinder": "^1.0.9", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.6", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", "schema-utils": "^1.0.0", - "selfsigned": "^1.9.1", - "semver": "^5.6.0", - "serve-index": "^1.7.2", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", "sockjs": "0.3.19", - "sockjs-client": "1.3.0", - "spdy": "^4.0.0", - "strip-ansi": "^3.0.0", + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", "url": "^0.11.0", - "webpack-dev-middleware": "^3.5.1", + "webpack-dev-middleware": "^3.7.2", "webpack-log": "^2.0.0", - "yargs": "12.0.2" + "ws": "^6.2.1", + "yargs": "12.0.5" }, "dependencies": { "ansi-colors": { @@ -38105,10 +49386,16 @@ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -38125,6 +49412,27 @@ "upath": "^1.1.1" } }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -38134,35 +49442,19 @@ "ms": "^2.1.1" } }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - }, - "dependencies": { - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true - } - } - }, "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "requires": { + "@types/glob": "^7.1.1", "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" } }, "execa": { @@ -38189,554 +49481,6 @@ "locate-path": "^3.0.0" } }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", - "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true - } - } - }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -38747,9 +49491,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -38797,30 +49541,12 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", "dev": true }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } - }, "lcid": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", @@ -38840,30 +49566,6 @@ "path-exists": "^3.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", - "dev": true, - "optional": true - }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -38882,9 +49584,9 @@ } }, "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -38899,12 +49601,24 @@ "p-limit": "^2.0.0" } }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -38924,23 +49638,46 @@ "once": "^1.3.1" } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "glob": "^7.1.3" } }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -38959,6 +49696,12 @@ "has-flag": "^3.0.0" } }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, "webpack-log": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", @@ -38969,14 +49712,23 @@ "uuid": "^3.3.2" } }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, "yargs": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", - "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { "cliui": "^4.0.0", - "decamelize": "^2.0.0", + "decamelize": "^1.2.0", "find-up": "^3.0.0", "get-caller-file": "^1.0.1", "os-locale": "^3.0.0", @@ -38986,97 +49738,51 @@ "string-width": "^2.0.0", "which-module": "^2.0.0", "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^10.1.0" + "yargs-parser": "^11.1.1" } }, "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^4.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, - "webpack-hot-client": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-hot-client/-/webpack-hot-client-4.1.1.tgz", - "integrity": "sha512-Gu3hEkFJIsvC+2Dg86FvAzIL8KSR88Ptk0QnV4wEucObB0c9aMIYbjSA9oPTV4X5OZRH6ftrk4FcSGsZmTLiWA==", + "webpack-hot-middleware": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz", + "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==", "dev": true, "requires": { - "@webpack-contrib/schema-utils": "^1.0.0-beta.0", - "json-stringify-safe": "^5.0.1", - "loglevelnext": "^1.0.2", - "merge-options": "^1.0.1", - "strip-ansi": "^4.0.0", - "uuid": "^3.1.0", - "webpack-log": "^1.1.1", - "ws": "^4.0.0" + "ansi-html": "0.0.7", + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" - } - }, - "ws": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", - "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0" + "ansi-regex": "^2.0.0" } } } }, - "webpack-log": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", - "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, "requires": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "loglevelnext": "^1.0.1", - "uuid": "^3.1.0" - } - }, - "webpack-manifest-plugin": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz", - "integrity": "sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg==", - "dev": true, - "requires": { - "fs-extra": "^7.0.0", - "lodash": ">=3.5 <5", - "tapable": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } + "lodash": "^4.17.15" } }, "webpack-sources": { @@ -39097,99 +49803,11 @@ } } }, - "webpackbar": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-3.2.0.tgz", - "integrity": "sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==", - "dev": true, - "requires": { - "ansi-escapes": "^4.1.0", - "chalk": "^2.4.1", - "consola": "^2.6.0", - "figures": "^3.0.0", - "pretty-time": "^1.1.0", - "std-env": "^2.2.1", - "text-table": "^0.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.1.0.tgz", - "integrity": "sha512-2VY/iCUZTDLD/qxptS3Zn3c6k2MeIbYqjRXqM8T5oC7N2mMjh3xIU3oYru6cHGbldFa9h5i8N0fP65UaUqrMWA==", - "dev": true, - "requires": { - "type-fest": "^0.3.0" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "figures": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz", - "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - } - } + "webpack-stats-plugin": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz", + "integrity": "sha512-pxqzFE055NlNTlNyfDG3xlB2QwT1EWdm/CF5dCJI/e+rRHVxrWhWg1rf1lfsWhI1/EePv8gi/A36YxO/+u0FgQ==", + "dev": true }, "websocket-driver": { "version": "0.7.0", @@ -39237,9 +49855,10 @@ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" }, "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, "requires": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -39260,10 +49879,76 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=" + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", + "dev": true + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "with-open-file": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "dependencies": { + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true }, "wordwrap": { "version": "1.0.0", @@ -39271,9 +49956,9 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, "requires": { "errno": "~0.1.7" @@ -39289,28 +49974,62 @@ } }, "wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } } } @@ -39330,14 +50049,15 @@ } }, "write-file-atomic": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } }, "ws": { @@ -39359,6 +50079,12 @@ "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz", "integrity": "sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==" }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, "xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", @@ -39371,9 +50097,15 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, "xmlchars": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-1.3.1.tgz", - "integrity": "sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true }, "xregexp": { "version": "4.3.0", @@ -39383,10 +50115,17 @@ "@babel/runtime-corejs3": "^7.8.3" } }, + "xstate": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.8.0.tgz", + "integrity": "sha512-xHSYQtCHLkcrFRxa5lK4Lp1rnKt00a80jcKFMQiMBuE+6MvTYv7twwqYpzjsJoKFjGZB3GGEpZAuY1dmlPTh/g==", + "dev": true + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true }, "y18n": { "version": "4.0.0", @@ -39399,17 +50138,52 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, + "yaml": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.2.tgz", + "integrity": "sha512-omakb0d7FjMo3R1D2EbTKVIk6dAVLRxFXdLZMEUToeAvuqgG/YuHMuQOZ5fgk+vQ8cx+cnGKwyg+8g8PNT0xQg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.7" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz", + "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + } + } + }, + "yaml-loader": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.5.0.tgz", + "integrity": "sha512-p9QIzcFSNm4mCw/m5NdyMfN4RE4aFZJWRRb01ERVNGCym8VNbKtw3OYZXnvUIkim6U/EjqE/2yIh9F/msShH9A==", + "dev": true, + "requires": { + "js-yaml": "^3.5.2" + } + }, "yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz", + "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==", "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", "find-up": "^2.1.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", @@ -39419,6 +50193,81 @@ "yargs-parser": "^9.0.2" }, "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", @@ -39437,38 +50286,375 @@ } }, "yargs-parser": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", - "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, "requires": { "camelcase": "^4.1.0" } }, - "yn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz", - "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==", + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", "dev": true }, - "yup": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.27.0.tgz", - "integrity": "sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ==", + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yoga-layout-prebuilt": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.5.tgz", + "integrity": "sha512-+G5Ojl4/sG78mk5masCL3SRaZtkKXRBhMGf5c+4C1j32jN9KpS4lxVFdYyBi15EHN4gMeK5sIRf83T33TOaDkA==", + "dev": true, + "optional": true, + "requires": { + "@types/yoga-layout": "1.9.1" + } + }, + "yurnalist": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-1.1.2.tgz", + "integrity": "sha512-y7bsTXqL+YMJQ2De2CBtSftJNLQnB7gWIzzKm10GDyC8Fg4Dsmd2LG5YhT8pudvUiuotic80WVXt/g1femRVQg==", "dev": true, "requires": { - "@babel/runtime": "^7.0.0", - "fn-name": "~2.0.1", - "lodash": "^4.17.11", - "property-expr": "^1.5.0", - "synchronous-promise": "^2.0.6", - "toposort": "^2.0.2" + "babel-runtime": "^6.26.0", + "chalk": "^2.4.2", + "cli-table3": "^0.5.1", + "debug": "^4.1.1", + "deep-equal": "^1.1.0", + "detect-indent": "^6.0.0", + "inquirer": "^7.0.0", + "invariant": "^2.2.0", + "is-builtin-module": "^3.0.0", + "is-ci": "^2.0.0", + "leven": "^3.1.0", + "loud-rejection": "^2.2.0", + "node-emoji": "^1.10.0", + "object-path": "^0.11.2", + "read": "^1.0.7", + "rimraf": "^3.0.0", + "semver": "^6.3.0", + "strip-ansi": "^5.2.0", + "strip-bom": "^4.0.0" }, "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "is-builtin-module": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.0.0.tgz", + "integrity": "sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw==", + "dev": true, + "requires": { + "builtin-modules": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "loud-rejection": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", + "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.2" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", + "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + } + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, @@ -39478,27 +50664,28 @@ "integrity": "sha512-HnhhyNnwTFzS48nihkCZIJGsWGFcYUz+XPDlPK5W84Ifji8SksC6m7sQWOf8zdCGhzQ4tDYuMYGu5B0N1dXTtg==" }, "zen-observable-ts": { - "version": "0.8.9", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.9.tgz", - "integrity": "sha512-KJz2O8FxbAdAU5CSc8qZ1K2WYEJb1HxS6XDRF+hOJ1rOYcg6eTMmS9xYHCXzqZZzKw6BbXWyF4UpwSsBQnHJeA==", + "version": "0.8.20", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.20.tgz", + "integrity": "sha512-2rkjiPALhOtRaDX6pWyNqK1fnP5KkJJybYebopNSn6wDG1lxBoFs2+nwwXKoA6glHIrtwrfBBy6da0stkKtTAA==", "requires": { + "tslib": "^1.9.3", "zen-observable": "^0.8.0" } }, "zip-stream": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.0.tgz", - "integrity": "sha512-F/xoLqlQShgvn1BzHQCNiYIoo2R93GQIMH+tA6JC3ckMDkme4bnhEEXSferZcG5ea/6bZNx3GqSUHqT8TUO6uQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", + "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", "requires": { "archiver-utils": "^2.1.0", - "compress-commons": "^2.0.0", + "compress-commons": "^2.1.1", "readable-stream": "^3.4.0" }, "dependencies": { "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.5.0.tgz", + "integrity": "sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==", "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -39506,6 +50693,12 @@ } } } + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "dev": true } } } diff --git a/package.json b/package.json index 76330e326..c21f8d350 100644 --- a/package.json +++ b/package.json @@ -59,337 +59,344 @@ "license": "Apache-2.0", "dependencies": { "@coralproject/bunyan-prettystream": "^0.1.4", - "@fluent/bundle": "^0.14.0", + "@emotion/core": "^10.0.28", + "@fluent/bundle": "^0.15.0", "@fluent/dom": "^0.6.0", - "@metascraper/helpers": "^5.7.21", + "@hapi/joi": "^17.1.1", + "@metascraper/helpers": "^5.11.6", "abort-controller": "^3.0.0", - "akismet-api": "^4.2.0", - "apollo-server-express": "^2.8.1", - "archiver": "^3.0.3", + "akismet-api": "^5.0.0", + "apollo-server-express": "^2.11.0", + "archiver": "^3.1.1", "basic-auth": "^2.0.1", "bcryptjs": "^2.4.3", - "bull": "^3.8.1", + "bull": "^3.13.0", "bunyan": "^1.8.12", - "cheerio": "^1.0.0-rc.2", + "cheerio": "^1.0.0-rc.3", "consolidate": "0.14.0", - "content-security-policy-builder": "^2.0.0", - "convict": "^4.3.1", + "content-security-policy-builder": "^2.1.0", + "convict": "^5.2.0", "cookie": "^0.4.0", - "cookie-parser": "^1.4.4", - "cors": "^2.8.4", - "cron": "^1.7.1", - "csv-stringify": "^5.3.0", - "dataloader": "^1.4.0", - "dompurify": "^2.0.7", - "dotenv": "^6.0.0", - "dotenv-expand": "^4.2.0", + "cookie-parser": "^1.4.5", + "cors": "^2.8.5", + "cron": "^1.8.2", + "csv-stringify": "^5.3.6", + "dataloader": "1.4.0", + "dompurify": "^2.0.8", + "dotenv": "^8.2.0", "env-rewrite": "^1.0.2", "express": "^4.17.1", "express-enforces-ssl": "^1.1.0", - "express-static-gzip": "^0.3.2", - "fs-extra": "^6.0.1", - "graphql": "^0.13.2", - "graphql-config": "^2.0.1", - "graphql-extensions": "^0.2.1", - "graphql-fields": "^1.1.0", + "express-static-gzip": "^2.0.6", + "fs-extra": "^8.1.0", + "graphql": "^14.6.0", + "graphql-config": "^2.2.2", + "graphql-extensions": "^0.11.0", + "graphql-fields": "2.0.3", "graphql-import": "^0.7.1", - "graphql-playground-html": "^1.6.0", - "graphql-redis-subscriptions": "^2.1.0", + "graphql-playground-html": "^1.6.13", + "graphql-redis-subscriptions": "^2.2.1", "graphql-subscriptions": "^1.1.0", - "graphql-tools": "^3.0.5", - "helmet": "^3.21.2", - "html-minifier": "^3.5.21", - "html-to-text": "^4.0.0", - "ioredis": "^4.9.0", - "joi": "^13.4.0", - "jsdom": "^15.0.0", + "graphql-tools": "^4.0.7", + "helmet": "^3.22.0", + "html-minifier": "^4.0.0", + "html-to-text": "^5.1.1", + "ioredis": "^4.16.1", + "jsdom": "^16.2.2", "jsonwebtoken": "^8.5.1", - "juice": "^5.2.0", - "jwks-rsa": "^1.6.0", - "keymaster": "^1.6.2", - "linkifyjs": "^2.1.8", + "juice": "^6.0.0", + "jwks-rsa": "^1.7.0", + "linkifyjs": "^2.1.9", "lodash": "^4.17.15", "lru-cache": "^5.1.1", - "luxon": "^1.12.0", - "metascraper-author": "^5.8.0", - "metascraper-description": "^5.8.0", - "metascraper-image": "^5.8.0", - "metascraper-title": "^5.8.0", - "mongodb": "^3.2.7", + "luxon": "^1.22.2", + "metascraper-author": "^5.11.6", + "metascraper-description": "^5.11.6", + "metascraper-image": "^5.11.6", + "metascraper-title": "^5.11.6", + "mongodb": "^3.5.5", "mongodb-core": "^3.2.7", - "ms": "^2.1.1", + "ms": "^2.1.2", "node-fetch": "^2.6.0", - "nodemailer": "^4.6.7", - "nunjucks": "^3.1.3", + "nodemailer": "^6.4.6", + "nunjucks": "^3.2.1", "on-finished": "^2.3.0", "passport": "^0.4.1", "passport-facebook": "^3.0.0", "passport-google-oauth2": "^0.2.0", "passport-local": "^1.0.0", - "passport-oauth2": "^1.4.0", + "passport-oauth2": "^1.5.0", "passport-strategy": "^1.0.0", "permit": "^0.2.4", - "prom-client": "^11.3.0", + "prom-client": "^12.0.0", "proxy-agent": "^3.1.1", "querystringify": "^2.1.1", - "react-helmet": "^5.2.1", - "source-map-support": "^0.5.12", - "stack-utils": "^1.0.2", + "source-map-support": "^0.5.16", + "stack-utils": "^2.0.1", "striptags": "^3.1.1", "throng": "^4.0.0", "tsscmp": "^1.0.6", "url-regex": "^5.0.0", - "uuid": "^3.3.3", + "uuid": "^7.0.3", "verror": "^1.10.0", "xregexp": "^4.3.0" }, "devDependencies": { - "@babel/core": "^7.8.3", - "@babel/preset-env": "^7.8.3", - "@babel/preset-react": "^7.8.3", - "@babel/preset-typescript": "^7.8.3", - "@babel/runtime-corejs3": "^7.8.3", + "@babel/core": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@babel/preset-react": "^7.9.4", + "@babel/preset-typescript": "^7.9.0", + "@babel/runtime-corejs3": "^7.9.2", "@coralproject/npm-run-all": "^4.1.5", "@coralproject/rte": "^0.11.1", - "@fluent/react": "^0.10.0", + "@fluent/react": "^0.11.1", "@intervolga/optimize-cssnano-plugin": "^1.0.6", - "@types/agent-base": "^4.2.0", - "@types/archiver": "^3.0.0", - "@types/basic-auth": "^1.1.2", - "@types/bcryptjs": "^2.4.1", - "@types/bull": "^3.5.12", - "@types/bunyan": "^1.8.4", - "@types/case-sensitive-paths-webpack-plugin": "^2.1.2", - "@types/cheerio": "^0.22.8", - "@types/classnames": "^2.2.7", - "@types/commander": "^2.12.2", + "@types/archiver": "^3.1.0", + "@types/basic-auth": "^1.1.3", + "@types/bcryptjs": "^2.4.2", + "@types/bull": "^3.12.1", + "@types/bunyan": "^1.8.6", + "@types/case-sensitive-paths-webpack-plugin": "^2.1.4", + "@types/cheerio": "^0.22.17", + "@types/classnames": "^2.2.10", "@types/common-tags": "^1.8.0", - "@types/compression-webpack-plugin": "^2.0.0", - "@types/consolidate": "0.0.34", - "@types/convict": "^4.2.0", + "@types/compression-webpack-plugin": "^2.0.1", + "@types/consolidate": "0.14.0", + "@types/convict": "^4.2.1", "@types/cookie": "^0.3.3", - "@types/cookie-parser": "^1.4.1", - "@types/cors": "^2.8.4", - "@types/cron": "^1.7.1", - "@types/cross-spawn": "^6.0.0", - "@types/dompurify": "0.0.33", - "@types/dotenv": "^4.0.3", - "@types/enzyme": "^3.1.15", - "@types/enzyme-adapter-react-16": "^1.0.3", + "@types/cookie-parser": "^1.4.2", + "@types/cors": "^2.8.6", + "@types/cron": "^1.7.2", + "@types/cross-spawn": "^6.0.1", + "@types/dompurify": "^2.0.1", + "@types/enzyme": "^3.10.5", + "@types/enzyme-adapter-react-16": "^1.0.6", "@types/eventemitter2": "^4.1.0", - "@types/express": "^4.16.0", + "@types/express": "^4.17.4", "@types/express-enforces-ssl": "^1.1.1", - "@types/flat": "0.0.28", - "@types/fs-extra": "^5.0.4", - "@types/graphql": "^0.13.3", - "@types/helmet": "0.0.45", - "@types/html-minifier": "^3.5.2", + "@types/express-serve-static-core": "^4.17.3", + "@types/flat": "^5.0.0", + "@types/fs-extra": "^8.1.0", + "@types/hapi__joi": "^16.0.12", + "@types/helmet": "^0.0.45", + "@types/html-minifier": "^3.5.3", + "@types/html-minifier-terser": "^5.0.0", "@types/html-to-text": "^1.4.31", - "@types/html-webpack-plugin": "^3.2.0", - "@types/ioredis": "^4.0.10", - "@types/jest": "^24.0.23", + "@types/html-webpack-plugin": "^3.2.2", + "@types/ioredis": "^4.14.9", + "@types/jest": "^25.1.4", "@types/jest-axe": "^3.2.1", - "@types/joi": "^13.0.8", - "@types/jsdom": "^12.2.3", - "@types/jsonwebtoken": "^8.3.5", - "@types/linkifyjs": "^2.1.1", - "@types/lodash": "^4.14.118", + "@types/jsdom": "^16.2.0", + "@types/jsonwebtoken": "^8.3.8", + "@types/linkifyjs": "^2.1.3", + "@types/lodash": "^4.14.149", "@types/lru-cache": "^5.1.0", - "@types/luxon": "^1.12.0", - "@types/marked": "^0.6.0", - "@types/mini-css-extract-plugin": "^0.2.0", - "@types/mongodb": "^3.1.22", - "@types/ms": "^0.7.30", - "@types/node": "^10.5.2", - "@types/node-fetch": "^2.5.3", - "@types/nodemailer": "^4.6.2", - "@types/nunjucks": "^3.1.1", - "@types/object-diff": "0.0.0", + "@types/luxon": "^1.22.0", + "@types/marked": "^0.7.3", + "@types/mini-css-extract-plugin": "^0.9.1", + "@types/mongodb": "3.1.22", + "@types/ms": "^0.7.31", + "@types/node": "^12.12.34", + "@types/node-fetch": "^2.5.5", + "@types/nodemailer": "^6.4.0", + "@types/nunjucks": "^3.1.3", "@types/on-finished": "^2.3.1", - "@types/passport": "^1.0.2", - "@types/passport-facebook": "^2.1.8", + "@types/passport": "^1.0.3", + "@types/passport-facebook": "^2.1.9", "@types/passport-local": "^1.0.33", - "@types/passport-oauth2": "^1.4.5", - "@types/passport-strategy": "^0.2.33", + "@types/passport-oauth2": "^1.4.8", + "@types/passport-strategy": "^0.2.35", "@types/permit": "^0.2.1", - "@types/prettier": "^1.19.0", - "@types/prop-types": "^15.5.8", - "@types/react": "^16.8.15", + "@types/prettier": "^1.19.1", + "@types/react": "^16.9.31", "@types/react-axe": "^3.1.0", - "@types/react-copy-to-clipboard": "^4.2.6", - "@types/react-dom": "^16.8.4", - "@types/react-helmet": "^5.0.10", - "@types/react-relay": "^5.0.1", - "@types/react-responsive": "^3.0.1", - "@types/react-test-renderer": "^16.8.1", - "@types/react-transition-group": "^2.0.14", - "@types/recompose": "^0.26.5", - "@types/relay-runtime": "^5.0.5", + "@types/react-copy-to-clipboard": "^4.3.0", + "@types/react-dom": "^16.9.6", + "@types/react-helmet": "^5.0.15", + "@types/react-relay": "^7.0.3", + "@types/react-responsive": "^8.0.2", + "@types/react-test-renderer": "^16.9.2", + "@types/react-transition-group": "^4.2.4", + "@types/recompose": "^0.30.7", + "@types/relay-runtime": "^8.0.7", "@types/sane": "^2.0.0", "@types/shallow-equals": "^1.0.0", "@types/simplemde": "^1.11.7", - "@types/sinon": "^7.0.11", - "@types/source-map-support": "^0.5.0", + "@types/sinon": "^7.5.2", + "@types/source-map-support": "^0.5.1", "@types/stack-trace": "0.0.29", "@types/stack-utils": "^1.0.1", "@types/throng": "^4.0.2", - "@types/uuid": "^3.4.4", + "@types/uuid": "^7.0.2", "@types/verror": "^1.10.3", - "@types/vinyl": "^2.0.2", - "@types/webpack": "^4.4.31", + "@types/vinyl": "^2.0.4", + "@types/webpack": "^4.41.10", "@types/webpack-assets-manifest": "^3.0.0", - "@types/webpack-bundle-analyzer": "^2.13.1", - "@types/webpack-dev-server": "^3.1.5", - "@types/ws": "^5.1.2", + "@types/webpack-bundle-analyzer": "^2.13.3", + "@types/webpack-dev-server": "^3.10.1", + "@types/ws": "^7.2.3", "@types/xregexp": "^4.3.0", - "@typescript-eslint/eslint-plugin": "2.3.3", - "@typescript-eslint/eslint-plugin-tslint": "2.3.3", - "@typescript-eslint/parser": "2.3.3", - "acorn": "^6.1.1", - "ansi-styles": "^3.2.0", - "autoprefixer": "^9.5.1", + "@typescript-eslint/eslint-plugin": "^2.26.0", + "@typescript-eslint/eslint-plugin-tslint": "^2.26.0", + "@typescript-eslint/parser": "^2.26.0", + "autoprefixer": "^9.7.5", "babel-core": "^7.0.0-bridge.0", - "babel-jest": "^24.9.0", - "babel-loader": "^8.0.6", + "babel-jest": "^25.2.4", + "babel-loader": "^8.1.0", "babel-plugin-lodash": "^3.3.4", - "babel-plugin-module-resolver": "^3.2.0", - "babel-plugin-relay": "^5.0.0", + "babel-plugin-module-resolver": "^4.0.0", + "babel-plugin-relay": "^9.0.0", "babel-plugin-use-lodash-es": "^0.2.0", - "bowser": "^1.9.4", - "case-sensitive-paths-webpack-plugin": "^2.2.0", - "chalk": "^2.4.2", - "chokidar": "^3.0.0", + "bowser": "^2.9.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "chalk": "^3.0.0", + "chokidar": "^3.3.1", "classnames": "^2.2.6", - "commander": "^2.20.0", - "comment-json": "^1.1.3", + "commander": "^5.0.0", + "comment-json": "^3.0.2", "common-tags": "^1.8.0", - "compression-webpack-plugin": "^2.0.0", - "copy-webpack-plugin": "^5.0.3", + "compression-webpack-plugin": "^3.1.0", "core-js": "^3.6.4", - "cross-spawn": "^6.0.5", - "css-loader": "^1.0.1", - "css-vars-ponyfill": "^2.1.2", - "del": "^4.1.1", + "cross-spawn": "^7.0.1", + "css-loader": "^3.4.2", + "css-vars-ponyfill": "^2.2.1", + "del": "^5.1.0", "doctoc": "^1.4.0", - "docz": "^0.13.7", - "docz-theme-default": "^0.13.7", - "enzyme": "^3.9.0", - "enzyme-adapter-react-16": "^1.12.1", - "enzyme-to-json": "^3.3.5", - "eslint": "^6.5.1", - "eslint-config-prettier": "^6.3.0", - "eslint-plugin-jsdoc": "^15.9.7", + "docz": "^v2.3.0-alpha.14", + "enzyme": "^3.11.0", + "enzyme-adapter-react-16": "^1.15.2", + "enzyme-to-json": "^3.4.4", + "eslint": "^6.8.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-jsdoc": "^22.1.0", "eslint-plugin-jsx-a11y": "^6.2.3", - "eslint-plugin-prettier": "^3.1.1", - "eslint-plugin-react": "^7.15.1", - "eventemitter2": "^5.0.1", - "farce": "^0.2.6", + "eslint-plugin-prettier": "^3.1.2", + "eslint-plugin-react": "^7.19.0", + "eventemitter2": "^6.3.1", + "farce": "^0.2.8", "final-form": "4.18.6", - "final-form-arrays": "1.1.2", - "flat": "^4.1.0", + "final-form-arrays": "^3.0.2", + "flat": "^5.0.0", "fluent-intl-polyfill": "^0.1.0", - "fork-ts-checker-webpack-plugin": "^1.5.0", - "found": "^0.4.9", - "found-relay": "^0.4.3", - "graphql-schema-linter": "^0.2.0", - "graphql-schema-typescript": "^1.2.9", + "fork-ts-checker-webpack-plugin": "^4.1.2", + "found": "^0.4.10", + "found-relay": "^0.7.0", + "graphql-schema-linter": "^0.2.4", + "graphql-schema-typescript": "^1.3.2", "gulp": "^4.0.2", "gulp-babel": "^8.0.0", "gulp-cli": "^2.2.0", "gulp-sourcemaps": "^2.6.5", - "gulp-typescript": "^5.0.1", - "html-webpack-plugin": "^4.0.0-beta.11", - "husky": "^2.2.0", - "intersection-observer": "^0.6.0", - "jest": "^24.8.0", - "jest-axe": "^3.2.0", - "jest-junit": "^6.4.0", + "gulp-typescript": "^6.0.0-alpha.1", + "html-webpack-plugin": "^4.0.4", + "husky": "^4.2.3", + "intersection-observer": "^0.7.0", + "jest": "^25.2.4", + "jest-axe": "^3.4.0", + "jest-junit": "^10.0.0", "jest-localstorage-mock": "^2.4.0", "jest-mock-console": "^1.0.0", - "lint-staged": "^8.1.6", - "loader-utils": "^1.2.3", - "lodash-es": "^4.17.14", - "marked": "^0.7.0", + "keymaster": "^1.6.2", + "lint-staged": "^10.1.1", + "loader-utils": "^2.0.0", + "lodash-es": "^4.17.15", + "marked": "^0.8.2", "material-design-icons": "^3.0.1", - "mini-css-extract-plugin": "^0.6.0", - "object-diff": "0.0.4", - "postcss-advanced-variables": "^3.0.0", + "mini-css-extract-plugin": "^0.9.0", + "postcss-advanced-variables": "^3.0.1", "postcss-calc-function": "^1.1.0", - "postcss-css-variables": "^0.11.0", - "postcss-flexbugs-fixes": "^4.1.0", - "postcss-font-magician": "^2.2.1", - "postcss-import": "^11.1.0", - "postcss-js": "^2.0.1", + "postcss-flexbugs-fixes": "^4.2.0", + "postcss-font-magician": "^2.3.1", + "postcss-import": "^12.0.1", + "postcss-js": "^2.0.3", "postcss-loader": "^3.0.0", - "postcss-mixins": "^6.2.1", - "postcss-nested": "^4.1.1", + "postcss-mixins": "^6.2.3", + "postcss-nested": "^4.2.1", "postcss-prepend-imports": "^1.0.1", - "postcss-preset-env": "^6.5.0", - "prettier": "^1.18.2", - "prop-types": "^15.6.2", - "proxy-polyfill": "^0.3.0", - "pstree.remy": "^1.1.6", + "postcss-preset-env": "^6.7.0", + "prettier": "^2.0.2", + "proxy-polyfill": "^0.3.1", + "pstree.remy": "^1.1.7", "pym.js": "^1.3.2", - "raw-loader": "^0.5.1", - "react": "^16.9.0", - "react-axe": "^3.3.0", - "react-copy-to-clipboard": "^5.0.1", - "react-dev-utils": "^9.0.0", - "react-dom": "^16.9.0", - "react-error-overlay": "^5.1.6", + "raw-loader": "^4.0.0", + "react": "^16.13.1", + "react-axe": "^3.4.1", + "react-copy-to-clipboard": "^5.0.2", + "react-dev-utils": "^10.2.1", + "react-dom": "^16.13.1", + "react-error-overlay": "^6.0.7", "react-final-form": "6.3.0", - "react-final-form-arrays": "3.1.0", - "react-popper": "^1.3.2", - "react-relay": "^5.0.0", - "react-relay-network-modern": "^4.0.4", - "react-responsive": "^7.0.0", - "react-test-renderer": "^16.9.0", - "react-timeago": "^4.1.9", - "react-transition-group": "^2.9.0", - "react-with-state-props": "^2.0.4", - "recompose": "0.27.1", - "regenerator-runtime": "^0.13.3", - "relay-compiler": "^5.0.0", - "relay-compiler-language-typescript": "^4.1.0", + "react-final-form-arrays": "^3.1.1", + "react-helmet": "^5.2.1", + "react-popper": "^1.3.7", + "react-relay": "^9.0.0", + "react-relay-network-modern": "^4.6.1", + "react-responsive": "^8.0.3", + "react-test-renderer": "^16.13.1", + "react-timeago": "^4.4.0", + "react-transition-group": "^4.3.0", + "recompose": "^0.30.0", + "regenerator-runtime": "^0.13.5", + "relay-compiler": "^9.0.0", + "relay-compiler-language-typescript": "^12.0.0", "relay-local-schema": "^0.8.0", - "relay-runtime": "^5.0.0", + "relay-runtime": "^9.0.0", "resize-observer-polyfill": "^1.5.1", "sane": "^4.1.0", - "scheduler": "^0.15.0", "shallow-equals": "^1.0.0", "simplemde": "^1.11.2", "simulant": "^0.2.2", - "sinon": "^7.3.2", - "sockjs-client": "^1.3.0", - "stack-trace": "0.0.10", - "strip-ansi": "^5.2.0", - "style-loader": "^0.23.1", + "sinon": "^9.0.1", + "sockjs-client": "^1.4.0", + "stack-trace": "^0.0.10", + "strip-ansi": "^6.0.0", + "style-loader": "^1.1.3", "subscriptions-transport-ws": "^0.9.16", - "terser-webpack-plugin": "^1.2.3", - "thread-loader": "^2.1.2", + "terser-webpack-plugin": "^2.3.5", + "thread-loader": "^2.1.3", "timekeeper": "^2.2.0", - "ts-jest": "<23.10.0", - "ts-loader": "^6.0.0", - "ts-node": "^8.1.0", - "ts-node-dev": "^1.0.0-pre.37", - "tsconfig-paths": "^3.8.0", + "ts-jest": "^25.3.0", + "ts-loader": "^6.2.2", + "ts-node": "^8.8.1", + "ts-node-dev": "^1.0.0-pre.44", + "tsconfig-paths": "^3.9.0", "tsconfig-paths-webpack-plugin": "^3.2.0", - "tslint": "^5.20.0", - "typed-css-modules": "^0.4.2", - "typeface-manuale": "^0.0.71", - "typeface-nunito": "0.0.72", - "typeface-open-sans": "0.0.75", - "typeface-source-sans-pro": "^0.0.54", - "typescript": "3.3.4000", - "typescript-snapshots-plugin": "^1.6.0", - "wait-for-expect": "^1.1.1", - "webpack": "^4.41.5", + "tslint": "^6.1.0", + "typed-css-modules": "^0.6.3", + "typeface-manuale": "^1.1.4", + "typeface-nunito": "^1.1.3", + "typeface-open-sans": "^0.0.75", + "typeface-source-sans-pro": "^1.1.5", + "typescript": "^3.8.3", + "typescript-snapshots-plugin": "^1.7.0", + "wait-for-expect": "^1.3.0", + "webpack": "^4.42.1", "webpack-assets-manifest": "^3.1.1", - "webpack-bundle-analyzer": "^3.3.2", - "webpack-cli": "^3.3.2", - "webpack-dev-server": "3.2.1", + "webpack-bundle-analyzer": "^3.6.1", + "webpack-cli": "^3.3.11", + "webpack-dev-server": "^3.10.3", "whatwg-fetch": "^3.0.0" }, + "dependencies-pins-documentation": { + "wait-for-expect@1.x.x": [ + "Newer versions breaks the use of jest fake timers" + ], + "consolidate@14.0.0": [ + "Newer versions has problems with using nunjucks.", + "Update when the following issue is resolved:", + "https://github.com/tj/consolidate.js/issues/244" + ], + "final-form@4.18.6": [ + "Newer versions has problems with resetting forms.", + "Update when the following issue is resolved:", + "https://github.com/final-form/final-form/issues/317" + ], + "react-final-form@6.3.0": [ + "Newer versions has problems with radio and checkbox fields.", + "Update when the following issue is resolved:", + "https://github.com/final-form/react-final-form/issues/683" + ] + }, "husky": { "hooks": { "pre-commit": "FAST_LINT=true lint-staged" @@ -406,8 +413,7 @@ "npm run docs:events -- --verify" ], "{README,CLIENT_EVENTS,CONTRIBUTING,WEBHOOKS}.md": [ - "npm run doctoc", - "git add" + "npm run doctoc" ] }, "bundlesize": [ @@ -420,5 +426,12 @@ "rules": [ "types-are-capitalized" ] - } + }, + "browsers": [ + ">1%", + "last 4 versions", + "Firefox ESR", + "IE 11", + "not dead" + ] } diff --git a/scripts/WebpackDevServerUtils.js b/scripts/WebpackDevServerUtils.js index 725c6296c..094790790 100644 --- a/scripts/WebpackDevServerUtils.js +++ b/scripts/WebpackDevServerUtils.js @@ -27,14 +27,14 @@ const forkTsCheckerWebpackPlugin = require("react-dev-utils/ForkTsCheckerWebpack const isInteractive = false; function prepareUrls(protocol, host, port) { - const formatUrl = hostname => + const formatUrl = (hostname) => url.format({ protocol, hostname, port, pathname: "/", }); - const prettyPrintUrl = hostname => + const prettyPrintUrl = (hostname) => url.format({ protocol, hostname, @@ -144,12 +144,12 @@ function createCompiler({ const tsMessagesPromises = []; if (useTypeScript) { - compiler.compilers.forEach(singleCompiler => { + compiler.compilers.forEach((singleCompiler) => { let tsMessagesPromise; let tsMessagesResolver; singleCompiler.hooks.beforeCompile.tap("beforeCompile", () => { - tsMessagesPromise = new Promise(resolve => { - tsMessagesResolver = msgs => resolve(msgs); + tsMessagesPromise = new Promise((resolve) => { + tsMessagesResolver = (msgs) => resolve(msgs); }); tsMessagesPromises.push(tsMessagesPromise); }); @@ -170,13 +170,15 @@ function createCompiler({ (diagnostics, lints) => { console.log("RECEIVED"); const allMsgs = [...diagnostics, ...lints]; - const format = message => + const format = (message) => `${message.file}\n${typescriptFormatter(message, true)}`; tsMessagesResolver({ - errors: allMsgs.filter(msg => msg.severity === "error").map(format), + errors: allMsgs + .filter((msg) => msg.severity === "error") + .map(format), warnings: allMsgs - .filter(msg => msg.severity === "warning") + .filter((msg) => msg.severity === "warning") .map(format), }); } @@ -186,7 +188,7 @@ function createCompiler({ // "done" event fires when Webpack has finished recompiling the bundle. // Whether or not you have warnings or errors, you will get this event. - compiler.hooks.done.tap("done", async stats => { + compiler.hooks.done.tap("done", async (stats) => { if (isInteractive) { clearConsole(); } @@ -203,7 +205,7 @@ function createCompiler({ ...config.stats, }; if (Array.isArray(config)) { - statOptions.children = config.map(c => c.stats || {}); + statOptions.children = config.map((c) => c.stats || {}); } const statsData = stats.toJson(statOptions); @@ -220,7 +222,7 @@ function createCompiler({ const results = await Promise.all(tsMessagesPromises); clearTimeout(delayedMsg); - results.forEach(msgs => { + results.forEach((msgs) => { statsData.errors.push(...msgs.errors); statsData.warnings.push(...msgs.warnings); diff --git a/scripts/build.ts b/scripts/build.ts index 7dd2d2fa9..6b10484bb 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -31,7 +31,7 @@ const isProduction = process.env.NODE_ENV === "production"; // Makes the script crash on unhandled rejections instead of silently // ignoring them. In the future, promise rejections that are not handled will // terminate the Node.js process with a non-zero exit code. -process.on("unhandledRejection", err => { +process.on("unhandledRejection", (err) => { throw err; }); @@ -117,7 +117,9 @@ function build(previousFileSizes: any) { return reject(err); } const messages = formatWebpackMessages( - stats.toJson({ children: webpackConfig.map(c => c.stats || {}) as any }) + stats.toJson({ + children: webpackConfig.map((c) => c.stats || {}) as any, + }) ); if (messages.errors.length) { // Only keep the first error. Others are often indicative diff --git a/scripts/generateEventDocs.ts b/scripts/generateEventDocs.ts index 80d43b32a..2ca3fc812 100644 --- a/scripts/generateEventDocs.ts +++ b/scripts/generateEventDocs.ts @@ -104,7 +104,7 @@ function gatherEntries( docs: ts.displayPartsToString(symbol.getDocumentationComment(checker)), type: type.getSymbol()!.getName() as DocEntry["type"], }; - typeNode.forEachChild(ch => { + typeNode.forEachChild((ch) => { if (ts.isTypeLiteralNode(ch)) { const text = printer.printNode( ts.EmitHint.Unspecified, @@ -179,13 +179,13 @@ function emitDocs(markdownFile: string, entries: DocEntry[], verify = false) { const summary = stripIndent` - ${entries .map( - e => `${getEventName(e.name)}` + (e) => `${getEventName(e.name)}` ) .join("\n - ")} `; const list = entries .map( - e => + (e) => codeBlock` - ${ e.type === "ViewerEvent" diff --git a/scripts/generateSchemaTypes.js b/scripts/generateSchemaTypes.js index 425713c99..f9e7bad5e 100644 --- a/scripts/generateSchemaTypes.js +++ b/scripts/generateSchemaTypes.js @@ -47,7 +47,7 @@ async function main() { } // Create the types for this file. - const types = await generateTSTypesAsString(schema, { + const types = await generateTSTypesAsString(schema, file.fileName, { tabSpaces: 2, typePrefix: "GQL", strictNulls: false, @@ -66,13 +66,13 @@ if (require.main === module) { // Only run the main module on file load if this is the main module (we're // executing this file directly). main() - .then(files => { + .then((files) => { for (const { fileName } of files) { // eslint-disable-next-line no-console console.log(`Generated ${fileName}`); } }) - .catch(err => { + .catch((err) => { // eslint-disable-next-line no-console console.error(err); }); diff --git a/scripts/start.ts b/scripts/start.ts index 1bec1c258..ccf738c3a 100644 --- a/scripts/start.ts +++ b/scripts/start.ts @@ -26,7 +26,7 @@ process.env.NODE_ENV = "development"; // Makes the script crash on unhandled rejections instead of silently // ignoring them. In the future, promise rejections that are not handled will // terminate the Node.js process with a non-zero exit code. -process.on("unhandledRejection", err => { +process.on("unhandledRejection", (err) => { throw err; }); diff --git a/scripts/test.js b/scripts/test.js index e941798d8..08e72d425 100644 --- a/scripts/test.js +++ b/scripts/test.js @@ -17,7 +17,7 @@ process.env.NODE_ENV = "test"; // Makes the script crash on unhandled rejections instead of silently // ignoring them. In the future, promise rejections that are not handled will // terminate the Node.js process with a non-zero exit code. -process.on("unhandledRejection", err => { +process.on("unhandledRejection", (err) => { throw err; }); diff --git a/scripts/watcher/ChokidarWatcher.ts b/scripts/watcher/ChokidarWatcher.ts index 456fb0f27..afe6bca12 100644 --- a/scripts/watcher/ChokidarWatcher.ts +++ b/scripts/watcher/ChokidarWatcher.ts @@ -1,5 +1,6 @@ import chokidar from "chokidar"; import path from "path"; + import { Watcher, WatchOptions } from "./types"; function prependRootDir( diff --git a/scripts/watcher/bin/watcher.ts b/scripts/watcher/bin/watcher.ts index a5008a40e..b3c4df0d5 100644 --- a/scripts/watcher/bin/watcher.ts +++ b/scripts/watcher/bin/watcher.ts @@ -30,7 +30,7 @@ const cmd = program .description("Run watchers defined in ") .parse(process.argv); -run(cmd.args, cmd.opts()).catch(err => { +run(cmd.args, cmd.opts()).catch((err) => { // eslint-disable-next-line no-console console.error(err); process.exit(1); diff --git a/scripts/watcher/types.ts b/scripts/watcher/types.ts index fc099b9b2..fc5c6788f 100644 --- a/scripts/watcher/types.ts +++ b/scripts/watcher/types.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; export interface WatchOptions { ignore?: ReadonlyArray; @@ -44,23 +44,13 @@ export const configSchema = Joi.object({ watchers: Joi.object().pattern( /.*/, Joi.object({ - paths: Joi.array() - .items(Joi.string()) - .unique(), - ignore: Joi.array() - .items(Joi.string()) - .unique() - .optional(), + paths: Joi.array().items(Joi.string()).unique(), + ignore: Joi.array().items(Joi.string()).unique().optional(), executor: Joi.object(), }) ), defaultSet: Joi.string().optional(), sets: Joi.object() - .pattern( - /.*/, - Joi.array() - .items(Joi.string()) - .unique() - ) + .pattern(/.*/, Joi.array().items(Joi.string()).unique()) .optional(), }).with("defaultSet", "sets"); diff --git a/scripts/watcher/watch.ts b/scripts/watcher/watch.ts index 111cdfb98..b3edce12c 100644 --- a/scripts/watcher/watch.ts +++ b/scripts/watcher/watch.ts @@ -1,5 +1,5 @@ +import Joi from "@hapi/joi"; import chalk from "chalk"; -import Joi from "joi"; import { pickBy } from "lodash"; import SaneWatcher from "./SaneWatcher"; @@ -28,7 +28,7 @@ async function beginWatch( } function setupCleanup(watcher: Watcher, config: Config) { - ["SIGINT", "SIGTERM"].forEach(signal => + ["SIGINT", "SIGTERM"].forEach((signal) => process.once(signal as any, async () => { const cleanups = []; if (watcher.onCleanup) { @@ -50,7 +50,7 @@ function resolveSets( value: ReadonlyArray ) { const resolved: string[] = []; - value.forEach(v => { + value.forEach((v) => { if (v in sets) { resolved.push(...sets[v]); return; @@ -66,12 +66,12 @@ function filterOnly( sets?: Record> ): Config["watchers"] { const resolved = sets ? resolveSets(sets, only) : only; - const unknown = resolved.filter(r => !(r in watchers)); + const unknown = resolved.filter((r) => !(r in watchers)); if (unknown.length) { throw new Error(`Watcher Configuration or Set for ${unknown} not found`); } return pickBy(watchers, (value, key) => { - if (resolved.indexOf(key) === -1) { + if (!resolved.includes(key)) { // eslint-disable-next-line no-console console.log(chalk.grey(`Disabled watcher "${key}"`)); return false; @@ -101,7 +101,7 @@ export default async function watch(config: Config, options: Options = {}) { // eslint-disable-next-line no-console console.log(chalk.cyanBright(`Start watcher "${key}"`)); const watcherConfig = watchersConfigs[key]; - beginWatch(watcher, key, watcherConfig, rootDir).catch(err => { + beginWatch(watcher, key, watcherConfig, rootDir).catch((err) => { // eslint-disable-next-line no-console console.error(err); process.exit(1); diff --git a/src/core/build/createWebpackConfig.ts b/src/core/build/createWebpackConfig.ts index 898e934d8..b4d431dfb 100644 --- a/src/core/build/createWebpackConfig.ts +++ b/src/core/build/createWebpackConfig.ts @@ -7,7 +7,6 @@ import HtmlWebpackPlugin from "html-webpack-plugin"; import { identity } from "lodash"; import MiniCssExtractPlugin from "mini-css-extract-plugin"; import path from "path"; -import typescriptFormatter from "react-dev-utils/typescriptFormatter"; import WatchMissingNodeModulesPlugin from "react-dev-utils/WatchMissingNodeModulesPlugin"; import TerserPlugin from "terser-webpack-plugin"; import TsconfigPathsPlugin from "tsconfig-paths-webpack-plugin"; @@ -82,10 +81,6 @@ export default function createWebpackConfig( const styleLoader = { loader: require.resolve("style-loader"), - options: { - sourceMap: !disableSourcemaps, - hmr: watch, - }, }; const localesOptions = { @@ -367,9 +362,10 @@ export default function createWebpackConfig( { loader: require.resolve("css-loader"), options: { - modules: true, + modules: { + localIdentName: "[name]-[local]-[contenthash]", + }, importLoaders: 2, - localIdentName: "[name]-[local]-[contenthash]", sourceMap: !disableSourcemaps, }, }, @@ -471,9 +467,10 @@ export default function createWebpackConfig( { loader: require.resolve("css-loader"), options: { - modules: true, + modules: { + localIdentName: "[name]-[local]-[hash:base64:5]", + }, importLoaders: 1, - localIdentName: "[name]-[local]-[hash:base64:5]", sourceMap: !disableSourcemaps, }, }, @@ -525,11 +522,6 @@ export default function createWebpackConfig( useTypescriptIncrementalApi: false, checkSyntacticErrors: true, tsconfig: paths.appTsconfig, - watch: paths.appSrc, - // TODO: (cvle) ForkTsCheckerWebpackPlugin are currently not working, so we resort to default reporting. - silent: false, - // The formatter is normally invoked directly in WebpackDevServerUtils during development - formatter: typescriptFormatter, }) ), // Makes some environment variables available to the JS code, for example: diff --git a/src/core/build/loaders/locales-loader.js b/src/core/build/loaders/locales-loader.js index 1cb3e5632..501e6f333 100644 --- a/src/core/build/loaders/locales-loader.js +++ b/src/core/build/loaders/locales-loader.js @@ -40,7 +40,7 @@ function getFiles(target, pathToLocale, context) { const files = fs.readdirSync(pathToLocale); - files.forEach(f => { + files.forEach((f) => { if (commonFiles.includes(f)) { common.push(f); return; @@ -62,12 +62,12 @@ function generateTarget(target, context) { locales, bundled, } = context; - const getLocalePath = locale => path.join(pathToLocales, locale); - const getLocaleFiles = memoize(locale => + const getLocalePath = (locale) => path.join(pathToLocales, locale); + const getLocaleFiles = memoize((locale) => getFiles(target, getLocalePath(locale), context) ); - const loadables = locales.filter(locale => !bundled.includes(locale)); + const loadables = locales.filter((locale) => !bundled.includes(locale)); return ` var ret = { @@ -81,22 +81,22 @@ function generateTarget(target, context) { // Bundled locales are directly available in the main bundle. ${bundled .map( - locale => ` + (locale) => ` { var suffixes = ${JSON.stringify(getLocaleFiles(locale).suffixes)}; var contents = []; ${getLocaleFiles(locale) .common.map( - file => ` + (file) => ` contents.push(require(${JSON.stringify( path.join(getLocalePath(locale), file).replace(/\\/g, "/") - )})); + )}).default); ` ) .join("\n")} contents = contents.concat(suffixes.map(function(suffix) { return require("${path .join(getLocalePath(locale), target) - .replace(/\\/g, "/")}" + suffix); })); + .replace(/\\/g, "/")}" + suffix).default; })); ret.bundled[${JSON.stringify(locale)}] = contents.join("\\n"); } ` @@ -106,13 +106,13 @@ function generateTarget(target, context) { // Loadables are in a separate bundle, that can be easily loaded. ${loadables .map( - locale => ` + (locale) => ` ret.loadables[${JSON.stringify(locale)}] = function() { var suffixes = ${JSON.stringify(getLocaleFiles(locale).suffixes)}; var promises = []; ${getLocaleFiles(locale) .common.map( - file => ` + (file) => ` promises.push( import( /* webpackChunkName: ${JSON.stringify( @@ -147,7 +147,7 @@ function generateTarget(target, context) { `; } -module.exports = function(source) { +module.exports = function (source) { const options = Object.assign( {}, DEFAULT_QUERY_VALUES, @@ -165,7 +165,7 @@ module.exports = function(source) { let locales = fs.readdirSync(pathToLocales); if (availableLocales) { - availableLocales.forEach(locale => { + availableLocales.forEach((locale) => { if (!locales.includes(locale)) { throw new Error(`locale ${fallbackLocale} not available`); } diff --git a/src/core/build/postcss.config.js b/src/core/build/postcss.config.js index 53bfe2240..8b8b69804 100644 --- a/src/core/build/postcss.config.js +++ b/src/core/build/postcss.config.js @@ -20,7 +20,7 @@ const postcssAdvancedVariables = require("postcss-advanced-variables"); delete require.cache[paths.appThemeVariables]; const variables = require(paths.appThemeVariables).default; const flatKebabVariables = mapKeys( - mapValues(flat(variables, { delimiter: "-" }), v => v.toString()), + mapValues(flat(variables, { delimiter: "-" }), (v) => v.toString()), (_, k) => kebabCase(k) ); @@ -32,7 +32,7 @@ const mediaQueryVariables = mapValues( // with the smallest screen and gradually add styling for the // next bigger screen. This is realized using `min-width` without // ever using `max-width`. - v => `${Number.parseInt(v, 10) + 1}px` + (v) => `${Number.parseInt(v, 10) + 1}px` ); module.exports = { @@ -63,12 +63,6 @@ module.exports = { postcssFlexbugsFixes, // Vendor prefixing. autoprefixer({ - browsers: [ - ">1%", - "last 4 versions", - "Firefox ESR", - "not ie < 9", // React doesn't support IE8 anyway - ], flexbox: "no-2009", }), ], diff --git a/src/core/client/admin/App/DecisionHistory/ApprovedComment.tsx b/src/core/client/admin/App/DecisionHistory/ApprovedComment.tsx index bbf2501f3..b7b27958c 100644 --- a/src/core/client/admin/App/DecisionHistory/ApprovedComment.tsx +++ b/src/core/client/admin/App/DecisionHistory/ApprovedComment.tsx @@ -17,7 +17,7 @@ interface Props { onGotoComment?: React.EventHandler; } -const ApprovedComment: FunctionComponent = props => ( +const ApprovedComment: FunctionComponent = (props) => ( }> void; } -const DecisionHistory: FunctionComponent = props => ( +const DecisionHistory: FunctionComponent = (props) => (
<Main> <DecisionList> {props.actions.length === 0 && <Empty />} - {props.actions.map(action => ( + {props.actions.map((action) => ( <DecisionHistoryItemContainer key={action.id} action={action} diff --git a/src/core/client/admin/App/DecisionHistory/DecisionHistoryContainer.tsx b/src/core/client/admin/App/DecisionHistory/DecisionHistoryContainer.tsx index e2582aaa0..55076b6b8 100644 --- a/src/core/client/admin/App/DecisionHistory/DecisionHistoryContainer.tsx +++ b/src/core/client/admin/App/DecisionHistory/DecisionHistoryContainer.tsx @@ -23,7 +23,7 @@ export class DecisionHistoryContainer extends React.Component< public render() { const actions = this.props.viewer.commentModerationActionHistory.edges.map( - edge => edge.node + (edge) => edge.node ); return ( <DecisionHistory @@ -43,7 +43,7 @@ export class DecisionHistoryContainer extends React.Component< this.setState({ disableLoadMore: true }); this.props.relay.loadMore( 10, // Fetch the next 10 feed items - error => { + (error) => { this.setState({ disableLoadMore: false }); if (error) { // eslint-disable-next-line no-console diff --git a/src/core/client/admin/App/DecisionHistory/DecisionHistoryQuery.tsx b/src/core/client/admin/App/DecisionHistory/DecisionHistoryQuery.tsx index 0245a4f01..6cb5b1ccb 100644 --- a/src/core/client/admin/App/DecisionHistory/DecisionHistoryQuery.tsx +++ b/src/core/client/admin/App/DecisionHistory/DecisionHistoryQuery.tsx @@ -1,6 +1,7 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; -import { graphql, QueryRenderer } from "coral-framework/lib/relay"; +import { QueryRenderer } from "coral-framework/lib/relay"; import { DecisionHistoryQuery as QueryTypes } from "coral-admin/__generated__/DecisionHistoryQuery.graphql"; diff --git a/src/core/client/admin/App/DecisionHistory/DecisionItem.tsx b/src/core/client/admin/App/DecisionHistory/DecisionItem.tsx index 04476663c..720061276 100644 --- a/src/core/client/admin/App/DecisionHistory/DecisionItem.tsx +++ b/src/core/client/admin/App/DecisionHistory/DecisionItem.tsx @@ -9,7 +9,7 @@ interface Props { children: React.ReactNode; } -const DecisionItem: FunctionComponent<Props> = props => ( +const DecisionItem: FunctionComponent<Props> = (props) => ( <li className={styles.root}> <Flex> <div className={styles.leftCol}>{props.icon}</div> diff --git a/src/core/client/admin/App/DecisionHistory/DecisionList.tsx b/src/core/client/admin/App/DecisionHistory/DecisionList.tsx index 921799029..353dad1a3 100644 --- a/src/core/client/admin/App/DecisionHistory/DecisionList.tsx +++ b/src/core/client/admin/App/DecisionHistory/DecisionList.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react"; import styles from "./DecisionList.css"; -const DecisionList: FunctionComponent = props => ( +const DecisionList: FunctionComponent = (props) => ( <ul className={styles.root}>{props.children}</ul> ); diff --git a/src/core/client/admin/App/DecisionHistory/Footer.tsx b/src/core/client/admin/App/DecisionHistory/Footer.tsx index a83a1f2d6..b4aa7e106 100644 --- a/src/core/client/admin/App/DecisionHistory/Footer.tsx +++ b/src/core/client/admin/App/DecisionHistory/Footer.tsx @@ -8,7 +8,7 @@ interface Props { children: React.ReactNode; } -const Footer: FunctionComponent<Props> = props => ( +const Footer: FunctionComponent<Props> = (props) => ( <Flex className={styles.root} alignItems="baseline"> {props.children} </Flex> diff --git a/src/core/client/admin/App/DecisionHistory/GoToCommentLink.tsx b/src/core/client/admin/App/DecisionHistory/GoToCommentLink.tsx index bda4e01b2..14260bdb7 100644 --- a/src/core/client/admin/App/DecisionHistory/GoToCommentLink.tsx +++ b/src/core/client/admin/App/DecisionHistory/GoToCommentLink.tsx @@ -11,7 +11,7 @@ interface Props { onClick?: React.EventHandler<React.MouseEvent>; } -const GoToCommentLink: FunctionComponent<Props> = props => { +const GoToCommentLink: FunctionComponent<Props> = (props) => { return ( <Link as={TextLink} diff --git a/src/core/client/admin/App/DecisionHistory/Info.tsx b/src/core/client/admin/App/DecisionHistory/Info.tsx index d4832915f..b76892104 100644 --- a/src/core/client/admin/App/DecisionHistory/Info.tsx +++ b/src/core/client/admin/App/DecisionHistory/Info.tsx @@ -6,7 +6,7 @@ interface Props { children: React.ReactNode; } -const Info: FunctionComponent<Props> = props => ( +const Info: FunctionComponent<Props> = (props) => ( <span className={styles.root}>{props.children}</span> ); diff --git a/src/core/client/admin/App/DecisionHistory/Main.tsx b/src/core/client/admin/App/DecisionHistory/Main.tsx index ea55d45ac..13d23f8bd 100644 --- a/src/core/client/admin/App/DecisionHistory/Main.tsx +++ b/src/core/client/admin/App/DecisionHistory/Main.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react"; import styles from "./Main.css"; -const Main: FunctionComponent = props => ( +const Main: FunctionComponent = (props) => ( <div className={styles.root}>{props.children}</div> ); diff --git a/src/core/client/admin/App/DecisionHistory/RejectedComment.tsx b/src/core/client/admin/App/DecisionHistory/RejectedComment.tsx index e8bf98960..7b49b7673 100644 --- a/src/core/client/admin/App/DecisionHistory/RejectedComment.tsx +++ b/src/core/client/admin/App/DecisionHistory/RejectedComment.tsx @@ -17,7 +17,7 @@ interface Props { onGotoComment?: React.EventHandler<React.MouseEvent>; } -const RejectedComment: FunctionComponent<Props> = props => ( +const RejectedComment: FunctionComponent<Props> = (props) => ( <DecisionItem icon={<RejectedIcon />}> <Localized id="decisionHistory-rejectedCommentBy" diff --git a/src/core/client/admin/App/DecisionHistory/ShowMoreButton.tsx b/src/core/client/admin/App/DecisionHistory/ShowMoreButton.tsx index 2a460bcd9..4a6717dbb 100644 --- a/src/core/client/admin/App/DecisionHistory/ShowMoreButton.tsx +++ b/src/core/client/admin/App/DecisionHistory/ShowMoreButton.tsx @@ -10,7 +10,7 @@ interface Props { onClick?: () => void; } -const ShowMoreButton: FunctionComponent<Props> = props => ( +const ShowMoreButton: FunctionComponent<Props> = (props) => ( <Localized id="decisionHistory-showMoreButton"> <BaseButton className={styles.root} diff --git a/src/core/client/admin/App/DecisionHistory/Timestamp.tsx b/src/core/client/admin/App/DecisionHistory/Timestamp.tsx index 84c591b29..c334ef39a 100644 --- a/src/core/client/admin/App/DecisionHistory/Timestamp.tsx +++ b/src/core/client/admin/App/DecisionHistory/Timestamp.tsx @@ -8,7 +8,7 @@ interface Props { children: string; } -const DecisionHistory: FunctionComponent<Props> = props => ( +const DecisionHistory: FunctionComponent<Props> = (props) => ( <Timestamp className={styles.root}>{props.children}</Timestamp> ); diff --git a/src/core/client/admin/App/DecisionHistory/__snapshots__/GoToCommentLink.spec.tsx.snap b/src/core/client/admin/App/DecisionHistory/__snapshots__/GoToCommentLink.spec.tsx.snap index d7ac73525..462f3d30b 100644 --- a/src/core/client/admin/App/DecisionHistory/__snapshots__/GoToCommentLink.spec.tsx.snap +++ b/src/core/client/admin/App/DecisionHistory/__snapshots__/GoToCommentLink.spec.tsx.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`renders correctly 1`] = ` -<ForwardRef(render) +<Link as={[Function]} className="GoToCommentLink-root" onClick={[Function]} @@ -18,5 +18,5 @@ exports[`renders correctly 1`] = ` <ForwardRef(forwardRef)> chevron_right </ForwardRef(forwardRef)> -</ForwardRef(render)> +</Link> `; diff --git a/src/core/client/admin/App/GlobalNotification/GlobalNotificationContext.tsx b/src/core/client/admin/App/GlobalNotification/GlobalNotificationContext.tsx index 3c963c459..c10882e90 100644 --- a/src/core/client/admin/App/GlobalNotification/GlobalNotificationContext.tsx +++ b/src/core/client/admin/App/GlobalNotification/GlobalNotificationContext.tsx @@ -6,9 +6,9 @@ interface State { } type Action = - | { + | ({ type: "SET_MESSAGE"; - } & State + } & State) | { type: "CLEAR_MESSAGE"; }; diff --git a/src/core/client/admin/App/MainRoute.tsx b/src/core/client/admin/App/MainRoute.tsx index 9e93419f9..18a9faffb 100644 --- a/src/core/client/admin/App/MainRoute.tsx +++ b/src/core/client/admin/App/MainRoute.tsx @@ -1,6 +1,6 @@ import React from "react"; +import { graphql } from "react-relay"; -import { graphql } from "coral-framework/lib/relay"; import { withRouteConfig } from "coral-framework/lib/router"; import { MainRouteQueryResponse } from "coral-admin/__generated__/MainRouteQuery.graphql"; diff --git a/src/core/client/admin/App/Navigation/Navigation.tsx b/src/core/client/admin/App/Navigation/Navigation.tsx index 27f19d569..d4477966f 100644 --- a/src/core/client/admin/App/Navigation/Navigation.tsx +++ b/src/core/client/admin/App/Navigation/Navigation.tsx @@ -9,7 +9,7 @@ interface Props { showConfigure: boolean; } -const Navigation: FunctionComponent<Props> = props => ( +const Navigation: FunctionComponent<Props> = (props) => ( <AppBarNavigation> <Localized id="navigation-moderate"> <NavigationLink to="/admin/moderate">Moderate</NavigationLink> diff --git a/src/core/client/admin/App/Navigation/NavigationContainer.tsx b/src/core/client/admin/App/Navigation/NavigationContainer.tsx index 3f4ff3376..bc60a5770 100644 --- a/src/core/client/admin/App/Navigation/NavigationContainer.tsx +++ b/src/core/client/admin/App/Navigation/NavigationContainer.tsx @@ -1,7 +1,8 @@ import React from "react"; +import { graphql } from "react-relay"; import { Ability, can } from "coral-admin/permissions"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignOutMutation, withSignOutMutation, diff --git a/src/core/client/admin/App/Navigation/NavigationLink.tsx b/src/core/client/admin/App/Navigation/NavigationLink.tsx index 2d9de2316..55432135c 100644 --- a/src/core/client/admin/App/Navigation/NavigationLink.tsx +++ b/src/core/client/admin/App/Navigation/NavigationLink.tsx @@ -8,7 +8,7 @@ interface Props { to: string | LocationDescriptor; } -const NavigationLink: FunctionComponent<Props> = props => ( +const NavigationLink: FunctionComponent<Props> = (props) => ( <Link to={props.to} as={AppBarNavigationItem as any} activePropName="active"> {props.children} </Link> diff --git a/src/core/client/admin/App/Navigation/__snapshots__/NavigationLink.spec.tsx.snap b/src/core/client/admin/App/Navigation/__snapshots__/NavigationLink.spec.tsx.snap index 8bd73ab38..565f2a360 100644 --- a/src/core/client/admin/App/Navigation/__snapshots__/NavigationLink.spec.tsx.snap +++ b/src/core/client/admin/App/Navigation/__snapshots__/NavigationLink.spec.tsx.snap @@ -1,11 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`renders correctly 1`] = ` -<ForwardRef(render) +<Link activePropName="active" as={[Function]} to="/moderate" > link -</ForwardRef(render)> +</Link> `; diff --git a/src/core/client/admin/App/UserMenu/UserMenu.tsx b/src/core/client/admin/App/UserMenu/UserMenu.tsx index 0307639e3..dbdb78433 100644 --- a/src/core/client/admin/App/UserMenu/UserMenu.tsx +++ b/src/core/client/admin/App/UserMenu/UserMenu.tsx @@ -18,7 +18,7 @@ interface Props { onSignOut: React.EventHandler<React.MouseEvent>; } -const UserMenu: FunctionComponent<Props> = props => ( +const UserMenu: FunctionComponent<Props> = (props) => ( <Localized id="userMenu-popover" attrs={{ description: true }}> <Popover id="userMenu" diff --git a/src/core/client/admin/App/UserMenu/UserMenuContainer.tsx b/src/core/client/admin/App/UserMenu/UserMenuContainer.tsx index ee70a58d7..ac2cdf70e 100644 --- a/src/core/client/admin/App/UserMenu/UserMenuContainer.tsx +++ b/src/core/client/admin/App/UserMenu/UserMenuContainer.tsx @@ -1,6 +1,7 @@ import React from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignOutMutation, withSignOutMutation, diff --git a/src/core/client/admin/components/ButtonPadding.tsx b/src/core/client/admin/components/ButtonPadding.tsx index 72af38768..04f85568a 100644 --- a/src/core/client/admin/components/ButtonPadding.tsx +++ b/src/core/client/admin/components/ButtonPadding.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react"; import styles from "./ButtonPadding.css"; -const ButtonPadding: FunctionComponent = props => ( +const ButtonPadding: FunctionComponent = (props) => ( <div className={styles.root}>{props.children}</div> ); diff --git a/src/core/client/admin/components/Comment/CommentContent.css b/src/core/client/admin/components/Comment/CommentContent.css index 403921648..dc42794ec 100644 --- a/src/core/client/admin/components/Comment/CommentContent.css +++ b/src/core/client/admin/components/Comment/CommentContent.css @@ -5,7 +5,7 @@ $comment-link: var(--v2-palette-primary-main); $comment-link-active: var(--v2-palette-primary-darkest); .root { - composes: bodyCommentV2 from "coral-ui/shared/typography.css"; + composes: bodyCommentV2 from "~coral-ui/shared/typography.css"; font-family: var(--v2-font-family-primary); font-size: var(--v2-font-size-3); line-height: var(--v2-line-height-body-comment); diff --git a/src/core/client/admin/components/Comment/Username.tsx b/src/core/client/admin/components/Comment/Username.tsx index 2318b37d4..4c8e1eeaa 100644 --- a/src/core/client/admin/components/Comment/Username.tsx +++ b/src/core/client/admin/components/Comment/Username.tsx @@ -8,7 +8,7 @@ export interface UsernameProps { children: string; } -const Username: FunctionComponent<UsernameProps> = props => { +const Username: FunctionComponent<UsernameProps> = (props) => { return ( <span className={cn(props.className, styles.root)}>{props.children}</span> ); diff --git a/src/core/client/admin/components/ConversationModal/ConversationModalCommentContainer.tsx b/src/core/client/admin/components/ConversationModal/ConversationModalCommentContainer.tsx index 0f5927b28..2fbb10241 100644 --- a/src/core/client/admin/components/ConversationModal/ConversationModalCommentContainer.tsx +++ b/src/core/client/admin/components/ConversationModal/ConversationModalCommentContainer.tsx @@ -1,8 +1,9 @@ import { Localized } from "@fluent/react/compat"; import cn from "classnames"; import React, { FunctionComponent, useCallback, useState } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button, Flex, @@ -10,13 +11,12 @@ import { Timestamp, } from "coral-ui/components/v2"; -import ConversationModalRepliesQuery from "./ConversationModalRepliesQuery"; - import { ConversationModalCommentContainer_comment } from "coral-admin/__generated__/ConversationModalCommentContainer_comment.graphql"; import { ConversationModalCommentContainer_settings } from "coral-admin/__generated__/ConversationModalCommentContainer_settings.graphql"; import { CommentContent, InReplyTo, UsernameButton } from "../Comment"; import { Circle, Line } from "../Timeline"; +import ConversationModalRepliesQuery from "./ConversationModalRepliesQuery"; import styles from "./ConversationModalCommentContainer.css"; diff --git a/src/core/client/admin/components/ConversationModal/ConversationModalContainer.tsx b/src/core/client/admin/components/ConversationModal/ConversationModalContainer.tsx index 3e12607b4..c7d88b40a 100644 --- a/src/core/client/admin/components/ConversationModal/ConversationModalContainer.tsx +++ b/src/core/client/admin/components/ConversationModal/ConversationModalContainer.tsx @@ -37,7 +37,7 @@ const ConversationModalContainer: FunctionComponent<Props> = ({ onUsernameClicked, }) => { const [loadMore] = useLoadMore(relay, 5); - const parents = comment.parents.edges.map(edge => edge.node); + const parents = comment.parents.edges.map((edge) => edge.node); return ( <HorizontalGutter className={styles.root}> {comment.parentCount > parents.length && ( @@ -60,7 +60,7 @@ const ConversationModalContainer: FunctionComponent<Props> = ({ </Flex> </div> )} - {parents.map(parent => ( + {parents.map((parent) => ( <ConversationModalComment key={parent.id} isParent={true} diff --git a/src/core/client/admin/components/ConversationModal/ConversationModalHeaderContainer.tsx b/src/core/client/admin/components/ConversationModal/ConversationModalHeaderContainer.tsx index 860d30d36..0394e85b1 100644 --- a/src/core/client/admin/components/ConversationModal/ConversationModalHeaderContainer.tsx +++ b/src/core/client/admin/components/ConversationModal/ConversationModalHeaderContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import { useRouter } from "found"; import React, { FunctionComponent, RefObject, useCallback } from "react"; +import { graphql } from "react-relay"; import { getModerationLink } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button, HorizontalGutter, ModalHeader } from "coral-ui/components/v2"; import { ConversationModalHeaderContainer_comment } from "coral-admin/__generated__/ConversationModalHeaderContainer_comment.graphql"; diff --git a/src/core/client/admin/components/ConversationModal/ConversationModalQuery.tsx b/src/core/client/admin/components/ConversationModal/ConversationModalQuery.tsx index a16a8d6b7..e81705a89 100644 --- a/src/core/client/admin/components/ConversationModal/ConversationModalQuery.tsx +++ b/src/core/client/admin/components/ConversationModal/ConversationModalQuery.tsx @@ -1,11 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - QueryRenderData, - QueryRenderer, -} from "coral-framework/lib/relay"; +import { QueryRenderData, QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Card, Spinner } from "coral-ui/components/v2"; import { ConversationModalQuery as QueryTypes } from "coral-admin/__generated__/ConversationModalQuery.graphql"; diff --git a/src/core/client/admin/components/ConversationModal/ConversationModalRepliesContainer.tsx b/src/core/client/admin/components/ConversationModal/ConversationModalRepliesContainer.tsx index 1caefe130..b88f433fb 100644 --- a/src/core/client/admin/components/ConversationModal/ConversationModalRepliesContainer.tsx +++ b/src/core/client/admin/components/ConversationModal/ConversationModalRepliesContainer.tsx @@ -1,17 +1,22 @@ import { Localized } from "@fluent/react/compat"; -import React, { FunctionComponent, useCallback, useState } from "react"; +import React, { + FunctionComponent, + useCallback, + useMemo, + useState, +} from "react"; import { graphql, RelayPaginationProp } from "react-relay"; import { useLoadMore, withPaginationContainer, } from "coral-framework/lib/relay"; -import { Omit } from "coral-framework/types"; import { Button, HorizontalGutter } from "coral-ui/components/v2"; import { ConversationModalRepliesContainer_comment } from "coral-admin/__generated__/ConversationModalRepliesContainer_comment.graphql"; import { ConversationModalRepliesContainer_settings } from "coral-admin/__generated__/ConversationModalRepliesContainer_settings.graphql"; import { ConversationModalRepliesContainerPaginationQueryVariables } from "coral-admin/__generated__/ConversationModalRepliesContainerPaginationQuery.graphql"; + import ConversationModalCommentContainer from "./ConversationModalCommentContainer"; import styles from "./ConversationModalRepliesContainer.css"; @@ -31,7 +36,10 @@ const ConversationModalRepliesContainer: FunctionComponent<Props> = ({ onUsernameClicked, }) => { const [loadMore] = useLoadMore(relay, 5); - const replies = comment.replies.edges.map(edge => edge.node); + const replies = useMemo( + () => comment.replies.edges.map((edge) => edge.node, comment.replies), + [comment.replies] + ); const [showReplies, setShowReplies] = useState(false); const onShowReplies = useCallback(() => { setShowReplies(true); @@ -39,7 +47,7 @@ const ConversationModalRepliesContainer: FunctionComponent<Props> = ({ return ( <HorizontalGutter> {showReplies && - replies.map(reply => ( + replies.map((reply) => ( <div key={reply.id} className={styles.comment}> <ConversationModalCommentContainer key={reply.id} diff --git a/src/core/client/admin/components/ConversationModal/ConversationModalRepliesQuery.tsx b/src/core/client/admin/components/ConversationModal/ConversationModalRepliesQuery.tsx index a132448a7..0ef93390f 100644 --- a/src/core/client/admin/components/ConversationModal/ConversationModalRepliesQuery.tsx +++ b/src/core/client/admin/components/ConversationModal/ConversationModalRepliesQuery.tsx @@ -1,14 +1,12 @@ import { Localized } from "@fluent/react/compat"; -import React, { FunctionComponent } from "react"; +import React, { FunctionComponent, useMemo } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - QueryRenderData, - QueryRenderer, -} from "coral-framework/lib/relay"; +import { QueryRenderData, QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Spinner } from "coral-ui/components/v2"; import { ConversationModalRepliesQuery as QueryTypes } from "coral-admin/__generated__/ConversationModalRepliesQuery.graphql"; + import ConversationModalCommentContainer from "./ConversationModalCommentContainer"; interface Props { @@ -62,10 +60,13 @@ const ConversationModalRepliesQuery: FunctionComponent<Props> = ({ ); } - const replies = props.comment.replies.edges.map(edge => edge.node); + const replies = useMemo( + () => props.comment!.replies.edges.map((edge) => edge.node), + [props.comment.replies] + ); return ( <div> - {replies.map(reply => ( + {replies.map((reply) => ( <div key={reply.id}> <ConversationModalCommentContainer key={reply.id} diff --git a/src/core/client/admin/components/ModerateCard/ApproveButton.tsx b/src/core/client/admin/components/ModerateCard/ApproveButton.tsx index e49779c69..6d077c52d 100644 --- a/src/core/client/admin/components/ModerateCard/ApproveButton.tsx +++ b/src/core/client/admin/components/ModerateCard/ApproveButton.tsx @@ -7,7 +7,7 @@ import { BaseButton, Icon } from "coral-ui/components/v2"; import styles from "./ApproveButton.css"; -interface Props extends PropTypesOf<typeof BaseButton> { +interface Props extends Omit<PropTypesOf<typeof BaseButton>, "ref"> { invert?: boolean; } diff --git a/src/core/client/admin/components/ModerateCard/BanCommentUserMutation.ts b/src/core/client/admin/components/ModerateCard/BanCommentUserMutation.ts index b10d78a06..d78d372c1 100644 --- a/src/core/client/admin/components/ModerateCard/BanCommentUserMutation.ts +++ b/src/core/client/admin/components/ModerateCard/BanCommentUserMutation.ts @@ -34,12 +34,12 @@ const BanCommentUserMutation = createMutation( clientMutationId: clientMutationId.toString(), }, }, - updater: store => { + updater: (store) => { const user = store.get(input.userID); if (user) { const comments = user.getLinkedRecords("comments"); if (comments) { - comments.forEach(comment => { + comments.forEach((comment) => { if (comment) { comment.setLinkedRecord(user, "author"); } diff --git a/src/core/client/admin/components/ModerateCard/CommentAuthorContainer.tsx b/src/core/client/admin/components/ModerateCard/CommentAuthorContainer.tsx index 9ba2925d2..0ca231de5 100644 --- a/src/core/client/admin/components/ModerateCard/CommentAuthorContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/CommentAuthorContainer.tsx @@ -1,7 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Tag } from "coral-ui/components/v2"; import { CommentAuthorContainer_comment as CommentData } from "coral-admin/__generated__/CommentAuthorContainer_comment.graphql"; diff --git a/src/core/client/admin/components/ModerateCard/CommentRevisionContainer.tsx b/src/core/client/admin/components/ModerateCard/CommentRevisionContainer.tsx index 195023270..273459681 100644 --- a/src/core/client/admin/components/ModerateCard/CommentRevisionContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/CommentRevisionContainer.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { HorizontalGutter, Timestamp } from "coral-ui/components/v2"; import { CommentRevisionContainer_comment as CommentData } from "coral-admin/__generated__/CommentRevisionContainer_comment.graphql"; @@ -22,12 +23,12 @@ const CommentRevisionContainer: FunctionComponent<Props> = ({ {comment.revisionHistory .concat() .reverse() - .filter(c => + .filter((c) => comment && comment.revision && comment.revision.id ? comment.revision.id !== c.id : true ) - .map(c => ( + .map((c) => ( <div key={c.id}> <Timestamp>{c.createdAt}</Timestamp> <CommentContent phrases={settings}> diff --git a/src/core/client/admin/components/ModerateCard/FeatureButton.tsx b/src/core/client/admin/components/ModerateCard/FeatureButton.tsx index 3216cd2c6..ad61ebf0b 100644 --- a/src/core/client/admin/components/ModerateCard/FeatureButton.tsx +++ b/src/core/client/admin/components/ModerateCard/FeatureButton.tsx @@ -7,7 +7,7 @@ import { BaseButton } from "coral-ui/components/v2"; import styles from "./FeatureButton.css"; -interface Props extends PropTypesOf<typeof BaseButton> { +interface Props extends Omit<PropTypesOf<typeof BaseButton>, "ref"> { featured: boolean; enabled?: boolean; } diff --git a/src/core/client/admin/components/ModerateCard/FeatureCommentMutation.ts b/src/core/client/admin/components/ModerateCard/FeatureCommentMutation.ts index 88834a392..11d772e23 100644 --- a/src/core/client/admin/components/ModerateCard/FeatureCommentMutation.ts +++ b/src/core/client/admin/components/ModerateCard/FeatureCommentMutation.ts @@ -57,7 +57,7 @@ const FeatureCommentMutation = createMutation( }, storyID: input.storyID, }, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const comment = store.get(input.commentID)!; const tags = comment.getLinkedRecords("tags"); if (tags) { @@ -67,14 +67,14 @@ const FeatureCommentMutation = createMutation( comment.setValue(GQLCOMMENT_STATUS.APPROVED, "status"); } }, - updater: store => { + updater: (store) => { const connections = [ getQueueConnection(store, "PENDING", input.storyID), getQueueConnection(store, "REPORTED", input.storyID), getQueueConnection(store, "UNMODERATED", input.storyID), getQueueConnection(store, "REJECTED", input.storyID), - ].filter(c => c); - connections.forEach(con => + ].filter((c) => c); + connections.forEach((con) => ConnectionHandler.deleteNode(con!, input.commentID) ); }, diff --git a/src/core/client/admin/components/ModerateCard/LinkDetailsContainer.tsx b/src/core/client/admin/components/ModerateCard/LinkDetailsContainer.tsx index c76161a8b..b6597248e 100644 --- a/src/core/client/admin/components/ModerateCard/LinkDetailsContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/LinkDetailsContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; import CopyToClipboard from "react-copy-to-clipboard"; +import { graphql } from "react-relay"; import { getURLWithCommentID } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { getLocationOrigin } from "coral-framework/utils"; import { Button, Icon } from "coral-ui/components/v2"; diff --git a/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx b/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx index 036d16698..486a4332e 100644 --- a/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/MarkersContainer.tsx @@ -1,5 +1,5 @@ import { Localized } from "@fluent/react/compat"; -import React from "react"; +import React, { useMemo } from "react"; import { graphql } from "react-relay"; import { withFragmentContainer } from "coral-framework/lib/relay"; @@ -26,17 +26,17 @@ function hasDetails(c: MarkersContainer_comment) { } let keyCounter = 0; -const markers: Array< - (c: MarkersContainer_comment) => React.ReactElement<any> | null -> = [ - c => +const markers: Array<( + c: MarkersContainer_comment +) => React.ReactElement<any> | null> = [ + (c) => (c.status === "PREMOD" && ( <Localized id="moderate-marker-preMod" key={keyCounter++}> <Marker color="pending">Pre-Mod</Marker> </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_LINKS && ( <Localized id="moderate-marker-link" key={keyCounter++}> @@ -44,7 +44,7 @@ const markers: Array< </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_BANNED_WORD && ( <Localized id="moderate-marker-bannedWord" key={keyCounter++}> @@ -52,7 +52,7 @@ const markers: Array< </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_SUSPECT_WORD && ( <Localized id="moderate-marker-suspectWord" key={keyCounter++}> @@ -60,7 +60,7 @@ const markers: Array< </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_SPAM && ( <Localized id="moderate-marker-spamDetected" key={keyCounter++}> @@ -68,7 +68,7 @@ const markers: Array< </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_TOXIC && ( <Localized id="moderate-marker-toxic" key={keyCounter++}> @@ -76,7 +76,7 @@ const markers: Array< </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_REPEAT_POST && ( <Localized id="moderate-marker-repeatPost" key={keyCounter++}> @@ -84,7 +84,7 @@ const markers: Array< </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_RECENT_HISTORY && ( <Localized id="moderate-marker-recentHistory" key={keyCounter++}> @@ -92,7 +92,7 @@ const markers: Array< </Localized> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_REPORTED_OFFENSIVE && ( <Marker key={keyCounter++} color="reported"> @@ -105,7 +105,7 @@ const markers: Array< </Marker> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_REPORTED_SPAM && ( <Marker key={keyCounter++} color="reported"> @@ -118,7 +118,7 @@ const markers: Array< </Marker> )) || null, - c => + (c) => (c.revision && c.revision.actionCounts.flag.reasons.COMMENT_DETECTED_NEW_COMMENTER && ( <Localized id="moderate-marker-newCommenter" key={keyCounter++}> @@ -128,33 +128,38 @@ const markers: Array< null, ]; -export class MarkersContainer extends React.Component<MarkersContainerProps> { - public render() { - const elements = markers.map(cb => cb(this.props.comment)).filter(m => m); - const doesHaveDetails = hasDetails(this.props.comment); - if (elements.length === 0 && !doesHaveDetails) { - return null; - } - - return ( - <Markers - details={ - doesHaveDetails || this.props.comment.editing.edited ? ( - <ModerateCardDetailsContainer - hasDetails={!!doesHaveDetails} - hasRevisions={this.props.comment.editing.edited} - onUsernameClick={this.props.onUsernameClick} - comment={this.props.comment} - settings={this.props.settings} - /> - ) : null - } - > - {elements} - </Markers> - ); +export const MarkersContainer: React.FunctionComponent<MarkersContainerProps> = ( + props +) => { + const elements = useMemo( + () => markers.map((cb) => cb(props.comment)).filter((m) => m), + [markers, props.comment] + ); + const doesHaveDetails = useMemo(() => hasDetails(props.comment), [ + props.comment, + ]); + if (elements.length === 0 && !doesHaveDetails) { + return null; } -} + + return ( + <Markers + details={ + doesHaveDetails || props.comment.editing.edited ? ( + <ModerateCardDetailsContainer + hasDetails={!!doesHaveDetails} + hasRevisions={props.comment.editing.edited} + onUsernameClick={props.onUsernameClick} + comment={props.comment} + settings={props.settings} + /> + ) : null + } + > + {elements} + </Markers> + ); +}; const enhanced = withFragmentContainer<MarkersContainerProps>({ comment: graphql` diff --git a/src/core/client/admin/components/ModerateCard/ModerateCardContainer.tsx b/src/core/client/admin/components/ModerateCard/ModerateCardContainer.tsx index 60b130e35..92dca23b4 100644 --- a/src/core/client/admin/components/ModerateCard/ModerateCardContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/ModerateCardContainer.tsx @@ -64,7 +64,7 @@ function getStatus(comment: ModerateCardContainer_comment) { } function isFeatured(comment: ModerateCardContainer_comment) { - return comment.tags.some(t => t.code === GQLTAG.FEATURED); + return comment.tags.some((t) => t.code === GQLTAG.FEATURED); } const ModerateCardContainer: FunctionComponent<Props> = ({ diff --git a/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx b/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx index 0bc655017..1a2296d9a 100644 --- a/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx +++ b/src/core/client/admin/components/ModerateCard/ModerateCardDetailsContainer.tsx @@ -1,9 +1,7 @@ import { Localized } from "@fluent/react/compat"; -import React, { FunctionComponent, useState } from "react"; +import React, { FunctionComponent, useCallback, useState } from "react"; import { graphql } from "react-relay"; -import { ModerateCardDetailsContainer_comment as CommentData } from "coral-admin/__generated__/ModerateCardDetailsContainer_comment.graphql"; -import { ModerateCardDetailsContainer_settings as SettingsData } from "coral-admin/__generated__/ModerateCardDetailsContainer_settings.graphql"; import { withFragmentContainer } from "coral-framework/lib/relay"; import { Flex, @@ -13,6 +11,9 @@ import { TabBar, } from "coral-ui/components/v2"; +import { ModerateCardDetailsContainer_comment as CommentData } from "coral-admin/__generated__/ModerateCardDetailsContainer_comment.graphql"; +import { ModerateCardDetailsContainer_settings as SettingsData } from "coral-admin/__generated__/ModerateCardDetailsContainer_settings.graphql"; + import CommentRevisionContainer from "./CommentRevisionContainer"; import FlagDetailsContainer from "./FlagDetailsContainer"; import LinkDetailsContainer from "./LinkDetailsContainer"; @@ -40,13 +41,13 @@ const ModerateCardDetailsContainer: FunctionComponent<Props> = ({ hasDetails ? "DETAILS" : "HISTORY" ); + const onTabClick = useCallback((id) => setActiveTab(id as DetailsTabs), [ + setActiveTab, + ]); + return ( <HorizontalGutter> - <TabBar - variant="default" - activeTab={activeTab} - onTabClick={id => setActiveTab(id as DetailsTabs)} - > + <TabBar variant="default" activeTab={activeTab} onTabClick={onTabClick}> {hasDetails && ( <Tab tabID="DETAILS" classes={styles}> <Flex alignItems="center" itemGutter> diff --git a/src/core/client/admin/components/ModerateCard/RejectButton.tsx b/src/core/client/admin/components/ModerateCard/RejectButton.tsx index 5403796f5..1b4f74f55 100644 --- a/src/core/client/admin/components/ModerateCard/RejectButton.tsx +++ b/src/core/client/admin/components/ModerateCard/RejectButton.tsx @@ -7,7 +7,7 @@ import { BaseButton, Icon } from "coral-ui/components/v2"; import styles from "./RejectButton.css"; -interface Props extends PropTypesOf<typeof BaseButton> { +interface Props extends Omit<PropTypesOf<typeof BaseButton>, "ref"> { invert?: boolean; } diff --git a/src/core/client/admin/components/ModerateCard/UnfeatureCommentMutation.ts b/src/core/client/admin/components/ModerateCard/UnfeatureCommentMutation.ts index 7bcba6c1a..cfd9a4e16 100644 --- a/src/core/client/admin/components/ModerateCard/UnfeatureCommentMutation.ts +++ b/src/core/client/admin/components/ModerateCard/UnfeatureCommentMutation.ts @@ -31,11 +31,11 @@ const UnfeatureCommentMutation = createMutation( } } `, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const comment = store.get(input.commentID)!; const tags = comment.getLinkedRecords("tags")!; comment.setLinkedRecords( - tags.filter(t => t!.getValue("code") === GQLTAG.FEATURED), + tags.filter((t) => t.getValue("code") === GQLTAG.FEATURED), "tags" ); }, diff --git a/src/core/client/admin/components/ModerateCard/__snapshots__/ModeratedByContainer.spec.tsx.snap b/src/core/client/admin/components/ModerateCard/__snapshots__/ModeratedByContainer.spec.tsx.snap index 8083d37b3..dec528ef6 100644 --- a/src/core/client/admin/components/ModerateCard/__snapshots__/ModeratedByContainer.spec.tsx.snap +++ b/src/core/client/admin/components/ModerateCard/__snapshots__/ModeratedByContainer.spec.tsx.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`viewer's username shows on moderation cards moderated by viewer 1`] = ` -<ForwardRef(Relay(ModeratedByContainer)) +<Relay(ModeratedByContainer) comment={ Object { "id": "comment-id", diff --git a/src/core/client/admin/components/NotAvailable.tsx b/src/core/client/admin/components/NotAvailable.tsx index 7b070b732..3953603f9 100644 --- a/src/core/client/admin/components/NotAvailable.tsx +++ b/src/core/client/admin/components/NotAvailable.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import styles from "./NotAvailable.css"; -const NotAvailable: FunctionComponent = props => ( +const NotAvailable: FunctionComponent = (props) => ( <Localized id="general-notAvailable"> <span className={styles.root}>Not available</span> </Localized> diff --git a/src/core/client/admin/components/Timeline/Circle.tsx b/src/core/client/admin/components/Timeline/Circle.tsx index 19fd95cae..a7efdf29d 100644 --- a/src/core/client/admin/components/Timeline/Circle.tsx +++ b/src/core/client/admin/components/Timeline/Circle.tsx @@ -10,7 +10,7 @@ export interface CircleProps { color?: "light" | "regular"; } -const Circle: FunctionComponent<CircleProps> = props => { +const Circle: FunctionComponent<CircleProps> = (props) => { return ( <div className={cn(styles.root, props.className, { diff --git a/src/core/client/admin/components/Timeline/Line.tsx b/src/core/client/admin/components/Timeline/Line.tsx index 2c7dcab11..fc730490b 100644 --- a/src/core/client/admin/components/Timeline/Line.tsx +++ b/src/core/client/admin/components/Timeline/Line.tsx @@ -8,7 +8,7 @@ interface LineProps { dotted?: boolean; } -const Line: FunctionComponent<LineProps> = props => { +const Line: FunctionComponent<LineProps> = (props) => { return ( <div className={cn(styles.root, props.className, { diff --git a/src/core/client/admin/components/TranslatedRole.tsx b/src/core/client/admin/components/TranslatedRole.tsx index 0e703e152..83ffca619 100644 --- a/src/core/client/admin/components/TranslatedRole.tsx +++ b/src/core/client/admin/components/TranslatedRole.tsx @@ -19,7 +19,7 @@ function createElement( } } -const TranslatedRole: React.FunctionComponent<Props> = props => { +const TranslatedRole: React.FunctionComponent<Props> = (props) => { switch (props.children) { case GQLUSER_ROLE.COMMENTER: return ( diff --git a/src/core/client/admin/components/TranslatedStoryStatus.tsx b/src/core/client/admin/components/TranslatedStoryStatus.tsx index dc6f88e50..34110e702 100644 --- a/src/core/client/admin/components/TranslatedStoryStatus.tsx +++ b/src/core/client/admin/components/TranslatedStoryStatus.tsx @@ -19,7 +19,7 @@ function createElement( } } -const TranslatedRole: React.FunctionComponent<Props> = props => { +const TranslatedRole: React.FunctionComponent<Props> = (props) => { switch (props.children) { case GQLSTORY_STATUS.OPEN: return ( diff --git a/src/core/client/admin/components/UserHistoryDrawer/CreateModeratorNoteMutation.ts b/src/core/client/admin/components/UserHistoryDrawer/CreateModeratorNoteMutation.ts index 6eea9f2ef..3782529ca 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/CreateModeratorNoteMutation.ts +++ b/src/core/client/admin/components/UserHistoryDrawer/CreateModeratorNoteMutation.ts @@ -25,7 +25,7 @@ const CreateModeratorNoteMutation = createMutation( ) => { const viewer = getViewer(environment)!; const notes = - lookup<GQLUser>(environment, input.userID)!.moderatorNotes.map(note => { + lookup<GQLUser>(environment, input.userID)!.moderatorNotes.map((note) => { const createdBy = pick(note.createdBy, ["username", "id"]); return { ...pick(note, ["id", "body", "createdAt"]), @@ -40,6 +40,7 @@ const CreateModeratorNoteMutation = createMutation( ) { createModeratorNote(input: $input) { user { + id moderatorNotes { id body diff --git a/src/core/client/admin/components/UserHistoryDrawer/DeleteModeratorNoteMutation.ts b/src/core/client/admin/components/UserHistoryDrawer/DeleteModeratorNoteMutation.ts index dc741c630..149300b1a 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/DeleteModeratorNoteMutation.ts +++ b/src/core/client/admin/components/UserHistoryDrawer/DeleteModeratorNoteMutation.ts @@ -23,7 +23,7 @@ const DeleteModeratorNoteMutation = createMutation( { uuidGenerator }: CoralContext ) => { const notes = - lookup<GQLUser>(environment, input.userID)!.moderatorNotes.map(note => { + lookup<GQLUser>(environment, input.userID)!.moderatorNotes.map((note) => { const createdBy = pick(note.createdBy, ["username", "id"]); return { ...pick(note, ["id", "body", "createdAt"]), @@ -37,6 +37,7 @@ const DeleteModeratorNoteMutation = createMutation( ) { deleteModeratorNote(input: $input) { user { + id moderatorNotes { id body @@ -61,7 +62,7 @@ const DeleteModeratorNoteMutation = createMutation( deleteModeratorNote: { user: { id: input.userID, - moderatorNotes: notes.filter(note => note.id !== input.id), + moderatorNotes: notes.filter((note) => note.id !== input.id), }, clientMutationId: (clientMutationId++).toString(), }, diff --git a/src/core/client/admin/components/UserHistoryDrawer/RecentHistoryContainer.tsx b/src/core/client/admin/components/UserHistoryDrawer/RecentHistoryContainer.tsx index ecc0991e9..ce0f93269 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/RecentHistoryContainer.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/RecentHistoryContainer.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent, useMemo } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { GQLCOMMENT_STATUS } from "coral-framework/schema"; import { RecentHistoryContainer_settings } from "coral-admin/__generated__/RecentHistoryContainer_settings.graphql"; diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserBadgesContainer.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserBadgesContainer.tsx index bdf419266..9dd69128b 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserBadgesContainer.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserBadgesContainer.tsx @@ -17,7 +17,7 @@ const UserBadgesContainer: FunctionComponent<Props> = ({ user }) => { } return ( <> - {user.badges.map(badge => ( + {user.badges.map((badge) => ( <Tag key={badge} color="dark" diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistory.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistory.tsx index 5db726f27..ae91bcd33 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistory.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistory.tsx @@ -1,8 +1,9 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent, useMemo } from "react"; +import { graphql } from "react-relay"; import { useCoralContext } from "coral-framework/lib/bootstrap"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { CallOut, HorizontalGutter, @@ -53,7 +54,7 @@ const UserDrawerAccountHistory: FunctionComponent<Props> = ({ user }) => { const history: HistoryRecord[] = []; // Merge in all the suspension history items. - user.status.suspension.history.forEach(record => { + user.status.suspension.history.forEach((record) => { const from: From = { start: new Date(record.from.start), finish: new Date(record.from.finish), @@ -96,7 +97,7 @@ const UserDrawerAccountHistory: FunctionComponent<Props> = ({ user }) => { }); // Merge in all the ban status history items. - user.status.ban.history.forEach(record => { + user.status.ban.history.forEach((record) => { history.push({ kind: "ban", action: { @@ -108,7 +109,7 @@ const UserDrawerAccountHistory: FunctionComponent<Props> = ({ user }) => { }); // Merge in all the premod history items. - user.status.premod.history.forEach(record => { + user.status.premod.history.forEach((record) => { history.push({ kind: "premod", action: { diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistoryQuery.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistoryQuery.tsx index c06acc9be..eebd0ee61 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistoryQuery.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerAccountHistoryQuery.tsx @@ -1,11 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - QueryRenderData, - QueryRenderer, -} from "coral-framework/lib/relay"; +import { QueryRenderData, QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Spinner } from "coral-ui/components/v2"; import { UserDrawerAccountHistoryQuery as QueryTypes } from "coral-admin/__generated__/UserDrawerAccountHistoryQuery.graphql"; diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesContainer.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesContainer.tsx index c20c10f0b..f95eeda78 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesContainer.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesContainer.tsx @@ -2,12 +2,9 @@ import { Localized } from "@fluent/react/compat"; import { FormApi } from "final-form"; import React, { FunctionComponent, useCallback } from "react"; import { Field, Form } from "react-final-form"; +import { graphql } from "react-relay"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { required } from "coral-framework/lib/validation"; import { Button, @@ -91,7 +88,7 @@ const UserDrawerNotesContainer: FunctionComponent<Props> = ({ .concat() .reverse() .map( - note => + (note) => note && ( <ModeratorNote key={note.id} diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesQuery.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesQuery.tsx index c9edc1de4..b724ac098 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesQuery.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserDrawerNotesQuery.tsx @@ -1,7 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, QueryRenderer } from "coral-framework/lib/relay"; +import { QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Spinner } from "coral-ui/components/v2"; import { UserDrawerNotesQuery as QueryTypes } from "coral-admin/__generated__/UserDrawerNotesQuery.graphql"; diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllComments.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllComments.tsx index d2333b003..0115452c4 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllComments.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllComments.tsx @@ -37,7 +37,7 @@ const UserHistoryDrawerAllComments: FunctionComponent<Props> = ({ }, [loadMore]); const hasMore = relay.hasMore(); - const comments = user ? user.allComments.edges.map(edge => edge.node) : []; + const comments = user ? user.allComments.edges.map((edge) => edge.node) : []; if (comments.length === 0) { return ( @@ -59,7 +59,7 @@ const UserHistoryDrawerAllComments: FunctionComponent<Props> = ({ <ModerateCardContainer comment={c} settings={settings} - danglingLogic={status => false} + danglingLogic={(status) => false} hideUsername showStoryInfo mini diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllCommentsQuery.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllCommentsQuery.tsx index ef560d342..a7e52f2dd 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllCommentsQuery.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerAllCommentsQuery.tsx @@ -1,7 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, QueryRenderer } from "coral-framework/lib/relay"; +import { QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Spinner } from "coral-ui/components/v2"; import { UserHistoryDrawerAllCommentsQuery as QueryTypes } from "coral-admin/__generated__/UserHistoryDrawerAllCommentsQuery.graphql"; diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerContainer.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerContainer.tsx index bb651296c..216d79b7a 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerContainer.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerContainer.tsx @@ -1,10 +1,11 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { UserStatusChangeContainer } from "coral-admin/components/UserStatus"; import { CopyButton } from "coral-framework/components"; import { useCoralContext } from "coral-framework/lib/bootstrap"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button, Divider, diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerQuery.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerQuery.tsx index e535e7ed3..4aafa5c79 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerQuery.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerQuery.tsx @@ -1,11 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - QueryRenderData, - QueryRenderer, -} from "coral-framework/lib/relay"; +import { QueryRenderData, QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Spinner } from "coral-ui/components/v2"; import { UserHistoryDrawerQuery as QueryTypes } from "coral-admin/__generated__/UserHistoryDrawerQuery.graphql"; diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedComments.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedComments.tsx index 2b8be0c9a..96b9be882 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedComments.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedComments.tsx @@ -15,6 +15,8 @@ import { UserHistoryDrawerRejectedCommentsPaginationQueryVariables } from "coral import styles from "./UserHistoryDrawerRejectedComments.css"; +const danglingLogic = () => false; + interface Props { user: UserHistoryDrawerRejectedComments_user; settings: UserHistoryDrawerRejectedComments_settings; @@ -38,7 +40,7 @@ const UserHistoryDrawerRejectedComments: FunctionComponent<Props> = ({ const hasMore = relay.hasMore(); const comments = user - ? user.rejectedComments.edges.map(edge => edge.node) + ? user.rejectedComments.edges.map((edge) => edge.node) : []; if (comments.length === 0) { @@ -61,7 +63,7 @@ const UserHistoryDrawerRejectedComments: FunctionComponent<Props> = ({ <ModerateCardContainer comment={c} settings={settings} - danglingLogic={status => false} + danglingLogic={danglingLogic} hideUsername showStoryInfo mini diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedCommentsQuery.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedCommentsQuery.tsx index 4cba2b7fa..3bcbd7b11 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedCommentsQuery.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserHistoryDrawerRejectedCommentsQuery.tsx @@ -1,7 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, QueryRenderer } from "coral-framework/lib/relay"; +import { QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Spinner } from "coral-ui/components/v2"; import UserHistoryDrawerRejectedComments from "./UserHistoryDrawerRejectedComments"; diff --git a/src/core/client/admin/components/UserHistoryDrawer/UserStatusDetailsContainer.tsx b/src/core/client/admin/components/UserHistoryDrawer/UserStatusDetailsContainer.tsx index 392f71ba5..fd195ed6c 100644 --- a/src/core/client/admin/components/UserHistoryDrawer/UserStatusDetailsContainer.tsx +++ b/src/core/client/admin/components/UserHistoryDrawer/UserStatusDetailsContainer.tsx @@ -1,8 +1,9 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent, useMemo } from "react"; +import { graphql } from "react-relay"; import { useCoralContext } from "coral-framework/lib/bootstrap"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { BaseButton, Box, @@ -25,11 +26,11 @@ const UserStatusDetailsContainer: FunctionComponent<Props> = ({ user }) => { } const activeBan = useMemo(() => { - return user.status.ban.history.find(item => item.active); + return user.status.ban.history.find((item) => item.active); }, [user]); const activeSuspension = useMemo(() => { - return user.status.suspension.history.find(item => item.active); + return user.status.suspension.history.find((item) => item.active); }, [user]); const { locales } = useCoralContext(); @@ -122,7 +123,7 @@ const UserStatusDetailsContainer: FunctionComponent<Props> = ({ user }) => { > {({ toggleVisibility, ref }) => ( <BaseButton - onClick={evt => { + onClick={(evt) => { evt.stopPropagation(); toggleVisibility(); }} diff --git a/src/core/client/admin/components/UserRole/UserRoleChange.tsx b/src/core/client/admin/components/UserRole/UserRoleChange.tsx index 9c0a90ae4..676e61f63 100644 --- a/src/core/client/admin/components/UserRole/UserRoleChange.tsx +++ b/src/core/client/admin/components/UserRole/UserRoleChange.tsx @@ -21,7 +21,7 @@ interface Props { role: GQLUSER_ROLE_RL; } -const UserRoleChange: FunctionComponent<Props> = props => ( +const UserRoleChange: FunctionComponent<Props> = (props) => ( <Localized id="community-role-popover" attrs={{ description: true }}> <Popover id="community-roleChange" diff --git a/src/core/client/admin/components/UserRole/UserRoleChangeContainer.tsx b/src/core/client/admin/components/UserRole/UserRoleChangeContainer.tsx index a5589bed1..9a6bb4df6 100644 --- a/src/core/client/admin/components/UserRole/UserRoleChangeContainer.tsx +++ b/src/core/client/admin/components/UserRole/UserRoleChangeContainer.tsx @@ -1,11 +1,8 @@ import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; import { Ability, can } from "coral-admin/permissions"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { GQLUSER_ROLE_RL } from "coral-framework/schema"; import { UserRoleChangeContainer_user } from "coral-admin/__generated__/UserRoleChangeContainer_user.graphql"; @@ -21,7 +18,7 @@ interface Props { user: UserRoleChangeContainer_user; } -const UserRoleChangeContainer: FunctionComponent<Props> = props => { +const UserRoleChangeContainer: FunctionComponent<Props> = (props) => { const updateUserRole = useMutation(UpdateUserRoleMutation); const handleOnChangeRole = useCallback( (role: GQLUSER_ROLE_RL) => { diff --git a/src/core/client/admin/components/UserRole/UserRoleText.tsx b/src/core/client/admin/components/UserRole/UserRoleText.tsx index 36e294c7e..9208bfa82 100644 --- a/src/core/client/admin/components/UserRole/UserRoleText.tsx +++ b/src/core/client/admin/components/UserRole/UserRoleText.tsx @@ -11,7 +11,7 @@ interface Props { children: PropTypesOf<typeof TranslatedRole>["children"]; } -const UserRoleText: FunctionComponent<Props> = props => ( +const UserRoleText: FunctionComponent<Props> = (props) => ( <TranslatedRole container={ <span diff --git a/src/core/client/admin/components/UserStatus/BanModal.tsx b/src/core/client/admin/components/UserStatus/BanModal.tsx index 4a7092a76..c3905fbad 100644 --- a/src/core/client/admin/components/UserStatus/BanModal.tsx +++ b/src/core/client/admin/components/UserStatus/BanModal.tsx @@ -62,7 +62,9 @@ const BanModal: FunctionComponent<Props> = ({ <Localized id="community-banModal-areYouSure" strong={<ModalHeaderUsername />} - $username={username || <NotAvailable />} + username={React.createElement(() => ( + <strong>{username || <NotAvailable />}</strong> + ))} > <ChangeStatusModalHeader id="banModal-title"> Are you sure you want to ban{" "} diff --git a/src/core/client/admin/components/UserStatus/ChangeStatusModal.tsx b/src/core/client/admin/components/UserStatus/ChangeStatusModal.tsx index 1f102bbf1..5c9d524d7 100644 --- a/src/core/client/admin/components/UserStatus/ChangeStatusModal.tsx +++ b/src/core/client/admin/components/UserStatus/ChangeStatusModal.tsx @@ -31,7 +31,7 @@ const ChangeStatusModal: FunctionComponent<Props> = ({ }) => { return ( <Modal {...rest} onClose={onClose}> - {renderProps => ( + {(renderProps) => ( <Card className={styles.root}> <Flex justifyContent="flex-end"> <CardCloseButton diff --git a/src/core/client/admin/components/UserStatus/ChangeStatusModalHeader.tsx b/src/core/client/admin/components/UserStatus/ChangeStatusModalHeader.tsx index 26eef3fe8..e94b65aa1 100644 --- a/src/core/client/admin/components/UserStatus/ChangeStatusModalHeader.tsx +++ b/src/core/client/admin/components/UserStatus/ChangeStatusModalHeader.tsx @@ -2,9 +2,9 @@ import React, { FunctionComponent, HTMLAttributes } from "react"; import styles from "./ChangeStatusModalHeader.css"; -const ChangeStatusModalHeader: FunctionComponent< - HTMLAttributes<HTMLHeadingElement> -> = ({ children, ...rest }) => { +const ChangeStatusModalHeader: FunctionComponent<HTMLAttributes< + HTMLHeadingElement +>> = ({ children, ...rest }) => { return ( <h2 {...rest} className={styles.root}> {children} diff --git a/src/core/client/admin/components/UserStatus/RemoveUserBanMutation.ts b/src/core/client/admin/components/UserStatus/RemoveUserBanMutation.ts index 4b9745ec8..a4ad8ecec 100644 --- a/src/core/client/admin/components/UserStatus/RemoveUserBanMutation.ts +++ b/src/core/client/admin/components/UserStatus/RemoveUserBanMutation.ts @@ -54,7 +54,7 @@ const RemoveUserBanMutation = createMutation( current: lookup<GQLUser>( environment, input.userID - )!.status.current.filter(s => s !== GQLUSER_STATUS.BANNED), + )!.status.current.filter((s) => s !== GQLUSER_STATUS.BANNED), ban: { active: false, history: [], diff --git a/src/core/client/admin/components/UserStatus/RemoveUserPremodMutation.ts b/src/core/client/admin/components/UserStatus/RemoveUserPremodMutation.ts index 69bc85d1c..3f6dda597 100644 --- a/src/core/client/admin/components/UserStatus/RemoveUserPremodMutation.ts +++ b/src/core/client/admin/components/UserStatus/RemoveUserPremodMutation.ts @@ -57,7 +57,7 @@ const RemoveUserPremodMutation = createMutation( current: lookup<GQLUser>( environment, input.userID - )!.status.current.filter(s => s !== GQLUSER_STATUS.PREMOD), + )!.status.current.filter((s) => s !== GQLUSER_STATUS.PREMOD), premod: { active: false, history: [ diff --git a/src/core/client/admin/components/UserStatus/RemoveUserSuspensionMutation.ts b/src/core/client/admin/components/UserStatus/RemoveUserSuspensionMutation.ts index 9cbb33050..e76eb7548 100644 --- a/src/core/client/admin/components/UserStatus/RemoveUserSuspensionMutation.ts +++ b/src/core/client/admin/components/UserStatus/RemoveUserSuspensionMutation.ts @@ -23,7 +23,7 @@ const RemoveUserSuspensionMutation = createMutation( MutationTypes["response"]["removeUserSuspension"]["user"]["status"]["suspension"]["history"] > = []; if (user.status.suspension.history) { - newHistory = user.status.suspension.history.map(h => + newHistory = user.status.suspension.history.map((h) => pick(h, [ "active", "from.start", diff --git a/src/core/client/admin/components/UserStatus/SuspendForm.tsx b/src/core/client/admin/components/UserStatus/SuspendForm.tsx index 0e578675f..cbb39fca1 100644 --- a/src/core/client/admin/components/UserStatus/SuspendForm.tsx +++ b/src/core/client/admin/components/UserStatus/SuspendForm.tsx @@ -65,7 +65,7 @@ const SuspendForm: FunctionComponent<Props> = ({ const onFormSubmit = useCallback( ({ duration, emailMessage }) => { - const unit = DURATIONS.find(d => d.value === duration); + const unit = DURATIONS.find((d) => d.value === duration); onSubmit(unit!, emailMessage); }, [onSubmit] @@ -76,7 +76,7 @@ const SuspendForm: FunctionComponent<Props> = ({ if (state.lastFormState) { const { duration, emailMessage } = state.lastFormState .values as FormStateValues; - const unit = DURATIONS.find(d => d.value === duration); + const unit = DURATIONS.find((d) => d.value === duration); const expectedEmailMessage = getMessageWithDuration(unit!); if (expectedEmailMessage === emailMessage) { changeValue(state, name, () => newValue); @@ -94,7 +94,7 @@ const SuspendForm: FunctionComponent<Props> = ({ if (state.lastFormState && !checked) { const { duration, emailMessage } = state.lastFormState .values as FormStateValues; - const unit = DURATIONS.find(d => d.value === duration); + const unit = DURATIONS.find((d) => d.value === duration); const expectedEmailMessage = getMessageWithDuration(unit!); if (expectedEmailMessage !== emailMessage) { changeValue(state, name, () => expectedEmailMessage); @@ -141,7 +141,7 @@ const SuspendForm: FunctionComponent<Props> = ({ <RadioButton {...input} id={`duration-${value}`} - onChange={event => { + onChange={(event) => { form.mutators.setMessageValue( "emailMessage", getMessageWithDuration({ scaled, unit }) @@ -165,7 +165,7 @@ const SuspendForm: FunctionComponent<Props> = ({ <CheckBox {...input} id="suspendModal-editMessage" - onChange={event => { + onChange={(event) => { form.mutators.resetMessageValue( "emailMessage", !input.checked diff --git a/src/core/client/admin/components/UserStatus/UserStatus.tsx b/src/core/client/admin/components/UserStatus/UserStatus.tsx index 4bd4e9eb0..9f347ac6e 100644 --- a/src/core/client/admin/components/UserStatus/UserStatus.tsx +++ b/src/core/client/admin/components/UserStatus/UserStatus.tsx @@ -20,7 +20,7 @@ const render = (className: string, content: React.ReactNode) => ( </div> ); -const UserStatus: FunctionComponent<Props> = props => { +const UserStatus: FunctionComponent<Props> = (props) => { if (props.banned) { return render( styles.error, diff --git a/src/core/client/admin/components/UserStatus/UserStatusChangeContainer.tsx b/src/core/client/admin/components/UserStatus/UserStatusChangeContainer.tsx index 82fa686fd..ef22caac0 100644 --- a/src/core/client/admin/components/UserStatus/UserStatusChangeContainer.tsx +++ b/src/core/client/admin/components/UserStatus/UserStatusChangeContainer.tsx @@ -1,10 +1,7 @@ import React, { FunctionComponent, useCallback, useState } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { GQLUSER_ROLE } from "coral-framework/schema"; import { UserStatusChangeContainer_settings as SettingsData } from "coral-admin/__generated__/UserStatusChangeContainer_settings.graphql"; @@ -29,7 +26,7 @@ interface Props { bordered?: boolean; } -const UserStatusChangeContainer: FunctionComponent<Props> = props => { +const UserStatusChangeContainer: FunctionComponent<Props> = (props) => { const { user, settings, fullWidth, bordered } = props; const banUser = useMutation(BanUserMutation); const suspendUser = useMutation(SuspendUserMutation); diff --git a/src/core/client/admin/components/UserStatus/UserStatusContainer.tsx b/src/core/client/admin/components/UserStatus/UserStatusContainer.tsx index 4ffd5e0a3..54c5661af 100644 --- a/src/core/client/admin/components/UserStatus/UserStatusContainer.tsx +++ b/src/core/client/admin/components/UserStatus/UserStatusContainer.tsx @@ -12,7 +12,7 @@ interface Props { user: UserData; } -const UserStatusContainer: FunctionComponent<Props> = props => { +const UserStatusContainer: FunctionComponent<Props> = (props) => { return ( <UserStatus banned={props.user.status.current.includes(GQLUSER_STATUS.BANNED)} diff --git a/src/core/client/admin/helpers/getPhrasesRegExp.ts b/src/core/client/admin/helpers/getPhrasesRegExp.ts index df303534c..e9094653b 100644 --- a/src/core/client/admin/helpers/getPhrasesRegExp.ts +++ b/src/core/client/admin/helpers/getPhrasesRegExp.ts @@ -50,7 +50,7 @@ const cache: Cache = { value: null, }; -export default function(options: GetPhrasesRegExpOptions) { +export default function (options: GetPhrasesRegExpOptions) { // We assume that the cache is valid unless one of the below checks fails. let expired = false; diff --git a/src/core/client/admin/helpers/markHTMLNode.ts b/src/core/client/admin/helpers/markHTMLNode.ts index e1ffd617b..866185e2d 100644 --- a/src/core/client/admin/helpers/markHTMLNode.ts +++ b/src/core/client/admin/helpers/markHTMLNode.ts @@ -29,7 +29,7 @@ function markPhrasesHTML(text: string, expression: RegExp) { // markHTMLNode manipulates the node by looking for #text nodes and adding // markers. export default function markHTMLNode(parentNode: Node, expression: RegExp) { - parentNode.childNodes.forEach(node => { + parentNode.childNodes.forEach((node) => { // Anchor links are already marked by default, skip them now. if (node.nodeName === "A") { return; diff --git a/src/core/client/admin/local/initLocalState.ts b/src/core/client/admin/local/initLocalState.ts index 8401c6a9e..bb2e49fb1 100644 --- a/src/core/client/admin/local/initLocalState.ts +++ b/src/core/client/admin/local/initLocalState.ts @@ -62,7 +62,7 @@ export default async function initLocalState( await initLocalBaseState(environment, context, accessToken); - commitLocalUpdate(environment, s => { + commitLocalUpdate(environment, (s) => { const localRecord = s.get(LOCAL_ID)!; localRecord.setValue(redirectPath, "redirectPath"); diff --git a/src/core/client/admin/mutations/ApproveCommentMutation.ts b/src/core/client/admin/mutations/ApproveCommentMutation.ts index 9179ea7ea..1755a6ddf 100644 --- a/src/core/client/admin/mutations/ApproveCommentMutation.ts +++ b/src/core/client/admin/mutations/ApproveCommentMutation.ts @@ -65,19 +65,19 @@ const ApproveCommentMutation = createMutation( }, storyID: input.storyID, }, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const proxy = store.get(input.commentID)!; proxy.setValue("APPROVED", "status"); proxy.setValue(true, "viewerDidModerate"); }, - updater: store => { + updater: (store) => { const connections = [ getQueueConnection(store, "REPORTED", input.storyID), getQueueConnection(store, "PENDING", input.storyID), getQueueConnection(store, "UNMODERATED", input.storyID), getQueueConnection(store, "REJECTED", input.storyID), - ].filter(c => c); - connections.forEach(con => + ].filter((c) => c); + connections.forEach((con) => ConnectionHandler.deleteNode(con!, input.commentID) ); }, diff --git a/src/core/client/admin/mutations/RejectCommentMutation.ts b/src/core/client/admin/mutations/RejectCommentMutation.ts index 67e61a50b..fc87b3a0a 100644 --- a/src/core/client/admin/mutations/RejectCommentMutation.ts +++ b/src/core/client/admin/mutations/RejectCommentMutation.ts @@ -65,19 +65,19 @@ const RejectCommentMutation = createMutation( }, storyID: input.storyID, }, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const proxy = store.get(input.commentID)!; proxy.setValue("REJECTED", "status"); proxy.setValue(true, "viewerDidModerate"); }, - updater: store => { + updater: (store) => { const connections = [ getQueueConnection(store, "REPORTED", input.storyID), getQueueConnection(store, "PENDING", input.storyID), getQueueConnection(store, "UNMODERATED", input.storyID), getQueueConnection(store, "APPROVED", input.storyID), - ].filter(c => c); - connections.forEach(con => + ].filter((c) => c); + connections.forEach((con) => ConnectionHandler.deleteNode(con!, input.commentID) ); }, diff --git a/src/core/client/admin/mutations/SetRedirectPathMutation.ts b/src/core/client/admin/mutations/SetRedirectPathMutation.ts index b851134f3..25ea88c34 100644 --- a/src/core/client/admin/mutations/SetRedirectPathMutation.ts +++ b/src/core/client/admin/mutations/SetRedirectPathMutation.ts @@ -21,7 +21,7 @@ const SetRedirectPathMutation = createMutation( await localStorage.setItem(REDIRECT_PATH_KEY, input.path); } - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; record.setValue(input.path, "redirectPath"); }); diff --git a/src/core/client/admin/routes/AuthCheck/AuthCheckRoute.tsx b/src/core/client/admin/routes/AuthCheck/AuthCheckRoute.tsx index dff36cb4b..cdae92c97 100644 --- a/src/core/client/admin/routes/AuthCheck/AuthCheckRoute.tsx +++ b/src/core/client/admin/routes/AuthCheck/AuthCheckRoute.tsx @@ -1,10 +1,11 @@ import { Match, Router, withRouter } from "found"; import React from "react"; +import { graphql } from "react-relay"; import { SetRedirectPathMutation } from "coral-admin/mutations"; import { AbilityType, can } from "coral-admin/permissions"; import { roleIsAtLeast } from "coral-framework/helpers"; -import { graphql, MutationProp, withMutation } from "coral-framework/lib/relay"; +import { MutationProp, withMutation } from "coral-framework/lib/relay"; import { withRouteConfig } from "coral-framework/lib/router"; import { GQLUSER_ROLE } from "coral-framework/schema"; diff --git a/src/core/client/admin/routes/AuthCheck/RestrictedContainer.tsx b/src/core/client/admin/routes/AuthCheck/RestrictedContainer.tsx index 0b315dec3..1a24396e1 100644 --- a/src/core/client/admin/routes/AuthCheck/RestrictedContainer.tsx +++ b/src/core/client/admin/routes/AuthCheck/RestrictedContainer.tsx @@ -1,10 +1,10 @@ import { RouteProps } from "found"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import { SetRedirectPathMutation } from "coral-admin/mutations"; import { timeout } from "coral-common/utils"; import { - graphql, MutationProp, withFragmentContainer, withMutation, diff --git a/src/core/client/admin/routes/Community/Community.tsx b/src/core/client/admin/routes/Community/Community.tsx index 7d460b569..96dc625c1 100644 --- a/src/core/client/admin/routes/Community/Community.tsx +++ b/src/core/client/admin/routes/Community/Community.tsx @@ -11,7 +11,7 @@ interface Props { query: PropTypesOf<typeof UserTableContainer>["query"]; } -const Community: FunctionComponent<Props> = props => ( +const Community: FunctionComponent<Props> = (props) => ( <MainLayout className={styles.root} data-testid="community-container"> <UserTableContainer query={props.query} /> </MainLayout> diff --git a/src/core/client/admin/routes/Community/CommunityRoute.tsx b/src/core/client/admin/routes/Community/CommunityRoute.tsx index 05cddc79b..19444c330 100644 --- a/src/core/client/admin/routes/Community/CommunityRoute.tsx +++ b/src/core/client/admin/routes/Community/CommunityRoute.tsx @@ -13,7 +13,7 @@ interface Props { form: FormApi; } -const CommunityRoute: FunctionComponent<Props> = props => { +const CommunityRoute: FunctionComponent<Props> = (props) => { return <Community query={props.data} />; }; diff --git a/src/core/client/admin/routes/Community/EmptyMessage.tsx b/src/core/client/admin/routes/Community/EmptyMessage.tsx index 8adb6c36f..84522a2db 100644 --- a/src/core/client/admin/routes/Community/EmptyMessage.tsx +++ b/src/core/client/admin/routes/Community/EmptyMessage.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import styles from "./EmptyMessage.css"; -const EmptyMessage: FunctionComponent = props => ( +const EmptyMessage: FunctionComponent = (props) => ( <Localized id="community-emptyMessage"> <div className={styles.root}> We could not find anyone in your community matching your criteria. diff --git a/src/core/client/admin/routes/Community/InviteUsers/InviteUsersContainer.tsx b/src/core/client/admin/routes/Community/InviteUsers/InviteUsersContainer.tsx index 674cfbbc7..c8b06d782 100644 --- a/src/core/client/admin/routes/Community/InviteUsers/InviteUsersContainer.tsx +++ b/src/core/client/admin/routes/Community/InviteUsers/InviteUsersContainer.tsx @@ -1,7 +1,8 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { Ability, can } from "coral-admin/permissions"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { InviteUsersContainer_settings } from "coral-admin/__generated__/InviteUsersContainer_settings.graphql"; import { InviteUsersContainer_viewer } from "coral-admin/__generated__/InviteUsersContainer_viewer.graphql"; diff --git a/src/core/client/admin/routes/Community/UserRowContainer.tsx b/src/core/client/admin/routes/Community/UserRowContainer.tsx index a777cdd66..65db615ac 100644 --- a/src/core/client/admin/routes/Community/UserRowContainer.tsx +++ b/src/core/client/admin/routes/Community/UserRowContainer.tsx @@ -17,7 +17,7 @@ interface Props { onUsernameClicked?: (userID: string) => void; } -const UserRowContainer: FunctionComponent<Props> = props => { +const UserRowContainer: FunctionComponent<Props> = (props) => { const { locales } = useCoralContext(); return ( <UserRow diff --git a/src/core/client/admin/routes/Community/UserTable.tsx b/src/core/client/admin/routes/Community/UserTable.tsx index 9d1c04f6c..06120eb8e 100644 --- a/src/core/client/admin/routes/Community/UserTable.tsx +++ b/src/core/client/admin/routes/Community/UserTable.tsx @@ -83,7 +83,7 @@ const UserTable: FunctionComponent<Props> = ({ {!props.loading && settings && viewer && - props.users.map(u => ( + props.users.map((u) => ( <UserRowContainer key={u.id} user={u} diff --git a/src/core/client/admin/routes/Community/UserTableContainer.tsx b/src/core/client/admin/routes/Community/UserTableContainer.tsx index 119a64b6a..2f2b2fd64 100644 --- a/src/core/client/admin/routes/Community/UserTableContainer.tsx +++ b/src/core/client/admin/routes/Community/UserTableContainer.tsx @@ -21,9 +21,9 @@ interface Props { relay: RelayPaginationProp; } -const UserTableContainer: FunctionComponent<Props> = props => { +const UserTableContainer: FunctionComponent<Props> = (props) => { const users = props.query - ? props.query.users.edges.map(edge => edge.node) + ? props.query.users.edges.map((edge) => edge.node) : []; const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); diff --git a/src/core/client/admin/routes/Community/UserTableFilter.tsx b/src/core/client/admin/routes/Community/UserTableFilter.tsx index 2d7ba1bcf..be8bba1f2 100644 --- a/src/core/client/admin/routes/Community/UserTableFilter.tsx +++ b/src/core/client/admin/routes/Community/UserTableFilter.tsx @@ -34,7 +34,7 @@ interface Props { settings: PropTypesOf<typeof InviteUsersContainer>["settings"]; } -const UserTableFilter: FunctionComponent<Props> = props => ( +const UserTableFilter: FunctionComponent<Props> = (props) => ( <Flex justifyContent="space-between" alignItems="flex-end"> <Flex itemGutter="double"> <FieldSet> @@ -105,7 +105,7 @@ const UserTableFilter: FunctionComponent<Props> = props => ( aria-label="Search by role" value={props.roleFilter || ""} className={styles.selectField} - onChange={e => + onChange={(e) => props.onSetRoleFilter((e.target.value as any) || null) } > @@ -148,7 +148,7 @@ const UserTableFilter: FunctionComponent<Props> = props => ( aria-label="Search by status" value={props.statusFilter || ""} className={styles.selectField} - onChange={e => + onChange={(e) => props.onSetStatusFilter((e.target.value as any) || null) } > diff --git a/src/core/client/admin/routes/Configure/Fields/LocaleField.tsx b/src/core/client/admin/routes/Configure/Fields/LocaleField.tsx index c9100748c..fee538c5e 100644 --- a/src/core/client/admin/routes/Configure/Fields/LocaleField.tsx +++ b/src/core/client/admin/routes/Configure/Fields/LocaleField.tsx @@ -4,11 +4,11 @@ import { LanguageCode, LOCALES_MAP } from "coral-common/helpers/i18n"; import { PropTypesOf } from "coral-framework/types"; import { Option, SelectField } from "coral-ui/components/v2"; -interface Props extends PropTypesOf<typeof SelectField> { +interface Props extends Omit<PropTypesOf<typeof SelectField>, "ref"> { value: LanguageCode; } -const LocaleField: FunctionComponent<Props> = props => { +const LocaleField: FunctionComponent<Props> = (props) => { return ( <SelectField {...props}> {Object.keys(LOCALES_MAP).map((lang: LanguageCode) => { diff --git a/src/core/client/admin/routes/Configure/Link.tsx b/src/core/client/admin/routes/Configure/Link.tsx index bf034eb52..e60901468 100644 --- a/src/core/client/admin/routes/Configure/Link.tsx +++ b/src/core/client/admin/routes/Configure/Link.tsx @@ -9,7 +9,7 @@ interface Props { to: string | LocationDescriptor; } -const Link: FunctionComponent<Props> = props => ( +const Link: FunctionComponent<Props> = (props) => ( <li className={props.className}> <FoundLink to={props.to} diff --git a/src/core/client/admin/routes/Configure/TextFieldWithValidation.tsx b/src/core/client/admin/routes/Configure/TextFieldWithValidation.tsx index 55c2347b9..3a3c92513 100644 --- a/src/core/client/admin/routes/Configure/TextFieldWithValidation.tsx +++ b/src/core/client/admin/routes/Configure/TextFieldWithValidation.tsx @@ -1,7 +1,7 @@ import React, { FunctionComponent } from "react"; import { FieldMeta, hasError } from "coral-framework/lib/form/helpers"; -import { DeepPartial, Omit } from "coral-framework/types"; +import { DeepPartial } from "coral-framework/types"; import HorizontalGutter from "coral-ui/components/HorizontalGutter"; import TextField, { TextFieldProps } from "coral-ui/components/v2/TextField"; diff --git a/src/core/client/admin/routes/Configure/ValidationMessage.tsx b/src/core/client/admin/routes/Configure/ValidationMessage.tsx index 492f2a168..3df7f9a5e 100644 --- a/src/core/client/admin/routes/Configure/ValidationMessage.tsx +++ b/src/core/client/admin/routes/Configure/ValidationMessage.tsx @@ -1,7 +1,7 @@ import React, { FunctionComponent } from "react"; import { FieldMeta, hasError } from "coral-framework/lib/form/helpers"; -import { Omit } from "coral-framework/types"; + import { ValidationMessage as UIValidationMessage } from "coral-ui/components/v2"; import { ValidationMessageProps } from "coral-ui/components/v2/ValidationMessage"; diff --git a/src/core/client/admin/routes/Configure/__snapshots__/Configure.spec.tsx.snap b/src/core/client/admin/routes/Configure/__snapshots__/Configure.spec.tsx.snap index 3a07ebdd1..3c21ed702 100644 --- a/src/core/client/admin/routes/Configure/__snapshots__/Configure.spec.tsx.snap +++ b/src/core/client/admin/routes/Configure/__snapshots__/Configure.spec.tsx.snap @@ -7,11 +7,13 @@ exports[`renders correctly 1`] = ` <ReactFinalForm mutators={ Object { + "concat": [Function], "insert": [Function], "move": [Function], "pop": [Function], "push": [Function], "remove": [Function], + "removeBatch": [Function], "shift": [Function], "swap": [Function], "unshift": [Function], diff --git a/src/core/client/admin/routes/Configure/__snapshots__/Link.spec.tsx.snap b/src/core/client/admin/routes/Configure/__snapshots__/Link.spec.tsx.snap index 840668b07..435b55960 100644 --- a/src/core/client/admin/routes/Configure/__snapshots__/Link.spec.tsx.snap +++ b/src/core/client/admin/routes/Configure/__snapshots__/Link.spec.tsx.snap @@ -4,12 +4,12 @@ exports[`renders correctly 1`] = ` <li className="customClassName" > - <ForwardRef(render) + <Link activeClassName="Link-linkActive" className="Link-link" to="/admin" > child - </ForwardRef(render)> + </Link> </li> `; diff --git a/src/core/client/admin/routes/Configure/sections/Auth/AuthConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/Auth/AuthConfigContainer.tsx index a4990d18b..dcc007acc 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/AuthConfigContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/AuthConfigContainer.tsx @@ -70,7 +70,7 @@ class AuthConfigContainer extends React.Component<Props> { data.auth.integrations.oidc, ]; if ( - !integrations.some(integration => + !integrations.some((integration) => Boolean(integration.enabled && integration.targetFilter.admin) ) ) { @@ -85,7 +85,7 @@ class AuthConfigContainer extends React.Component<Props> { ), }); } else if ( - !integrations.some(integration => + !integrations.some((integration) => Boolean(integration.enabled && integration.targetFilter.stream) ) ) { @@ -139,7 +139,7 @@ const enhanced = withForm( } `, })( - withSubmitHookContext(addSubmitHook => ({ addSubmitHook }))( + withSubmitHookContext((addSubmitHook) => ({ addSubmitHook }))( withContext(({ localeBundles }) => ({ localeBundles }))( AuthConfigContainer ) diff --git a/src/core/client/admin/routes/Configure/sections/Auth/FacebookConfig.tsx b/src/core/client/admin/routes/Configure/sections/Auth/FacebookConfig.tsx index ccf7cb7f0..8a62e6285 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/FacebookConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/FacebookConfig.tsx @@ -69,7 +69,7 @@ const FacebookConfig: FunctionComponent<Props> = ({ name="auth.integrations.facebook.enabled" disabled={disabled} > - {disabledInside => ( + {(disabledInside) => ( <> <Localized id="configure-auth-facebook-toEnableIntegration" diff --git a/src/core/client/admin/routes/Configure/sections/Auth/GoogleConfig.tsx b/src/core/client/admin/routes/Configure/sections/Auth/GoogleConfig.tsx index 24326191c..b2fd10c96 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/GoogleConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/GoogleConfig.tsx @@ -62,7 +62,7 @@ const GoogleConfig: FunctionComponent<Props> = ({ disabled, callbackURL }) => ( disabled={disabled} data-testid="configure-auth-google" > - {disabledInside => ( + {(disabledInside) => ( <> <Localized id="configure-auth-google-toEnableIntegration" diff --git a/src/core/client/admin/routes/Configure/sections/Auth/LocalAuthConfig.tsx b/src/core/client/admin/routes/Configure/sections/Auth/LocalAuthConfig.tsx index 2da5edf04..29f46bc29 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/LocalAuthConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/LocalAuthConfig.tsx @@ -38,7 +38,7 @@ const LocalAuthConfig: FunctionComponent<Props> = ({ disabled }) => ( disabled={disabled} data-testid="configure-auth-local" > - {disabledInside => ( + {(disabledInside) => ( <> <TargetFilterField label={ diff --git a/src/core/client/admin/routes/Configure/sections/Auth/OIDCConfig.tsx b/src/core/client/admin/routes/Configure/sections/Auth/OIDCConfig.tsx index 9bd357a66..53433eaa4 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/OIDCConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/OIDCConfig.tsx @@ -88,7 +88,7 @@ const OIDCConfig: FunctionComponent<Props> = ({ name="auth.integrations.oidc.enabled" disabled={disabled} > - {disabledInside => ( + {(disabledInside) => ( <> <Localized id="configure-auth-oidc-toLearnMore" Link={<OIDCLink />}> <FormFieldDescription> diff --git a/src/core/client/admin/routes/Configure/sections/Auth/SSOConfig.tsx b/src/core/client/admin/routes/Configure/sections/Auth/SSOConfig.tsx index 5802278e1..3908cf187 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/SSOConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/SSOConfig.tsx @@ -42,7 +42,7 @@ const SSOConfig: FunctionComponent<Props> = ({ disabled }) => ( disabled={disabled} data-testid="configure-auth-sso" > - {disabledInside => ( + {(disabledInside) => ( <> <Localized id="configure-auth-sso-description" diff --git a/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationContainer.tsx b/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationContainer.tsx index 34f828982..e16e4bf1c 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationContainer.tsx @@ -1,7 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent, useMemo } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Label } from "coral-ui/components/v2"; import { SSOKeyRotationContainer_settings } from "coral-admin/__generated__/SSOKeyRotationContainer_settings.graphql"; @@ -55,7 +56,7 @@ const SSOKeyRotationContainer: FunctionComponent<Props> = ({ () => keys // Copy this map because we don't want to modify the underlying copy. - .map(key => key) + .map((key) => key) .sort((a: Key, b: Key) => { // Both active, sort on createdAt date. if (!a.inactiveAt && !b.inactiveAt) { @@ -91,7 +92,7 @@ const SSOKeyRotationContainer: FunctionComponent<Props> = ({ <Localized id="configure-auth-sso-rotate-keys"> <Label htmlFor="configure-auth-sso-rotate-keys">Keys</Label> </Localized> - {sortedKeys.map(key => ( + {sortedKeys.map((key) => ( <SSOKeyCard key={key.kid} id={key.kid} diff --git a/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationQuery.tsx b/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationQuery.tsx index dcf7c62b2..2580fd6dd 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationQuery.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/SSOKeyRotation/SSOKeyRotationQuery.tsx @@ -1,10 +1,7 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - QueryRenderData, - QueryRenderer, -} from "coral-framework/lib/relay"; +import { QueryRenderData, QueryRenderer } from "coral-framework/lib/relay"; import { CallOut, Spinner } from "coral-ui/components/v2"; import { SSOKeyRotationQuery as QueryTypes } from "coral-admin/__generated__/SSOKeyRotationQuery.graphql"; diff --git a/src/core/client/admin/routes/Configure/sections/Auth/SessionConfig.tsx b/src/core/client/admin/routes/Configure/sections/Auth/SessionConfig.tsx index 1dbd50aa1..6fbd60977 100644 --- a/src/core/client/admin/routes/Configure/sections/Auth/SessionConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Auth/SessionConfig.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import { Field } from "react-final-form"; import { graphql } from "react-relay"; -import { colorFromMeta } from "coral-framework/lib/form"; +import { colorFromMeta, parseInteger } from "coral-framework/lib/form"; import { composeValidators, required, @@ -49,6 +49,7 @@ const SessionConfig: FunctionComponent<Props> = ({ disabled }) => ( required, validateWholeNumberGreaterThanOrEqual(0) )} + parse={parseInteger} > {({ input, meta }) => ( <> diff --git a/src/core/client/admin/routes/Configure/sections/Email/EmailConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/Email/EmailConfigContainer.tsx index 3e2bea837..cf290221a 100644 --- a/src/core/client/admin/routes/Configure/sections/Email/EmailConfigContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/Email/EmailConfigContainer.tsx @@ -91,7 +91,7 @@ const EmailConfigContainer: React.FunctionComponent<Props> = ({ } name="email.enabled" > - {disabledInside => ( + {(disabledInside) => ( <> <Flex justifyContent="flex-end"> <Localized id="configure-email-send-test"> diff --git a/src/core/client/admin/routes/Configure/sections/Email/SMTP.tsx b/src/core/client/admin/routes/Configure/sections/Email/SMTP.tsx index de59155d8..39eb83339 100644 --- a/src/core/client/admin/routes/Configure/sections/Email/SMTP.tsx +++ b/src/core/client/admin/routes/Configure/sections/Email/SMTP.tsx @@ -6,6 +6,7 @@ import { graphql } from "react-relay"; import { colorFromMeta, parseEmptyAsNull, + parseIntegerNullable, ValidationMessage, } from "coral-framework/lib/form"; import { @@ -88,6 +89,7 @@ const SMTP: FunctionComponent<Props> = ({ disabled }) => ( <Field name="email.smtp.port" validate={composeValidatorsWhen(isEnabled, required)} + parse={parseIntegerNullable} > {({ input, meta }) => ( <TextFieldWithValidation diff --git a/src/core/client/admin/routes/Configure/sections/General/AnnouncementConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/General/AnnouncementConfigContainer.tsx index 53479d15b..4c5a090b8 100644 --- a/src/core/client/admin/routes/Configure/sections/General/AnnouncementConfigContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/General/AnnouncementConfigContainer.tsx @@ -1,11 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent, useCallback, useState } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { Button, CallOut, @@ -38,7 +35,7 @@ const AnnouncementConfigContainer: FunctionComponent<Props> = ({ const onClose = useCallback(() => { setShowForm(false); }, [showForm]); - const onCreate = useCallback(values => { + const onCreate = useCallback((values) => { try { setSubmitError(null); createAnnouncement(values); diff --git a/src/core/client/admin/routes/Configure/sections/General/ClosingCommentStreamsConfig.tsx b/src/core/client/admin/routes/Configure/sections/General/ClosingCommentStreamsConfig.tsx index b0b86de0e..a443efe79 100644 --- a/src/core/client/admin/routes/Configure/sections/General/ClosingCommentStreamsConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/General/ClosingCommentStreamsConfig.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import { Field } from "react-final-form"; import { graphql } from "react-relay"; -import { colorFromMeta } from "coral-framework/lib/form"; +import { colorFromMeta, parseInteger } from "coral-framework/lib/form"; import { composeValidators, required, @@ -74,6 +74,7 @@ const ClosingCommentStreamsConfig: FunctionComponent<Props> = ({ required, validateWholeNumberGreaterThan(0) )} + parse={parseInteger} > {({ input, meta }) => ( <> diff --git a/src/core/client/admin/routes/Configure/sections/General/CommentEditingConfig.tsx b/src/core/client/admin/routes/Configure/sections/General/CommentEditingConfig.tsx index 2e86f980e..6389d077b 100644 --- a/src/core/client/admin/routes/Configure/sections/General/CommentEditingConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/General/CommentEditingConfig.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import { Field } from "react-final-form"; import { graphql } from "react-relay"; -import { colorFromMeta } from "coral-framework/lib/form"; +import { colorFromMeta, parseInteger } from "coral-framework/lib/form"; import { composeValidators, required, @@ -61,6 +61,7 @@ const CommentEditingConfig: FunctionComponent<Props> = ({ disabled }) => ( required, validateWholeNumberGreaterThanOrEqual(0) )} + parse={parseInteger} > {({ input, meta }) => ( <> diff --git a/src/core/client/admin/routes/Configure/sections/General/CommentLengthConfig.tsx b/src/core/client/admin/routes/Configure/sections/General/CommentLengthConfig.tsx index d3347ada3..32e660c89 100644 --- a/src/core/client/admin/routes/Configure/sections/General/CommentLengthConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/General/CommentLengthConfig.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import { Field } from "react-final-form"; import { graphql } from "react-relay"; -import { formatEmpty, parseEmptyAsNull } from "coral-framework/lib/form"; +import { formatEmpty, parseIntegerNullable } from "coral-framework/lib/form"; import { composeValidators, createValidator, @@ -85,7 +85,7 @@ const CommentLengthConfig: FunctionComponent<Props> = ({ disabled }) => ( <Field name="charCount.min" validate={validateWholeNumberGreaterThan(0)} - parse={parseEmptyAsNull} + parse={parseIntegerNullable} format={formatEmpty} > {({ input, meta }) => ( @@ -129,7 +129,7 @@ const CommentLengthConfig: FunctionComponent<Props> = ({ disabled }) => ( validateWholeNumberGreaterThan(0), validateMaxLongerThanMin )} - parse={parseEmptyAsNull} + parse={parseIntegerNullable} format={formatEmpty} > {({ input, meta }) => ( diff --git a/src/core/client/admin/routes/Configure/sections/General/LocaleConfig.tsx b/src/core/client/admin/routes/Configure/sections/General/LocaleConfig.tsx index c01294ed8..7b4efc7b5 100644 --- a/src/core/client/admin/routes/Configure/sections/General/LocaleConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/General/LocaleConfig.tsx @@ -22,7 +22,7 @@ interface Props { disabled: boolean; } -const LocaleConfig: React.FunctionComponent<Props> = props => { +const LocaleConfig: React.FunctionComponent<Props> = (props) => { return ( <ConfigBox title={ diff --git a/src/core/client/admin/routes/Configure/sections/Moderation/NewCommentersConfig.tsx b/src/core/client/admin/routes/Configure/sections/Moderation/NewCommentersConfig.tsx index c9e25cc05..ec7710cb4 100644 --- a/src/core/client/admin/routes/Configure/sections/Moderation/NewCommentersConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Moderation/NewCommentersConfig.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import { Field } from "react-final-form"; import { graphql } from "react-relay"; -import { ValidationMessage } from "coral-framework/lib/form"; +import { parseInteger, ValidationMessage } from "coral-framework/lib/form"; import { composeValidators, required, @@ -68,6 +68,7 @@ const NewCommentersConfig: FunctionComponent<Props> = ({ disabled }) => { required, validateWholeNumberGreaterThan(1) )} + parse={parseInteger} > {({ input, meta }) => ( <> diff --git a/src/core/client/admin/routes/Configure/sections/Moderation/RecentCommentHistoryConfig.tsx b/src/core/client/admin/routes/Configure/sections/Moderation/RecentCommentHistoryConfig.tsx index 1c0b972a0..5e6a2ebd2 100644 --- a/src/core/client/admin/routes/Configure/sections/Moderation/RecentCommentHistoryConfig.tsx +++ b/src/core/client/admin/routes/Configure/sections/Moderation/RecentCommentHistoryConfig.tsx @@ -4,7 +4,7 @@ import { Field } from "react-final-form"; import { graphql } from "react-relay"; import { formatPercentage, parsePercentage } from "coral-framework/lib/form"; -import { hasError } from "coral-framework/lib/form/helpers"; +import { hasError, parseInteger } from "coral-framework/lib/form/helpers"; import { composeValidators, required, @@ -73,6 +73,7 @@ const RecentCommentHistoryConfig: FunctionComponent<Props> = ({ disabled }) => { required, validateWholeNumberGreaterThan(0) )} + parse={parseInteger} > {({ input, meta }) => ( <> diff --git a/src/core/client/admin/routes/Configure/sections/Organization/EmptySitesMessage.tsx b/src/core/client/admin/routes/Configure/sections/Organization/EmptySitesMessage.tsx index 4ebc7ceab..c7aa6840b 100644 --- a/src/core/client/admin/routes/Configure/sections/Organization/EmptySitesMessage.tsx +++ b/src/core/client/admin/routes/Configure/sections/Organization/EmptySitesMessage.tsx @@ -1,7 +1,7 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; -const EmptySitesMessage: FunctionComponent = props => ( +const EmptySitesMessage: FunctionComponent = (props) => ( <Localized id="sites-emptyMessage"> <div>We could not find any sites matching your criteria.</div> </Localized> diff --git a/src/core/client/admin/routes/Configure/sections/Organization/SiteRowContainer.tsx b/src/core/client/admin/routes/Configure/sections/Organization/SiteRowContainer.tsx index 09aad23a1..167fcb859 100644 --- a/src/core/client/admin/routes/Configure/sections/Organization/SiteRowContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/Organization/SiteRowContainer.tsx @@ -1,7 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button, Flex, Icon } from "coral-ui/components/v2"; import { TableCell, TableRow } from "coral-ui/components/v2/Table"; diff --git a/src/core/client/admin/routes/Configure/sections/Organization/SitesConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/Organization/SitesConfigContainer.tsx index bd813e1cc..42ac5e795 100644 --- a/src/core/client/admin/routes/Configure/sections/Organization/SitesConfigContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/Organization/SitesConfigContainer.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useMemo } from "react"; import { graphql, RelayPaginationProp } from "react-relay"; import { IntersectionProvider } from "coral-framework/lib/intersection"; @@ -17,10 +17,11 @@ interface Props { query: QueryData | null; relay: RelayPaginationProp; } -const SitesConfigContainer: React.FunctionComponent<Props> = props => { - const sites = props.query - ? props.query.sites.edges.map(edge => edge.node) - : []; +const SitesConfigContainer: React.FunctionComponent<Props> = (props) => { + const sites = useMemo( + () => (props.query ? props.query.sites.edges.map((edge) => edge.node) : []), + [props?.query?.sites.edges] + ); const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); const [, isRefetching] = useRefetch< SitesConfigContainerPaginationQueryVariables diff --git a/src/core/client/admin/routes/Configure/sections/Organization/SitesTable.tsx b/src/core/client/admin/routes/Configure/sections/Organization/SitesTable.tsx index 246a6625c..32089cf21 100644 --- a/src/core/client/admin/routes/Configure/sections/Organization/SitesTable.tsx +++ b/src/core/client/admin/routes/Configure/sections/Organization/SitesTable.tsx @@ -24,7 +24,7 @@ interface Props { loading: boolean; } -const SitesTable: FunctionComponent<Props> = props => { +const SitesTable: FunctionComponent<Props> = (props) => { return ( <> <Table fullWidth> @@ -37,7 +37,7 @@ const SitesTable: FunctionComponent<Props> = props => { </TableRow> </TableHead> <TableBody> - {props.sites.map(site => ( + {props.sites.map((site) => ( <SiteRowContainer site={site} key={site.id} /> ))} </TableBody> diff --git a/src/core/client/admin/routes/Configure/sections/Sites/AddSiteRoute.tsx b/src/core/client/admin/routes/Configure/sections/Sites/AddSiteRoute.tsx index ae1fc9c71..29bd44dd4 100644 --- a/src/core/client/admin/routes/Configure/sections/Sites/AddSiteRoute.tsx +++ b/src/core/client/admin/routes/Configure/sections/Sites/AddSiteRoute.tsx @@ -1,9 +1,9 @@ import { Localized } from "@fluent/react/compat"; import { useRouter } from "found"; import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; import { useNotification } from "coral-admin/App/GlobalNotification"; -import { graphql } from "coral-framework/lib/relay"; import { withRouteConfig } from "coral-framework/lib/router"; import { AppNotification } from "coral-ui/components/v2"; @@ -17,7 +17,7 @@ interface Props { data: AddSiteRouteQueryResponse | null; } -const AddSiteRoute: FunctionComponent<Props> = props => { +const AddSiteRoute: FunctionComponent<Props> = (props) => { const { router } = useRouter(); const { setMessage, clearMessage } = useNotification(); const onSiteCreate = useCallback( diff --git a/src/core/client/admin/routes/Configure/sections/Sites/EmbedCode.tsx b/src/core/client/admin/routes/Configure/sections/Sites/EmbedCode.tsx index dc85f954d..5741b940a 100644 --- a/src/core/client/admin/routes/Configure/sections/Sites/EmbedCode.tsx +++ b/src/core/client/admin/routes/Configure/sections/Sites/EmbedCode.tsx @@ -40,8 +40,8 @@ const EmbedCode: FunctionComponent<Props> = ({ staticURI, getMessage }) => { // it will fit in the text block that is rendered. comment = comment .split("\n") - .filter(line => line !== "\n") - .map(line => ` // ${line.trim()}`) + .filter((line) => line !== "\n") + .map((line) => ` // ${line.trim()}`) .join("\n") .trim(); diff --git a/src/core/client/admin/routes/Configure/sections/Sites/SiteRoute.tsx b/src/core/client/admin/routes/Configure/sections/Sites/SiteRoute.tsx index face8c837..4b2c7ca00 100644 --- a/src/core/client/admin/routes/Configure/sections/Sites/SiteRoute.tsx +++ b/src/core/client/admin/routes/Configure/sections/Sites/SiteRoute.tsx @@ -1,8 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; import { useNotification } from "coral-admin/App/GlobalNotification"; -import { graphql } from "coral-framework/lib/relay"; import { withRouteConfig } from "coral-framework/lib/router"; import { AppNotification } from "coral-ui/components/v2"; diff --git a/src/core/client/admin/routes/Configure/sections/Sites/SitesRoute.tsx b/src/core/client/admin/routes/Configure/sections/Sites/SitesRoute.tsx index 3835c2c0a..e55a38c19 100644 --- a/src/core/client/admin/routes/Configure/sections/Sites/SitesRoute.tsx +++ b/src/core/client/admin/routes/Configure/sections/Sites/SitesRoute.tsx @@ -11,7 +11,7 @@ interface Props { children: React.ReactElement; } -const SitesRoute: FunctionComponent<Props> = props => { +const SitesRoute: FunctionComponent<Props> = (props) => { return ( <MainLayout> <Layout> diff --git a/src/core/client/admin/routes/Configure/sections/Slack/SlackConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/Slack/SlackConfigContainer.tsx index 6ded55e80..0f2b5f6f7 100644 --- a/src/core/client/admin/routes/Configure/sections/Slack/SlackConfigContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/Slack/SlackConfigContainer.tsx @@ -1,16 +1,12 @@ import { Localized } from "@fluent/react/compat"; import { FormApi } from "final-form"; -import React, { - FunctionComponent, - useCallback, - useMemo, - useState, -} from "react"; +import React, { FunctionComponent, useCallback, useMemo } from "react"; import { FieldArray } from "react-final-form-arrays"; +import { graphql } from "react-relay"; import { pureMerge } from "coral-common/utils"; import { ExternalLink } from "coral-framework/lib/i18n/components"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button, ButtonIcon, @@ -33,23 +29,6 @@ interface Props { } const SlackConfigContainer: FunctionComponent<Props> = ({ form, settings }) => { - const [defaultValues] = useState({ - slack: { - channels: [ - { - enabled: false, - name: "", - hookURL: "", - triggers: { - reportedComments: false, - pendingComments: false, - featuredComments: false, - }, - }, - ], - }, - }); - const onAddChannel = useCallback(() => { const mutators = form.mutators; mutators.insert("slack.channels", 0, { @@ -71,18 +50,31 @@ const SlackConfigContainer: FunctionComponent<Props> = ({ form, settings }) => { ); useMemo(() => { + let formValues = { + slack: { + channels: [ + { + enabled: false, + name: "", + hookURL: "", + triggers: { + reportedComments: false, + pendingComments: false, + featuredComments: false, + }, + }, + ], + }, + }; if ( - !settings || - !settings.slack || - !settings.slack.channels || - settings.slack.channels.length === 0 + settings.slack && + settings.slack.channels && + settings.slack.channels.length > 0 ) { - form.initialize(defaultValues); - } else { - const settingsValues = pureMerge(defaultValues, settings); - form.initialize(settingsValues); + formValues = pureMerge(formValues, settings); } - }, [settings, defaultValues]); + form.initialize(formValues); + }, []); return ( <HorizontalGutter size="double"> diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/AddWebhookEndpoint/AddWebhookEndpointContainer.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/AddWebhookEndpoint/AddWebhookEndpointContainer.tsx index db77234d0..bb7d945e1 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/AddWebhookEndpoint/AddWebhookEndpointContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/AddWebhookEndpoint/AddWebhookEndpointContainer.tsx @@ -1,11 +1,12 @@ import { Localized } from "@fluent/react/compat"; import { Match, Router, withRouter } from "found"; import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; import ConfigBox from "coral-admin/routes/Configure/ConfigBox"; import Header from "coral-admin/routes/Configure/Header"; import { urls } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { HorizontalGutter } from "coral-ui/components/v2"; import { AddWebhookEndpointContainer_settings } from "coral-admin/__generated__/AddWebhookEndpointContainer_settings.graphql"; diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/ConfigureWebhookEndpointContainer.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/ConfigureWebhookEndpointContainer.tsx index 2ab52ef1d..6c1a8b832 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/ConfigureWebhookEndpointContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/ConfigureWebhookEndpointContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import ConfigBox from "coral-admin/routes/Configure/ConfigBox"; import Header from "coral-admin/routes/Configure/Header"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { HorizontalGutter } from "coral-ui/components/v2"; import { ConfigureWebhookEndpointContainer_settings } from "coral-admin/__generated__/ConfigureWebhookEndpointContainer_settings.graphql"; diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDangerZone.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDangerZone.tsx index ef0ee7757..3b8c1dde5 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDangerZone.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDangerZone.tsx @@ -1,16 +1,13 @@ import { Localized } from "@fluent/react/compat"; import { Match, Router, withRouter } from "found"; import React, { FunctionComponent, useCallback, useState } from "react"; +import { graphql } from "react-relay"; import Subheader from "coral-admin/routes/Configure/Subheader"; import { urls } from "coral-framework/helpers"; import { useCoralContext } from "coral-framework/lib/bootstrap"; import { getMessage } from "coral-framework/lib/i18n"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { Button, FormField, diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDetails.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDetails.tsx index 49e6abe91..723feb7a4 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDetails.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointDetails.tsx @@ -1,7 +1,8 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import Subheader from "coral-admin/routes/Configure/Subheader"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { EndpointDetails_settings } from "coral-admin/__generated__/EndpointDetails_settings.graphql"; import { EndpointDetails_webhookEndpoint } from "coral-admin/__generated__/EndpointDetails_webhookEndpoint.graphql"; diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointStatus.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointStatus.tsx index fb3732588..60f4f7746 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointStatus.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpoint/EndpointStatus.tsx @@ -1,10 +1,11 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import Subheader from "coral-admin/routes/Configure/Subheader"; import { CopyButton } from "coral-framework/components"; import { ExternalLink } from "coral-framework/lib/i18n/components"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Flex, FormField, diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/ConfigureWebhookEndpointForm.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/ConfigureWebhookEndpointForm.tsx index f8d294c91..712fa9451 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/ConfigureWebhookEndpointForm.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/ConfigureWebhookEndpointForm.tsx @@ -3,15 +3,12 @@ import { FORM_ERROR } from "final-form"; import { Match, Router, withRouter } from "found"; import React, { FunctionComponent, useCallback } from "react"; import { Field, Form } from "react-final-form"; +import { graphql } from "react-relay"; import getEndpointLink from "coral-admin/helpers/getEndpointLink"; import { InvalidRequestError } from "coral-framework/lib/errors"; import { colorFromMeta, ValidationMessage } from "coral-framework/lib/form"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { composeValidators, required, @@ -51,7 +48,7 @@ const ConfigureWebhookEndpointForm: FunctionComponent<Props> = ({ const create = useMutation(CreateWebhookEndpointMutation); const update = useMutation(UpdateWebhookEndpointMutation); const onSubmit = useCallback( - async values => { + async (values) => { try { if (webhookEndpoint) { // The webhook endpoint was defined, update it. diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/EventsSelectField.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/EventsSelectField.tsx index fd5121a38..9acf6d634 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/EventsSelectField.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/ConfigureWebhookEndpointForm/EventsSelectField.tsx @@ -1,10 +1,11 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent, useCallback } from "react"; import { useField } from "react-final-form"; +import { graphql } from "react-relay"; import { ValidationMessage } from "coral-framework/lib/form"; import { ExternalLink } from "coral-framework/lib/i18n/components"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { validateWebhookEventSelection } from "coral-framework/lib/validation"; import { Typography } from "coral-ui/components"; import { @@ -93,7 +94,7 @@ const EventsSelectField: FunctionComponent<Props> = ({ settings }) => { </FormFieldDescription> </Localized> <ListGroup className={styles.list}> - {settings.webhookEvents.map(event => { + {settings.webhookEvents.map((event) => { const selectedIndex = events.value.indexOf(event); return ( <ListGroupRow key={event}> diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointRow.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointRow.tsx index ed63b6205..1804674c1 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointRow.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointRow.tsx @@ -1,8 +1,9 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import getEndpointLink from "coral-admin/helpers/getEndpointLink"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button, Flex, diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsConfigContainer.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsConfigContainer.tsx index edcb111f8..3a2d61a84 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsConfigContainer.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsConfigContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { urls } from "coral-framework/helpers"; import { ExternalLink } from "coral-framework/lib/i18n/components"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button, CallOut, diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsLayout.tsx b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsLayout.tsx index fcfdf143c..f40501e8a 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsLayout.tsx +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/WebhookEndpointsLayout.tsx @@ -11,7 +11,7 @@ interface Props { children: React.ReactElement; } -const WebhookEndpointsLayout: FunctionComponent<Props> = props => { +const WebhookEndpointsLayout: FunctionComponent<Props> = (props) => { return ( <MainLayout> <Layout> diff --git a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/index.ts b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/index.ts index 715c90381..63956d32a 100644 --- a/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/index.ts +++ b/src/core/client/admin/routes/Configure/sections/WebhookEndpoints/index.ts @@ -3,6 +3,4 @@ export { default as WebhookEndpointsConfigRoute, } from "./WebhookEndpointsConfigRoute"; export { default as AddWebhookEndpointRoute } from "./AddWebhookEndpoint"; -export { - default as ConfigureWebhookEndpointRoute, -} from "./ConfigureWebhookEndpoint"; +export { default as ConfigureWebhookEndpointRoute } from "./ConfigureWebhookEndpoint"; diff --git a/src/core/client/admin/routes/ForgotPassword/ForgotPasswordForm.tsx b/src/core/client/admin/routes/ForgotPassword/ForgotPasswordForm.tsx index efaf7616c..3d762bd2e 100644 --- a/src/core/client/admin/routes/ForgotPassword/ForgotPasswordForm.tsx +++ b/src/core/client/admin/routes/ForgotPassword/ForgotPasswordForm.tsx @@ -32,7 +32,7 @@ interface Props { onCheckEmail: (email: string) => void; } -const ForgotPasswordForm: FunctionComponent<Props> = props => { +const ForgotPasswordForm: FunctionComponent<Props> = (props) => { const forgotPassword = useMutation(ForgotPasswordMutation); const onSubmit = useCallback( async (form: FormProps) => { diff --git a/src/core/client/admin/routes/Invite/InviteCompleteFormContainer.tsx b/src/core/client/admin/routes/Invite/InviteCompleteFormContainer.tsx index c0ffda613..c827e65c4 100644 --- a/src/core/client/admin/routes/Invite/InviteCompleteFormContainer.tsx +++ b/src/core/client/admin/routes/Invite/InviteCompleteFormContainer.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { InviteCompleteFormContainer_settings } from "coral-admin/__generated__/InviteCompleteFormContainer_settings.graphql"; diff --git a/src/core/client/admin/routes/Invite/SetPasswordField.tsx b/src/core/client/admin/routes/Invite/SetPasswordField.tsx index 525222e32..6549f9259 100644 --- a/src/core/client/admin/routes/Invite/SetPasswordField.tsx +++ b/src/core/client/admin/routes/Invite/SetPasswordField.tsx @@ -19,7 +19,7 @@ interface Props { disabled: boolean; } -const SetPasswordField: FunctionComponent<Props> = props => ( +const SetPasswordField: FunctionComponent<Props> = (props) => ( <Field name="password" validate={composeValidators(required, validatePassword)} diff --git a/src/core/client/admin/routes/Invite/SetUsernameField.tsx b/src/core/client/admin/routes/Invite/SetUsernameField.tsx index c7347d67b..a9fad4767 100644 --- a/src/core/client/admin/routes/Invite/SetUsernameField.tsx +++ b/src/core/client/admin/routes/Invite/SetUsernameField.tsx @@ -19,7 +19,7 @@ interface Props { disabled: boolean; } -const SetUsernameField: FunctionComponent<Props> = props => ( +const SetUsernameField: FunctionComponent<Props> = (props) => ( <Field name="username" validate={composeValidators(required, validateUsername)} diff --git a/src/core/client/admin/routes/Invite/SuccessContainer.tsx b/src/core/client/admin/routes/Invite/SuccessContainer.tsx index 4cb48e8ce..026e553e5 100644 --- a/src/core/client/admin/routes/Invite/SuccessContainer.tsx +++ b/src/core/client/admin/routes/Invite/SuccessContainer.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SuccessContainer_settings } from "coral-admin/__generated__/SuccessContainer_settings.graphql"; diff --git a/src/core/client/admin/routes/Login/AccountCompletionContainer.tsx b/src/core/client/admin/routes/Login/AccountCompletionContainer.tsx index e2215454c..884d72369 100644 --- a/src/core/client/admin/routes/Login/AccountCompletionContainer.tsx +++ b/src/core/client/admin/routes/Login/AccountCompletionContainer.tsx @@ -1,9 +1,9 @@ import { RouterState, withRouter } from "found"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import { SetRedirectPathMutation } from "coral-admin/mutations"; import { - graphql, MutationProp, withFragmentContainer, withLocalStateContainer, @@ -59,7 +59,7 @@ function handleAccountCompletion(props: Props) { } } else if ( // password not set when local auth is enabled. - !viewer.profiles.some(p => p.__typename === "LocalProfile") && + !viewer.profiles.some((p) => p.__typename === "LocalProfile") && auth.integrations.local.enabled && (auth.integrations.local.targetFilter.admin || auth.integrations.local.targetFilter.stream) diff --git a/src/core/client/admin/routes/Login/EmailField.tsx b/src/core/client/admin/routes/Login/EmailField.tsx index 4fd8ad627..35696e99c 100644 --- a/src/core/client/admin/routes/Login/EmailField.tsx +++ b/src/core/client/admin/routes/Login/EmailField.tsx @@ -14,7 +14,7 @@ interface Props { disabled: boolean; } -const EmailField: FunctionComponent<Props> = props => ( +const EmailField: FunctionComponent<Props> = (props) => ( <Field name="email" validate={composeValidators(required, validateEmail)}> {({ input, meta }) => ( <FormField> diff --git a/src/core/client/admin/routes/Login/LoginRoute.tsx b/src/core/client/admin/routes/Login/LoginRoute.tsx index 2765ca8f0..5d211e50b 100644 --- a/src/core/client/admin/routes/Login/LoginRoute.tsx +++ b/src/core/client/admin/routes/Login/LoginRoute.tsx @@ -1,7 +1,8 @@ import { RouteProps } from "found"; import React, { Component } from "react"; +import { graphql } from "react-relay"; -import { graphql, withLocalStateContainer } from "coral-framework/lib/relay"; +import { withLocalStateContainer } from "coral-framework/lib/relay"; import { withRouteConfig } from "coral-framework/lib/router"; import { LoginRouteLocal as LocalData } from "coral-admin/__generated__/LoginRouteLocal.graphql"; diff --git a/src/core/client/admin/routes/Login/SetAuthViewMutation.ts b/src/core/client/admin/routes/Login/SetAuthViewMutation.ts index 4c6b28cd2..d5a85de4b 100644 --- a/src/core/client/admin/routes/Login/SetAuthViewMutation.ts +++ b/src/core/client/admin/routes/Login/SetAuthViewMutation.ts @@ -15,7 +15,7 @@ export interface SetAuthViewInput { const SetAuthViewMutation = createMutation( "setAuthView", (environment: Environment, input: SetAuthViewInput) => - commitLocalUpdate(environment, store => { + commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; record.setValue(input.view, "authView"); }) diff --git a/src/core/client/admin/routes/Login/SetDuplicateEmailMutation.ts b/src/core/client/admin/routes/Login/SetDuplicateEmailMutation.ts index bc0dc4b51..945a081d9 100644 --- a/src/core/client/admin/routes/Login/SetDuplicateEmailMutation.ts +++ b/src/core/client/admin/routes/Login/SetDuplicateEmailMutation.ts @@ -13,7 +13,7 @@ export interface SetDuplicateEmailInput { const SetDuplicateEmailMutation = createMutation( "setDuplicateEmail", async (environment: Environment, input: SetDuplicateEmailInput) => { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; record.setValue(input.duplicateEmail, "authDuplicateEmail"); }); diff --git a/src/core/client/admin/routes/Login/views/AddEmailAddress/ConfirmEmailField.tsx b/src/core/client/admin/routes/Login/views/AddEmailAddress/ConfirmEmailField.tsx index 17aec5856..134bad533 100644 --- a/src/core/client/admin/routes/Login/views/AddEmailAddress/ConfirmEmailField.tsx +++ b/src/core/client/admin/routes/Login/views/AddEmailAddress/ConfirmEmailField.tsx @@ -14,7 +14,7 @@ interface Props { disabled: boolean; } -const ConfirmEmailField: FunctionComponent<Props> = props => ( +const ConfirmEmailField: FunctionComponent<Props> = (props) => ( <Field name="confirmEmail" validate={composeValidators(required, validateEqualEmails)} diff --git a/src/core/client/admin/routes/Login/views/AddEmailAddress/EmailField.tsx b/src/core/client/admin/routes/Login/views/AddEmailAddress/EmailField.tsx index c29d65b80..7fc9ea056 100644 --- a/src/core/client/admin/routes/Login/views/AddEmailAddress/EmailField.tsx +++ b/src/core/client/admin/routes/Login/views/AddEmailAddress/EmailField.tsx @@ -14,7 +14,7 @@ interface Props { disabled: boolean; } -const EmailField: FunctionComponent<Props> = props => ( +const EmailField: FunctionComponent<Props> = (props) => ( <Field name="email" validate={composeValidators(required, validateEmail)}> {({ input, meta }) => ( <FormField> diff --git a/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/ListItem.tsx b/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/ListItem.tsx index 2132d8ee5..c4305a04a 100644 --- a/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/ListItem.tsx +++ b/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/ListItem.tsx @@ -8,7 +8,7 @@ interface Props { icon?: React.ReactNode; } -const ListItem: FunctionComponent<Props> = props => ( +const ListItem: FunctionComponent<Props> = (props) => ( <li className={styles.root}> <div className={styles.leftCol}>{props.icon}</div> <div>{props.children}</div> diff --git a/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/UnorderedList.tsx b/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/UnorderedList.tsx index 7fcf4bc5f..63c30fa7e 100644 --- a/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/UnorderedList.tsx +++ b/src/core/client/admin/routes/Login/views/AddEmailAddress/UnorderedList/UnorderedList.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react"; import styles from "./UnorderedList.css"; -const UnorderedList: FunctionComponent = props => ( +const UnorderedList: FunctionComponent = (props) => ( <ul className={styles.root}>{props.children}</ul> ); diff --git a/src/core/client/admin/routes/Login/views/CreatePassword/CreatePassword.tsx b/src/core/client/admin/routes/Login/views/CreatePassword/CreatePassword.tsx index 408404065..5b099a216 100644 --- a/src/core/client/admin/routes/Login/views/CreatePassword/CreatePassword.tsx +++ b/src/core/client/admin/routes/Login/views/CreatePassword/CreatePassword.tsx @@ -23,7 +23,7 @@ export interface CreatePasswordForm { onSubmit: OnSubmit<FormSubmitProps>; } -const CreatePassword: FunctionComponent<CreatePasswordForm> = props => { +const CreatePassword: FunctionComponent<CreatePasswordForm> = (props) => { return ( <CompleteAccountBox title={ diff --git a/src/core/client/admin/routes/Login/views/CreatePassword/SetPasswordField.tsx b/src/core/client/admin/routes/Login/views/CreatePassword/SetPasswordField.tsx index b26cbaa4a..a8670b4de 100644 --- a/src/core/client/admin/routes/Login/views/CreatePassword/SetPasswordField.tsx +++ b/src/core/client/admin/routes/Login/views/CreatePassword/SetPasswordField.tsx @@ -15,7 +15,7 @@ interface Props { disabled: boolean; } -const SetPasswordField: FunctionComponent<Props> = props => ( +const SetPasswordField: FunctionComponent<Props> = (props) => ( <Field name="password" validate={composeValidators(required, validatePassword)} diff --git a/src/core/client/admin/routes/Login/views/CreateUsername/CreateUsername.tsx b/src/core/client/admin/routes/Login/views/CreateUsername/CreateUsername.tsx index eadb3dafb..bd4c68b8b 100644 --- a/src/core/client/admin/routes/Login/views/CreateUsername/CreateUsername.tsx +++ b/src/core/client/admin/routes/Login/views/CreateUsername/CreateUsername.tsx @@ -23,7 +23,7 @@ export interface CreateUsernameForm { onSubmit: OnSubmit<FormSubmitProps>; } -const CreateUsername: FunctionComponent<CreateUsernameForm> = props => { +const CreateUsername: FunctionComponent<CreateUsernameForm> = (props) => { return ( <CompleteAccountBox title={ diff --git a/src/core/client/admin/routes/Login/views/CreateUsername/UsernameField.tsx b/src/core/client/admin/routes/Login/views/CreateUsername/UsernameField.tsx index d0b4ea94d..cd2858374 100644 --- a/src/core/client/admin/routes/Login/views/CreateUsername/UsernameField.tsx +++ b/src/core/client/admin/routes/Login/views/CreateUsername/UsernameField.tsx @@ -19,7 +19,7 @@ interface Props { disabled: boolean; } -const CreateUsernameField: FunctionComponent<Props> = props => ( +const CreateUsernameField: FunctionComponent<Props> = (props) => ( <Field name="username" validate={composeValidators(required, validateUsername)} diff --git a/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.css b/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.css index 3f2f7b0b3..8893e76ee 100644 --- a/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.css +++ b/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.css @@ -9,7 +9,7 @@ margin: 0; } .text { - composes: heading3 from "coral-ui/shared/typography.css"; + composes: heading3 from "~coral-ui/shared/typography.css"; position: relative; background-color: var(--palette-common-white); padding: 0 var(--mini-unit); diff --git a/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.tsx b/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.tsx index e1b3dcb69..2e394e259 100644 --- a/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.tsx +++ b/src/core/client/admin/routes/Login/views/LinkAccount/HorizontalSeparator.tsx @@ -8,7 +8,7 @@ interface Props { children: string; } -const HorizontalSeparator: FunctionComponent<Props> = props => ( +const HorizontalSeparator: FunctionComponent<Props> = (props) => ( <Flex className={styles.root} alignItems="center" justifyContent="center"> <hr className={styles.hr} /> <div className={styles.text}>{props.children}</div> diff --git a/src/core/client/admin/routes/Login/views/LinkAccount/LinkAccountContainer.tsx b/src/core/client/admin/routes/Login/views/LinkAccount/LinkAccountContainer.tsx index 2e6a250ae..0ffed1996 100644 --- a/src/core/client/admin/routes/Login/views/LinkAccount/LinkAccountContainer.tsx +++ b/src/core/client/admin/routes/Login/views/LinkAccount/LinkAccountContainer.tsx @@ -2,6 +2,7 @@ import { Localized } from "@fluent/react/compat"; import { FORM_ERROR } from "final-form"; import React, { FunctionComponent, useCallback } from "react"; import { Field, Form } from "react-final-form"; +import { graphql } from "react-relay"; import { colorFromMeta, @@ -10,7 +11,6 @@ import { ValidationMessage, } from "coral-framework/lib/form"; import { - graphql, useLocal, useMutation, withFragmentContainer, @@ -44,7 +44,7 @@ interface Props { viewer: LinkAccountContainer_viewer | null; } -const LinkAccountContainer: FunctionComponent<Props> = props => { +const LinkAccountContainer: FunctionComponent<Props> = (props) => { const [local] = useLocal<LinkAccountContainerLocal>(graphql` fragment LinkAccountContainerLocal on Local { authDuplicateEmail diff --git a/src/core/client/admin/routes/Login/views/SignIn/ClearAuthErrorMutation.ts b/src/core/client/admin/routes/Login/views/SignIn/ClearAuthErrorMutation.ts index 32e9348cc..2f93832e6 100644 --- a/src/core/client/admin/routes/Login/views/SignIn/ClearAuthErrorMutation.ts +++ b/src/core/client/admin/routes/Login/views/SignIn/ClearAuthErrorMutation.ts @@ -5,7 +5,7 @@ import { createMutation, LOCAL_ID } from "coral-framework/lib/relay"; const ClearAuthErrorMutation = createMutation( "clearAuthError", (environment: Environment) => - commitLocalUpdate(environment, store => { + commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; record.setValue(null, "authError"); }) diff --git a/src/core/client/admin/routes/Login/views/SignIn/HorizontalSeparator.tsx b/src/core/client/admin/routes/Login/views/SignIn/HorizontalSeparator.tsx index 82eb91d18..833b60c75 100644 --- a/src/core/client/admin/routes/Login/views/SignIn/HorizontalSeparator.tsx +++ b/src/core/client/admin/routes/Login/views/SignIn/HorizontalSeparator.tsx @@ -8,7 +8,7 @@ interface Props { children: string; } -const HorizontalSeparator: FunctionComponent<Props> = props => ( +const HorizontalSeparator: FunctionComponent<Props> = (props) => ( <Flex className={styles.root} alignItems="center" justifyContent="center"> <hr className={styles.hr} /> <div className={styles.text}>{props.children}</div> diff --git a/src/core/client/admin/routes/Login/views/SignIn/SignInContainer.tsx b/src/core/client/admin/routes/Login/views/SignIn/SignInContainer.tsx index b0ccbf2d4..0917cc3fe 100644 --- a/src/core/client/admin/routes/Login/views/SignIn/SignInContainer.tsx +++ b/src/core/client/admin/routes/Login/views/SignIn/SignInContainer.tsx @@ -1,8 +1,8 @@ import { RouteProps } from "found"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import { - graphql, MutationProp, withFragmentContainer, withLocalStateContainer, diff --git a/src/core/client/admin/routes/Login/views/SignIn/SignInWithEmail.tsx b/src/core/client/admin/routes/Login/views/SignIn/SignInWithEmail.tsx index 1b583fa6b..643bb7b9c 100644 --- a/src/core/client/admin/routes/Login/views/SignIn/SignInWithEmail.tsx +++ b/src/core/client/admin/routes/Login/views/SignIn/SignInWithEmail.tsx @@ -36,7 +36,7 @@ export interface SignInWithEmailForm { onSubmit: OnSubmit<FormSubmitProps>; } -const SignInWithEmail: FunctionComponent<SignInWithEmailForm> = props => { +const SignInWithEmail: FunctionComponent<SignInWithEmailForm> = (props) => { return ( <Form onSubmit={props.onSubmit}> {({ handleSubmit, submitting, submitError }) => ( diff --git a/src/core/client/admin/routes/Login/views/SignIn/SignInWithFacebookContainer.tsx b/src/core/client/admin/routes/Login/views/SignIn/SignInWithFacebookContainer.tsx index aca2253c8..a33126cc6 100644 --- a/src/core/client/admin/routes/Login/views/SignIn/SignInWithFacebookContainer.tsx +++ b/src/core/client/admin/routes/Login/views/SignIn/SignInWithFacebookContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import FacebookButton from "coral-framework/components/FacebookButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignInWithFacebookContainer_auth as AuthData } from "coral-admin/__generated__/SignInWithFacebookContainer_auth.graphql"; diff --git a/src/core/client/admin/routes/Login/views/SignIn/SignInWithGoogleContainer.tsx b/src/core/client/admin/routes/Login/views/SignIn/SignInWithGoogleContainer.tsx index e6747961a..271bf0713 100644 --- a/src/core/client/admin/routes/Login/views/SignIn/SignInWithGoogleContainer.tsx +++ b/src/core/client/admin/routes/Login/views/SignIn/SignInWithGoogleContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import GoogleButton from "coral-framework/components/GoogleButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignInWithGoogleContainer_auth as AuthData } from "coral-admin/__generated__/SignInWithGoogleContainer_auth.graphql"; diff --git a/src/core/client/admin/routes/Login/views/SignIn/SignInWithOIDCContainer.tsx b/src/core/client/admin/routes/Login/views/SignIn/SignInWithOIDCContainer.tsx index 3ca44086f..8cc95eae1 100644 --- a/src/core/client/admin/routes/Login/views/SignIn/SignInWithOIDCContainer.tsx +++ b/src/core/client/admin/routes/Login/views/SignIn/SignInWithOIDCContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import OIDCButton from "coral-framework/components/OIDCButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignInWithOIDCContainer_auth as AuthData } from "coral-admin/__generated__/SignInWithOIDCContainer_auth.graphql"; diff --git a/src/core/client/admin/routes/Moderate/Moderate.tsx b/src/core/client/admin/routes/Moderate/Moderate.tsx index a7a76432f..23bb05de1 100644 --- a/src/core/client/admin/routes/Moderate/Moderate.tsx +++ b/src/core/client/admin/routes/Moderate/Moderate.tsx @@ -56,7 +56,7 @@ const Moderate: FunctionComponent<Props> = ({ useEffect(() => { const toggleModal = () => { - setShowHotkeysModal(was => !was); + setShowHotkeysModal((was) => !was); }; // Attach the modal toggle when the GUIDE button is pressed. diff --git a/src/core/client/admin/routes/Moderate/ModerateContainer.tsx b/src/core/client/admin/routes/Moderate/ModerateContainer.tsx index ab9b62aea..a2ac0cf06 100644 --- a/src/core/client/admin/routes/Moderate/ModerateContainer.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateContainer.tsx @@ -33,7 +33,7 @@ class ModerateContainer extends React.Component<Props> { "unmoderated", "approved", "rejected", - ].find(name => { + ].find((name) => { return this.props.match.location.pathname.includes(name); }); if (!this.props.data) { diff --git a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentEnteredSubscription.tsx b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentEnteredSubscription.tsx index 22c2b62c3..5ca712519 100644 --- a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentEnteredSubscription.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentEnteredSubscription.tsx @@ -1,8 +1,9 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { Environment } from "relay-runtime"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLMODERATION_QUEUE } from "coral-framework/schema"; @@ -26,7 +27,7 @@ const ModerateCountsCommentEnteredSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { const root = store.getRootField("commentEnteredModerationQueue")!; const queue = root.getValue("queue") as GQLMODERATION_QUEUE; const change = 1; diff --git a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentLeftSubscription.tsx b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentLeftSubscription.tsx index 23194e25a..8a71c8f38 100644 --- a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentLeftSubscription.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateCountsCommentLeftSubscription.tsx @@ -1,8 +1,9 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { Environment } from "relay-runtime"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLMODERATION_QUEUE } from "coral-framework/schema"; @@ -29,7 +30,7 @@ const ModerateCountsCommentLeftSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { const root = store.getRootField("commentLeftModerationQueue")!; const queue = root.getValue("queue") as GQLMODERATION_QUEUE; const change = -1; diff --git a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateNavigationContainer.tsx b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateNavigationContainer.tsx index 371c096f5..c5bf15516 100644 --- a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateNavigationContainer.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerateNavigationContainer.tsx @@ -20,7 +20,7 @@ interface Props { siteID: string | null; } -const ModerateNavigationContainer: React.FunctionComponent<Props> = props => { +const ModerateNavigationContainer: React.FunctionComponent<Props> = (props) => { const subscribeToCommentEntered = useSubscription( ModerateCountsCommentEnteredSubscription ); diff --git a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerationCountsSubscription.tsx b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerationCountsSubscription.tsx index ed8df919b..89fd4f4eb 100644 --- a/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerationCountsSubscription.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateNavigation/ModerationCountsSubscription.tsx @@ -1,8 +1,9 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { Environment } from "relay-runtime"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; @@ -26,7 +27,7 @@ const ModerationCountsSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { let queue: string; let change: number; diff --git a/src/core/client/admin/routes/Moderate/ModerateNavigation/NavigationLink.tsx b/src/core/client/admin/routes/Moderate/ModerateNavigation/NavigationLink.tsx index 8003effc5..e5883a5e6 100644 --- a/src/core/client/admin/routes/Moderate/ModerateNavigation/NavigationLink.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateNavigation/NavigationLink.tsx @@ -8,7 +8,7 @@ interface Props { to: LocationDescriptor; } -const NavigationLink: FunctionComponent<Props> = props => ( +const NavigationLink: FunctionComponent<Props> = (props) => ( <Link to={props.to} as={SubBarNavigationItem as any} activePropName="active"> {props.children} </Link> diff --git a/src/core/client/admin/routes/Moderate/ModerateNavigation/__snapshots__/NavigationLink.spec.tsx.snap b/src/core/client/admin/routes/Moderate/ModerateNavigation/__snapshots__/NavigationLink.spec.tsx.snap index 8bd73ab38..565f2a360 100644 --- a/src/core/client/admin/routes/Moderate/ModerateNavigation/__snapshots__/NavigationLink.spec.tsx.snap +++ b/src/core/client/admin/routes/Moderate/ModerateNavigation/__snapshots__/NavigationLink.spec.tsx.snap @@ -1,11 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`renders correctly 1`] = ` -<ForwardRef(render) +<Link activePropName="active" as={[Function]} to="/moderate" > link -</ForwardRef(render)> +</Link> `; diff --git a/src/core/client/admin/routes/Moderate/ModerateNavigation/changeQueueCount.ts b/src/core/client/admin/routes/Moderate/ModerateNavigation/changeQueueCount.ts index cc34e0ba7..81ff49b11 100644 --- a/src/core/client/admin/routes/Moderate/ModerateNavigation/changeQueueCount.ts +++ b/src/core/client/admin/routes/Moderate/ModerateNavigation/changeQueueCount.ts @@ -3,7 +3,7 @@ import { RecordSourceSelectorProxy } from "relay-runtime"; import { GQLMODERATION_QUEUE } from "coral-framework/schema"; export default function changeQueueCount( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, change: number, queue: GQLMODERATION_QUEUE, storyID: string | null = null diff --git a/src/core/client/admin/routes/Moderate/ModerateSearchBar/Bar.tsx b/src/core/client/admin/routes/Moderate/ModerateSearchBar/Bar.tsx index 2b1957951..58362ddd9 100644 --- a/src/core/client/admin/routes/Moderate/ModerateSearchBar/Bar.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateSearchBar/Bar.tsx @@ -72,11 +72,11 @@ const Bar: FunctionComponent<Props> = ({ }); }, [searchInput.current]); const contextOptions = mappedOptions - .filter(o => o.group === "CONTEXT") - .map(o => o.element); + .filter((o) => o.group === "CONTEXT") + .map((o) => o.element); const searchOptions = mappedOptions - .filter(o => o.group === "SEARCH") - .map(o => o.element); + .filter((o) => o.group === "SEARCH") + .map((o) => o.element); return ( <Localized id="moderate-searchBar-comboBox" attrs={{ "aria-label": true }}> diff --git a/src/core/client/admin/routes/Moderate/ModerateSearchBar/Field.tsx b/src/core/client/admin/routes/Moderate/ModerateSearchBar/Field.tsx index cb68f2cd2..2d0d31024 100644 --- a/src/core/client/admin/routes/Moderate/ModerateSearchBar/Field.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateSearchBar/Field.tsx @@ -60,7 +60,7 @@ const Field: FunctionComponent<Props> = ({ > <input name={input.name} - onChange={evt => { + onChange={(evt) => { if (onChange) { onChange(evt); } @@ -77,7 +77,7 @@ const Field: FunctionComponent<Props> = ({ autoComplete="off" spellCheck={false} ref={forwardRef} - onBlur={evt => { + onBlur={(evt) => { // Reset value when blurring. input.onChange(""); if (onBlur) { diff --git a/src/core/client/admin/routes/Moderate/ModerateSearchBar/ModerateSearchBarContainer.tsx b/src/core/client/admin/routes/Moderate/ModerateSearchBar/ModerateSearchBarContainer.tsx index 2a0dc1012..b2113512f 100644 --- a/src/core/client/admin/routes/Moderate/ModerateSearchBar/ModerateSearchBarContainer.tsx +++ b/src/core/client/admin/routes/Moderate/ModerateSearchBar/ModerateSearchBarContainer.tsx @@ -172,7 +172,7 @@ function useSearchOptions( } if (stories.edges.length > 0) { - stories.edges.forEach(e => { + stories.edges.forEach((e) => { // Don't show current story in search results. if (story && story.id === e.node.id) { return; @@ -233,7 +233,7 @@ function useSearchOptions( return [searchOptions, onSearch]; } -const ModerateSearchBarContainer: React.FunctionComponent<Props> = props => { +const ModerateSearchBarContainer: React.FunctionComponent<Props> = (props) => { const linkNavHandler = useLinkNavHandler(props.router); const contextOptions: PropTypesOf<typeof Bar>["options"] = props.allStories ? getContextOptionsWhenModeratingAll(linkNavHandler) diff --git a/src/core/client/admin/routes/Moderate/Queue/ApprovedQueueRoute.tsx b/src/core/client/admin/routes/Moderate/Queue/ApprovedQueueRoute.tsx index 30e1d8f82..baade3218 100644 --- a/src/core/client/admin/routes/Moderate/Queue/ApprovedQueueRoute.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/ApprovedQueueRoute.tsx @@ -5,6 +5,7 @@ import { graphql, RelayPaginationProp } from "react-relay"; import { IntersectionProvider } from "coral-framework/lib/intersection"; import { withPaginationContainer } from "coral-framework/lib/relay"; +import { resolveModule } from "coral-framework/lib/relay/helpers"; import { ApprovedQueueRoute_query } from "coral-admin/__generated__/ApprovedQueueRoute_query.graphql"; import { ApprovedQueueRoutePaginationQueryVariables } from "coral-admin/__generated__/ApprovedQueueRoutePaginationQuery.graphql"; @@ -33,7 +34,7 @@ export class ApprovedQueueRoute extends React.Component< }; public render() { - const comments = this.props.query.comments.edges.map(edge => edge.node); + const comments = this.props.query.comments.edges.map((edge) => edge.node); return ( <IntersectionProvider> <Queue @@ -61,7 +62,7 @@ export class ApprovedQueueRoute extends React.Component< this.setState({ disableLoadMore: true }); this.props.relay.loadMore( 10, // Fetch the next 10 feed items - error => { + (error) => { this.setState({ disableLoadMore: false }); if (error) { // eslint-disable-next-line no-console @@ -151,11 +152,11 @@ const enhanced = (withPaginationContainer< enhanced.routeConfig = { Component: enhanced, - query: graphql` + query: resolveModule(graphql` query ApprovedQueueRouteQuery($storyID: ID, $siteID: ID) { ...ApprovedQueueRoute_query @arguments(storyID: $storyID, siteID: $siteID) } - `, + `), cacheConfig: { force: true }, render: function RejectedRouteRender({ Component, props, match }) { if (Component && props) { diff --git a/src/core/client/admin/routes/Moderate/Queue/EmptyMessage.tsx b/src/core/client/admin/routes/Moderate/Queue/EmptyMessage.tsx index f981a69b1..8b908ba11 100644 --- a/src/core/client/admin/routes/Moderate/Queue/EmptyMessage.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/EmptyMessage.tsx @@ -8,7 +8,7 @@ import styles from "./EmptyMessage.css"; type Props = PropTypesOf<typeof Card>; -const EmptyMessage: FunctionComponent<Props> = props => ( +const EmptyMessage: FunctionComponent<Props> = (props) => ( <Card {...props} className={cn(props.className, styles.root)} /> ); diff --git a/src/core/client/admin/routes/Moderate/Queue/QueueCommentEnteredSubscription.tsx b/src/core/client/admin/routes/Moderate/Queue/QueueCommentEnteredSubscription.tsx index cbe3b9164..98b875acb 100644 --- a/src/core/client/admin/routes/Moderate/Queue/QueueCommentEnteredSubscription.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/QueueCommentEnteredSubscription.tsx @@ -1,9 +1,10 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { Environment, RecordSourceSelectorProxy } from "relay-runtime"; import { getQueueConnection } from "coral-admin/helpers"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLMODERATION_QUEUE_RL } from "coral-framework/schema"; @@ -11,7 +12,7 @@ import { GQLMODERATION_QUEUE_RL } from "coral-framework/schema"; import { QueueCommentEnteredSubscription } from "coral-admin/__generated__/QueueCommentEnteredSubscription.graphql"; function handleCommentEnteredModerationQueue( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, queue: GQLMODERATION_QUEUE_RL, storyID: string | null ) { @@ -56,7 +57,7 @@ const QueueSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { handleCommentEnteredModerationQueue( store, variables.queue, diff --git a/src/core/client/admin/routes/Moderate/Queue/QueueCommentLeftSubscription.tsx b/src/core/client/admin/routes/Moderate/Queue/QueueCommentLeftSubscription.tsx index f5e99ee0b..249adb050 100644 --- a/src/core/client/admin/routes/Moderate/Queue/QueueCommentLeftSubscription.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/QueueCommentLeftSubscription.tsx @@ -1,9 +1,10 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { Environment, RecordSourceSelectorProxy } from "relay-runtime"; import { getQueueConnection } from "coral-admin/helpers"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLMODERATION_QUEUE_RL } from "coral-framework/schema"; @@ -11,7 +12,7 @@ import { GQLMODERATION_QUEUE_RL } from "coral-framework/schema"; import { QueueCommentLeftSubscription } from "coral-admin/__generated__/QueueCommentLeftSubscription.graphql"; function handleCommentLeftModerationQueue( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, queue: GQLMODERATION_QUEUE_RL, storyID: string | null ) { @@ -32,7 +33,7 @@ function handleCommentLeftModerationQueue( const linked = connection.getLinkedRecords("viewNewEdges") || []; connection.setLinkedRecords( linked.filter( - r => r!.getLinkedRecord("node")!.getValue("id") !== commentID + (r) => r.getLinkedRecord("node")!.getValue("id") !== commentID ), "viewNewEdges" ); @@ -62,7 +63,7 @@ const QueueSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { handleCommentLeftModerationQueue( store, variables.queue, diff --git a/src/core/client/admin/routes/Moderate/Queue/QueueRoute.tsx b/src/core/client/admin/routes/Moderate/Queue/QueueRoute.tsx index c2c0cc8f5..cd54c0571 100644 --- a/src/core/client/admin/routes/Moderate/Queue/QueueRoute.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/QueueRoute.tsx @@ -1,5 +1,10 @@ import { Localized } from "@fluent/react/compat"; -import React, { FunctionComponent, useCallback, useEffect } from "react"; +import React, { + FunctionComponent, + useCallback, + useEffect, + useMemo, +} from "react"; import { graphql, GraphQLTaggedNode, RelayPaginationProp } from "react-relay"; import { IntersectionProvider } from "coral-framework/lib/intersection"; @@ -40,7 +45,7 @@ interface Props { const danglingLogic = (status: string) => ["APPROVED", "REJECTED"].includes(status); -export const QueueRoute: FunctionComponent<Props> = props => { +export const QueueRoute: FunctionComponent<Props> = (props) => { const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); const subscribeToQueueCommentEntered = useSubscription( QueueCommentEnteredSubscription @@ -76,10 +81,13 @@ export const QueueRoute: FunctionComponent<Props> = props => { subscribeToQueueCommentEntered, subscribeToQueueCommentLeft, ]); + const comments = useMemo( + () => props.queue?.comments.edges.map((edge) => edge.node), + [props.queue?.comments.edges] + ); if (props.isLoading) { return <LoadingQueue />; } - const comments = props.queue!.comments.edges.map(edge => edge.node); const viewNewCount = (props.queue!.comments.viewNewEdges && props.queue!.comments.viewNewEdges.length) || @@ -87,7 +95,7 @@ export const QueueRoute: FunctionComponent<Props> = props => { return ( <IntersectionProvider> <Queue - comments={comments} + comments={comments!} settings={props.settings!} onLoadMore={loadMore} hasLoadMore={props.relay.hasMore()} diff --git a/src/core/client/admin/routes/Moderate/Queue/QueueViewNewMutation.tsx b/src/core/client/admin/routes/Moderate/Queue/QueueViewNewMutation.tsx index c41e2d33c..3a8f2492c 100644 --- a/src/core/client/admin/routes/Moderate/Queue/QueueViewNewMutation.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/QueueViewNewMutation.tsx @@ -16,7 +16,7 @@ interface QueueViewNewInput { const QueueViewNewMutation = createMutation( "viewNew", async (environment: Environment, input: QueueViewNewInput) => { - await commitLocalUpdatePromisified(environment, async store => { + await commitLocalUpdatePromisified(environment, async (store) => { const connection = getQueueConnection( store, input.queue, @@ -30,8 +30,8 @@ const QueueViewNewMutation = createMutation( if (!viewNewEdges || viewNewEdges.length === 0) { return; } - viewNewEdges.forEach(edge => { - ConnectionHandler.insertEdgeBefore(connection, edge!); + viewNewEdges.forEach((edge) => { + ConnectionHandler.insertEdgeBefore(connection, edge); }); connection.setLinkedRecords([], "viewNewEdges"); }); diff --git a/src/core/client/admin/routes/Moderate/Queue/QueueWrapper.tsx b/src/core/client/admin/routes/Moderate/Queue/QueueWrapper.tsx index 29e756a82..15de1d616 100644 --- a/src/core/client/admin/routes/Moderate/Queue/QueueWrapper.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/QueueWrapper.tsx @@ -28,7 +28,7 @@ const QueueWrapper: FunctionComponent<Props> = ({ <> {comments // FIXME (Nick/Wyatt): Investigate why comments are coming back null - .filter(c => Boolean(c)) + .filter((c) => Boolean(c)) .map((c, i) => { if (i === selected) { return card(c, i); @@ -42,7 +42,7 @@ const QueueWrapper: FunctionComponent<Props> = ({ <TransitionGroup component={null} appear={false} enter={false} exit> {comments // FIXME (Nick/Wyatt): Investigate why comments are coming back null - .filter(c => Boolean(c)) + .filter((c) => Boolean(c)) .map((c, i) => ( <CSSTransition key={c.id} diff --git a/src/core/client/admin/routes/Moderate/Queue/RejectedQueueRoute.tsx b/src/core/client/admin/routes/Moderate/Queue/RejectedQueueRoute.tsx index e865a5e37..675b9067e 100644 --- a/src/core/client/admin/routes/Moderate/Queue/RejectedQueueRoute.tsx +++ b/src/core/client/admin/routes/Moderate/Queue/RejectedQueueRoute.tsx @@ -5,6 +5,7 @@ import { graphql, RelayPaginationProp } from "react-relay"; import { IntersectionProvider } from "coral-framework/lib/intersection"; import { withPaginationContainer } from "coral-framework/lib/relay"; +import { resolveModule } from "coral-framework/lib/relay/helpers"; import { RejectedQueueRoute_query } from "coral-admin/__generated__/RejectedQueueRoute_query.graphql"; import { RejectedQueueRoutePaginationQueryVariables } from "coral-admin/__generated__/RejectedQueueRoutePaginationQuery.graphql"; @@ -33,7 +34,7 @@ export class RejectedQueueRoute extends React.Component< }; public render() { - const comments = this.props.query.comments.edges.map(edge => edge.node); + const comments = this.props.query.comments.edges.map((edge) => edge.node); return ( <IntersectionProvider> <Queue @@ -61,7 +62,7 @@ export class RejectedQueueRoute extends React.Component< this.setState({ disableLoadMore: true }); this.props.relay.loadMore( 10, // Fetch the next 10 feed items - error => { + (error) => { this.setState({ disableLoadMore: false }); if (error) { // eslint-disable-next-line no-console @@ -151,11 +152,11 @@ const enhanced = (withPaginationContainer< enhanced.routeConfig = { Component: enhanced, - query: graphql` + query: resolveModule(graphql` query RejectedQueueRouteQuery($storyID: ID, $siteID: ID) { ...RejectedQueueRoute_query @arguments(storyID: $storyID, siteID: $siteID) } - `, + `), cacheConfig: { force: true }, render: function RejectedRouteRender({ Component, props, match }) { if (Component && props) { diff --git a/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateRoute.tsx b/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateRoute.tsx index 5b8ce2c95..3f904fde7 100644 --- a/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateRoute.tsx +++ b/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateRoute.tsx @@ -16,7 +16,7 @@ type Props = SingleModerateRouteQueryResponse; const danglingLogic = () => false; -const SingleModerateRoute: FunctionComponent<Props> = props => { +const SingleModerateRoute: FunctionComponent<Props> = (props) => { const subscribeToSingleModerate = useSubscription(SingleModerateSubscription); useEffect(() => { if (!props.comment) { diff --git a/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateSubscription.tsx b/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateSubscription.tsx index 522f3c76d..01fc3a3a1 100644 --- a/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateSubscription.tsx +++ b/src/core/client/admin/routes/Moderate/SingleModerate/SingleModerateSubscription.tsx @@ -1,8 +1,9 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { Environment } from "relay-runtime"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; @@ -28,7 +29,7 @@ const SingleModerateSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { const commentID = store .getRootField("commentStatusUpdated")! .getLinkedRecord("comment")! diff --git a/src/core/client/admin/routes/Moderate/SingleModerate/__snapshots__/SingleModerate.spec.tsx.snap b/src/core/client/admin/routes/Moderate/SingleModerate/__snapshots__/SingleModerate.spec.tsx.snap index cb264f41d..16a2d29de 100644 --- a/src/core/client/admin/routes/Moderate/SingleModerate/__snapshots__/SingleModerate.spec.tsx.snap +++ b/src/core/client/admin/routes/Moderate/SingleModerate/__snapshots__/SingleModerate.spec.tsx.snap @@ -12,12 +12,12 @@ exports[`renders correctly 1`] = ` <Localized id="moderate-single-goToModerationQueues" > - <ForwardRef(render) + <Link className="SingleModerate-subBarBegin" to="/admin/moderate/" > Go to moderation queues - </ForwardRef(render)> + </Link> </Localized> <Localized id="moderate-single-singleCommentView" diff --git a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelector.tsx b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelector.tsx index f1b65fee2..936329054 100644 --- a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelector.tsx +++ b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelector.tsx @@ -55,7 +55,7 @@ const SiteSelector: FunctionComponent<Props> = ({ site={null} active={!siteID} /> - {sites.map(s => ( + {sites.map((s) => ( <SiteSelectorSite link={getModerationLink({ queue: queueName as QUEUE_NAME, diff --git a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorContainer.tsx b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorContainer.tsx index 8a37b9b3d..03be71ac6 100644 --- a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorContainer.tsx +++ b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorContainer.tsx @@ -19,9 +19,9 @@ interface Props { siteID: string | null; } -const SiteSelectorContainer: React.FunctionComponent<Props> = props => { +const SiteSelectorContainer: React.FunctionComponent<Props> = (props) => { const sites = props.query - ? props.query.sites.edges.map(edge => edge.node) + ? props.query.sites.edges.map((edge) => edge.node) : []; const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); const [, isRefetching] = useRefetch< diff --git a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorCurrentSiteQuery.tsx b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorCurrentSiteQuery.tsx index 035f144d6..5923b1403 100644 --- a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorCurrentSiteQuery.tsx +++ b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorCurrentSiteQuery.tsx @@ -1,10 +1,7 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - QueryRenderData, - QueryRenderer, -} from "coral-framework/lib/relay"; +import { QueryRenderData, QueryRenderer } from "coral-framework/lib/relay"; import Spinner from "coral-stream/common/Spinner"; import { Delay } from "coral-ui/components"; diff --git a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorSite.tsx b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorSite.tsx index 854fd7056..78a36f0f0 100644 --- a/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorSite.tsx +++ b/src/core/client/admin/routes/Moderate/SiteSelector/SiteSelectorSite.tsx @@ -2,8 +2,9 @@ import { Localized } from "@fluent/react/compat"; import cn from "classnames"; import { Link } from "found"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SiteSelectorSite_site } from "coral-admin/__generated__/SiteSelectorSite_site.graphql"; diff --git a/src/core/client/admin/routes/Moderate/__snapshots__/Moderate.spec.tsx.snap b/src/core/client/admin/routes/Moderate/__snapshots__/Moderate.spec.tsx.snap index 14d8c6ae0..8aa999245 100644 --- a/src/core/client/admin/routes/Moderate/__snapshots__/Moderate.spec.tsx.snap +++ b/src/core/client/admin/routes/Moderate/__snapshots__/Moderate.spec.tsx.snap @@ -4,7 +4,7 @@ exports[`renders correctly 1`] = ` <div data-testid="moderate-container" > - <ForwardRef(render) + <withRouter(Relay(ModerateSearchBarContainer)) allStories={true} settings={ Object { diff --git a/src/core/client/admin/routes/Stories/EmptyMessage.tsx b/src/core/client/admin/routes/Stories/EmptyMessage.tsx index 182b7ec0b..758c14e76 100644 --- a/src/core/client/admin/routes/Stories/EmptyMessage.tsx +++ b/src/core/client/admin/routes/Stories/EmptyMessage.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import styles from "./EmptyMessage.css"; -const EmptyMessage: FunctionComponent = props => ( +const EmptyMessage: FunctionComponent = (props) => ( <Localized id="stories-emptyMessage"> <div className={styles.root}>There are currently no published stories.</div> </Localized> diff --git a/src/core/client/admin/routes/Stories/NoMatchMessage.tsx b/src/core/client/admin/routes/Stories/NoMatchMessage.tsx index a27dd0495..b17911697 100644 --- a/src/core/client/admin/routes/Stories/NoMatchMessage.tsx +++ b/src/core/client/admin/routes/Stories/NoMatchMessage.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import styles from "./NoMatchMessage.css"; -const NoMatchMessage: FunctionComponent = props => ( +const NoMatchMessage: FunctionComponent = (props) => ( <Localized id="stories-noMatchMessage"> <div className={styles.root}> We could not find any stories matching your criteria. diff --git a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilter.tsx b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilter.tsx index a6d2e36d3..585c0b630 100644 --- a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilter.tsx +++ b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilter.tsx @@ -32,7 +32,7 @@ const SiteFilter: FunctionComponent<Props> = ({ disableLoadMore, loading, }) => { - const selected = sites.find(s => s.id === siteID); + const selected = sites.find((s) => s.id === siteID); return ( <FieldSet> <HorizontalGutter spacing={2}> @@ -62,9 +62,9 @@ const SiteFilter: FunctionComponent<Props> = ({ site={null} active={!siteID} /> - {sites.map(s => ( + {sites.map((s) => ( <SiteFilterOption - onSelect={id => onSelect(id)} + onSelect={(id) => onSelect(id)} site={s} active={s.id === siteID} key={s.id} diff --git a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterContainer.tsx b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterContainer.tsx index 17edf76fb..629a18a9c 100644 --- a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterContainer.tsx +++ b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterContainer.tsx @@ -19,9 +19,9 @@ interface Props { onSelect: (id: string) => void; } -const SiteFilterContainer: React.FunctionComponent<Props> = props => { +const SiteFilterContainer: React.FunctionComponent<Props> = (props) => { const sites = props.query - ? props.query.sites.edges.map(edge => edge.node) + ? props.query.sites.edges.map((edge) => edge.node) : []; const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); const [, isRefetching] = useRefetch< diff --git a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterOption.tsx b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterOption.tsx index 7cff6836d..302ec75e3 100644 --- a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterOption.tsx +++ b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterOption.tsx @@ -1,8 +1,9 @@ import { Localized } from "@fluent/react/compat"; import cn from "classnames"; import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { Button } from "coral-ui/components/v2"; import { SiteFilterOption_site } from "coral-admin/__generated__/SiteFilterOption_site.graphql"; diff --git a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterSelected.tsx b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterSelected.tsx index 200b24b92..24a89e799 100644 --- a/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterSelected.tsx +++ b/src/core/client/admin/routes/Stories/SiteFilter/SiteFilterSelected.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SiteFilterSelected_site } from "coral-admin/__generated__/SiteFilterSelected_site.graphql"; diff --git a/src/core/client/admin/routes/Stories/Stories.tsx b/src/core/client/admin/routes/Stories/Stories.tsx index 473575235..09fdf5ea4 100644 --- a/src/core/client/admin/routes/Stories/Stories.tsx +++ b/src/core/client/admin/routes/Stories/Stories.tsx @@ -12,7 +12,7 @@ interface Props { initialSearchFilter?: string; } -const Stories: FunctionComponent<Props> = props => ( +const Stories: FunctionComponent<Props> = (props) => ( <MainLayout className={styles.root} data-testid="stories-container"> <StoryTableContainer query={props.query} diff --git a/src/core/client/admin/routes/Stories/StoriesRoute.tsx b/src/core/client/admin/routes/Stories/StoriesRoute.tsx index 518d9d6e5..9e46cbd66 100644 --- a/src/core/client/admin/routes/Stories/StoriesRoute.tsx +++ b/src/core/client/admin/routes/Stories/StoriesRoute.tsx @@ -14,7 +14,7 @@ interface Props { initialSearchFilter?: string; } -const StoriesRoute: FunctionComponent<Props> = props => { +const StoriesRoute: FunctionComponent<Props> = (props) => { return ( <Stories query={props.data} diff --git a/src/core/client/admin/routes/Stories/StoryRow.tsx b/src/core/client/admin/routes/Stories/StoryRow.tsx index dc3a346cf..f4558772a 100644 --- a/src/core/client/admin/routes/Stories/StoryRow.tsx +++ b/src/core/client/admin/routes/Stories/StoryRow.tsx @@ -31,7 +31,7 @@ interface Props { totalCount: number; } -const UserRow: FunctionComponent<Props> = props => ( +const UserRow: FunctionComponent<Props> = (props) => ( <TableRow> <TableCell className={styles.titleColumn}> <HorizontalGutter> diff --git a/src/core/client/admin/routes/Stories/StoryRowContainer.tsx b/src/core/client/admin/routes/Stories/StoryRowContainer.tsx index b057d0b2d..e14f41cbc 100644 --- a/src/core/client/admin/routes/Stories/StoryRowContainer.tsx +++ b/src/core/client/admin/routes/Stories/StoryRowContainer.tsx @@ -15,7 +15,7 @@ interface Props { multisite: boolean; } -const StoryRowContainer: FunctionComponent<Props> = props => { +const StoryRowContainer: FunctionComponent<Props> = (props) => { const { locales } = useCoralContext(); const title = props.story.metadata && props.story.metadata.title; const author = props.story.metadata && props.story.metadata.author; diff --git a/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChange.tsx b/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChange.tsx index 310152873..56facba92 100644 --- a/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChange.tsx +++ b/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChange.tsx @@ -21,7 +21,7 @@ interface Props { status: GQLSTORY_STATUS_RL; } -const StoryStatusChange: FunctionComponent<Props> = props => ( +const StoryStatusChange: FunctionComponent<Props> = (props) => ( <Localized id="stories-status-popover" attrs={{ description: true }}> <Popover id="stories-statusChange" diff --git a/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChangeContainer.tsx b/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChangeContainer.tsx index a08191dd2..a47b7364e 100644 --- a/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChangeContainer.tsx +++ b/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusChangeContainer.tsx @@ -1,8 +1,8 @@ import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; import { Ability, can } from "coral-admin/permissions"; import { - graphql, MutationProp, withFragmentContainer, withMutation, @@ -24,7 +24,7 @@ interface Props { story: StoryStatusChangeContainer_story; } -const StoryStatusChangeContainer: FunctionComponent<Props> = props => { +const StoryStatusChangeContainer: FunctionComponent<Props> = (props) => { const handleChangeStatus = useCallback( (status: GQLSTORY_STATUS_RL) => { if (props.story.status === status) { diff --git a/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusText.tsx b/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusText.tsx index 97f87209f..e968eabb7 100644 --- a/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusText.tsx +++ b/src/core/client/admin/routes/Stories/StoryStatus/StoryStatusText.tsx @@ -10,7 +10,7 @@ interface Props { children: GQLSTORY_STATUS_RL; } -const StoryStatusText: FunctionComponent<Props> = props => ( +const StoryStatusText: FunctionComponent<Props> = (props) => ( <TranslatedStoryStatus container={ <span diff --git a/src/core/client/admin/routes/Stories/StoryTable.tsx b/src/core/client/admin/routes/Stories/StoryTable.tsx index 5b7dd6d76..08a5909c6 100644 --- a/src/core/client/admin/routes/Stories/StoryTable.tsx +++ b/src/core/client/admin/routes/Stories/StoryTable.tsx @@ -31,7 +31,7 @@ interface Props { multisite: boolean; } -const StoryTable: FunctionComponent<Props> = props => ( +const StoryTable: FunctionComponent<Props> = (props) => ( <> <HorizontalGutter size="double"> <Table fullWidth> @@ -72,7 +72,7 @@ const StoryTable: FunctionComponent<Props> = props => ( </TableHead> <TableBody> {!props.loading && - props.stories.map(u => ( + props.stories.map((u) => ( <StoryRowContainer key={u.id} story={u} diff --git a/src/core/client/admin/routes/Stories/StoryTableContainer.tsx b/src/core/client/admin/routes/Stories/StoryTableContainer.tsx index afa4aa428..c0d18a9d3 100644 --- a/src/core/client/admin/routes/Stories/StoryTableContainer.tsx +++ b/src/core/client/admin/routes/Stories/StoryTableContainer.tsx @@ -23,9 +23,9 @@ interface Props { relay: RelayPaginationProp; } -const StoryTableContainer: FunctionComponent<Props> = props => { +const StoryTableContainer: FunctionComponent<Props> = (props) => { const stories = props.query - ? props.query.stories.edges.map(edge => edge.node) + ? props.query.stories.edges.map((edge) => edge.node) : []; const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); diff --git a/src/core/client/admin/routes/Stories/StoryTableFilter.tsx b/src/core/client/admin/routes/Stories/StoryTableFilter.tsx index e023b5649..5e30f0110 100644 --- a/src/core/client/admin/routes/Stories/StoryTableFilter.tsx +++ b/src/core/client/admin/routes/Stories/StoryTableFilter.tsx @@ -24,7 +24,7 @@ interface Props { onSetSearchFilter: (search: string) => void; } -const StoryTableFilter: FunctionComponent<Props> = props => ( +const StoryTableFilter: FunctionComponent<Props> = (props) => ( <Flex itemGutter="double"> <FieldSet> <HorizontalGutter spacing={2}> @@ -93,7 +93,7 @@ const StoryTableFilter: FunctionComponent<Props> = props => ( <SelectField aria-label="Search by status" value={props.statusFilter || ""} - onChange={e => + onChange={(e) => props.onSetStatusFilter((e.target.value as any) || null) } > diff --git a/src/core/client/admin/test/auth/__snapshots__/addEmailAddress.spec.tsx.snap b/src/core/client/admin/test/auth/__snapshots__/addEmailAddress.spec.tsx.snap index 0e1fc7292..f8c5e208c 100644 --- a/src/core/client/admin/test/auth/__snapshots__/addEmailAddress.spec.tsx.snap +++ b/src/core/client/admin/test/auth/__snapshots__/addEmailAddress.spec.tsx.snap @@ -456,12 +456,11 @@ exports[`shows server error 1`] = ` > server error -GraphQL request (4:3) -3: ) { -4: setEmail(input: $input) { - ^ -5: user { - +GraphQL request:4:3 +3 | ) { +4 | setEmail(input: $input) { + | ^ +5 | user { </div> </div> <div diff --git a/src/core/client/admin/test/auth/__snapshots__/createPassword.spec.tsx.snap b/src/core/client/admin/test/auth/__snapshots__/createPassword.spec.tsx.snap index 08fa5204b..7f8891ad3 100644 --- a/src/core/client/admin/test/auth/__snapshots__/createPassword.spec.tsx.snap +++ b/src/core/client/admin/test/auth/__snapshots__/createPassword.spec.tsx.snap @@ -345,12 +345,11 @@ we require users to create a password. > server error -GraphQL request (4:3) -3: ) { -4: setPassword(input: $input) { - ^ -5: user { - +GraphQL request:4:3 +3 | ) { +4 | setPassword(input: $input) { + | ^ +5 | user { </div> </div> <div diff --git a/src/core/client/admin/test/auth/__snapshots__/createUsername.spec.tsx.snap b/src/core/client/admin/test/auth/__snapshots__/createUsername.spec.tsx.snap index a6f5d22df..764fffb5a 100644 --- a/src/core/client/admin/test/auth/__snapshots__/createUsername.spec.tsx.snap +++ b/src/core/client/admin/test/auth/__snapshots__/createUsername.spec.tsx.snap @@ -269,12 +269,11 @@ exports[`shows server error 1`] = ` > server error -GraphQL request (4:3) -3: ) { -4: setUsername(input: $input) { - ^ -5: user { - +GraphQL request:4:3 +3 | ) { +4 | setUsername(input: $input) { + | ^ +5 | user { </div> </div> <div diff --git a/src/core/client/admin/test/auth/addEmailAddress.spec.tsx b/src/core/client/admin/test/auth/addEmailAddress.spec.tsx index 597dba466..cfc1a5b13 100644 --- a/src/core/client/admin/test/auth/addEmailAddress.spec.tsx +++ b/src/core/client/admin/test/auth/addEmailAddress.spec.tsx @@ -156,7 +156,7 @@ it("shows server error", async () => { muteNetworkErrors: true, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => emailAddressField.props.onChange({ target: { value: email } })); @@ -207,7 +207,7 @@ it("successfully sets email", async () => { resolvers, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => emailAddressField.props.onChange({ target: { value: email } })); @@ -253,7 +253,7 @@ it("switch to link account", async () => { muteNetworkErrors: true, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => emailAddressField.props.onChange({ target: { value: email } })); diff --git a/src/core/client/admin/test/auth/createPassword.spec.tsx b/src/core/client/admin/test/auth/createPassword.spec.tsx index b24727838..7f1bee835 100644 --- a/src/core/client/admin/test/auth/createPassword.spec.tsx +++ b/src/core/client/admin/test/auth/createPassword.spec.tsx @@ -113,7 +113,7 @@ it("shows server error", async () => { muteNetworkErrors: true, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => passwordField.props.onChange({ target: { value: password } })); @@ -153,7 +153,7 @@ it("successfully sets password", async () => { resolvers, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => passwordField.props.onChange({ target: { value: password } })); diff --git a/src/core/client/admin/test/auth/createUsername.spec.tsx b/src/core/client/admin/test/auth/createUsername.spec.tsx index be70f7e0c..ceb0705b5 100644 --- a/src/core/client/admin/test/auth/createUsername.spec.tsx +++ b/src/core/client/admin/test/auth/createUsername.spec.tsx @@ -107,7 +107,7 @@ it("shows server error", async () => { muteNetworkErrors: true, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => usernameField.props.onChange({ target: { value: username } })); @@ -148,7 +148,7 @@ it("successfully sets username", async () => { resolvers, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => usernameField.props.onChange({ target: { value: username } })); diff --git a/src/core/client/admin/test/auth/linkAccount.spec.tsx b/src/core/client/admin/test/auth/linkAccount.spec.tsx index d8125df90..88c33bdb6 100644 --- a/src/core/client/admin/test/auth/linkAccount.spec.tsx +++ b/src/core/client/admin/test/auth/linkAccount.spec.tsx @@ -62,7 +62,6 @@ async function createTestRenderer( it("renders link account view", async () => { const { testRenderer } = await createTestRenderer(); expect(testRenderer.toJSON()).toMatchSnapshot(); - expect(await within(testRenderer.root).axe()).toHaveNoViolations(); }); it("checks for required password", async () => { diff --git a/src/core/client/admin/test/auth/redirectLoggedIn.spec.tsx b/src/core/client/admin/test/auth/redirectLoggedIn.spec.tsx index bf33a8a6f..d904d7115 100644 --- a/src/core/client/admin/test/auth/redirectLoggedIn.spec.tsx +++ b/src/core/client/admin/test/auth/redirectLoggedIn.spec.tsx @@ -66,7 +66,7 @@ it("redirect when already logged in", async () => { it("redirect to redirectPath when already logged in", async () => { await createTestRenderer({ - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("/admin/moderate/pending", "redirectPath"); }, }); diff --git a/src/core/client/admin/test/auth/restricted.spec.tsx b/src/core/client/admin/test/auth/restricted.spec.tsx index faaf4f05a..335702c76 100644 --- a/src/core/client/admin/test/auth/restricted.spec.tsx +++ b/src/core/client/admin/test/auth/restricted.spec.tsx @@ -95,9 +95,7 @@ it("sign out when clicking on sign in as", async () => { .once() .returns({}); - within(authBox) - .getByText("Sign in with a different account") - .props.onClick(); + within(authBox).getByText("Sign in with a different account").props.onClick(); await wait(() => { expect(lookup(context.relayEnvironment, LOCAL_ID)!.redirectPath).toBe( diff --git a/src/core/client/admin/test/community/community.spec.tsx b/src/core/client/admin/test/community/community.spec.tsx index 2c8ce21fb..b4c35180c 100644 --- a/src/core/client/admin/test/community/community.spec.tsx +++ b/src/core/client/admin/test/community/community.spec.tsx @@ -1,5 +1,5 @@ import TestRenderer from "react-test-renderer"; -import uuid from "uuid/v1"; +import { v1 as uuid } from "uuid"; import { pureMerge } from "coral-common/utils"; import { @@ -91,9 +91,7 @@ it("renders the invite button when clicked", async () => { const { container } = await createTestRenderer(); await act(async () => - within(container) - .getByTestID("invite-users-button") - .props.onClick() + within(container).getByTestID("invite-users-button").props.onClick() ); expect(within(container).getByTestID("invite-users-modal")).toBeDefined(); @@ -241,9 +239,7 @@ it("change user role", async () => { }); act(() => { - within(userRow) - .getByLabelText("Change role") - .props.onClick(); + within(userRow).getByLabelText("Change role").props.onClick(); }); const popup = within(userRow).getByLabelText( @@ -251,9 +247,7 @@ it("change user role", async () => { ); act(() => { - within(popup) - .getByText("Staff", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Staff", { selector: "button" }).props.onClick(); }); within(userRow).getByText("Staff"); @@ -393,7 +387,7 @@ it("filter by status", async () => { it("can't change staff, moderator and admin status", async () => { const { container } = await createTestRenderer(); - ["Admin", "Moderator", "Staff"].forEach(role => { + ["Admin", "Moderator", "Staff"].forEach((role) => { const viewerRow = within(container).getByText(role, { selector: "tr", }); @@ -434,9 +428,7 @@ it("suspend user", async () => { }); TestRenderer.act(() => { - within(userRow) - .getByLabelText("Change user status") - .props.onClick(); + within(userRow).getByLabelText("Change user status").props.onClick(); }); const popup = within(userRow).getByLabelText( @@ -444,9 +436,7 @@ it("suspend user", async () => { ); TestRenderer.act(() => { - within(popup) - .getByText("Suspend", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Suspend", { selector: "button" }).props.onClick(); }); const modal = within(testRenderer.root).getByLabelText("Suspend", { @@ -454,9 +444,7 @@ it("suspend user", async () => { }); TestRenderer.act(() => { - within(modal) - .getByType("form") - .props.onSubmit(); + within(modal).getByType("form").props.onSubmit(); }); within(userRow).getByText("Suspended"); expect(resolvers.Mutation!.suspendUser!.called).toBe(true); @@ -503,9 +491,7 @@ it("remove user suspension", async () => { }); TestRenderer.act(() => { - within(userRow) - .getByLabelText("Change user status") - .props.onClick(); + within(userRow).getByLabelText("Change user status").props.onClick(); }); const popup = within(userRow).getByLabelText( @@ -554,9 +540,7 @@ it("suspend user with custom timeout", async () => { }); TestRenderer.act(() => { - within(userRow) - .getByLabelText("Change user status") - .props.onClick(); + within(userRow).getByLabelText("Change user status").props.onClick(); }); const popup = within(userRow).getByLabelText( @@ -564,9 +548,7 @@ it("suspend user with custom timeout", async () => { ); TestRenderer.act(() => { - within(popup) - .getByText("Suspend", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Suspend", { selector: "button" }).props.onClick(); }); const modal = within(testRenderer.root).getByLabelText("Suspend", { @@ -580,9 +562,7 @@ it("suspend user with custom timeout", async () => { }); TestRenderer.act(() => { - within(modal) - .getByType("form") - .props.onSubmit(); + within(modal).getByType("form").props.onSubmit(); }); within(userRow).getByText("Suspended"); expect(resolvers.Mutation!.suspendUser!.called).toBe(true); @@ -620,9 +600,7 @@ it("suspend user with custom message", async () => { }); TestRenderer.act(() => { - within(userRow) - .getByLabelText("Change user status") - .props.onClick(); + within(userRow).getByLabelText("Change user status").props.onClick(); }); const popup = within(userRow).getByLabelText( @@ -630,9 +608,7 @@ it("suspend user with custom message", async () => { ); TestRenderer.act(() => { - within(popup) - .getByText("Suspend", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Suspend", { selector: "button" }).props.onClick(); }); const modal = within(testRenderer.root).getByLabelText("Suspend", { @@ -652,9 +628,7 @@ it("suspend user with custom message", async () => { }); TestRenderer.act(() => { - within(modal) - .getByType("form") - .props.onSubmit(); + within(modal).getByType("form").props.onSubmit(); }); within(userRow).getByText("Suspended"); @@ -692,9 +666,7 @@ it("ban user", async () => { }); TestRenderer.act(() => { - within(userRow) - .getByLabelText("Change user status") - .props.onClick(); + within(userRow).getByLabelText("Change user status").props.onClick(); }); const popup = within(userRow).getByLabelText( @@ -702,9 +674,7 @@ it("ban user", async () => { ); TestRenderer.act(() => { - within(popup) - .getByText("Ban", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Ban", { selector: "button" }).props.onClick(); }); const modal = within(testRenderer.root).getByLabelText( @@ -715,9 +685,7 @@ it("ban user", async () => { ); TestRenderer.act(() => { - within(modal) - .getByType("form") - .props.onSubmit(); + within(modal).getByType("form").props.onSubmit(); }); within(userRow).getByText("Banned"); expect(resolvers.Mutation!.banUser!.called).toBe(true); @@ -755,9 +723,7 @@ it("ban user with custom message", async () => { }); TestRenderer.act(() => { - within(userRow) - .getByLabelText("Change user status") - .props.onClick(); + within(userRow).getByLabelText("Change user status").props.onClick(); }); const popup = within(userRow).getByLabelText( @@ -765,9 +731,7 @@ it("ban user with custom message", async () => { ); TestRenderer.act(() => { - within(popup) - .getByText("Ban", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Ban", { selector: "button" }).props.onClick(); }); const modal = within(testRenderer.root).getByLabelText( @@ -790,9 +754,7 @@ it("ban user with custom message", async () => { }); TestRenderer.act(() => { - within(modal) - .getByType("form") - .props.onSubmit(); + within(modal).getByType("form").props.onSubmit(); }); within(userRow).getByText("Banned"); expect(resolvers.Mutation!.banUser!.called).toBe(true); @@ -809,7 +771,7 @@ it("remove user ban", async () => { const userRecord = pureMerge<typeof user>(user, { status: { current: user.status.current.filter( - s => s !== GQLUSER_STATUS.BANNED + (s) => s !== GQLUSER_STATUS.BANNED ), ban: { active: false }, }, @@ -841,9 +803,7 @@ it("remove user ban", async () => { }); TestRenderer.act(() => { - within(userRow) - .getByLabelText("Change user status") - .props.onClick(); + within(userRow).getByLabelText("Change user status").props.onClick(); }); const popup = within(userRow).getByLabelText( diff --git a/src/core/client/admin/test/configure/advanced.spec.tsx b/src/core/client/admin/test/configure/advanced.spec.tsx index bb70dfa14..176ca1466 100644 --- a/src/core/client/admin/test/configure/advanced.spec.tsx +++ b/src/core/client/admin/test/configure/advanced.spec.tsx @@ -89,9 +89,7 @@ it("change custom css", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -137,9 +135,7 @@ it("remove custom css", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Wait for submission to be finished diff --git a/src/core/client/admin/test/configure/auth.spec.tsx b/src/core/client/admin/test/configure/auth.spec.tsx index b01843008..5faab1f53 100644 --- a/src/core/client/admin/test/configure/auth.spec.tsx +++ b/src/core/client/admin/test/configure/auth.spec.tsx @@ -98,9 +98,7 @@ it("rotate sso key", async () => { }); const container = within(testRenderer.root).getByTestID("configure-auth-sso"); act(() => { - within(container) - .getByLabelText("Enabled") - .props.onChange({}); + within(container).getByLabelText("Enabled").props.onChange({}); }); act(() => { @@ -121,8 +119,8 @@ it("rotate sso key", async () => { // Check that we have two SSO Keys that match // our expected key IDs const keyIDs = within(container).getAllByTestID("SSO-Key-ID"); - const hasOldKey = keyIDs.some(k => k.props.value === "kid-01"); - const hasNewKey = keyIDs.some(k => k.props.value === "kid-02"); + const hasOldKey = keyIDs.some((k) => k.props.value === "kid-01"); + const hasNewKey = keyIDs.some((k) => k.props.value === "kid-02"); expect(hasNewKey).toBe(true); expect(hasOldKey).toBe(true); @@ -150,9 +148,7 @@ it("prevents admin lock out", async () => { // Let's disable local auth. act(() => { - within(container) - .getByLabelText("Enabled") - .props.onChange(); + within(container).getByLabelText("Enabled").props.onChange(); }); // Send form @@ -162,7 +158,9 @@ it("prevents admin lock out", async () => { await waitForElement(() => within(testRenderer.root).getByText( "Please enable at least one authentication integration", - { exact: false } + { + exact: false, + } ) ); }); diff --git a/src/core/client/admin/test/configure/general.spec.tsx b/src/core/client/admin/test/configure/general.spec.tsx index dcfc01d97..2d7ff3cd1 100644 --- a/src/core/client/admin/test/configure/general.spec.tsx +++ b/src/core/client/admin/test/configure/general.spec.tsx @@ -91,9 +91,7 @@ it("change language", async () => { // Send form await act(async () => { - await within(configureContainer) - .getByType("form") - .props.onSubmit(); + await within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -136,10 +134,9 @@ it("change site wide commenting", async () => { resolvers, }); - const sitewideCommentingContainer = within(generalContainer).getAllByText( - "Sitewide commenting", - { selector: "fieldset" } - )[0]; + const sitewideCommentingContainer = within( + generalContainer + ).getAllByText("Sitewide commenting", { selector: "fieldset" })[0]; const offField = within(sitewideCommentingContainer).getByLabelText( "Off - Comment streams closed for new comments" @@ -156,9 +153,7 @@ it("change site wide commenting", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -201,10 +196,9 @@ it("change community guidlines", async () => { resolvers, }); - const guidelinesContainer = within(generalContainer).getAllByText( - "Community guidelines summary", - { selector: "fieldset" } - )[0]; + const guidelinesContainer = within( + generalContainer + ).getAllByText("Community guidelines summary", { selector: "fieldset" })[0]; const onField = within(guidelinesContainer).getByLabelText("On"); const contentField = within(guidelinesContainer).getByLabelText( @@ -221,9 +215,7 @@ it("change community guidlines", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -269,9 +261,7 @@ it("change closed stream message", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -304,10 +294,9 @@ it("change comment editing time", async () => { saveChangesButton, } = await createTestRenderer({ resolvers }); - const durationFieldset = within(generalContainer).getByText( - "Comment edit timeframe", - { selector: "fieldset" } - ); + const durationFieldset = within( + generalContainer + ).getByText("Comment edit timeframe", { selector: "fieldset" }); const valueField = within(durationFieldset).getByLabelText("value"); const unitField = within(durationFieldset).getByLabelText("unit"); const hoursOption = within(unitField).getByText(/Hours?/); @@ -317,9 +306,7 @@ it("change comment editing time", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); expect( @@ -342,9 +329,7 @@ it("change comment editing time", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -381,10 +366,9 @@ it("change comment length limitations", async () => { resolvers, }); - const commentLengthContainer = within(generalContainer).getByText( - "Comment length", - { selector: "fieldset" } - ); + const commentLengthContainer = within( + generalContainer + ).getByText("Comment length", { selector: "fieldset" }); const onField = within(commentLengthContainer).getByLabelText("On"); const minField = within(commentLengthContainer).getByLabelText( "Minimum comment length" @@ -400,9 +384,7 @@ it("change comment length limitations", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); expect( @@ -433,9 +415,7 @@ it("change comment length limitations", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -473,15 +453,13 @@ it("change closing comment streams", async () => { saveChangesButton, } = await createTestRenderer({ resolvers }); - const closingCommentStreamsContainer = within(generalContainer).getByText( - "Closing comment streams", - { selector: "fieldset" } - ); + const closingCommentStreamsContainer = within( + generalContainer + ).getByText("Closing comment streams", { selector: "fieldset" }); const onField = within(closingCommentStreamsContainer).getByLabelText("On"); - const durationFieldset = within(closingCommentStreamsContainer).getByText( - "Close comments after", - { selector: "fieldset" } - ); + const durationFieldset = within( + closingCommentStreamsContainer + ).getByText("Close comments after", { selector: "fieldset" }); const valueField = within(durationFieldset).getByLabelText("value"); const unitField = within(durationFieldset).getByLabelText("unit"); const daysOption = within(unitField).getByText(/Days?/); @@ -492,9 +470,7 @@ it("change closing comment streams", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); expect( @@ -511,9 +487,7 @@ it("change closing comment streams", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. @@ -554,9 +528,7 @@ it("handle server error", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Look for internal error being displayed. diff --git a/src/core/client/admin/test/configure/moderation.spec.tsx b/src/core/client/admin/test/configure/moderation.spec.tsx index 7f388b8b9..d249f780c 100644 --- a/src/core/client/admin/test/configure/moderation.spec.tsx +++ b/src/core/client/admin/test/configure/moderation.spec.tsx @@ -82,7 +82,9 @@ it("change site wide pre-moderation", async () => { const preModerationContainer = within(moderationContainer).getAllByText( "Pre-moderate all comments sitewide", - { selector: "fieldset" } + { + selector: "fieldset", + } )[0]; const onField = within(preModerationContainer).getByLabelText("On"); @@ -127,7 +129,9 @@ it("change site wide link pre-moderation", async () => { const preModerationContainer = within(moderationContainer).getAllByText( "Pre-moderate comments containing links sitewide", - { selector: "fieldset" } + { + selector: "fieldset", + } )[0]; const onField = within(preModerationContainer).getByLabelText("On"); diff --git a/src/core/client/admin/test/configure/organization.spec.tsx b/src/core/client/admin/test/configure/organization.spec.tsx index 4d0968d5d..1a7a9e105 100644 --- a/src/core/client/admin/test/configure/organization.spec.tsx +++ b/src/core/client/admin/test/configure/organization.spec.tsx @@ -90,9 +90,7 @@ it("change organization name", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Should show validation error. @@ -108,9 +106,7 @@ it("change organization name", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. diff --git a/src/core/client/admin/test/configure/wordList.spec.tsx b/src/core/client/admin/test/configure/wordList.spec.tsx index c6fa687f3..2812ad9e0 100644 --- a/src/core/client/admin/test/configure/wordList.spec.tsx +++ b/src/core/client/admin/test/configure/wordList.spec.tsx @@ -96,9 +96,7 @@ it("change banned and suspect words", async () => { // Send form act(() => { - within(configureContainer) - .getByType("form") - .props.onSubmit(); + within(configureContainer).getByType("form").props.onSubmit(); }); // Submit button and text field should be disabled. diff --git a/src/core/client/admin/test/fixtures.ts b/src/core/client/admin/test/fixtures.ts index ae14ee502..539bb507c 100644 --- a/src/core/client/admin/test/fixtures.ts +++ b/src/core/client/admin/test/fixtures.ts @@ -843,7 +843,7 @@ export const reportedComments = createFixtures<GQLComment>( baseComment ); -export const rejectedComments = reportedComments.map<GQLComment>(c => ({ +export const rejectedComments = reportedComments.map<GQLComment>((c) => ({ ...c, status: GQLCOMMENT_STATUS.REJECTED, })); diff --git a/src/core/client/admin/test/moderate/liveCounts.spec.tsx b/src/core/client/admin/test/moderate/liveCounts.spec.tsx index 1b16a5d50..c94d20437 100644 --- a/src/core/client/admin/test/moderate/liveCounts.spec.tsx +++ b/src/core/client/admin/test/moderate/liveCounts.spec.tsx @@ -71,7 +71,7 @@ it("live update count", async () => { const commentEntered = (queue: GQLMODERATION_QUEUE, comment: GQLComment) => { subscriptionHandler.dispatch< SubscriptionToCommentEnteredModerationQueueResolver - >("commentEnteredModerationQueue", variables => { + >("commentEnteredModerationQueue", (variables) => { if (variables.queue && variables.queue !== queue) { return; } @@ -84,7 +84,7 @@ it("live update count", async () => { const commentLeft = (queue: GQLMODERATION_QUEUE, comment: GQLComment) => { subscriptionHandler.dispatch< SubscriptionToCommentEnteredModerationQueueResolver - >("commentLeftModerationQueue", variables => { + >("commentLeftModerationQueue", (variables) => { if (variables.queue && variables.queue !== queue) { return; } diff --git a/src/core/client/admin/test/moderate/regularQueueLiveNewComments.spec.tsx b/src/core/client/admin/test/moderate/regularQueueLiveNewComments.spec.tsx index 2f1c3d706..e353d3edd 100644 --- a/src/core/client/admin/test/moderate/regularQueueLiveNewComments.spec.tsx +++ b/src/core/client/admin/test/moderate/regularQueueLiveNewComments.spec.tsx @@ -68,7 +68,7 @@ it("allows viewing new when new comments come in", async () => { subscriptionHandler.dispatch< SubscriptionToCommentEnteredModerationQueueResolver - >("commentEnteredModerationQueue", variables => { + >("commentEnteredModerationQueue", (variables) => { if ( variables.storyID !== null || variables.queue !== GQLMODERATION_QUEUE.REPORTED @@ -103,7 +103,7 @@ it("recognizes when same comment enters and leaves again", async () => { subscriptionHandler.dispatch< SubscriptionToCommentEnteredModerationQueueResolver - >("commentEnteredModerationQueue", variables => { + >("commentEnteredModerationQueue", (variables) => { if ( variables.storyID !== null || variables.queue !== GQLMODERATION_QUEUE.REPORTED @@ -125,7 +125,7 @@ it("recognizes when same comment enters and leaves again", async () => { subscriptionHandler.dispatch< SubscriptionToCommentLeftModerationQueueResolver - >("commentLeftModerationQueue", variables => { + >("commentLeftModerationQueue", (variables) => { if ( variables.storyID !== null || variables.queue !== GQLMODERATION_QUEUE.REPORTED diff --git a/src/core/client/admin/test/moderate/regularQueueLiveStatus.spec.tsx b/src/core/client/admin/test/moderate/regularQueueLiveStatus.spec.tsx index ae329f243..6c712cf37 100644 --- a/src/core/client/admin/test/moderate/regularQueueLiveStatus.spec.tsx +++ b/src/core/client/admin/test/moderate/regularQueueLiveStatus.spec.tsx @@ -98,7 +98,7 @@ it("update comment status live", async () => { subscriptionHandler.dispatch< SubscriptionToCommentLeftModerationQueueResolver - >("commentLeftModerationQueue", variables => { + >("commentLeftModerationQueue", (variables) => { if ( variables.storyID !== null || variables.queue !== GQLMODERATION_QUEUE.REPORTED diff --git a/src/core/client/admin/test/moderate/searchBar.spec.tsx b/src/core/client/admin/test/moderate/searchBar.spec.tsx index 98b56888c..8fc1e07be 100644 --- a/src/core/client/admin/test/moderate/searchBar.spec.tsx +++ b/src/core/client/admin/test/moderate/searchBar.spec.tsx @@ -115,7 +115,9 @@ describe("all stories", () => { await wait(() => within(searchBar).getByText( "We could not find any stories matching your criteria", - { exact: false } + { + exact: false, + } ) ); }); diff --git a/src/core/client/admin/test/moderate/singleCommentLiveStatus.spec.tsx b/src/core/client/admin/test/moderate/singleCommentLiveStatus.spec.tsx index 7b69ec857..c8dc99b6f 100644 --- a/src/core/client/admin/test/moderate/singleCommentLiveStatus.spec.tsx +++ b/src/core/client/admin/test/moderate/singleCommentLiveStatus.spec.tsx @@ -68,7 +68,7 @@ it("update comment status live", async () => { subscriptionHandler.dispatch<SubscriptionToCommentStatusUpdatedResolver>( "commentStatusUpdated", - variables => { + (variables) => { if (variables.id !== commentData.id) { return; } diff --git a/src/core/client/admin/test/stories/stories.spec.tsx b/src/core/client/admin/test/stories/stories.spec.tsx index 5519e5a9d..7af158dd0 100644 --- a/src/core/client/admin/test/stories/stories.spec.tsx +++ b/src/core/client/admin/test/stories/stories.spec.tsx @@ -211,9 +211,7 @@ it("change story status", async () => { changeStatusButton.props.onClick(); }); act(() => { - within(popup) - .getByText("Closed", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Closed", { selector: "button" }).props.onClick(); }); within(storyRow).getByText("Closed"); @@ -225,9 +223,7 @@ it("change story status", async () => { }); act(() => { - within(popup) - .getByText("Open", { selector: "button" }) - .props.onClick(); + within(popup).getByText("Open", { selector: "button" }).props.onClick(); }); within(storyRow).getByText("Open"); diff --git a/src/core/client/auth/App/AccountCompletion/AccountCompletionContainer.tsx b/src/core/client/auth/App/AccountCompletion/AccountCompletionContainer.tsx index 0a65bfdcc..ebd98395d 100644 --- a/src/core/client/auth/App/AccountCompletion/AccountCompletionContainer.tsx +++ b/src/core/client/auth/App/AccountCompletion/AccountCompletionContainer.tsx @@ -1,8 +1,8 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; import { SetViewMutation } from "coral-auth/mutations"; import { - graphql, MutationProp, withFragmentContainer, withLocalStateContainer, @@ -63,7 +63,7 @@ function handleAccountCompletion(props: Props) { return false; } if ( - !viewer.profiles.some(p => p.__typename === "LocalProfile") && + !viewer.profiles.some((p) => p.__typename === "LocalProfile") && auth.integrations.local.enabled && auth.integrations.local.targetFilter.stream ) { diff --git a/src/core/client/auth/App/App.tsx b/src/core/client/auth/App/App.tsx index a6f310c90..1271d38d6 100644 --- a/src/core/client/auth/App/App.tsx +++ b/src/core/client/auth/App/App.tsx @@ -52,7 +52,7 @@ const render = ({ view, auth, viewer }: AppProps) => { } }; -const App: FunctionComponent<AppProps> = props => { +const App: FunctionComponent<AppProps> = (props) => { return ( <div> {process.env.NODE_ENV !== "test" && <ViewRouter />} diff --git a/src/core/client/auth/App/AppContainer.tsx b/src/core/client/auth/App/AppContainer.tsx index 60ab0e607..d3c416a70 100644 --- a/src/core/client/auth/App/AppContainer.tsx +++ b/src/core/client/auth/App/AppContainer.tsx @@ -1,7 +1,7 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; import { - graphql, withFragmentContainer, withLocalStateContainer, } from "coral-framework/lib/relay"; diff --git a/src/core/client/auth/App/AppQuery.tsx b/src/core/client/auth/App/AppQuery.tsx index e27f35636..b0f062c52 100644 --- a/src/core/client/auth/App/AppQuery.tsx +++ b/src/core/client/auth/App/AppQuery.tsx @@ -1,6 +1,7 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; -import { graphql, QueryRenderer } from "coral-framework/lib/relay"; +import { QueryRenderer } from "coral-framework/lib/relay"; import { AppQuery as QueryTypes } from "coral-auth/__generated__/AppQuery.graphql"; diff --git a/src/core/client/auth/components/ConfirmEmailField.tsx b/src/core/client/auth/components/ConfirmEmailField.tsx index d122013ee..fabcdb3cb 100644 --- a/src/core/client/auth/components/ConfirmEmailField.tsx +++ b/src/core/client/auth/components/ConfirmEmailField.tsx @@ -14,7 +14,7 @@ interface Props { disabled: boolean; } -const ConfirmEmailField: FunctionComponent<Props> = props => ( +const ConfirmEmailField: FunctionComponent<Props> = (props) => ( <Field name="confirmEmail" validate={composeValidators(required, validateEqualEmails)} diff --git a/src/core/client/auth/components/EmailField.tsx b/src/core/client/auth/components/EmailField.tsx index c9ee94028..39db4efba 100644 --- a/src/core/client/auth/components/EmailField.tsx +++ b/src/core/client/auth/components/EmailField.tsx @@ -14,7 +14,7 @@ interface Props { disabled: boolean; } -const EmailField: FunctionComponent<Props> = props => ( +const EmailField: FunctionComponent<Props> = (props) => ( <Field name="email" validate={composeValidators(required, validateEmail)}> {({ input, meta }) => ( <FormField> diff --git a/src/core/client/auth/components/Header/Bar.tsx b/src/core/client/auth/components/Header/Bar.tsx index 14c4a7f35..6382ab424 100644 --- a/src/core/client/auth/components/Header/Bar.tsx +++ b/src/core/client/auth/components/Header/Bar.tsx @@ -8,7 +8,7 @@ export interface BarProps { children: React.ReactNode; } -const Bar: FunctionComponent<BarProps> = props => ( +const Bar: FunctionComponent<BarProps> = (props) => ( <Flex className={styles.root} alignItems="center" justifyContent="center"> <header>{props.children}</header> </Flex> diff --git a/src/core/client/auth/components/Header/SubBar.tsx b/src/core/client/auth/components/Header/SubBar.tsx index 51405a79d..5301b8cd4 100644 --- a/src/core/client/auth/components/Header/SubBar.tsx +++ b/src/core/client/auth/components/Header/SubBar.tsx @@ -8,7 +8,7 @@ export interface SubBarProps { children: React.ReactNode; } -const SubBar: FunctionComponent<SubBarProps> = props => ( +const SubBar: FunctionComponent<SubBarProps> = (props) => ( <Flex className={styles.root} alignItems="center" justifyContent="center"> <nav>{props.children}</nav> </Flex> diff --git a/src/core/client/auth/components/Header/Subtitle.tsx b/src/core/client/auth/components/Header/Subtitle.tsx index a2d28fcb3..5033860dc 100644 --- a/src/core/client/auth/components/Header/Subtitle.tsx +++ b/src/core/client/auth/components/Header/Subtitle.tsx @@ -8,7 +8,7 @@ interface Props { children?: React.ReactNode; } -const Subtitle: FunctionComponent<Props> = props => ( +const Subtitle: FunctionComponent<Props> = (props) => ( <Typography variant="heading4" align="center" className={styles.root}> {props.children} </Typography> diff --git a/src/core/client/auth/components/Header/Title.tsx b/src/core/client/auth/components/Header/Title.tsx index 4bb389bef..17d554e84 100644 --- a/src/core/client/auth/components/Header/Title.tsx +++ b/src/core/client/auth/components/Header/Title.tsx @@ -8,7 +8,7 @@ interface Props { children?: React.ReactNode; } -const Title: FunctionComponent<Props> = props => ( +const Title: FunctionComponent<Props> = (props) => ( <Typography variant="heading2" align="center" className={styles.root}> {props.children} </Typography> diff --git a/src/core/client/auth/components/HorizontalSeparator.css b/src/core/client/auth/components/HorizontalSeparator.css index 3f2f7b0b3..8893e76ee 100644 --- a/src/core/client/auth/components/HorizontalSeparator.css +++ b/src/core/client/auth/components/HorizontalSeparator.css @@ -9,7 +9,7 @@ margin: 0; } .text { - composes: heading3 from "coral-ui/shared/typography.css"; + composes: heading3 from "~coral-ui/shared/typography.css"; position: relative; background-color: var(--palette-common-white); padding: 0 var(--mini-unit); diff --git a/src/core/client/auth/components/HorizontalSeparator.tsx b/src/core/client/auth/components/HorizontalSeparator.tsx index e1b3dcb69..2e394e259 100644 --- a/src/core/client/auth/components/HorizontalSeparator.tsx +++ b/src/core/client/auth/components/HorizontalSeparator.tsx @@ -8,7 +8,7 @@ interface Props { children: string; } -const HorizontalSeparator: FunctionComponent<Props> = props => ( +const HorizontalSeparator: FunctionComponent<Props> = (props) => ( <Flex className={styles.root} alignItems="center" justifyContent="center"> <hr className={styles.hr} /> <div className={styles.text}>{props.children}</div> diff --git a/src/core/client/auth/components/SetPasswordField.tsx b/src/core/client/auth/components/SetPasswordField.tsx index a609e2819..f40558ffe 100644 --- a/src/core/client/auth/components/SetPasswordField.tsx +++ b/src/core/client/auth/components/SetPasswordField.tsx @@ -19,7 +19,7 @@ interface Props { disabled: boolean; } -const SetPasswordField: FunctionComponent<Props> = props => ( +const SetPasswordField: FunctionComponent<Props> = (props) => ( <Field name="password" validate={composeValidators(required, validatePassword)} diff --git a/src/core/client/auth/components/UsernameField.tsx b/src/core/client/auth/components/UsernameField.tsx index e6f533558..f4e203f13 100644 --- a/src/core/client/auth/components/UsernameField.tsx +++ b/src/core/client/auth/components/UsernameField.tsx @@ -19,7 +19,7 @@ interface Props { disabled: boolean; } -const CreateUsernameField: FunctionComponent<Props> = props => ( +const CreateUsernameField: FunctionComponent<Props> = (props) => ( <Field name="username" validate={composeValidators(required, validateUsername)} diff --git a/src/core/client/auth/mutations/SetDuplicateEmailMutation.ts b/src/core/client/auth/mutations/SetDuplicateEmailMutation.ts index d7a347ce9..03193ac0b 100644 --- a/src/core/client/auth/mutations/SetDuplicateEmailMutation.ts +++ b/src/core/client/auth/mutations/SetDuplicateEmailMutation.ts @@ -13,7 +13,7 @@ export interface SetDuplicateEmailInput { const SetDuplicateEmailMutation = createMutation( "setDuplicateEmail", (environment: Environment, input: SetDuplicateEmailInput) => { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; record.setValue(input.duplicateEmail, "duplicateEmail"); }); diff --git a/src/core/client/auth/mutations/SetViewMutation.ts b/src/core/client/auth/mutations/SetViewMutation.ts index fc36a9b69..20ae31132 100644 --- a/src/core/client/auth/mutations/SetViewMutation.ts +++ b/src/core/client/auth/mutations/SetViewMutation.ts @@ -20,7 +20,7 @@ export interface SetViewInput { const SetViewMutation = createMutation( "setView", (environment: Environment, input: SetViewInput) => { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; if (input.history) { diff --git a/src/core/client/auth/mutations/index.ts b/src/core/client/auth/mutations/index.ts index e65ac4cdd..4f62921e6 100644 --- a/src/core/client/auth/mutations/index.ts +++ b/src/core/client/auth/mutations/index.ts @@ -1,4 +1,2 @@ export { default as SetViewMutation } from "./SetViewMutation"; -export { - default as SetDuplicateEmailMutation, -} from "./SetDuplicateEmailMutation"; +export { default as SetDuplicateEmailMutation } from "./SetDuplicateEmailMutation"; diff --git a/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap index a79bab731..b53a9271b 100644 --- a/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/addEmailAddress.spec.tsx.snap @@ -787,12 +787,11 @@ Your email address will be used to: > server error -GraphQL request (4:3) -3: ) { -4: setEmail(input: $input) { - ^ -5: user { - +GraphQL request:4:3 +3 | ) { +4 | setEmail(input: $input) { + | ^ +5 | user { </div> </div> <div diff --git a/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap index a8446ebc2..9ae478587 100644 --- a/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/createPassword.spec.tsx.snap @@ -333,12 +333,11 @@ we require users to create a password. > server error -GraphQL request (4:3) -3: ) { -4: setPassword(input: $input) { - ^ -5: user { - +GraphQL request:4:3 +3 | ) { +4 | setPassword(input: $input) { + | ^ +5 | user { </div> </div> <div diff --git a/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap b/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap index 89dc6b60f..7fb389dcd 100644 --- a/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap +++ b/src/core/client/auth/test/__snapshots__/createUsername.spec.tsx.snap @@ -257,12 +257,11 @@ exports[`shows server error 1`] = ` > server error -GraphQL request (4:3) -3: ) { -4: setUsername(input: $input) { - ^ -5: user { - +GraphQL request:4:3 +3 | ) { +4 | setUsername(input: $input) { + | ^ +5 | user { </div> </div> <div diff --git a/src/core/client/auth/test/addEmailAddress.spec.tsx b/src/core/client/auth/test/addEmailAddress.spec.tsx index e91d6ffc2..6538ce7a4 100644 --- a/src/core/client/auth/test/addEmailAddress.spec.tsx +++ b/src/core/client/auth/test/addEmailAddress.spec.tsx @@ -35,7 +35,7 @@ async function createTestRenderer( logNetwork: options.logNetwork, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("ADD_EMAIL_ADDRESS", "view"); }, }); @@ -148,7 +148,7 @@ it("shows server error", async () => { { muteNetworkErrors: true } ); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => emailAddressField.props.onChange({ target: { value: email } })); @@ -198,7 +198,7 @@ it("successfully sets email", async () => { }, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => emailAddressField.props.onChange({ target: { value: email } })); @@ -239,7 +239,7 @@ it("switch to link account", async () => { { muteNetworkErrors: true } ); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => emailAddressField.props.onChange({ target: { value: email } })); diff --git a/src/core/client/auth/test/createPassword.spec.tsx b/src/core/client/auth/test/createPassword.spec.tsx index b3fba3544..d538db4d5 100644 --- a/src/core/client/auth/test/createPassword.spec.tsx +++ b/src/core/client/auth/test/createPassword.spec.tsx @@ -32,7 +32,7 @@ async function createTestRenderer( logNetwork: options.logNetwork, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("CREATE_PASSWORD", "view"); }, }); @@ -94,7 +94,7 @@ it("shows server error", async () => { { muteNetworkErrors: true } ); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => { @@ -132,7 +132,7 @@ it("successfully sets password", async () => { }, }); const submitButton = form.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => { diff --git a/src/core/client/auth/test/createUsername.spec.tsx b/src/core/client/auth/test/createUsername.spec.tsx index b5da984c7..0f30c55b6 100644 --- a/src/core/client/auth/test/createUsername.spec.tsx +++ b/src/core/client/auth/test/createUsername.spec.tsx @@ -33,7 +33,7 @@ async function createTestRenderer( logNetwork: options.logNetwork, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("CREATE_USERNAME", "view"); }, }); @@ -108,7 +108,7 @@ it("shows server error", async () => { }, { muteNetworkErrors: true } ); - const s = f.find(i => i.type === "button" && i.props.type === "submit"); + const s = f.find((i) => i.type === "button" && i.props.type === "submit"); return { form: f, @@ -155,7 +155,7 @@ it("successfully sets username", async () => { }, { muteNetworkErrors: true } ); - const s = f.find(i => i.type === "button" && i.props.type === "submit"); + const s = f.find((i) => i.type === "button" && i.props.type === "submit"); return { form: f, diff --git a/src/core/client/auth/test/forgotPassword.spec.tsx b/src/core/client/auth/test/forgotPassword.spec.tsx index f28770926..a9c2173de 100644 --- a/src/core/client/auth/test/forgotPassword.spec.tsx +++ b/src/core/client/auth/test/forgotPassword.spec.tsx @@ -139,9 +139,7 @@ it("submits form successfully", async () => { ); act(() => { - within(testRenderer.root) - .getByText("Close") - .props.onClick(); + within(testRenderer.root).getByText("Close").props.onClick(); }); restMock.verify(); diff --git a/src/core/client/auth/test/navigation.spec.tsx b/src/core/client/auth/test/navigation.spec.tsx index 13b65f761..cef8880b8 100644 --- a/src/core/client/auth/test/navigation.spec.tsx +++ b/src/core/client/auth/test/navigation.spec.tsx @@ -18,7 +18,7 @@ async function createTestRenderer( // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(initialView, "view"); }, }); @@ -37,11 +37,7 @@ it("navigates to sign up form", async () => { const container = await waitForElement(() => within(testRenderer.root).getByTestID("signIn-container") ); - act(() => - within(container) - .getByText("Sign Up") - .props.onClick({}) - ); + act(() => within(container).getByText("Sign Up").props.onClick({})); await waitForElement(() => within(testRenderer.root).getByTestID("signUp-container") ); @@ -52,11 +48,7 @@ it("navigates to sign in form", async () => { const container = await waitForElement(() => within(testRenderer.root).getByTestID("signUp-container") ); - act(() => - within(container) - .getByText("Sign In") - .props.onClick({}) - ); + act(() => within(container).getByText("Sign In").props.onClick({})); await waitForElement(() => within(testRenderer.root).getByTestID("signIn-container") ); @@ -68,9 +60,7 @@ it("navigates to forgot password form", async () => { within(testRenderer.root).getByTestID("signIn-container") ); act(() => - within(container) - .getByText("Forgot your password?") - .props.onClick({}) + within(container).getByText("Forgot your password?").props.onClick({}) ); await waitForElement(() => within(testRenderer.root).getByTestID("forgotPassword-container") diff --git a/src/core/client/auth/test/signIn.spec.tsx b/src/core/client/auth/test/signIn.spec.tsx index 9d56b10ef..da73fe3a9 100644 --- a/src/core/client/auth/test/signIn.spec.tsx +++ b/src/core/client/auth/test/signIn.spec.tsx @@ -32,7 +32,7 @@ async function createTestRenderer( // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("SIGN_IN", "view"); localRecord.setValue(error, "error"); }, @@ -66,14 +66,10 @@ it("renders sign in view with error", async () => { const { testRenderer, container } = await createTestRenderer({}, error); within(container).getByText(error); act(() => { - within(testRenderer.root) - .getByText("Sign Up") - .props.onClick({}); + within(testRenderer.root).getByText("Sign Up").props.onClick({}); }); act(() => { - within(testRenderer.root) - .getByText("Sign In") - .props.onClick({}); + within(testRenderer.root).getByText("Sign In").props.onClick({}); }); const container2 = await waitForElement(() => within(testRenderer.root).getByTestID("signIn-container") @@ -129,7 +125,7 @@ it("shows server error", async () => { const emailAddressField = getByLabelText("Email Address"); const passwordField = getByLabelText("Password"); const submitButton = form!.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => passwordField.props.onChange({ target: { value: "testtest" } })); @@ -174,7 +170,7 @@ it("submits form successfully", async () => { const emailAddressField = getByLabelText("Email Address"); const passwordField = getByLabelText("Password"); const submitButton = form!.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => diff --git a/src/core/client/auth/test/signUp.spec.tsx b/src/core/client/auth/test/signUp.spec.tsx index 3da11a7b8..b88cfffe7 100644 --- a/src/core/client/auth/test/signUp.spec.tsx +++ b/src/core/client/auth/test/signUp.spec.tsx @@ -28,7 +28,7 @@ async function createTestRenderer(customResolver: any = {}) { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("SIGN_UP", "view"); }, }); @@ -200,7 +200,7 @@ it("shows server error", async () => { const usernameField = getByLabelText("Username"); const passwordField = getByLabelText("Password"); const submitButton = form!.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => @@ -250,7 +250,7 @@ it("submits form successfully", async () => { const usernameField = getByLabelText("Username"); const passwordField = getByLabelText("Password"); const submitButton = form!.find( - i => i.type === "button" && i.props.type === "submit" + (i) => i.type === "button" && i.props.type === "submit" ); act(() => diff --git a/src/core/client/auth/views/AddEmailAddress/SetEmailMutation.ts b/src/core/client/auth/views/AddEmailAddress/SetEmailMutation.ts index e09574279..2ba84f5d7 100644 --- a/src/core/client/auth/views/AddEmailAddress/SetEmailMutation.ts +++ b/src/core/client/auth/views/AddEmailAddress/SetEmailMutation.ts @@ -5,7 +5,6 @@ import { commitMutationPromiseNormalized, createMutation, } from "coral-framework/lib/relay"; -import { Omit } from "coral-framework/types"; import { SetEmailMutation as MutationTypes } from "coral-auth/__generated__/SetEmailMutation.graphql"; diff --git a/src/core/client/auth/views/AddEmailAddress/UnorderedList/ListItem.tsx b/src/core/client/auth/views/AddEmailAddress/UnorderedList/ListItem.tsx index 2132d8ee5..c4305a04a 100644 --- a/src/core/client/auth/views/AddEmailAddress/UnorderedList/ListItem.tsx +++ b/src/core/client/auth/views/AddEmailAddress/UnorderedList/ListItem.tsx @@ -8,7 +8,7 @@ interface Props { icon?: React.ReactNode; } -const ListItem: FunctionComponent<Props> = props => ( +const ListItem: FunctionComponent<Props> = (props) => ( <li className={styles.root}> <div className={styles.leftCol}>{props.icon}</div> <div>{props.children}</div> diff --git a/src/core/client/auth/views/AddEmailAddress/UnorderedList/UnorderedList.tsx b/src/core/client/auth/views/AddEmailAddress/UnorderedList/UnorderedList.tsx index 7fcf4bc5f..63c30fa7e 100644 --- a/src/core/client/auth/views/AddEmailAddress/UnorderedList/UnorderedList.tsx +++ b/src/core/client/auth/views/AddEmailAddress/UnorderedList/UnorderedList.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react"; import styles from "./UnorderedList.css"; -const UnorderedList: FunctionComponent = props => ( +const UnorderedList: FunctionComponent = (props) => ( <ul className={styles.root}>{props.children}</ul> ); diff --git a/src/core/client/auth/views/CreatePassword/SetPasswordMutation.ts b/src/core/client/auth/views/CreatePassword/SetPasswordMutation.ts index 3fb8a5929..cd4a21100 100644 --- a/src/core/client/auth/views/CreatePassword/SetPasswordMutation.ts +++ b/src/core/client/auth/views/CreatePassword/SetPasswordMutation.ts @@ -5,7 +5,6 @@ import { commitMutationPromiseNormalized, createMutation, } from "coral-framework/lib/relay"; -import { Omit } from "coral-framework/types"; import { SetPasswordMutation as MutationTypes } from "coral-auth/__generated__/SetPasswordMutation.graphql"; diff --git a/src/core/client/auth/views/CreateUsername/SetUsernameMutation.ts b/src/core/client/auth/views/CreateUsername/SetUsernameMutation.ts index 53252b589..cff283d9b 100644 --- a/src/core/client/auth/views/CreateUsername/SetUsernameMutation.ts +++ b/src/core/client/auth/views/CreateUsername/SetUsernameMutation.ts @@ -5,7 +5,6 @@ import { commitMutationPromiseNormalized, createMutation, } from "coral-framework/lib/relay"; -import { Omit } from "coral-framework/types"; import { SetUsernameMutation as MutationTypes } from "coral-auth/__generated__/SetUsernameMutation.graphql"; diff --git a/src/core/client/auth/views/ForgotPassword/ForgotPasswordContainer.tsx b/src/core/client/auth/views/ForgotPassword/ForgotPasswordContainer.tsx index 77c7b5ffe..5f604803c 100644 --- a/src/core/client/auth/views/ForgotPassword/ForgotPasswordContainer.tsx +++ b/src/core/client/auth/views/ForgotPassword/ForgotPasswordContainer.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent, useState } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { ForgotPasswordContainer_viewer } from "coral-auth/__generated__/ForgotPasswordContainer_viewer.graphql"; diff --git a/src/core/client/auth/views/LinkAccount/LinkAccountContainer.tsx b/src/core/client/auth/views/LinkAccount/LinkAccountContainer.tsx index bdcdc5ec7..7c72be005 100644 --- a/src/core/client/auth/views/LinkAccount/LinkAccountContainer.tsx +++ b/src/core/client/auth/views/LinkAccount/LinkAccountContainer.tsx @@ -2,6 +2,7 @@ import { Localized } from "@fluent/react/compat"; import { FORM_ERROR } from "final-form"; import React, { FunctionComponent, useCallback } from "react"; import { Field, Form } from "react-final-form"; +import { graphql } from "react-relay"; import { Bar, Title } from "coral-auth/components//Header"; import Main from "coral-auth/components/Main"; @@ -15,7 +16,6 @@ import { ValidationMessage, } from "coral-framework/lib/form"; import { - graphql, useLocal, useMutation, withFragmentContainer, @@ -46,7 +46,7 @@ interface Props { viewer: LinkAccountContainer_viewer | null; } -const LinkAccountContainer: FunctionComponent<Props> = props => { +const LinkAccountContainer: FunctionComponent<Props> = (props) => { const [local] = useLocal<LinkAccountContainerLocal>(graphql` fragment LinkAccountContainerLocal on Local { duplicateEmail diff --git a/src/core/client/auth/views/SignIn/ClearErrorMutation.ts b/src/core/client/auth/views/SignIn/ClearErrorMutation.ts index 3ff5ff65c..757ca7997 100644 --- a/src/core/client/auth/views/SignIn/ClearErrorMutation.ts +++ b/src/core/client/auth/views/SignIn/ClearErrorMutation.ts @@ -10,7 +10,7 @@ export async function commit( input: undefined, { pym }: CoralContext ) { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; record.setValue(null, "error"); }); diff --git a/src/core/client/auth/views/SignIn/SignInContainer.tsx b/src/core/client/auth/views/SignIn/SignInContainer.tsx index a4e59229c..23a4d3dcc 100644 --- a/src/core/client/auth/views/SignIn/SignInContainer.tsx +++ b/src/core/client/auth/views/SignIn/SignInContainer.tsx @@ -1,10 +1,10 @@ import React, { FunctionComponent, useCallback, useEffect } from "react"; +import { graphql } from "react-relay"; import { getViewURL } from "coral-auth/helpers"; import { SetViewMutation } from "coral-auth/mutations"; import { redirectOAuth2 } from "coral-framework/helpers"; import { - graphql, useMutation, withFragmentContainer, withLocalStateContainer, diff --git a/src/core/client/auth/views/SignIn/SignInWithEmail.tsx b/src/core/client/auth/views/SignIn/SignInWithEmail.tsx index b259e85d4..e79d340a7 100644 --- a/src/core/client/auth/views/SignIn/SignInWithEmail.tsx +++ b/src/core/client/auth/views/SignIn/SignInWithEmail.tsx @@ -36,7 +36,7 @@ export interface SignInWithEmailForm { forgotPasswordHref: string; } -const SignInWithEmail: FunctionComponent<SignInWithEmailForm> = props => { +const SignInWithEmail: FunctionComponent<SignInWithEmailForm> = (props) => { return ( <Form onSubmit={props.onSubmit}> {({ handleSubmit, submitting, submitError }) => ( diff --git a/src/core/client/auth/views/SignIn/SignInWithFacebookContainer.tsx b/src/core/client/auth/views/SignIn/SignInWithFacebookContainer.tsx index 7657ba907..e4ec380c4 100644 --- a/src/core/client/auth/views/SignIn/SignInWithFacebookContainer.tsx +++ b/src/core/client/auth/views/SignIn/SignInWithFacebookContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import FacebookButton from "coral-framework/components/FacebookButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignInWithFacebookContainer_auth as AuthData } from "coral-auth/__generated__/SignInWithFacebookContainer_auth.graphql"; diff --git a/src/core/client/auth/views/SignIn/SignInWithGoogleContainer.tsx b/src/core/client/auth/views/SignIn/SignInWithGoogleContainer.tsx index c20b38a7f..9ea0ecc01 100644 --- a/src/core/client/auth/views/SignIn/SignInWithGoogleContainer.tsx +++ b/src/core/client/auth/views/SignIn/SignInWithGoogleContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import GoogleButton from "coral-framework/components/GoogleButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignInWithGoogleContainer_auth as AuthData } from "coral-auth/__generated__/SignInWithGoogleContainer_auth.graphql"; diff --git a/src/core/client/auth/views/SignIn/SignInWithOIDCContainer.tsx b/src/core/client/auth/views/SignIn/SignInWithOIDCContainer.tsx index b8685ce5c..f0329426b 100644 --- a/src/core/client/auth/views/SignIn/SignInWithOIDCContainer.tsx +++ b/src/core/client/auth/views/SignIn/SignInWithOIDCContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import OIDCButton from "coral-framework/components/OIDCButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignInWithOIDCContainer_auth as AuthData } from "coral-auth/__generated__/SignInWithOIDCContainer_auth.graphql"; diff --git a/src/core/client/auth/views/SignUp/SignUpContainer.tsx b/src/core/client/auth/views/SignUp/SignUpContainer.tsx index 629fa4edc..bd524920d 100644 --- a/src/core/client/auth/views/SignUp/SignUpContainer.tsx +++ b/src/core/client/auth/views/SignUp/SignUpContainer.tsx @@ -1,12 +1,9 @@ import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; import { getViewURL } from "coral-auth/helpers"; import { SetViewMutation } from "coral-auth/mutations"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { SignUpContainer_auth as AuthData } from "coral-auth/__generated__/SignUpContainer_auth.graphql"; diff --git a/src/core/client/auth/views/SignUp/SignUpWithEmail.tsx b/src/core/client/auth/views/SignUp/SignUpWithEmail.tsx index aa439d613..f2db0d2e1 100644 --- a/src/core/client/auth/views/SignUp/SignUpWithEmail.tsx +++ b/src/core/client/auth/views/SignUp/SignUpWithEmail.tsx @@ -26,7 +26,7 @@ interface Props { onSubmit: OnSubmit<FormSubmitProps>; } -const SignUp: FunctionComponent<Props> = props => { +const SignUp: FunctionComponent<Props> = (props) => { return ( <Form onSubmit={props.onSubmit}> {({ handleSubmit, submitting, submitError }) => ( diff --git a/src/core/client/auth/views/SignUp/SignUpWithFacebookContainer.tsx b/src/core/client/auth/views/SignUp/SignUpWithFacebookContainer.tsx index 255dfff27..30ea0fb08 100644 --- a/src/core/client/auth/views/SignUp/SignUpWithFacebookContainer.tsx +++ b/src/core/client/auth/views/SignUp/SignUpWithFacebookContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import FacebookButton from "coral-framework/components/FacebookButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignUpWithFacebookContainer_auth as AuthData } from "coral-auth/__generated__/SignUpWithFacebookContainer_auth.graphql"; diff --git a/src/core/client/auth/views/SignUp/SignUpWithGoogleContainer.tsx b/src/core/client/auth/views/SignUp/SignUpWithGoogleContainer.tsx index dce8f9467..0f4e723f1 100644 --- a/src/core/client/auth/views/SignUp/SignUpWithGoogleContainer.tsx +++ b/src/core/client/auth/views/SignUp/SignUpWithGoogleContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import GoogleButton from "coral-framework/components/GoogleButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignUpWithGoogleContainer_auth as AuthData } from "coral-auth/__generated__/SignUpWithGoogleContainer_auth.graphql"; diff --git a/src/core/client/auth/views/SignUp/SignUpWithOIDCContainer.tsx b/src/core/client/auth/views/SignUp/SignUpWithOIDCContainer.tsx index 1e815a47c..3247f8e95 100644 --- a/src/core/client/auth/views/SignUp/SignUpWithOIDCContainer.tsx +++ b/src/core/client/auth/views/SignUp/SignUpWithOIDCContainer.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import OIDCButton from "coral-framework/components/OIDCButton"; import { redirectOAuth2 } from "coral-framework/helpers"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { SignUpWithOIDCContainer_auth as AuthData } from "coral-auth/__generated__/SignUpWithOIDCContainer_auth.graphql"; diff --git a/src/core/client/count/index.ts b/src/core/client/count/index.ts index f4bef2970..e1b6ba00e 100644 --- a/src/core/client/count/index.ts +++ b/src/core/client/count/index.ts @@ -44,7 +44,7 @@ function detectAndInject() { }); // Call server using JSONP. - Object.keys(queryMap).forEach(ref => { + Object.keys(queryMap).forEach((ref) => { const { url, id, notext } = queryMap[ref]; const args = { url, id, notext: notext ? "true" : "false", ref }; jsonp(`${ORIGIN}/api/story/count.js`, "CoralCount.setCount", args); diff --git a/src/core/client/count/test/basic.spec.ts b/src/core/client/count/test/basic.spec.ts index c295d6405..303b4077f 100644 --- a/src/core/client/count/test/basic.spec.ts +++ b/src/core/client/count/test/basic.spec.ts @@ -26,7 +26,7 @@ beforeEach(async () => { {}, ]; - tags.forEach(attrs => { + tags.forEach((attrs) => { const element = document.createElement("span"); element.className = "coral-count"; Object.assign(element.dataset, attrs); diff --git a/src/core/client/embed/PymControl.spec.ts b/src/core/client/embed/PymControl.spec.ts index 9e0615029..f655eab6c 100644 --- a/src/core/client/embed/PymControl.spec.ts +++ b/src/core/client/embed/PymControl.spec.ts @@ -30,7 +30,7 @@ describe("PymControl", () => { }); expect(container.innerHTML).toMatchSnapshot(); }); - it("should send message", done => { + it("should send message", (done) => { const messages: MessageEvent[] = []; const messageRecorder = (e: MessageEvent) => messages.push(e); const contentWindow = (container.firstChild as HTMLIFrameElement) diff --git a/src/core/client/embed/PymControl.ts b/src/core/client/embed/PymControl.ts index 92a8dbefc..8f1e55e92 100644 --- a/src/core/client/embed/PymControl.ts +++ b/src/core/client/embed/PymControl.ts @@ -11,7 +11,7 @@ export interface PymControlConfig { export type PymControlFactory = (config: PymControlConfig) => PymControl; -export const defaultPymControlFactory: PymControlFactory = config => +export const defaultPymControlFactory: PymControlFactory = (config) => new PymControl(config); export default class PymControl { @@ -28,8 +28,8 @@ export default class PymControl { }); this.cleanups = decorators - .map(enhance => enhance(this.pym)) - .filter(cb => cb) as CleanupCallback[]; + .map((enhance) => enhance(this.pym)) + .filter((cb) => cb) as CleanupCallback[]; } public sendMessage(id: string, raw?: string) { @@ -37,7 +37,7 @@ export default class PymControl { } public remove() { - this.cleanups.forEach(cb => cb()); + this.cleanups.forEach((cb) => cb()); this.cleanups = []; // Remove the pym parent. diff --git a/src/core/client/embed/StreamEmbed.spec.ts b/src/core/client/embed/StreamEmbed.spec.ts index b75823e70..0d2a8e2c7 100644 --- a/src/core/client/embed/StreamEmbed.spec.ts +++ b/src/core/client/embed/StreamEmbed.spec.ts @@ -46,14 +46,8 @@ it("should relay events methods to event emitter", () => { const callback = () => {}; const fakeFactory: any = () => ({}); const emitterMock = sinon.mock(config.eventEmitter); - emitterMock - .expects("on") - .withArgs("event", callback) - .once(); - emitterMock - .expects("off") - .withArgs("event", callback) - .once(); + emitterMock.expects("on").withArgs("event", callback).once(); + emitterMock.expects("off").withArgs("event", callback).once(); const streamEmbed = new StreamEmbed(config, fakeFactory); streamEmbed.on("event", callback); streamEmbed.off("event", callback); @@ -204,10 +198,7 @@ it("should emit showPermalink", () => { // eslint-disable-next-line:no-empty const fakeFactory: any = () => ({}); const emitterMock = sinon.mock(config.eventEmitter); - emitterMock - .expects("emit") - .withArgs("showPermalink") - .once(); + emitterMock.expects("emit").withArgs("showPermalink").once(); // eslint-disable-next-line:no-unused-expression new StreamEmbed(config, fakeFactory); jest.runOnlyPendingTimers(); diff --git a/src/core/client/embed/decorators/index.ts b/src/core/client/embed/decorators/index.ts index 4d044e09a..f795cfa68 100644 --- a/src/core/client/embed/decorators/index.ts +++ b/src/core/client/embed/decorators/index.ts @@ -6,6 +6,4 @@ export { default as withEventEmitter } from "./withEventEmitter"; export { default as withPymStorage } from "./withPymStorage"; export { default as withConfig } from "./withConfig"; export { default as withLiveCommentCount } from "./withLiveCommentCount"; -export { - default as withIOSSafariWidthWorkaround, -} from "./withIOSSafariWidthWorkaround"; +export { default as withIOSSafariWidthWorkaround } from "./withIOSSafariWidthWorkaround"; diff --git a/src/core/client/embed/decorators/withAutoHeight.ts b/src/core/client/embed/decorators/withAutoHeight.ts index b85e20bed..c9ab0d81f 100644 --- a/src/core/client/embed/decorators/withAutoHeight.ts +++ b/src/core/client/embed/decorators/withAutoHeight.ts @@ -1,6 +1,6 @@ import { Decorator } from "./types"; -const withAutoHeight: Decorator = pym => { +const withAutoHeight: Decorator = (pym) => { // Resize parent iframe height when child height changes let cachedHeight: string; pym.onMessage("height", (height: string) => { diff --git a/src/core/client/embed/decorators/withClickEvent.spec.ts b/src/core/client/embed/decorators/withClickEvent.spec.ts index ccc11a05b..01cda6eda 100644 --- a/src/core/client/embed/decorators/withClickEvent.spec.ts +++ b/src/core/client/embed/decorators/withClickEvent.spec.ts @@ -6,10 +6,7 @@ import withClickEvent from "./withClickEvent"; it("should send click events", () => { const pymMock = { - sendMessage: sinon - .mock() - .once() - .withArgs("click", ""), + sendMessage: sinon.mock().once().withArgs("click", ""), }; const cleanup = withClickEvent(pymMock as any) as CleanupCallback; simulant.fire(document.body, "click"); diff --git a/src/core/client/embed/decorators/withClickEvent.ts b/src/core/client/embed/decorators/withClickEvent.ts index a0c167992..2dc10031e 100644 --- a/src/core/client/embed/decorators/withClickEvent.ts +++ b/src/core/client/embed/decorators/withClickEvent.ts @@ -1,6 +1,6 @@ import { Decorator } from "./types"; -const withClickEvent: Decorator = pym => { +const withClickEvent: Decorator = (pym) => { const handleClick = () => pym.sendMessage("click", ""); // If the user clicks outside the embed, then tell the embed. diff --git a/src/core/client/embed/decorators/withConfig.ts b/src/core/client/embed/decorators/withConfig.ts index 6a2edec70..69d2ecc4f 100644 --- a/src/core/client/embed/decorators/withConfig.ts +++ b/src/core/client/embed/decorators/withConfig.ts @@ -2,7 +2,7 @@ import { ExternalConfig } from "coral-framework/lib/externalConfig"; import { Decorator } from "./types"; -const withConfig = (config: ExternalConfig): Decorator => pym => { +const withConfig = (config: ExternalConfig): Decorator => (pym) => { pym.onMessage("getConfig", () => { pym.sendMessage("config", JSON.stringify(config)); }); diff --git a/src/core/client/embed/decorators/withEventEmitter.spec.ts b/src/core/client/embed/decorators/withEventEmitter.spec.ts index e824a7065..86e55a2d9 100644 --- a/src/core/client/embed/decorators/withEventEmitter.spec.ts +++ b/src/core/client/embed/decorators/withEventEmitter.spec.ts @@ -4,10 +4,7 @@ import withEventEmitter from "./withEventEmitter"; it("should emit events from pym to eventEmitter", () => { const eventEmitterMock = { - emit: sinon - .mock() - .once() - .withArgs("eventName", "value"), + emit: sinon.mock().once().withArgs("eventName", "value"), }; const fakePym = { onMessage: (type: string, callback: (raw: string) => void) => { @@ -24,10 +21,7 @@ it("should emit events from pym to eventEmitter", () => { it("should emit ready event from pym to eventEmitter", () => { const eventEmitterMock = { - emit: sinon - .mock() - .once() - .withArgs("ready"), + emit: sinon.mock().once().withArgs("ready"), }; const fakePym = { onMessage: (type: string, callback: () => void) => { diff --git a/src/core/client/embed/decorators/withEventEmitter.ts b/src/core/client/embed/decorators/withEventEmitter.ts index 95d12622c..629c61738 100644 --- a/src/core/client/embed/decorators/withEventEmitter.ts +++ b/src/core/client/embed/decorators/withEventEmitter.ts @@ -7,7 +7,7 @@ import { Decorator } from "./types"; const withEventEmitter = ( eventEmitter: EventEmitter2, enableDeprecatedEvents = false -): Decorator => pym => { +): Decorator => (pym) => { // Pass events from iframe to the event emitter. pym.onMessage("event", (raw: string) => { const { eventName, value } = JSON.parse(raw); diff --git a/src/core/client/embed/decorators/withIOSSafariWidthWorkaround.ts b/src/core/client/embed/decorators/withIOSSafariWidthWorkaround.ts index 9f3c43774..000ae1d8d 100644 --- a/src/core/client/embed/decorators/withIOSSafariWidthWorkaround.ts +++ b/src/core/client/embed/decorators/withIOSSafariWidthWorkaround.ts @@ -1,6 +1,6 @@ import { Decorator } from "./types"; -const withIOSSafariWidthWorkaround: Decorator = pym => { +const withIOSSafariWidthWorkaround: Decorator = (pym) => { // Workaround: IOS Safari ignores `width` but respects `min-width` value. (pym.el.firstChild! as HTMLElement).style.width = "1px"; (pym.el.firstChild! as HTMLElement).style.minWidth = "100%"; diff --git a/src/core/client/embed/decorators/withLiveCommentCount.ts b/src/core/client/embed/decorators/withLiveCommentCount.ts index 68eb24f26..d4afe8ac9 100644 --- a/src/core/client/embed/decorators/withLiveCommentCount.ts +++ b/src/core/client/embed/decorators/withLiveCommentCount.ts @@ -9,18 +9,18 @@ import { Decorator } from "./types"; * and update any comment counts managed by our `count.js` script. */ const withLiveCommentCount = (eventEmitter: EventEmitter2): Decorator => () => { - eventEmitter.on("commentCount", args => { + eventEmitter.on("commentCount", (args) => { // Find all matching elements. const elements = document.querySelectorAll( `${COUNT_SELECTOR}[data-coral-url='${args.storyURL}'], ${COUNT_SELECTOR}[data-coral-id='${args.storyID}']` ); - elements.forEach(element => { + elements.forEach((element) => { // Replace number. - element.querySelectorAll(".coral-count-number").forEach(no => { + element.querySelectorAll(".coral-count-number").forEach((no) => { no.innerHTML = args.number; }); // Replace text. - element.querySelectorAll(".coral-count-text").forEach(no => { + element.querySelectorAll(".coral-count-text").forEach((no) => { no.innerHTML = args.text; }); }); diff --git a/src/core/client/embed/decorators/withPymStorage.spec.ts b/src/core/client/embed/decorators/withPymStorage.spec.ts index ae159d672..c7694f4f0 100644 --- a/src/core/client/embed/decorators/withPymStorage.spec.ts +++ b/src/core/client/embed/decorators/withPymStorage.spec.ts @@ -131,10 +131,7 @@ describe("withPymStorage", () => { mockConsole(); const pym = new PymStub("localStorage"); const storage = createInMemoryStorage(); - sinon - .mock(storage) - .expects("getItem") - .throws("error"); + sinon.mock(storage).expects("getItem").throws("error"); withPymStorage(storage, "localStorage", "coral:")(pym as any); pym.listeners["pymStorage.localStorage.request"]( JSON.stringify({ diff --git a/src/core/client/embed/decorators/withPymStorage.ts b/src/core/client/embed/decorators/withPymStorage.ts index 148d341df..6a5bb4e35 100644 --- a/src/core/client/embed/decorators/withPymStorage.ts +++ b/src/core/client/embed/decorators/withPymStorage.ts @@ -5,7 +5,7 @@ const withPymStorage = ( storage: Storage, type: "localStorage" | "sessionStorage", prefix = "coral:" -): Decorator => pym => { +): Decorator => (pym) => { pym.onMessage(`pymStorage.${type}.request`, (msg: any) => { const { id, method, parameters } = JSON.parse(msg); const { n, key, value } = parameters; diff --git a/src/core/client/embed/decorators/withSetCommentID.spec.ts b/src/core/client/embed/decorators/withSetCommentID.spec.ts index 577dddcfa..b19e6637c 100644 --- a/src/core/client/embed/decorators/withSetCommentID.spec.ts +++ b/src/core/client/embed/decorators/withSetCommentID.spec.ts @@ -51,10 +51,7 @@ it("should send commentID over pym when history changes", () => { ); const fakePym = { onMessage: sinon.stub(), - sendMessage: sinon - .mock() - .once() - .withArgs("setCommentID", "comment-id"), + sendMessage: sinon.mock().once().withArgs("setCommentID", "comment-id"), }; const cleanup = withSetCommentID(fakePym as any) as CleanupCallback; simulant.fire(window as any, "popstate"); diff --git a/src/core/client/embed/decorators/withSetCommentID.ts b/src/core/client/embed/decorators/withSetCommentID.ts index 4c4cd72df..3f27febac 100644 --- a/src/core/client/embed/decorators/withSetCommentID.ts +++ b/src/core/client/embed/decorators/withSetCommentID.ts @@ -7,7 +7,7 @@ function getCurrentCommentID() { return parseQuery(location.search).commentID; } -const withSetCommentID: Decorator = pym => { +const withSetCommentID: Decorator = (pym) => { // Add the permalink comment id to the query. pym.onMessage("setCommentID", (id: string) => { const search = stringifyQuery({ diff --git a/src/core/client/embed/index.html b/src/core/client/embed/index.html index 5d5dbf833..32077e928 100644 --- a/src/core/client/embed/index.html +++ b/src/core/client/embed/index.html @@ -23,7 +23,6 @@ <script> const CoralStreamEmbed = Coral.createStreamEmbed({ id: "coralStreamEmbed", - /** * * You can listen to events using the example below. diff --git a/src/core/client/embed/onIntersect.ts b/src/core/client/embed/onIntersect.ts index 80402939c..157031740 100644 --- a/src/core/client/embed/onIntersect.ts +++ b/src/core/client/embed/onIntersect.ts @@ -9,7 +9,7 @@ export default function onIntersect( threshold: 1.0, }; - const observer = new IntersectionObserver(entries => { + const observer = new IntersectionObserver((entries) => { if (entries[0].isIntersecting) { observer.disconnect(); callback(); diff --git a/src/core/client/embed/utils/prefixStorage.spec.ts b/src/core/client/embed/utils/prefixStorage.spec.ts index 7bd4de4c2..85fc86632 100644 --- a/src/core/client/embed/utils/prefixStorage.spec.ts +++ b/src/core/client/embed/utils/prefixStorage.spec.ts @@ -69,10 +69,7 @@ it("should prefix removeItem", () => { it("should prefix getItem", () => { const ret = "value"; const storage = { - getItem: sinon - .mock() - .withArgs("coral:key") - .returns(ret), + getItem: sinon.mock().withArgs("coral:key").returns(ret), }; const prefixed = prefixStorage(storage as any, "coral:"); diff --git a/src/core/client/embed/utils/prefixStorage.ts b/src/core/client/embed/utils/prefixStorage.ts index 63fb4e75e..c901e443c 100644 --- a/src/core/client/embed/utils/prefixStorage.ts +++ b/src/core/client/embed/utils/prefixStorage.ts @@ -31,7 +31,7 @@ class PrefixedStorage implements Storage { toBeDeleted.push(key); } } - toBeDeleted.forEach(key => this.storage.removeItem(key)); + toBeDeleted.forEach((key) => this.storage.removeItem(key)); } public key(n: number) { diff --git a/src/core/client/framework/components/CopyButton.tsx b/src/core/client/framework/components/CopyButton.tsx index ddf835a5b..7606e1fb5 100644 --- a/src/core/client/framework/components/CopyButton.tsx +++ b/src/core/client/framework/components/CopyButton.tsx @@ -5,7 +5,7 @@ import CopyToClipboard from "react-copy-to-clipboard"; import { Button } from "coral-ui/components/v2"; import { PropTypesOf } from "coral-ui/types"; -interface Props extends PropTypesOf<typeof Button> { +interface Props extends Omit<PropTypesOf<typeof Button>, "ref"> { text: string; } diff --git a/src/core/client/framework/components/DurationField.tsx b/src/core/client/framework/components/DurationField.tsx index 619c6a53f..57db99382 100644 --- a/src/core/client/framework/components/DurationField.tsx +++ b/src/core/client/framework/components/DurationField.tsx @@ -98,9 +98,10 @@ const DurationField: FunctionComponent<Props> = ({ } }, [value]); - const elementCallbacks = useMemo(() => units.map(k => DURATION_UNIT_MAP[k]), [ - units, - ]); + const elementCallbacks = useMemo( + () => units.map((k) => DURATION_UNIT_MAP[k]), + [units] + ); const { value: computedValue } = useMemo( () => convertFromSeconds(value, units, selectedUnit), diff --git a/src/core/client/framework/components/FacebookButton.tsx b/src/core/client/framework/components/FacebookButton.tsx index af42bb976..2d537392a 100644 --- a/src/core/client/framework/components/FacebookButton.tsx +++ b/src/core/client/framework/components/FacebookButton.tsx @@ -25,7 +25,7 @@ const facebookIcon = ( </svg> ); -const FacebookButton: FunctionComponent<Props> = props => ( +const FacebookButton: FunctionComponent<Props> = (props) => ( <Button classes={styles} variant="regular" diff --git a/src/core/client/framework/components/GoogleButton.tsx b/src/core/client/framework/components/GoogleButton.tsx index b10318e60..c8af2ea66 100644 --- a/src/core/client/framework/components/GoogleButton.tsx +++ b/src/core/client/framework/components/GoogleButton.tsx @@ -25,7 +25,7 @@ const googleIcon = ( </svg> ); -const GoogleButton: FunctionComponent<Props> = props => ( +const GoogleButton: FunctionComponent<Props> = (props) => ( <Button classes={styles} variant="regular" diff --git a/src/core/client/framework/components/LocaleField.tsx b/src/core/client/framework/components/LocaleField.tsx index ad2606982..730560dd0 100644 --- a/src/core/client/framework/components/LocaleField.tsx +++ b/src/core/client/framework/components/LocaleField.tsx @@ -4,11 +4,11 @@ import { LanguageCode, LOCALES_MAP } from "coral-common/helpers/i18n"; import { PropTypesOf } from "coral-framework/types"; import { Option, SelectField } from "coral-ui/components"; -interface Props extends PropTypesOf<typeof SelectField> { +interface Props extends Omit<PropTypesOf<typeof SelectField>, "ref"> { value: LanguageCode; } -const LocaleField: FunctionComponent<Props> = props => { +const LocaleField: FunctionComponent<Props> = (props) => { return ( <SelectField {...props}> {Object.keys(LOCALES_MAP).map((lang: LanguageCode) => { diff --git a/src/core/client/framework/components/OIDCButton.tsx b/src/core/client/framework/components/OIDCButton.tsx index 683bfb84b..13f9eab40 100644 --- a/src/core/client/framework/components/OIDCButton.tsx +++ b/src/core/client/framework/components/OIDCButton.tsx @@ -10,7 +10,7 @@ interface Props { children: React.ReactNode; } -const OIDCButton: FunctionComponent<Props> = props => ( +const OIDCButton: FunctionComponent<Props> = (props) => ( <Button classes={styles} variant="filled" diff --git a/src/core/client/framework/components/PasswordField.tsx b/src/core/client/framework/components/PasswordField.tsx index 22d38e137..3e1bc5d76 100644 --- a/src/core/client/framework/components/PasswordField.tsx +++ b/src/core/client/framework/components/PasswordField.tsx @@ -1,7 +1,7 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import { PasswordField as PasswordFieldUI } from "coral-ui/components/v2"; type Props = Omit< @@ -9,7 +9,7 @@ type Props = Omit< "showPasswordTitle" | "hidePasswordTitle" >; -const PasswordField: FunctionComponent<Props> = props => ( +const PasswordField: FunctionComponent<Props> = (props) => ( <Localized id="framework-passwordField" attrs={{ showPasswordTitle: true, hidePasswordTitle: true }} diff --git a/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.css b/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.css index cfab5c0d4..56fda9913 100644 --- a/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.css +++ b/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.css @@ -48,84 +48,84 @@ $fullscreenZIndex: 10; } .iconBold { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "format_bold"; } } .iconItalic { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "format_italic"; } } .iconTitle { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "title"; } } .iconQuote { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "format_quote"; } } .iconUnorderedList { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "format_list_bulleted"; } } .iconOrderedList { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "format_list_numbered"; } } .iconLink { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "link"; } } .iconImage { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "insert_photo"; } } .iconPreview { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "remove_red_eye"; } } .iconSideBySide { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "chrome_reader_mode"; } } .iconFullscreen { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "fullscreen"; } } .iconGuide { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; &::before { content: "help_outline"; } diff --git a/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.tsx b/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.tsx index 26dbe3815..dc4f08551 100644 --- a/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.tsx +++ b/src/core/client/framework/components/loadables/MarkdownEditor/MarkdownEditor.tsx @@ -3,6 +3,7 @@ import React, { ChangeEvent, Component, Ref } from "react"; import SimpleMDE from "simplemde"; import { GetMessage, withGetMessage } from "coral-framework/lib/i18n"; +import { PropTypesOf } from "coral-ui/types"; import styles from "./MarkdownEditor.css"; @@ -137,7 +138,7 @@ class MarkdownEditor extends Component<Props> { public textarea: HTMLTextAreaElement | null = null; public editor: SimpleMDE | null = null; - public onRef: Ref<HTMLTextAreaElement> = ref => (this.textarea = ref); + public onRef: Ref<HTMLTextAreaElement> = (ref) => (this.textarea = ref); public componentDidMount() { this.editor = new SimpleMDE({ @@ -198,7 +199,7 @@ let enhanced = withGetMessage(MarkdownEditor); if (process.env.NODE_ENV === "test") { // Replace with simple texteditor because it won't work in a jsdom environment. - enhanced = function MarkdownEditorTest({ onChange, ...rest }) { + enhanced = (function MarkdownEditorTest({ onChange, ...rest }) { return ( <div className={styles.wrapper}> <textarea @@ -211,7 +212,7 @@ if (process.env.NODE_ENV === "test") { /> </div> ); - }; + } as React.FunctionComponent<PropTypesOf<typeof enhanced>>) as any; } export default enhanced; diff --git a/src/core/client/framework/helpers/createContextHOC.tsx b/src/core/client/framework/helpers/createContextHOC.tsx index 38f0e94ed..fb21aff29 100644 --- a/src/core/client/framework/helpers/createContextHOC.tsx +++ b/src/core/client/framework/helpers/createContextHOC.tsx @@ -19,15 +19,15 @@ function createContextHOC<Context>( ): InferableComponentEnhancer<T> { return hoistStatics<T>( <U extends T>(WrappedComponent: React.ComponentType<U>) => { - const Component: React.FunctionComponent<any> = props => ( + const Component: React.FunctionComponent<any> = (props) => ( <Consumer> - {context => ( + {(context) => ( <WrappedComponent {...props} {...propsCallback(context)} /> )} </Consumer> ); Component.displayName = wrapDisplayName(WrappedComponent, displayName); - return Component; + return Component as any; } ); }; diff --git a/src/core/client/framework/helpers/index.ts b/src/core/client/framework/helpers/index.ts index 9be8f6f8b..a7f010f25 100644 --- a/src/core/client/framework/helpers/index.ts +++ b/src/core/client/framework/helpers/index.ts @@ -4,17 +4,13 @@ export { default as getURLWithCommentID } from "./getURLWithCommentID"; export { default as urls } from "./urls"; export { default as createContextHOC } from "./createContextHOC"; export { default as redirectOAuth2 } from "./redirectOAuth2"; -export { - default as getParamsFromHashAndClearIt, -} from "./getParamsFromHashAndClearIt"; +export { default as getParamsFromHashAndClearIt } from "./getParamsFromHashAndClearIt"; export { default as getParamsFromHash } from "./getParamsFromHash"; export { default as clearHash } from "./clearHash"; export { default as roleIsAtLeast } from "./roleIsAtLeast"; export { default as resolveStoryURL } from "./resolveStoryURL"; export { default as detectCountScript } from "./detectCountScript"; export { default as potentiallyInjectAxe } from "./potentiallyInjectAxe"; -export { - default as injectConditionalPolyfills, -} from "./injectConditionalPolyfills"; +export { default as injectConditionalPolyfills } from "./injectConditionalPolyfills"; export { default as polyfillCSSVarsForIE11 } from "./polyfillCSSVarsForIE11"; export { default as getModerationLink, QUEUE_NAME } from "./getModerationLink"; diff --git a/src/core/client/framework/helpers/injectConditionalPolyfills.tsx b/src/core/client/framework/helpers/injectConditionalPolyfills.tsx index 95a22217b..245a151ff 100644 --- a/src/core/client/framework/helpers/injectConditionalPolyfills.tsx +++ b/src/core/client/framework/helpers/injectConditionalPolyfills.tsx @@ -1,5 +1,4 @@ -import bowser from "bowser"; - +import { getBrowserInfo } from "../lib/browserInfo"; import polyfillCSSVarsForIE11 from "./polyfillCSSVarsForIE11"; export default async function injectConditionalPolyfills() { @@ -22,7 +21,7 @@ export default async function injectConditionalPolyfills() { } // CSS Vars Polyfill for IE11. - if (bowser.msie) { + if (getBrowserInfo().msie) { pending.push(import("whatwg-fetch")); pending.push(import("proxy-polyfill")); pending.push(polyfillCSSVarsForIE11()); diff --git a/src/core/client/framework/helpers/polyfillCSSVarsForIE11.tsx b/src/core/client/framework/helpers/polyfillCSSVarsForIE11.tsx index a0522e813..af6413f28 100644 --- a/src/core/client/framework/helpers/polyfillCSSVarsForIE11.tsx +++ b/src/core/client/framework/helpers/polyfillCSSVarsForIE11.tsx @@ -1,8 +1,8 @@ -import bowser from "bowser"; +import { getBrowserInfo } from "../lib/browserInfo"; export default function polyfillCSSVarsForIE11() { - if (bowser.msie) { - return import("css-vars-ponyfill").then(module => module.default()); + if (getBrowserInfo().msie) { + return import("css-vars-ponyfill").then((module) => module.default()); } return Promise.resolve(); } diff --git a/src/core/client/framework/helpers/polyfillNodeListForEach.ts b/src/core/client/framework/helpers/polyfillNodeListForEach.ts index 8d5e3090a..6431b3666 100644 --- a/src/core/client/framework/helpers/polyfillNodeListForEach.ts +++ b/src/core/client/framework/helpers/polyfillNodeListForEach.ts @@ -1,6 +1,6 @@ export default function polyfillNodeListForEach() { if ("NodeList" in window && !NodeList.prototype.forEach) { - NodeList.prototype.forEach = function(callback, thisArg) { + NodeList.prototype.forEach = function (callback, thisArg) { thisArg = thisArg || window; for (let i = 0; i < this.length; i++) { callback.call(thisArg, this[i], i, this); diff --git a/src/core/client/framework/helpers/potentiallyInjectAxe.ts b/src/core/client/framework/helpers/potentiallyInjectAxe.ts index 696ad0624..5e3dd1ba3 100644 --- a/src/core/client/framework/helpers/potentiallyInjectAxe.ts +++ b/src/core/client/framework/helpers/potentiallyInjectAxe.ts @@ -1,9 +1,9 @@ -import bowser from "bowser"; import React from "react"; import ReactDOM from "react-dom"; import { parseQuery } from "coral-common/utils"; -import { areWeInIframe } from "coral-framework/utils"; +import { getBrowserInfo } from "../lib/browserInfo"; +import { areWeInIframe } from "../utils"; function extractQuery(href: string) { const query = href.split("?")[1]; @@ -25,7 +25,7 @@ function extractQuery(href: string) { export default async function potentiallyInjectAxe( href = window.location.href ) { - if (process.env.NODE_ENV !== "development" || bowser.mobile) { + if (process.env.NODE_ENV !== "development" || getBrowserInfo().mobile) { // Only in development and skip mobile as it doesn't work there. return; } diff --git a/src/core/client/framework/helpers/roleIsAtLeast.ts b/src/core/client/framework/helpers/roleIsAtLeast.ts index 6a3829a6d..e3d3da83e 100644 --- a/src/core/client/framework/helpers/roleIsAtLeast.ts +++ b/src/core/client/framework/helpers/roleIsAtLeast.ts @@ -10,7 +10,7 @@ export default function roleIsAtLeast( role: GQLUSER_ROLE_RL, atLeast: GQLUSER_ROLE_RL ) { - [role, atLeast].forEach(r => { + [role, atLeast].forEach((r) => { if (!hierarchy.includes(r)) { throw new Error(`Unknown role ${r}`); } diff --git a/src/core/client/framework/hooks/useResizeObserver.ts b/src/core/client/framework/hooks/useResizeObserver.ts index b6f18abea..c1c4e13fa 100644 --- a/src/core/client/framework/hooks/useResizeObserver.ts +++ b/src/core/client/framework/hooks/useResizeObserver.ts @@ -8,7 +8,7 @@ export default function useResizeObserver( useEffect(() => { const element = ref.current; if (element) { - const resizeObserver = new ResizeObserver(entries => { + const resizeObserver = new ResizeObserver((entries) => { if (!Array.isArray(entries)) { return; } diff --git a/src/core/client/framework/hooks/useToken.ts b/src/core/client/framework/hooks/useToken.ts index 26a9e90d9..9f2a8c757 100644 --- a/src/core/client/framework/hooks/useToken.ts +++ b/src/core/client/framework/hooks/useToken.ts @@ -37,7 +37,7 @@ export default function useToken( .then(() => { handleTokenState("VALID"); }) - .catch(error => { + .catch((error) => { if (error instanceof InvalidRequestError) { handleTokenState("INVALID", error); } else { diff --git a/src/core/client/framework/lib/bootstrap/createManaged.tsx b/src/core/client/framework/lib/bootstrap/createManaged.tsx index 9c96aadb9..3f3bebf2a 100644 --- a/src/core/client/framework/lib/bootstrap/createManaged.tsx +++ b/src/core/client/framework/lib/bootstrap/createManaged.tsx @@ -5,7 +5,7 @@ import { Child as PymChild } from "pym.js"; import React, { Component, ComponentType } from "react"; import { Formatter } from "react-timeago"; import { Environment, RecordSource, Store } from "relay-runtime"; -import uuid from "uuid/v1"; +import { v1 as uuid } from "uuid"; import { LanguageCode } from "coral-common/helpers/i18n"; import { getBrowserInfo } from "coral-framework/lib/browserInfo"; @@ -178,7 +178,7 @@ function createManagedCoralContextProvider( // Set next access token. if (nextAccessToken) { - await commitLocalUpdatePromisified(newEnvironment, async store => { + await commitLocalUpdatePromisified(newEnvironment, async (store) => { setAccessTokenInLocalState(nextAccessToken, store); }); } @@ -265,7 +265,7 @@ export default async function createManaged({ // Listen for outside clicks. let registerClickFarAway: ClickFarAwayRegister | undefined; if (pym) { - registerClickFarAway = cb => { + registerClickFarAway = (cb) => { pym.onMessage("click", cb); // Return unlisten callback. return () => { diff --git a/src/core/client/framework/lib/browserInfo.ts b/src/core/client/framework/lib/browserInfo.ts index f7f3c9493..067c2d614 100644 --- a/src/core/client/framework/lib/browserInfo.ts +++ b/src/core/client/framework/lib/browserInfo.ts @@ -1,11 +1,21 @@ -import bowser from "bowser"; +import Bowser from "bowser"; export interface BrowserInfo { ios: boolean; + msie: boolean; + mobile: boolean; } +let browserInfo: BrowserInfo | null = null; + export function getBrowserInfo(): BrowserInfo { - return { - ios: bowser.ios, - }; + if (!browserInfo) { + const browser = Bowser.getParser(window.navigator.userAgent); + browserInfo = { + ios: browser.is(Bowser.OS_MAP.iOS), + msie: browser.is(Bowser.BROWSER_MAP.ie), + mobile: browser.is(Bowser.PLATFORMS_MAP.mobile), + }; + } + return browserInfo; } diff --git a/src/core/client/framework/lib/events.ts b/src/core/client/framework/lib/events.ts index 9a88839cb..b32925f7d 100644 --- a/src/core/client/framework/lib/events.ts +++ b/src/core/client/framework/lib/events.ts @@ -69,7 +69,7 @@ export function createViewerNetworkEvent< begin: ((eventEmitter, data) => { const ms = Date.now(); return { - success: (success => { + success: ((success) => { const final: any = { ...data, rtt: Date.now() - ms, @@ -79,7 +79,7 @@ export function createViewerNetworkEvent< } eventEmitter.emit(`${name}.success`, final); }) as ViewerNetworkEventStarted<T>["success"], - error: (error => { + error: ((error) => { const final: any = { ...data, rtt: Date.now() - ms, diff --git a/src/core/client/framework/lib/externalConfig.ts b/src/core/client/framework/lib/externalConfig.ts index 06c5548db..97e339b80 100644 --- a/src/core/client/framework/lib/externalConfig.ts +++ b/src/core/client/framework/lib/externalConfig.ts @@ -10,9 +10,9 @@ export function getExternalConfig( pym?: PymChild ): Promise<ExternalConfig> | null { if (pym && areWeInIframe()) { - return new Promise(resolve => { + return new Promise((resolve) => { pym.sendMessage("getConfig", ""); - pym.onMessage("config", raw => { + pym.onMessage("config", (raw) => { resolve(JSON.parse(raw) as ExternalConfig); }); }); diff --git a/src/core/client/framework/lib/form/SubmitHookHandler.tsx b/src/core/client/framework/lib/form/SubmitHookHandler.tsx index 49d2a8da6..1f0f32b09 100644 --- a/src/core/client/framework/lib/form/SubmitHookHandler.tsx +++ b/src/core/client/framework/lib/form/SubmitHookHandler.tsx @@ -47,7 +47,7 @@ class SubmitHookContainer extends React.Component<Props> { } executeCallbacks.push(() => this.props.onExecute(nextData, form)); - for (const c of executeCallbacks.map(cb => cb())) { + for (const c of executeCallbacks.map((cb) => cb())) { await c; } } catch (error) { @@ -60,10 +60,10 @@ class SubmitHookContainer extends React.Component<Props> { return; }; - private addSubmitHook: AddSubmitHook = hook => { + private addSubmitHook: AddSubmitHook = (hook) => { this.submitHooks.push(hook); return () => { - this.submitHooks = this.submitHooks.filter(h => h !== hook); + this.submitHooks = this.submitHooks.filter((h) => h !== hook); }; }; diff --git a/src/core/client/framework/lib/form/components/ValidationMessage.tsx b/src/core/client/framework/lib/form/components/ValidationMessage.tsx index bb18b6212..d670f39e1 100644 --- a/src/core/client/framework/lib/form/components/ValidationMessage.tsx +++ b/src/core/client/framework/lib/form/components/ValidationMessage.tsx @@ -1,7 +1,7 @@ import React, { FunctionComponent } from "react"; import { FieldMeta, hasError } from "coral-framework/lib/form/helpers"; -import { Omit } from "coral-framework/types"; + import { ValidationMessage as UIValidationMessage } from "coral-ui/components"; import { ValidationMessageProps } from "coral-ui/components/ValidationMessage"; diff --git a/src/core/client/framework/lib/form/helpers.tsx b/src/core/client/framework/lib/form/helpers.tsx index 137a08546..775e01a72 100644 --- a/src/core/client/framework/lib/form/helpers.tsx +++ b/src/core/client/framework/lib/form/helpers.tsx @@ -55,6 +55,20 @@ export const formatBool = (v: boolean) => { return v ? "true" : "false"; }; +export const parseInteger = (v: any) => { + const result = Number.parseInt(v, 10); + if (isNaN(result)) { + return v; + } + return result; +}; +export const parseIntegerNullable = (v: string) => { + if (v.trim() === "") { + return null; + } + return parseInteger(v); +}; + export const parseNewLineDelimitedString = (v: string) => v.split("\n"); export const formatNewLineDelimitedString = ( v: ReadonlyArray<string> | undefined | null @@ -71,7 +85,7 @@ export const parseStringList = (v: string) => { if (v === "") { return []; } - return v.split(",").map(x => x.trim()); + return v.split(",").map((x) => x.trim()); }; export const formatStringList = (v: string[] | null) => { diff --git a/src/core/client/framework/lib/form/withForm.tsx b/src/core/client/framework/lib/form/withForm.tsx index e2e1871b2..a050bde70 100644 --- a/src/core/client/framework/lib/form/withForm.tsx +++ b/src/core/client/framework/lib/form/withForm.tsx @@ -12,12 +12,12 @@ interface FormProps { } const withForm: InferableComponentEnhancer<FormProps> = hoistStatics<any>( (WrappedComponent: React.ComponentType<any>) => { - const Component: React.FunctionComponent<any> = props => { + const Component: React.FunctionComponent<any> = (props) => { const form = useForm<any>(); return <WrappedComponent {...props} form={form} />; }; Component.displayName = wrapDisplayName(WrappedComponent, "withForm"); - return Component; + return Component as any; } ); diff --git a/src/core/client/framework/lib/i18n/format.ts b/src/core/client/framework/lib/i18n/format.ts index a380f27a1..1c1e08160 100644 --- a/src/core/client/framework/lib/i18n/format.ts +++ b/src/core/client/framework/lib/i18n/format.ts @@ -16,7 +16,7 @@ export default function format( if (process.env.NODE_ENV !== "production" && errors.length > 0) { window.console.warn( `Translation ${key} encountered an error: ${errors - .map(err => err.message) + .map((err) => err.message) .join(", ")}` ); } diff --git a/src/core/client/framework/lib/i18n/getMessage.ts b/src/core/client/framework/lib/i18n/getMessage.ts index 009f69dac..e74f50d87 100644 --- a/src/core/client/framework/lib/i18n/getMessage.ts +++ b/src/core/client/framework/lib/i18n/getMessage.ts @@ -26,7 +26,7 @@ export default function getMessage<T extends {}>( if (process.env.NODE_ENV !== "production" && errors.length > 0) { window.console.warn( `Translation ${key} encountered an error: ${errors - .map(err => err.message) + .map((err) => err.message) .join(", ")}` ); } diff --git a/src/core/client/framework/lib/i18n/withGetMessage.tsx b/src/core/client/framework/lib/i18n/withGetMessage.tsx index deb6ce8a2..97ae07bd2 100644 --- a/src/core/client/framework/lib/i18n/withGetMessage.tsx +++ b/src/core/client/framework/lib/i18n/withGetMessage.tsx @@ -26,33 +26,31 @@ interface Props { * withGetMessage provides a property `getMessage: (id: string) => string` * that'll provide a translated string associated with `id`. */ -const withGetMessage: DefaultingInferableComponentEnhancer< +const withGetMessage: DefaultingInferableComponentEnhancer<InjectedProps> = hoistStatics< InjectedProps -> = hoistStatics<InjectedProps>( - <T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { - // TODO: (cvle) This is a workaround for a typescript bug - // https://github.com/Microsoft/TypeScript/issues/30762 - const Workaround = BaseComponent as React.ComponentType<InjectedProps>; +>(<T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { + // TODO: (cvle) This is a workaround for a typescript bug + // https://github.com/Microsoft/TypeScript/issues/30762 + const Workaround = BaseComponent as React.ComponentType<InjectedProps>; - class WithGetMessage extends React.Component<Props> { - private getMessage = <U extends {}>( - id: string, - defaultTo: string, - args?: U - ): string => { - return getMessage(this.props.localeBundles, id, defaultTo, args); - }; - public render() { - const { localeBundles: _, ...rest } = this.props; - return <Workaround {...rest} getMessage={this.getMessage} />; - } + class WithGetMessage extends React.Component<Props> { + private getMessage = <U extends {}>( + id: string, + defaultTo: string, + args?: U + ): string => { + return getMessage(this.props.localeBundles, id, defaultTo, args); + }; + public render() { + const { localeBundles: _, ...rest } = this.props; + return <Workaround {...rest} getMessage={this.getMessage} />; } - - const enhanced = withContext(({ localeBundles }) => ({ localeBundles }))( - WithGetMessage - ); - return enhanced as React.ComponentType<any>; } -); + + const enhanced = withContext(({ localeBundles }) => ({ localeBundles }))( + WithGetMessage + ); + return enhanced as React.ComponentClass<any>; +}); export default withGetMessage; diff --git a/src/core/client/framework/lib/intersection/IntersectionContext.tsx b/src/core/client/framework/lib/intersection/IntersectionContext.tsx index 064be579f..f91b054ac 100644 --- a/src/core/client/framework/lib/intersection/IntersectionContext.tsx +++ b/src/core/client/framework/lib/intersection/IntersectionContext.tsx @@ -31,7 +31,7 @@ export class IntersectionProvider extends React.Component<any, any> { rootMargin: "0px", threshold: 0.25, }); - this.elementBuffer.forEach(element => this.observer.observe(element)); + this.elementBuffer.forEach((element) => this.observer.observe(element)); this.elementBuffer = []; } @@ -42,7 +42,7 @@ export class IntersectionProvider extends React.Component<any, any> { private unobserve = (element: Element) => { this.elements.delete(element); if (!this.observer) { - this.elementBuffer = this.elementBuffer.filter(e => e !== element); + this.elementBuffer = this.elementBuffer.filter((e) => e !== element); } else { this.observer.unobserve(element); } @@ -64,7 +64,7 @@ export class IntersectionProvider extends React.Component<any, any> { entries: IntersectionObserverEntry[], observer: IntersectionObserver ) => { - entries.forEach(entry => this.elements.get(entry.target)(entry)); + entries.forEach((entry) => this.elements.get(entry.target)(entry)); }; public render() { diff --git a/src/core/client/framework/lib/intersection/withInView.tsx b/src/core/client/framework/lib/intersection/withInView.tsx index 688841963..401e2208c 100644 --- a/src/core/client/framework/lib/intersection/withInView.tsx +++ b/src/core/client/framework/lib/intersection/withInView.tsx @@ -21,65 +21,63 @@ interface State { * to indicate whether or not the referenced element is * in the current browser view. */ -const withInView: DefaultingInferableComponentEnhancer< +const withInView: DefaultingInferableComponentEnhancer<InjectedProps> = hoistStatics< InjectedProps -> = hoistStatics<InjectedProps>( - <T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { - // TODO: (cvle) This is a workaround for a typescript bug - // https://github.com/Microsoft/TypeScript/issues/30762 - const Workaround = BaseComponent as React.ComponentType<InjectedProps>; +>(<T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { + // TODO: (cvle) This is a workaround for a typescript bug + // https://github.com/Microsoft/TypeScript/issues/30762 + const Workaround = BaseComponent as React.ComponentType<InjectedProps>; - class WithInView extends React.Component<Props, State> { - private unobserve: (() => void) | null = null; + class WithInView extends React.Component<Props, State> { + private unobserve: (() => void) | null = null; - public state = { - inView: undefined, - }; + public state = { + inView: undefined, + }; - private changeRef = (ref: any) => { - if (this.unobserve) { - this.unobserve(); - this.unobserve = null; - } - if (ref) { - this.unobserve = this.props.observe( - ref, - ({ intersectionRatio }: any) => { - // Callback is called whenever we run observe. - if (this.state.inView === undefined) { - this.setState({ inView: intersectionRatio > 0 }); - } else { - this.setState(s => ({ - inView: !s.inView, - })); - } - } - ); - } - }; - - public componentWillUnmount() { - if (this.unobserve) { - this.unobserve(); - } + private changeRef = (ref: any) => { + if (this.unobserve) { + this.unobserve(); + this.unobserve = null; } - - public render() { - return ( - <Workaround - {...this.props} - inView={this.state.inView} - intersectionRef={this.changeRef} - /> + if (ref) { + this.unobserve = this.props.observe( + ref, + ({ intersectionRatio }: any) => { + // Callback is called whenever we run observe. + if (this.state.inView === undefined) { + this.setState({ inView: intersectionRatio > 0 }); + } else { + this.setState((s) => ({ + inView: !s.inView, + })); + } + } ); } + }; + + public componentWillUnmount() { + if (this.unobserve) { + this.unobserve(); + } } - const enhanced = withIntersectionContext(({ observe }) => ({ observe }))( - WithInView - ); - return enhanced as React.ComponentType<any>; + public render() { + return ( + <Workaround + {...this.props} + inView={this.state.inView} + intersectionRef={this.changeRef} + /> + ); + } } -); + + const enhanced = withIntersectionContext(({ observe }) => ({ observe }))( + WithInView + ); + return enhanced as React.ComponentClass<any>; +}); export default withInView; diff --git a/src/core/client/framework/lib/network/clientIDMiddleware.ts b/src/core/client/framework/lib/network/clientIDMiddleware.ts index d8a6b2ffe..9357365a8 100644 --- a/src/core/client/framework/lib/network/clientIDMiddleware.ts +++ b/src/core/client/framework/lib/network/clientIDMiddleware.ts @@ -7,9 +7,9 @@ import { CLIENT_ID_HEADER } from "coral-common/constants"; * * @param clientID an identifier for this client. */ -const clientIDMiddleware: ( - clientID: string -) => Middleware = clientID => next => async req => { +const clientIDMiddleware: (clientID: string) => Middleware = (clientID) => ( + next +) => async (req) => { if (!req.fetchOpts.headers) { req.fetchOpts.headers = {}; } diff --git a/src/core/client/framework/lib/network/createManagedSubscriptionClient.ts b/src/core/client/framework/lib/network/createManagedSubscriptionClient.ts index 30b19a04e..1049facd6 100644 --- a/src/core/client/framework/lib/network/createManagedSubscriptionClient.ts +++ b/src/core/client/framework/lib/network/createManagedSubscriptionClient.ts @@ -94,7 +94,7 @@ export default function createManagedSubscriptionClient( subscriptionClient = new SubscriptionClient(url, { reconnect: true, timeout: 60000, - connectionCallback: err => { + connectionCallback: (err) => { if (err) { // If an error is thrown as a result of live updates being // disabled, then just close the subscription client. @@ -149,7 +149,7 @@ export default function createManagedSubscriptionClient( } return { dispose: () => { - const i = requests.findIndex(r => r === request); + const i = requests.findIndex((r) => r === request); if (i !== -1) { // Unsubscribe if available. if (request.unsubscribe) { @@ -161,7 +161,7 @@ export default function createManagedSubscriptionClient( // Close client if there is no active subscription. if ( subscriptionClient && - (requests.length === 0 || requests.every(r => !r.unsubscribe)) + (requests.length === 0 || requests.every((r) => !r.unsubscribe)) ) { closeClient(); } diff --git a/src/core/client/framework/lib/network/createNetwork.ts b/src/core/client/framework/lib/network/createNetwork.ts index 4659415dd..0014ea262 100644 --- a/src/core/client/framework/lib/network/createNetwork.ts +++ b/src/core/client/framework/lib/network/createNetwork.ts @@ -3,9 +3,9 @@ import { cacheMiddleware, RelayNetworkLayer, retryMiddleware, - SubscribeFunction, urlMiddleware, } from "react-relay-network-modern/es"; +import { GraphQLResponse, Observable, SubscribeFunction } from "relay-runtime"; import TIME from "coral-common/time"; import getLocationOrigin from "coral-framework/utils/getLocationOrigin"; @@ -22,18 +22,22 @@ const graphqlURL = `${getLocationOrigin()}/api/graphql`; function createSubscriptionFunction( subscriptionClient: ManagedSubscriptionClient ): SubscribeFunction { - const fn: SubscribeFunction = ( - operation, - variables, - cacheConfig, - observer - ) => { - return subscriptionClient.subscribe( - operation, - variables, - cacheConfig, - observer - ); + const fn: SubscribeFunction = (operation, variables, cacheConfig) => { + return Observable.create<GraphQLResponse>((sink) => { + subscriptionClient.subscribe( + operation as any, + variables, + { + force: cacheConfig.force === null ? undefined : cacheConfig.force, + poll: cacheConfig.poll === null ? undefined : cacheConfig.poll, + }, + { + onNext: sink.next, + onError: sink.error, + onCompleted: sink.complete, + } + ); + }); }; return fn; } @@ -71,6 +75,7 @@ export default function createNetwork( clientIDMiddleware(clientID), persistedQueriesGetMethodMiddleware, ], - { subscribeFn: createSubscriptionFunction(subscriptionClient) } + // TODO: (cvle) Typing mismatch between Relay and react-relay-network-modern. + { subscribeFn: createSubscriptionFunction(subscriptionClient) as any } ); } diff --git a/src/core/client/framework/lib/network/customErrorMiddleware.ts b/src/core/client/framework/lib/network/customErrorMiddleware.ts index 0278b2c24..951e4a931 100644 --- a/src/core/client/framework/lib/network/customErrorMiddleware.ts +++ b/src/core/client/framework/lib/network/customErrorMiddleware.ts @@ -2,7 +2,7 @@ import { Middleware } from "react-relay-network-modern/es"; import extractGraphQLError from "./extractGraphQLError"; -const customErrorMiddleware: Middleware = next => async req => { +const customErrorMiddleware: Middleware = (next) => async (req) => { const res = await next(req); if (res.errors) { // Extract custom error. diff --git a/src/core/client/framework/lib/network/extractGraphQLError.ts b/src/core/client/framework/lib/network/extractGraphQLError.ts index 1821bf908..67b99f262 100644 --- a/src/core/client/framework/lib/network/extractGraphQLError.ts +++ b/src/core/client/framework/lib/network/extractGraphQLError.ts @@ -1,3 +1,5 @@ +import { GraphQLResponseErrors } from "react-relay-network-modern/es"; + import extractError from "./extractError"; interface GraphQLErrorWithExtension { @@ -10,7 +12,9 @@ function isGraphQLErrorWithExtension( return Boolean(err && err.extensions); } -export default function extractGraphQLError(errors: Error[]): Error | null { +export default function extractGraphQLError( + errors: GraphQLResponseErrors +): Error | null { if (errors.length > 1) { // Multiple errors are GraphQL errors. // TODO: (cvle) Is this assumption correct? diff --git a/src/core/client/framework/lib/network/persistedQueriesGetMethodMiddleware.ts b/src/core/client/framework/lib/network/persistedQueriesGetMethodMiddleware.ts index b59588f46..a6bf40902 100644 --- a/src/core/client/framework/lib/network/persistedQueriesGetMethodMiddleware.ts +++ b/src/core/client/framework/lib/network/persistedQueriesGetMethodMiddleware.ts @@ -16,7 +16,9 @@ function queriesAreEmpty(req: RelayRequestAny): boolean { * The request data will be encoded in base64url and set in the GET query string under * the variable "d=". */ -const persistedQueriesGetMethodMiddleware: Middleware = next => async req => { +const persistedQueriesGetMethodMiddleware: Middleware = (next) => async ( + req +) => { if (queriesAreEmpty(req) && !hasMutations(req)) { // Pull the body out (serializing it) and delete it off of the original // fetch options. diff --git a/src/core/client/framework/lib/postMessage.spec.ts b/src/core/client/framework/lib/postMessage.spec.ts index c5cc5a82a..2092b2503 100644 --- a/src/core/client/framework/lib/postMessage.spec.ts +++ b/src/core/client/framework/lib/postMessage.spec.ts @@ -1,8 +1,8 @@ import { PostMessageService } from "./postMessage"; -it("post and subscribe to a message", done => { +it("post and subscribe to a message", (done) => { const postMessage = new PostMessageService(); - const cancel = postMessage.on("test", value => { + const cancel = postMessage.on("test", (value) => { expect(value).toBe("value"); done(); cancel(); @@ -10,10 +10,10 @@ it("post and subscribe to a message", done => { postMessage.send("test", "value", window); }); -it("should support complex value", done => { +it("should support complex value", (done) => { const complex = { foo: "bar" }; const postMessage = new PostMessageService(); - const cancel = postMessage.on("test", value => { + const cancel = postMessage.on("test", (value) => { expect(value).toBe(complex); done(); cancel(); @@ -21,12 +21,12 @@ it("should support complex value", done => { postMessage.send("test", complex, window); }); -it("send to a different origin", done => { +it("send to a different origin", (done) => { const postMessage = new PostMessageService(); - const cancelA = postMessage.on("testA", value => { + const cancelA = postMessage.on("testA", (value) => { throw new Error("Should not reach this"); }); - const cancelB = postMessage.on("testB", value => { + const cancelB = postMessage.on("testB", (value) => { done(); cancelA(); cancelB(); @@ -35,12 +35,12 @@ it("send to a different origin", done => { postMessage.send("testB", "value", window); }); -it("should cancel", done => { +it("should cancel", (done) => { const postMessage = new PostMessageService(); - const cancelA = postMessage.on("testA", value => { + const cancelA = postMessage.on("testA", (value) => { throw new Error("Should not reach this"); }); - const cancelB = postMessage.on("testB", value => { + const cancelB = postMessage.on("testB", (value) => { done(); cancelB(); }); @@ -49,13 +49,13 @@ it("should cancel", done => { postMessage.send("testB", "value", window); }); -it("different scopes are isolated", done => { +it("different scopes are isolated", (done) => { const postMessageA = new PostMessageService("scopeA"); const postMessageB = new PostMessageService("scopeB"); - const cancelA = postMessageA.on("testA", value => { + const cancelA = postMessageA.on("testA", (value) => { throw new Error("Should not reach this"); }); - const cancelB = postMessageA.on("testB", value => { + const cancelB = postMessageA.on("testB", (value) => { done(); cancelA(); cancelB(); @@ -64,12 +64,12 @@ it("different scopes are isolated", done => { postMessageA.send("testB", "value", window); }); -it("different message names are isolated", done => { +it("different message names are isolated", (done) => { const postMessage = new PostMessageService(); - const cancelA = postMessage.on("testA", value => { + const cancelA = postMessage.on("testA", (value) => { expect(value).toBe("valueA"); }); - const cancelB = postMessage.on("testB", value => { + const cancelB = postMessage.on("testB", (value) => { expect(value).toBe("valueB"); done(); cancelA(); diff --git a/src/core/client/framework/lib/relay/QueryRenderer.tsx b/src/core/client/framework/lib/relay/QueryRenderer.tsx index 7b9c595df..b3619c4d4 100644 --- a/src/core/client/framework/lib/relay/QueryRenderer.tsx +++ b/src/core/client/framework/lib/relay/QueryRenderer.tsx @@ -2,7 +2,7 @@ import React, { Component } from "react"; import { QueryRenderer } from "react-relay"; import { OperationType } from "relay-runtime"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import { CoralContextConsumer } from "../bootstrap/CoralContext"; diff --git a/src/core/client/framework/lib/relay/commitLocalUpdatePromisified.ts b/src/core/client/framework/lib/relay/commitLocalUpdatePromisified.ts index 92d341cef..197358c64 100644 --- a/src/core/client/framework/lib/relay/commitLocalUpdatePromisified.ts +++ b/src/core/client/framework/lib/relay/commitLocalUpdatePromisified.ts @@ -9,10 +9,10 @@ export default function commitLocalUpdatePromisified( updater: (store: RecordSourceProxy) => Promise<void> ) { return new Promise((resolve, reject) => { - commitLocalUpdate(environment, store => { + commitLocalUpdate(environment, (store) => { updater(store) .then(() => resolve()) - .catch(err => reject(err)); + .catch((err) => reject(err)); }); }); } diff --git a/src/core/client/framework/lib/relay/commitMutationPromise.ts b/src/core/client/framework/lib/relay/commitMutationPromise.ts index 4955a4b56..6b31efaa2 100644 --- a/src/core/client/framework/lib/relay/commitMutationPromise.ts +++ b/src/core/client/framework/lib/relay/commitMutationPromise.ts @@ -1,15 +1,16 @@ import { commitMutation } from "react-relay"; -import { Environment, MutationConfig, OperationType } from "relay-runtime"; +import { Environment, MutationConfig, MutationParameters } from "relay-runtime"; -import { DeepPartial, Omit } from "coral-framework/types"; +import { DeepPartial } from "coral-framework/types"; import extractPayload from "./extractPayload"; +import { resolveModule } from "./helpers"; /** * Like `MutationConfig` but omits `onCompleted` and `onError` * because we are going to use a Promise API. */ -export type MutationPromiseConfig<T extends OperationType> = Omit< +export type MutationPromiseConfig<T extends MutationParameters> = Omit< MutationConfig<T>, "onCompleted" | "onError" | "optimisticResponse" > & { optimisticResponse?: DeepPartial<T["response"]> }; @@ -20,7 +21,9 @@ export type MutationPromiseConfig<T extends OperationType> = Omit< * and errors are wrapped inside of application specific * error instances. */ -export async function commitMutationPromiseNormalized<T extends OperationType>( +export async function commitMutationPromiseNormalized< + T extends MutationParameters +>( environment: Environment, config: MutationPromiseConfig<T> ): Promise<T["response"][keyof T["response"]]> { @@ -30,13 +33,14 @@ export async function commitMutationPromiseNormalized<T extends OperationType>( /** * Like `commitMutation` of the Relay API but returns a Promise. */ -export function commitMutationPromise<T extends OperationType>( +export function commitMutationPromise<T extends MutationParameters>( environment: Environment, config: MutationPromiseConfig<T> ): Promise<T["response"][keyof T["response"]]> { return new Promise((resolve, reject) => { commitMutation(environment, { ...config, + mutation: resolveModule(config.mutation), onCompleted: (response, errors) => { if (errors) { // This should not happen, as the network layer @@ -47,7 +51,7 @@ export function commitMutationPromise<T extends OperationType>( } resolve(extractPayload(response)); }, - onError: error => { + onError: (error) => { reject(error); }, }); diff --git a/src/core/client/framework/lib/relay/createAndRetain.ts b/src/core/client/framework/lib/relay/createAndRetain.ts index 19456008c..cd1b1ffca 100644 --- a/src/core/client/framework/lib/relay/createAndRetain.ts +++ b/src/core/client/framework/lib/relay/createAndRetain.ts @@ -1,4 +1,10 @@ -import { Environment, RecordProxy, RecordSourceProxy } from "relay-runtime"; +import { + createOperationDescriptor, + Environment, + getRequest, + RecordProxy, + RecordSourceProxy, +} from "relay-runtime"; /** * Creates a Record and retain it forever. Useful for local state. @@ -13,12 +19,27 @@ export default function createAndRetain( id: string, type: string ): RecordProxy { + // TODO: (cvle) This part is still hacky. + // Waiting for a solution to https://github.com/facebook/relay/issues/2997#issuecomment-604218660. + const query = { + kind: "Request", + operation: { + kind: "Operation", + argumentDefinitions: [], + selections: [], + }, + params: { + id, + operationKind: "query", + }, + } as any; + // TODO: (cvle) Third argument missing in type, remove `as any` when added. + const operation = (createOperationDescriptor as any)( + getRequest(query), + {}, + id + ); const result = source.create(id, type); - environment.retain({ - dataID: id, - // TODO: Do we still need this retain hack? - node: { selections: [] } as any, - variables: {}, - }); + environment.retain(operation); return result; } diff --git a/src/core/client/framework/lib/relay/createFetchContainer.tsx b/src/core/client/framework/lib/relay/createFetchContainer.tsx index 1ce151c51..fc42fbf3a 100644 --- a/src/core/client/framework/lib/relay/createFetchContainer.tsx +++ b/src/core/client/framework/lib/relay/createFetchContainer.tsx @@ -26,7 +26,7 @@ function createFetchContainer<T extends string, V, R>( ) => Promise<R> ): InferableComponentEnhancer<{ [P in T]: (variables: V) => Promise<R> }> { return compose( - withContext(context => ({ context })), + withContext((context) => ({ context })), hoistStatics((BaseComponent: React.ComponentType<any>) => { class CreateFetchContainer extends React.Component<any> { public static displayName = wrapDisplayName( @@ -50,9 +50,9 @@ function createFetchContainer<T extends string, V, R>( return <BaseComponent {...rest} {...inject} />; } } - return CreateFetchContainer as React.ComponentType<any>; + return CreateFetchContainer as React.ComponentClass<any>; }) - ); + ) as any; } export default createFetchContainer; diff --git a/src/core/client/framework/lib/relay/createMutationContainer.tsx b/src/core/client/framework/lib/relay/createMutationContainer.tsx index 45189c31d..8f838bc83 100644 --- a/src/core/client/framework/lib/relay/createMutationContainer.tsx +++ b/src/core/client/framework/lib/relay/createMutationContainer.tsx @@ -27,7 +27,7 @@ function createMutationContainer<T extends string, I, R>( ) => Promise<R> ): InferableComponentEnhancer<{ [P in T]: (input: I) => Promise<R> }> { return compose( - withContext(context => ({ context })), + withContext((context) => ({ context })), hoistStatics((BaseComponent: React.ComponentType<any>) => { class CreateMutationContainer extends React.Component<{ context: CoralContext; @@ -55,9 +55,9 @@ function createMutationContainer<T extends string, I, R>( return <BaseComponent {...rest} {...inject} />; } } - return CreateMutationContainer as React.ComponentType<any>; + return CreateMutationContainer as React.ComponentClass<any>; }) - ); + ) as any; } export default createMutationContainer; diff --git a/src/core/client/framework/lib/relay/fetch.tsx b/src/core/client/framework/lib/relay/fetch.tsx index 8e476fdfa..d19fd0fae 100644 --- a/src/core/client/framework/lib/relay/fetch.tsx +++ b/src/core/client/framework/lib/relay/fetch.tsx @@ -87,7 +87,7 @@ export function withFetch<N extends string, V, R>( fetch: Fetch<N, V, R> ): InferableComponentEnhancer<{ [P in N]: FetchProp<typeof fetch> }> { return compose( - withContext(context => ({ context })), + withContext((context) => ({ context })), hoistStatics((BaseComponent: React.ComponentType<any>) => { class WithFetch extends React.Component<{ context: CoralContext; @@ -115,7 +115,7 @@ export function withFetch<N extends string, V, R>( return <BaseComponent {...rest} {...inject} />; } } - return WithFetch as React.ComponentType<any>; + return WithFetch as React.ComponentClass<any>; }) - ); + ) as any; } diff --git a/src/core/client/framework/lib/relay/helpers.ts b/src/core/client/framework/lib/relay/helpers.ts new file mode 100644 index 000000000..46529c4ed --- /dev/null +++ b/src/core/client/framework/lib/relay/helpers.ts @@ -0,0 +1,28 @@ +// TODO: (cvle) we shouldn't need that. +// Try to fix that in Relay >9.0.0 with more complete +// support for the new eagerESModules flag. + +/** + * graphql tags currently come as resolved or unresolved es6 modules + * with an default export. Resolve to the actual default export. + * Applies to a single module. + */ +export function resolveModule<T>(module: T): T { + if (typeof module === "function") { + return module().default as T; + } + return (module as any).default; +} + +/** + * graphql tags currently come as resolved or unresolved es6 modules + * with an default export. Resolve to the actual default export. + * Applies to a map of records. + */ +export function resolveModuleObject<T>(module: T): T { + const r: Record<string, any> = {}; + Object.keys(module).forEach((k) => { + r[k] = resolveModule((module as any)[k]); + }); + return r as any; +} diff --git a/src/core/client/framework/lib/relay/index.ts b/src/core/client/framework/lib/relay/index.ts index 4aee3d5aa..2e54c667d 100644 --- a/src/core/client/framework/lib/relay/index.ts +++ b/src/core/client/framework/lib/relay/index.ts @@ -21,10 +21,7 @@ export { commitMutationPromise, commitMutationPromiseNormalized, } from "./commitMutationPromise"; -export { graphql } from "react-relay"; -export { - default as commitLocalUpdatePromisified, -} from "./commitLocalUpdatePromisified"; +export { default as commitLocalUpdatePromisified } from "./commitLocalUpdatePromisified"; export { initLocalBaseState, setAccessTokenInLocalState, @@ -50,5 +47,6 @@ export { SubscriptionVariables, withSubscription, combineDisposables, + requestSubscription, } from "./subscription"; export { default as purgeMetadata } from "./purgeMetadata"; diff --git a/src/core/client/framework/lib/relay/localState.ts b/src/core/client/framework/lib/relay/localState.ts index 880e89609..3c04ba520 100644 --- a/src/core/client/framework/lib/relay/localState.ts +++ b/src/core/client/framework/lib/relay/localState.ts @@ -52,7 +52,7 @@ export async function initLocalBaseState( { localStorage }: CoralContext, accessToken?: string | null ) { - commitLocalUpdate(environment, s => { + commitLocalUpdate(environment, (s) => { const root = s.getRoot(); // Create the Local Record which is the Root for the client states. diff --git a/src/core/client/framework/lib/relay/lookup.ts b/src/core/client/framework/lib/relay/lookup.ts index 3eebe1f1c..9c4ddf397 100644 --- a/src/core/client/framework/lib/relay/lookup.ts +++ b/src/core/client/framework/lib/relay/lookup.ts @@ -1,6 +1,7 @@ -import bowser from "bowser"; import { Environment } from "relay-runtime"; +import { getBrowserInfo } from "../browserInfo"; + /** * RecordSourceProxy has the same shape as the underlying Schema Type, but * makes all fields optional and readonly. @@ -55,7 +56,7 @@ const createProxy = <T = any>( // IE11 does not have Proxy support and the polyfill only supports // a subset of features under special circumstances. // https://github.com/GoogleChrome/proxy-polyfill - if (bowser.msie) { + if (getBrowserInfo().msie) { target = recordSource; delete proxy.ownKeys; delete proxy.getOwnPropertyDescriptor; @@ -69,10 +70,7 @@ const createProxy = <T = any>( * for easy traversing through the Relay Cache. */ export default function lookup<T = any>(environment: Environment, id: string) { - const recordSource = environment - .getStore() - .getSource() - .get(id); + const recordSource = environment.getStore().getSource().get(id); if (!recordSource) { return null; } diff --git a/src/core/client/framework/lib/relay/mutation.tsx b/src/core/client/framework/lib/relay/mutation.tsx index 796630acd..344864ef2 100644 --- a/src/core/client/framework/lib/relay/mutation.tsx +++ b/src/core/client/framework/lib/relay/mutation.tsx @@ -7,8 +7,6 @@ import { } from "recompose"; import { Environment } from "relay-runtime"; -import { Omit } from "coral-framework/types"; - import { CoralContext, useCoralContext, withContext } from "../bootstrap"; export interface Mutation<N, I, R> { @@ -89,7 +87,7 @@ export function withMutation<N extends string, I, R>( mutation: Mutation<N, I, R> ): InferableComponentEnhancer<{ [P in N]: MutationProp<typeof mutation> }> { return compose( - withContext(context => ({ context })), + withContext((context) => ({ context })), hoistStatics((BaseComponent: React.ComponentType<any>) => { class WithMutation extends React.Component<{ context: CoralContext; @@ -120,7 +118,7 @@ export function withMutation<N extends string, I, R>( return <BaseComponent {...rest} {...inject} />; } } - return WithMutation as React.ComponentType<any>; + return WithMutation as React.ComponentClass<any>; }) - ); + ) as any; } diff --git a/src/core/client/framework/lib/relay/purgeMetadata.ts b/src/core/client/framework/lib/relay/purgeMetadata.ts index cec86ef15..b8a1b67a5 100644 --- a/src/core/client/framework/lib/relay/purgeMetadata.ts +++ b/src/core/client/framework/lib/relay/purgeMetadata.ts @@ -16,8 +16,8 @@ export default function purgeMetadata<T>(data: T): T { } const result: any = {}; Object.keys(data) - .filter(k => !startsWith(k, "__")) - .forEach(k => { + .filter((k) => !startsWith(k, "__")) + .forEach((k) => { result[k] = purgeMetadata((data as any)[k]); }); return result; diff --git a/src/core/client/framework/lib/relay/subscription.tsx b/src/core/client/framework/lib/relay/subscription.tsx index 8d0c68e91..c134085f1 100644 --- a/src/core/client/framework/lib/relay/subscription.tsx +++ b/src/core/client/framework/lib/relay/subscription.tsx @@ -1,8 +1,14 @@ import React, { useCallback } from "react"; import { InferableComponentEnhancer } from "recompose"; -import { Disposable, Environment } from "relay-runtime"; +import { + Disposable, + Environment, + GraphQLSubscriptionConfig, + requestSubscription as requestSubscriptionRelay, +} from "relay-runtime"; import { CoralContext, useCoralContext } from "../bootstrap"; +import { resolveModule } from "./helpers"; export type SubscriptionVariables< T extends { variables: any } @@ -40,6 +46,17 @@ export function createSubscription<N extends string, V>( }; } +export function requestSubscription<TSubscriptionPayload>( + environment: Environment, + // tslint:disable-next-line no-unnecessary-generics + config: GraphQLSubscriptionConfig<TSubscriptionPayload> +): Disposable { + return requestSubscriptionRelay(environment, { + ...config, + subscription: resolveModule(config.subscription), + }); +} + /** * useSubscription is a React Hook that * returns a callback to subscribes to a Subscription. @@ -76,13 +93,13 @@ export function withSubscription<N extends string, V, R>( return (BaseComponent: React.ComponentType<any>) => { { const sub = useSubscription(subscription); - return function WithSubscription(props) { + return function WithSubscription(props: any) { const finalProps = { ...props, [subscription.name]: sub, }; return <BaseComponent {...finalProps} />; - }; + } as any; } }; } @@ -93,7 +110,7 @@ export function withSubscription<N extends string, V, R>( export function combineDisposables(...disposables: Disposable[]): Disposable { return { dispose: () => { - disposables.forEach(d => d.dispose()); + disposables.forEach((d) => d.dispose()); }, }; } diff --git a/src/core/client/framework/lib/relay/useLoadMore.ts b/src/core/client/framework/lib/relay/useLoadMore.ts index 4be7e0585..dbf69c418 100644 --- a/src/core/client/framework/lib/relay/useLoadMore.ts +++ b/src/core/client/framework/lib/relay/useLoadMore.ts @@ -19,7 +19,7 @@ export default function useLoadMore( } setIsLoadingMore(true); return new Promise<void>((resolve, reject) => { - relay.loadMore(count, error => { + relay.loadMore(count, (error) => { setIsLoadingMore(false); if (error) { reject(error); diff --git a/src/core/client/framework/lib/relay/useLocal.tsx b/src/core/client/framework/lib/relay/useLocal.tsx index 0fecc46d6..a3213621c 100644 --- a/src/core/client/framework/lib/relay/useLocal.tsx +++ b/src/core/client/framework/lib/relay/useLocal.tsx @@ -1,15 +1,18 @@ import { useCallback, useEffect, useRef, useState } from "react"; import { commitLocalUpdate, - CReaderSelector, GraphQLTaggedNode, + ReaderFragment, RecordProxy, + SingularReaderSelector, } from "relay-runtime"; +import { ReaderClientExtension } from "relay-runtime/lib/util/ReaderNode"; import { OmitFragments } from "coral-framework/testHelpers/removeFragmentRefs"; import { DeepPartial } from "coral-framework/types"; import { useCoralContext } from "../bootstrap"; +import { resolveModule } from "./helpers"; import { LOCAL_ID, LOCAL_TYPE } from "./localState"; /** @@ -41,8 +44,8 @@ function applySimplified( data: any ) { const keys = Object.keys(data); - keys.forEach(k => { - const field = selections.find(s => s.alias === k || s.name === k); + keys.forEach((k) => { + const field = selections.find((s) => s.alias === k || s.name === k); if (!field) { throw new Error(`Field '${k}' not found in selection`); } @@ -83,33 +86,48 @@ function applySimplified( function useLocal<T>( fragmentSpec: GraphQLTaggedNode ): [OmitFragments<T>, (update: LocalUpdater<OmitFragments<T>>) => void] { - const fragment = - typeof fragmentSpec === "function" - ? (fragmentSpec() as any).default - : (fragmentSpec as any).data().default; + const fragment = resolveModule(fragmentSpec as ReaderFragment); + if (fragment.kind !== "Fragment") { throw new Error("Expected fragment"); } if (fragment.type !== LOCAL_TYPE) { throw new Error(`Type must be "Local" in "Fragment ${fragment.name}"`); } - const selector: CReaderSelector<any> = { + + // TODO: (cvle) This is part is still hacky. + // Waiting for a solution to https://github.com/facebook/relay/issues/2997. + const selector: SingularReaderSelector = { + kind: undefined as any, + owner: undefined as any, dataID: LOCAL_ID, - node: { selections: fragment.selections }, + node: { + type: fragment.type, + kind: fragment.kind, + name: fragment.name, + metadata: fragment.metadata, + selections: fragment.selections, + argumentDefinitions: [], + }, variables: {}, }; + const { relayEnvironment } = useCoralContext(); const [local, setLocal] = useState<T>( - () => relayEnvironment.lookup(selector).data as T + () => relayEnvironment.lookup(selector).data as any ); const localUpdate = useCallback( (update: LocalUpdater<T>) => { - commitLocalUpdate(relayEnvironment, store => { + commitLocalUpdate(relayEnvironment, (store) => { const record = store.get(LOCAL_ID)!; if (isAdvancedUpdater(update)) { update(record); } else { - applySimplified(record, fragment.selections[0].selections, update); + applySimplified( + record, + (fragment.selections[0] as ReaderClientExtension).selections, + update + ); } }); return; @@ -120,11 +138,11 @@ function useLocal<T>( useEffect(() => { const snapshot = relayEnvironment.lookup(selector); - const subscription = relayEnvironment.subscribe(snapshot, update => - setLocal(update.data as T) + const subscription = relayEnvironment.subscribe(snapshot, (update) => + setLocal(update.data as any) ); if (!firstRun) { - setLocal(snapshot.data as T); + setLocal(snapshot.data as any); } firstRun.current = false; return () => { diff --git a/src/core/client/framework/lib/relay/useRefetch.ts b/src/core/client/framework/lib/relay/useRefetch.ts index 438aa8f84..273f8e7f8 100644 --- a/src/core/client/framework/lib/relay/useRefetch.ts +++ b/src/core/client/framework/lib/relay/useRefetch.ts @@ -22,7 +22,7 @@ export default function useRefetch<V = Variables>( setRefetching(true); const disposable = relay.refetchConnection( 10, - error => { + (error) => { setRefetching(false); if (error) { // eslint-disable-next-line no-console diff --git a/src/core/client/framework/lib/relay/withFragmentContainer.ts b/src/core/client/framework/lib/relay/withFragmentContainer.ts index 46517e107..b0845e507 100644 --- a/src/core/client/framework/lib/relay/withFragmentContainer.ts +++ b/src/core/client/framework/lib/relay/withFragmentContainer.ts @@ -8,6 +8,7 @@ import { wrapDisplayName, } from "recompose"; +import { resolveModuleObject } from "./helpers"; import hideForwardRef from "./hideForwardRef"; import { FragmentKeysNoLocal } from "./types"; @@ -23,7 +24,10 @@ export default <T>( { [P in FragmentKeysNoLocal<T>]: T[P] }, { [P in FragmentKeysNoLocal<T>]: FragmentOrRegularProp<T[P]> } > => (component: React.ComponentType<any>) => { - const result = createFragmentContainer(component, fragmentSpec); + const result = createFragmentContainer( + component, + resolveModuleObject(fragmentSpec) + ); result.displayName = wrapDisplayName(component, "Relay"); // TODO: (cvle) We wrap this currently to hide the ForwardRef which is not // well supported yet in enzyme. diff --git a/src/core/client/framework/lib/relay/withLocalStateContainer.tsx b/src/core/client/framework/lib/relay/withLocalStateContainer.tsx index 024e14474..b90bfeb27 100644 --- a/src/core/client/framework/lib/relay/withLocalStateContainer.tsx +++ b/src/core/client/framework/lib/relay/withLocalStateContainer.tsx @@ -10,11 +10,13 @@ import { Disposable, Environment, GraphQLTaggedNode, - ReaderSelector, + ReaderFragment, + SingularReaderSelector, Snapshot, } from "relay-runtime"; import withContext from "../bootstrap/withContext"; +import { resolveModule } from "./helpers"; import { LOCAL_ID, LOCAL_TYPE } from "./localState"; interface Props { @@ -31,10 +33,7 @@ interface Props { function withLocalStateContainer( fragmentSpec: GraphQLTaggedNode ): InferableComponentEnhancer<{ local: _RefType<any> }> { - const fragment = - typeof fragmentSpec === "function" - ? (fragmentSpec() as any).default - : (fragmentSpec as any).data().default; + const fragment = resolveModule(fragmentSpec as ReaderFragment); return compose( withContext(({ relayEnvironment }) => ({ relayEnvironment })), hoistStatics((BaseComponent: React.ComponentType<any>) => { @@ -54,13 +53,19 @@ function withLocalStateContainer( `Type must be "Local" in "Fragment ${fragment.name}"` ); } - const selector: ReaderSelector = { + // TODO: (cvle) This is part is still hacky. + // Waiting for a solution to https://github.com/facebook/relay/issues/2997. + const selector: SingularReaderSelector = { + kind: undefined as any, + owner: undefined as any, dataID: LOCAL_ID, node: { + type: fragment.type, kind: fragment.kind, name: fragment.name, metadata: fragment.metadata, selections: fragment.selections, + argumentDefinitions: [], }, variables: {}, }; @@ -108,9 +113,9 @@ function withLocalStateContainer( return <BaseComponent {...rest} local={this.state.data} />; } } - return LocalStateContainer as React.ComponentType<any>; + return LocalStateContainer as React.ComponentClass<any>; }) - ); + ) as any; } export default withLocalStateContainer; diff --git a/src/core/client/framework/lib/relay/withPaginationContainer.ts b/src/core/client/framework/lib/relay/withPaginationContainer.ts index 6152929d2..4264a2144 100644 --- a/src/core/client/framework/lib/relay/withPaginationContainer.ts +++ b/src/core/client/framework/lib/relay/withPaginationContainer.ts @@ -10,6 +10,7 @@ import { } from "recompose"; import { PageInfo, Variables } from "relay-runtime"; +import { resolveModule, resolveModuleObject } from "./helpers"; import hideForwardRef from "./hideForwardRef"; import { FragmentKeysNoLocal } from "./types"; @@ -56,8 +57,11 @@ export default <T, QueryVariables, FragmentVariables>( > => (component: React.ComponentType<any>) => { const result = createPaginationContainer( component, - fragmentSpec, - connectionConfig + resolveModuleObject(fragmentSpec), + { + ...connectionConfig, + query: resolveModule(connectionConfig.query), + } ); result.displayName = wrapDisplayName(component, "Relay"); // TODO: (cvle) We wrap this currently to hide the ForwardRef which is not diff --git a/src/core/client/framework/lib/relay/withRefetchContainer.ts b/src/core/client/framework/lib/relay/withRefetchContainer.ts index 3036daaf8..c7ad9ca7b 100644 --- a/src/core/client/framework/lib/relay/withRefetchContainer.ts +++ b/src/core/client/framework/lib/relay/withRefetchContainer.ts @@ -9,6 +9,7 @@ import { wrapDisplayName, } from "recompose"; +import { resolveModule } from "./helpers"; import hideForwardRef from "./hideForwardRef"; import { FragmentKeysNoLocal } from "./types"; @@ -25,7 +26,11 @@ export default <T>( { [P in FragmentKeysNoLocal<T>]: T[P] } & { relay: RelayRefetchProp }, { [P in FragmentKeysNoLocal<T>]: FragmentOrRegularProp<T[P]> } > => (component: React.ComponentType<any>) => { - const result = createRefetchContainer(component, fragmentSpec, refetchQuery); + const result = createRefetchContainer( + component, + resolveModule(fragmentSpec), + refetchQuery + ); result.displayName = wrapDisplayName(component, "Relay"); // TODO: (cvle) We wrap this currently to hide the ForwardRef which is not // well supported yet in enzyme. diff --git a/src/core/client/framework/lib/router/withRouteConfig.ts b/src/core/client/framework/lib/router/withRouteConfig.ts index 516a7ad1f..9f08845b5 100644 --- a/src/core/client/framework/lib/router/withRouteConfig.ts +++ b/src/core/client/framework/lib/router/withRouteConfig.ts @@ -1,5 +1,6 @@ import { RouteMatch, RouteProps } from "found"; import React from "react"; +import { resolveModule } from "../relay/helpers"; type RouteConfig<Props = any, QueryResponse = undefined> = Partial< Pick<RouteProps, "query" | "getQuery"> @@ -31,6 +32,12 @@ function withRouteConfig< (component as any).routeConfig = { ...config, Component: component, + query: config.query ? resolveModule(config.query) : undefined, + getQuery: config.getQuery + ? (...args: any[]) => { + return resolveModule(config.getQuery(...args)); + } + : undefined, render: function WitRouteConfig({ error, props: data, diff --git a/src/core/client/framework/lib/storage/PymStorage.ts b/src/core/client/framework/lib/storage/PymStorage.ts index a054a7eea..7813f3a78 100644 --- a/src/core/client/framework/lib/storage/PymStorage.ts +++ b/src/core/client/framework/lib/storage/PymStorage.ts @@ -1,5 +1,5 @@ import { Child, Parent } from "pym.js"; -import uuid from "uuid/v1"; +import { v1 as uuid } from "uuid"; import { PromisifiedStorage } from "./PromisifiedStorage"; diff --git a/src/core/client/framework/lib/storage/prefixStorage.spec.ts b/src/core/client/framework/lib/storage/prefixStorage.spec.ts index df6972797..a84e3fabb 100644 --- a/src/core/client/framework/lib/storage/prefixStorage.spec.ts +++ b/src/core/client/framework/lib/storage/prefixStorage.spec.ts @@ -68,10 +68,7 @@ it("should prefix removeItem", () => { it("should prefix getItem", () => { const ret = "value"; const storage = { - getItem: sinon - .mock() - .withArgs("coral:key") - .returns(ret), + getItem: sinon.mock().withArgs("coral:key").returns(ret), }; const prefixed = prefixStorage(storage as any, "coral:"); diff --git a/src/core/client/framework/lib/storage/prefixStorage.ts b/src/core/client/framework/lib/storage/prefixStorage.ts index 421a34957..08e3df884 100644 --- a/src/core/client/framework/lib/storage/prefixStorage.ts +++ b/src/core/client/framework/lib/storage/prefixStorage.ts @@ -32,7 +32,7 @@ class PrefixedStorage implements Storage { toBeDeleted.push(key); } } - toBeDeleted.forEach(key => this.storage.removeItem(key)); + toBeDeleted.forEach((key) => this.storage.removeItem(key)); } public key(n: number) { diff --git a/src/core/client/framework/lib/validation.spec.tsx b/src/core/client/framework/lib/validation.spec.tsx index dc561b339..3a0c7ddac 100644 --- a/src/core/client/framework/lib/validation.spec.tsx +++ b/src/core/client/framework/lib/validation.spec.tsx @@ -2,11 +2,11 @@ import { createValidator, validateStrictURLList } from "./validation"; describe("createValidator", () => { it("should report error when condition is unmet", () => { - const truthy = createValidator(v => !!v, "must be truthy"); + const truthy = createValidator((v) => !!v, "must be truthy"); expect(truthy(false, {})).toBe("must be truthy"); }); it("should NOT report error when condition is met", () => { - const truthy = createValidator(v => !!v, "must be truthy"); + const truthy = createValidator((v) => !!v, "must be truthy"); expect(truthy(true, {})).toBe(undefined); }); }); diff --git a/src/core/client/framework/lib/validation.tsx b/src/core/client/framework/lib/validation.tsx index 44f0b8215..82c267c72 100644 --- a/src/core/client/framework/lib/validation.tsx +++ b/src/core/client/framework/lib/validation.tsx @@ -62,7 +62,7 @@ export function composeValidators<T = any, V = any>( * required is a Validator that checks that the value is truthy. */ export const required = createValidator( - v => + (v) => Array.isArray(v) ? v.length > 0 : v !== "" && v !== null && v !== undefined, VALIDATION_REQUIRED() ); @@ -71,7 +71,7 @@ export const required = createValidator( * validateEmail is a Validator that checks that the value is an email. */ export const validateEmail = createValidator( - v => !v || EMAIL_REGEX.test(v), + (v) => !v || EMAIL_REGEX.test(v), INVALID_EMAIL() ); @@ -79,7 +79,7 @@ export const validateEmail = createValidator( * validateUsernameCharacters is a Validator that checks that the username only contains valid characters. */ export const validateUsernameCharacters = createValidator( - v => !v || USERNAME_REGEX.test(v), + (v) => !v || USERNAME_REGEX.test(v), INVALID_CHARACTERS() ); @@ -87,7 +87,7 @@ export const validateUsernameCharacters = createValidator( * validateURL is a Validator that checks that the URL only contains valid characters. */ export const validateURL = createValidator( - v => !v || URL_REGEX.test(v), + (v) => !v || URL_REGEX.test(v), INVALID_URL() ); @@ -96,10 +96,10 @@ export const validateURL = createValidator( */ export const validateMinLength = ( minLength: number, - getLength: (v: any) => number = v => v.length + getLength: (v: any) => number = (v) => v.length ) => createValidator( - v => !v || getLength(v) >= minLength, + (v) => !v || getLength(v) >= minLength, VALIDATION_TOO_SHORT(minLength) ); @@ -108,10 +108,10 @@ export const validateMinLength = ( */ export const validateMaxLength = ( maxLength: number, - getLength: (v: any) => number = v => v.length + getLength: (v: any) => number = (v) => v.length ) => createValidator( - v => !v || getLength(v) <= maxLength, + (v) => !v || getLength(v) <= maxLength, VALIDATION_TOO_LONG(maxLength) ); @@ -119,7 +119,7 @@ export const validateMaxLength = ( * validateUsernameMinLength is a Validator that checks that the username has a min length of characters */ export const validateUsernameMinLength = createValidator( - v => v.length >= USERNAME_MIN_LENGTH, + (v) => v.length >= USERNAME_MIN_LENGTH, USERNAME_TOO_SHORT(USERNAME_MIN_LENGTH) ); @@ -127,7 +127,7 @@ export const validateUsernameMinLength = createValidator( * validateUsernameMaxLength is a Validator that checks that the username has a max length of characters */ export const validateUsernameMaxLength = createValidator( - v => v.length <= USERNAME_MAX_LENGTH, + (v) => v.length <= USERNAME_MAX_LENGTH, USERNAME_TOO_LONG(USERNAME_MAX_LENGTH) ); @@ -144,7 +144,7 @@ export const validateUsername = composeValidators( * validateUsername is a Validator that checks that the value is a valid username. */ export const validatePassword = createValidator( - v => v.length >= PASSWORD_MIN_LENGTH, + (v) => v.length >= PASSWORD_MIN_LENGTH, PASSWORD_TOO_SHORT(PASSWORD_MIN_LENGTH) ); @@ -185,7 +185,7 @@ export const validateUsernameEquals = createValidator( * validateWholeNumber is a Validator that checks for a valid whole number. */ export const validateWholeNumber = createValidator( - v => !v || v === 0 || Number.isInteger(parseFloat(v)), + (v) => !v || v === 0 || Number.isInteger(parseFloat(v)), NOT_A_WHOLE_NUMBER() ); @@ -194,7 +194,7 @@ export const validateWholeNumber = createValidator( */ export const validateWholeNumberGreaterThan = (x: number) => createValidator( - v => !v || v === 0 || (Number.isInteger(parseFloat(v)) && v > 0), + (v) => !v || v === 0 || (Number.isInteger(parseFloat(v)) && v > 0), NOT_A_WHOLE_NUMBER_GREATER_THAN(x) ); @@ -203,7 +203,7 @@ export const validateWholeNumberGreaterThan = (x: number) => */ export const validateWholeNumberGreaterThanOrEqual = (x: number) => createValidator( - v => !v || v === 0 || (Number.isInteger(parseFloat(v)) && v >= 0), + (v) => !v || v === 0 || (Number.isInteger(parseFloat(v)) && v >= 0), NOT_A_WHOLE_NUMBER_GREATER_THAN_OR_EQUAL(x) ); @@ -212,7 +212,7 @@ export const validateWholeNumberGreaterThanOrEqual = (x: number) => */ export const validateWholeNumberBetween = (min: number, max: number) => createValidator( - v => + (v) => !v || v === 0 || (Number.isInteger(parseFloat(v)) && v >= min && v <= max), @@ -224,7 +224,7 @@ export const validateWholeNumberBetween = (min: number, max: number) => */ export const validatePercentage = (min: number, max: number) => createValidator( - v => + (v) => v === null || (typeof v === "number" && !Number.isNaN(v) && v >= min && v <= max), @@ -232,9 +232,9 @@ export const validatePercentage = (min: number, max: number) => ); export const validateDeleteConfirmation = (phrase: string) => - createValidator(v => v === phrase, DELETE_CONFIRMATION_INVALID()); + createValidator((v) => v === phrase, DELETE_CONFIRMATION_INVALID()); -export const validateStrictURLList = createValidator(v => { +export const validateStrictURLList = createValidator((v) => { if (!Array.isArray(v)) { return false; } diff --git a/src/core/client/framework/testHelpers/TransitionControl.tsx b/src/core/client/framework/testHelpers/TransitionControl.tsx index 761f99499..2e3da634a 100644 --- a/src/core/client/framework/testHelpers/TransitionControl.tsx +++ b/src/core/client/framework/testHelpers/TransitionControl.tsx @@ -22,9 +22,9 @@ export interface TransitionControlData { history: Location[]; } -const TransitionControl: React.FunctionComponent<Props> = props => { +const TransitionControl: React.FunctionComponent<Props> = (props) => { useEffect(() => { - return props.router.addTransitionHook(location => { + return props.router.addTransitionHook((location) => { if (props.transitionControl) { props.transitionControl.history.push(location); if (!props.transitionControl.allowTransition) { diff --git a/src/core/client/framework/testHelpers/byLabelText.ts b/src/core/client/framework/testHelpers/byLabelText.ts index eabfedb34..f2ad53675 100644 --- a/src/core/client/framework/testHelpers/byLabelText.ts +++ b/src/core/client/framework/testHelpers/byLabelText.ts @@ -64,7 +64,7 @@ export function queryAllByLabelText( ) { const matches = container.findAll(ariaLabelMatcher(pattern, options)); // Find matching aria-labelledby and id pairs. - queryAllByText(container, pattern, options).forEach(i => { + queryAllByText(container, pattern, options).forEach((i) => { if (typeof i.type !== "string") { return; } @@ -72,7 +72,7 @@ export function queryAllByLabelText( try { matches.push( container.find( - x => + (x) => typeof x.type === "string" && x.props["aria-labelledby"] === i.props.id ) @@ -82,12 +82,13 @@ export function queryAllByLabelText( }); // Find matching labels. queryAllByText(container, pattern, { ...options, selector: "label" }).forEach( - i => { + (i) => { if (i.props.htmlFor) { try { matches.push( container.find( - x => typeof x.type === "string" && x.props.id === i.props.htmlFor + (x) => + typeof x.type === "string" && x.props.id === i.props.htmlFor ) ); } catch {} // eslint-disable-line no-empty diff --git a/src/core/client/framework/testHelpers/createFixture.ts b/src/core/client/framework/testHelpers/createFixture.ts index 11a36ea53..08ab271e9 100644 --- a/src/core/client/framework/testHelpers/createFixture.ts +++ b/src/core/client/framework/testHelpers/createFixture.ts @@ -8,16 +8,16 @@ import { DeepPartial } from "coral-framework/types"; export type Callbackify<T> = T extends object ? | { - [P in keyof T]: T[P] extends (Array<infer U> | undefined) + [P in keyof T]: T[P] extends Array<infer U> | undefined ? Array<Callbackify<U>> - : T[P] extends (ReadonlyArray<infer V> | undefined) + : T[P] extends ReadonlyArray<infer V> | undefined ? ReadonlyArray<Callbackify<V>> : Callbackify<T[P]>; } | (() => { - [P in keyof T]: T[P] extends (Array<infer U> | undefined) + [P in keyof T]: T[P] extends Array<infer U> | undefined ? Array<Callbackify<U>> - : T[P] extends (ReadonlyArray<infer V> | undefined) + : T[P] extends ReadonlyArray<infer V> | undefined ? ReadonlyArray<Callbackify<V>> : Callbackify<T[P]>; }) @@ -28,9 +28,9 @@ export type Callbackify<T> = T extends object */ export type WithTypename<T> = T extends object ? { - [P in keyof T]: T[P] extends (Array<infer U> | undefined) + [P in keyof T]: T[P] extends Array<infer U> | undefined ? Array<WithTypename<U>> - : T[P] extends (ReadonlyArray<infer V> | undefined) + : T[P] extends ReadonlyArray<infer V> | undefined ? ReadonlyArray<WithTypename<V>> : WithTypename<T[P]>; } & { __typename?: string } diff --git a/src/core/client/framework/testHelpers/createFixtures.ts b/src/core/client/framework/testHelpers/createFixtures.ts index 399d2354a..7caaf97a6 100644 --- a/src/core/client/framework/testHelpers/createFixtures.ts +++ b/src/core/client/framework/testHelpers/createFixtures.ts @@ -11,5 +11,5 @@ export default function createFixtures<T>( data: Array<Fixture<T>>, base?: T ): Array<WithTypename<T>> { - return data.map(d => createFixture(d, base)) as any; + return data.map((d) => createFixture(d, base)) as any; } diff --git a/src/core/client/framework/testHelpers/createFluentBundle.ts b/src/core/client/framework/testHelpers/createFluentBundle.ts index ddd815a43..def9a423b 100644 --- a/src/core/client/framework/testHelpers/createFluentBundle.ts +++ b/src/core/client/framework/testHelpers/createFluentBundle.ts @@ -42,8 +42,8 @@ function createFluentBundle( const bundle = new FluentBundle("en-US", { functions, useIsolating: false }); const files = fs.readdirSync(pathToLocale); const prefixes = commonPrefixes.concat(target); - files.forEach(f => { - prefixes.forEach(prefix => { + files.forEach((f) => { + prefixes.forEach((prefix) => { if (f.startsWith(prefix)) { // eslint-disable-next-line @typescript-eslint/no-var-requires bundle.addResource( diff --git a/src/core/client/framework/testHelpers/createMutationResolverStub.ts b/src/core/client/framework/testHelpers/createMutationResolverStub.ts index 879ac32c4..57f197e5a 100644 --- a/src/core/client/framework/testHelpers/createMutationResolverStub.ts +++ b/src/core/client/framework/testHelpers/createMutationResolverStub.ts @@ -1,8 +1,6 @@ -import { identity, omit } from "lodash"; +import { omit } from "lodash"; import sinon from "sinon"; -import { Omit } from "coral-framework/types"; - import { Fixture } from "./createFixture"; import { Resolver } from "./createTestRenderer"; @@ -22,7 +20,6 @@ export type MutationResolverCallback<T extends Resolver<any, any>> = (data: { : never : never; callCount: number; - typecheck: (data: MutationResultVariations<T>) => MutationResultVariations<T>; }) => MutationResultVariations<T>; /** @@ -40,9 +37,10 @@ export default function createMutationResolverStub< expectAndFail(lastClientMutationIds).not.toContain(clientMutationId); lastClientMutationIds.push(clientMutationId); const result = callback({ - variables: omit(data.input, "clientMutationId"), + // TODO: Remove this exception, linting error shouldn't be there. + // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion + variables: omit(data.input, "clientMutationId") as any, callCount: callCount++, - typecheck: identity, }); expectAndFail(result.clientMutationId).toBeUndefined(); result.clientMutationId = clientMutationId; diff --git a/src/core/client/framework/testHelpers/createQueryResolverStub.ts b/src/core/client/framework/testHelpers/createQueryResolverStub.ts index c4bb0ce01..0f8aa30b3 100644 --- a/src/core/client/framework/testHelpers/createQueryResolverStub.ts +++ b/src/core/client/framework/testHelpers/createQueryResolverStub.ts @@ -1,4 +1,3 @@ -import { identity } from "lodash"; import sinon from "sinon"; import { Fixture } from "./createFixture"; @@ -12,7 +11,6 @@ export type QueryResultVariations< export type QueryResolverCallback<T extends Resolver<any, any>> = (data: { variables: T extends Resolver<infer V, any> ? V : never; callCount: number; - typecheck: (data: QueryResultVariations<T>) => QueryResultVariations<T>; }) => QueryResultVariations<T>; /** @@ -27,7 +25,6 @@ export default function createQueryResolverStub<T extends Resolver<any, any>>( return callback({ variables: variables || fallback, callCount: callCount++, - typecheck: identity, }); }); } diff --git a/src/core/client/framework/testHelpers/createRelayEnvironment.ts b/src/core/client/framework/testHelpers/createRelayEnvironment.ts index 03f3b68a6..e3004f77a 100644 --- a/src/core/client/framework/testHelpers/createRelayEnvironment.ts +++ b/src/core/client/framework/testHelpers/createRelayEnvironment.ts @@ -1,15 +1,22 @@ import { graphql, GraphQLSchema, parse } from "graphql"; import { IResolvers } from "graphql-tools"; -import { SubscribeFunction } from "react-relay-network-modern/es"; import { + CacheConfig, commitLocalUpdate, Environment, + FetchFunction, + GraphQLResponse, INetwork, Network, + Observable, RecordProxy, RecordSource, RecordSourceProxy, + RequestParameters, Store, + SubscribeFunction, + UploadableMap, + Variables, } from "relay-runtime"; import { loadSchema } from "coral-common/graphql"; @@ -67,17 +74,22 @@ function createFetch({ schema: GraphQLSchema; rootValue?: any; contextValue?: any; -}) { - return function fetchQuery(operation: any, variables: Record<string, any>) { +}): FetchFunction { + return function fetchQuery( + request: RequestParameters, + variables: Variables, + cacheConfig: CacheConfig, + uploadables?: UploadableMap | null + ) { return graphql( schema, - operation.text, + request.text!, rootValue, contextValue, variables - ).then(payload => { + ).then((payload) => { if (payload.errors) { - payload.errors.forEach(e => { + payload.errors.forEach((e) => { // Throw our custom errors directly. if ( e.originalError instanceof InvalidRequestError || @@ -89,7 +101,7 @@ function createFetch({ throw new Error(payload.errors.toString()); } return { - data: payload.data, + data: payload.data || undefined, errors: payload.errors || [], }; }); @@ -113,34 +125,26 @@ function resolveArguments( function createSubscribe( subscriptionHandler: SubscriptionHandler ): SubscribeFunction { - const fn: SubscribeFunction = ( - operation, - variables, - cacheConfig, - observer - ) => { - // TODO: (cvle) This could probably made less brittle to changes in the order of the - // document AST. - const subscriptionSelections = (parse(operation.text!) as any) - .definitions[0].selectionSet.selections as any[]; - const sel = subscriptionSelections[0]; - const subscription = { - field: sel.name.value, - variables: resolveArguments(variables, sel.arguments), - dispatch: (response: any) => { - observer.onNext({ - data: { - [sel.name.value]: response, - }, - }); - }, - }; - subscriptionHandler.add(subscription); - return { - dispose: () => { - subscriptionHandler.remove(subscription); - }, - }; + const fn: SubscribeFunction = (operation, variables, cacheConfig) => { + return Observable.create<GraphQLResponse>((sink) => { + // TODO: (cvle) This could probably made less brittle to changes in the order of the + // document AST. + const subscriptionSelections = (parse(operation.text!) as any) + .definitions[0].selectionSet.selections as any[]; + const sel = subscriptionSelections[0]; + const subscription = { + field: sel.name.value, + variables: resolveArguments(variables, sel.arguments), + dispatch: (response: any) => { + sink.next({ + data: { + [sel.name.value]: response, + }, + }); + }, + }; + subscriptionHandler.add(subscription); + }); }; return fn; } @@ -173,7 +177,7 @@ export default function createRelayEnvironment( store: new Store(params.source || new RecordSource()), }); if (params.initLocalState !== false) { - commitLocalUpdate(environment, sourceProxy => { + commitLocalUpdate(environment, (sourceProxy) => { const root = sourceProxy.getRoot(); const localRecord = createAndRetain( environment, diff --git a/src/core/client/framework/testHelpers/createResolversStub.ts b/src/core/client/framework/testHelpers/createResolversStub.ts index 6600a699b..6bbd2b4ab 100644 --- a/src/core/client/framework/testHelpers/createResolversStub.ts +++ b/src/core/client/framework/testHelpers/createResolversStub.ts @@ -67,14 +67,14 @@ export default function createResolversStub<T extends Resolvers = any>( ): ResolversStub<T> { const result: any = {}; if (resolvers.Query) { - result.Query = mapValues(resolvers.Query, v => + result.Query = mapValues(resolvers.Query, (v) => typeof v === "function" && !isSinonStub(v) ? createQueryResolverStub(v) : v ); } if (resolvers.Mutation) { - result.Mutation = mapValues(resolvers.Mutation, v => + result.Mutation = mapValues(resolvers.Mutation, (v) => typeof v === "function" && !isSinonStub(v) ? createMutationResolverStub(v) : v diff --git a/src/core/client/framework/testHelpers/createSinonStub.ts b/src/core/client/framework/testHelpers/createSinonStub.ts index a1d92cddf..b546b8600 100644 --- a/src/core/client/framework/testHelpers/createSinonStub.ts +++ b/src/core/client/framework/testHelpers/createSinonStub.ts @@ -24,6 +24,6 @@ export default function createSinonStub( ...callbacks: Array<(s: SinonStub) => void> ): SinonStub { const stub = sinon.stub(); - callbacks.forEach(cb => cb(stub)); + callbacks.forEach((cb) => cb(stub)); return stub; } diff --git a/src/core/client/framework/testHelpers/createSubscriptionHandler.ts b/src/core/client/framework/testHelpers/createSubscriptionHandler.ts index d8c2d62f6..48b693bda 100644 --- a/src/core/client/framework/testHelpers/createSubscriptionHandler.ts +++ b/src/core/client/framework/testHelpers/createSubscriptionHandler.ts @@ -68,7 +68,7 @@ export default function createSubscriptionHandler(): SubscriptionHandler { const handler: SubscriptionHandler = { subscriptions, dispatch: (field, callback) => { - subscriptions.forEach(s => { + subscriptions.forEach((s) => { if (s.field === field) { const data = callback(s.variables); if (data) { @@ -77,12 +77,12 @@ export default function createSubscriptionHandler(): SubscriptionHandler { } }); }, - has: field => subscriptions.some(s => s.field === field), - add: s => { + has: (field) => subscriptions.some((s) => s.field === field), + add: (s) => { subscriptions.push(s); }, - remove: s => { - const index = subscriptions.findIndex(x => x === s); + remove: (s) => { + const index = subscriptions.findIndex((x) => x === s); if (index !== -1) { subscriptions.splice(index, 1); } diff --git a/src/core/client/framework/testHelpers/createTestRenderer.tsx b/src/core/client/framework/testHelpers/createTestRenderer.tsx index 24053ab8e..5f3235f00 100644 --- a/src/core/client/framework/testHelpers/createTestRenderer.tsx +++ b/src/core/client/framework/testHelpers/createTestRenderer.tsx @@ -36,8 +36,8 @@ export interface Resolvers<Q extends Resolver<any, any> = any, M = any> { } export interface TestResolvers<T extends Resolvers = any> { - Query?: { [P in keyof Required<T>["Query"]]: (() => any) }; - Mutation?: { [P in keyof Required<T>["Mutation"]]: (() => any) }; + Query?: { [P in keyof Required<T>["Query"]]: () => any }; + Mutation?: { [P in keyof Required<T>["Mutation"]]: () => any }; } function createNodeMock(element: React.ReactElement<any>) { @@ -100,7 +100,11 @@ export default function createTestRenderer< sessionStorage: createPromisifiedStorage(), rest: new RestClient("http://localhost/api"), postMessage: new PostMessageService(), - browserInfo: params.browserInfo || { ios: false }, + browserInfo: params.browserInfo || { + ios: false, + mobile: false, + msie: false, + }, uuidGenerator: createUUIDGenerator(), eventEmitter: new EventEmitter2({ wildcard: true, maxListeners: 20 }), clearSession: sinon.stub(), diff --git a/src/core/client/framework/testHelpers/denormalize.ts b/src/core/client/framework/testHelpers/denormalize.ts index c156a1bc1..4fc4eb4c0 100644 --- a/src/core/client/framework/testHelpers/denormalize.ts +++ b/src/core/client/framework/testHelpers/denormalize.ts @@ -15,7 +15,7 @@ export function denormalizeComment( const replyEdges = (comment.replies && comment.replies.edges && - comment.replies.edges.map(edge => ({ + comment.replies.edges.map((edge) => ({ ...edge, node: edge.node && @@ -44,7 +44,7 @@ export function denormalizeComment( } export function denormalizeComments(commentList: Array<Fixture<GQLComment>>) { - return commentList.map(c => denormalizeComment(c)); + return commentList.map((c) => denormalizeComment(c)); } export function denormalizeStory(story: Fixture<GQLStory>) { @@ -67,7 +67,7 @@ export function denormalizeStory(story: Fixture<GQLStory>) { } const featuredCommentsCount = commentEdges.filter( - e => + (e) => e.node.tags && e.node.tags.some((t: GQLTag) => t.code === GQLTAG.FEATURED) ).length; return createFixture<GQLStory>({ @@ -85,5 +85,5 @@ export function denormalizeStory(story: Fixture<GQLStory>) { } export function denormalizeStories(storyList: Array<Fixture<GQLStory>>) { - return storyList.map(a => denormalizeStory(a)); + return storyList.map((a) => denormalizeStory(a)); } diff --git a/src/core/client/framework/testHelpers/findParentsWithType.ts b/src/core/client/framework/testHelpers/findParentsWithType.ts index 77408d53d..10c3e86ad 100644 --- a/src/core/client/framework/testHelpers/findParentsWithType.ts +++ b/src/core/client/framework/testHelpers/findParentsWithType.ts @@ -10,6 +10,6 @@ export default function findParentsWithType( | React.FunctionComponent<any> = "*" ): ReactTestInstance[] { return instances - .map(i => findParentWithType(i, selector)) - .filter(i => i) as ReactTestInstance[]; + .map((i) => findParentWithType(i, selector)) + .filter((i) => i) as ReactTestInstance[]; } diff --git a/src/core/client/framework/testHelpers/index.ts b/src/core/client/framework/testHelpers/index.ts index ad2647b4f..68869a7c5 100644 --- a/src/core/client/framework/testHelpers/index.ts +++ b/src/core/client/framework/testHelpers/index.ts @@ -29,9 +29,7 @@ export { WithTypename, } from "./createFixture"; export { default as createFixtures } from "./createFixtures"; -export { - default as createMutationResolverStub, -} from "./createMutationResolverStub"; +export { default as createMutationResolverStub } from "./createMutationResolverStub"; export { default as createQueryResolverStub } from "./createQueryResolverStub"; export { default as createTestRenderer, diff --git a/src/core/client/framework/testHelpers/overwriteQueryResolver.ts b/src/core/client/framework/testHelpers/overwriteQueryResolver.ts index 0ac31a0c0..25e4d0a80 100644 --- a/src/core/client/framework/testHelpers/overwriteQueryResolver.ts +++ b/src/core/client/framework/testHelpers/overwriteQueryResolver.ts @@ -31,7 +31,7 @@ type OverwriteQueryResolverTemplate<T extends Resolvers = any> = { */ function overwriteRecursive(original: any, overwrite: any) { let ret = original; - Object.keys(overwrite).forEach(k => { + Object.keys(overwrite).forEach((k) => { ret = { ...original, [k]: (...args: any[]) => { diff --git a/src/core/client/framework/testHelpers/removeFragmentRefs.ts b/src/core/client/framework/testHelpers/removeFragmentRefs.ts index 08fb4509b..3be882704 100644 --- a/src/core/client/framework/testHelpers/removeFragmentRefs.ts +++ b/src/core/client/framework/testHelpers/removeFragmentRefs.ts @@ -9,7 +9,7 @@ export type OmitFragments<T> = Pick< >; export type NoFragmentRefs<T> = T extends object - ? T extends ((...args: any[]) => any) + ? T extends (...args: any[]) => any ? T : T extends ReadonlyArray<infer U> ? ReadonlyArray<NoFragmentRefs2<U>> // TODO: (cvle) this should normally reference itself but it complains about a circular reference. @@ -18,7 +18,7 @@ export type NoFragmentRefs<T> = T extends object // TODO: (cvle) these NoFragmentRefX are a workaround for above issue export type NoFragmentRefs2<T> = T extends object - ? T extends ((...args: any[]) => any) + ? T extends (...args: any[]) => any ? T : T extends ReadonlyArray<infer U> ? ReadonlyArray<NoFragmentRefs3<U>> @@ -26,7 +26,7 @@ export type NoFragmentRefs2<T> = T extends object : T; export type NoFragmentRefs3<T> = T extends object - ? T extends ((...args: any[]) => any) + ? T extends (...args: any[]) => any ? T : T extends ReadonlyArray<infer U> ? ReadonlyArray<NoFragmentRefs4<U>> @@ -34,7 +34,7 @@ export type NoFragmentRefs3<T> = T extends object : T; export type NoFragmentRefs4<T> = T extends object - ? T extends ((...args: any[]) => any) + ? T extends (...args: any[]) => any ? T : { [P in keyof OmitFragments<T>]: NoFragmentRefs<T[P]> } : T; diff --git a/src/core/client/framework/testHelpers/toHTML.ts b/src/core/client/framework/testHelpers/toHTML.ts index 452ea3a53..25688bbcf 100644 --- a/src/core/client/framework/testHelpers/toHTML.ts +++ b/src/core/client/framework/testHelpers/toHTML.ts @@ -49,11 +49,11 @@ function convertJSONToHTML( return node; } if (Array.isArray(node)) { - return node.map(c => convertJSONToHTML(c)).join("\n"); + return node.map((c) => convertJSONToHTML(c)).join("\n"); } const props = Object.keys(node.props) - .map(k => convertPropertyToString(k, node.props[k])) + .map((k) => convertPropertyToString(k, node.props[k])) .join(" "); let innerHTML = ""; diff --git a/src/core/client/framework/testHelpers/within.ts b/src/core/client/framework/testHelpers/within.ts index 0e9be557b..b3379863f 100644 --- a/src/core/client/framework/testHelpers/within.ts +++ b/src/core/client/framework/testHelpers/within.ts @@ -78,7 +78,15 @@ export default function within(container: ReactTestInstance) { * Example use: * `expect(await within(container).axe()).toHaveNoViolations();` */ - axe: () => axe(toHTML(container)), + axe: () => + axe(toHTML(container), { + rules: { + region: { + // Only check for landmarks if we are checking at the root level. + enabled: container.parent === null, + }, + }, + }), /** Output the html representation of the container */ // eslint-disable-next-line no-console debug: () => console.log(toHTML(container, { pretty: true })), diff --git a/src/core/client/framework/types.ts b/src/core/client/framework/types.ts index 350574156..131c56ec5 100644 --- a/src/core/client/framework/types.ts +++ b/src/core/client/framework/types.ts @@ -1,5 +1,5 @@ // TODO: (@cvle) Extract useful common types into its own package. -export { Omit, Overwrite, PropTypesOf } from "coral-ui/types"; +export { Overwrite, PropTypesOf } from "coral-ui/types"; export { DeepPartial } from "coral-common/types"; export type RelayEnumLiteral<T> = keyof T | "%future added value"; diff --git a/src/core/client/framework/utils/jsonp.ts b/src/core/client/framework/utils/jsonp.ts index c6d98f9ac..d63dd7713 100644 --- a/src/core/client/framework/utils/jsonp.ts +++ b/src/core/client/framework/utils/jsonp.ts @@ -12,7 +12,7 @@ function jsonp( ) { const script = document.createElement("script"); script.src = `${endpoint}?callback=${callback}`; - Object.keys(args).forEach(key => { + Object.keys(args).forEach((key) => { let val = ""; if (args[key] === undefined) { return; diff --git a/src/core/client/install/App/Wizard.tsx b/src/core/client/install/App/Wizard.tsx index 63d5a23d2..8369b87a3 100644 --- a/src/core/client/install/App/Wizard.tsx +++ b/src/core/client/install/App/Wizard.tsx @@ -5,7 +5,6 @@ import React, { Component, ReactNode } from "react"; import { Step, StepBar } from "coral-ui/components"; import Header from "./Header"; -import { WizardProps } from "./Wizard"; import styles from "./Wizard.css"; diff --git a/src/core/client/install/App/steps/NextButton.tsx b/src/core/client/install/App/steps/NextButton.tsx index 3bbf56e3f..33a1f57af 100644 --- a/src/core/client/install/App/steps/NextButton.tsx +++ b/src/core/client/install/App/steps/NextButton.tsx @@ -7,7 +7,7 @@ export interface NextButtonProps { submitting: boolean; } -const NextButton: FunctionComponent<NextButtonProps> = props => { +const NextButton: FunctionComponent<NextButtonProps> = (props) => { return ( <Button variant="filled" diff --git a/src/core/client/install/App/steps/SelectLanguageStep.tsx b/src/core/client/install/App/steps/SelectLanguageStep.tsx index f18bbe713..f9b67c1ba 100644 --- a/src/core/client/install/App/steps/SelectLanguageStep.tsx +++ b/src/core/client/install/App/steps/SelectLanguageStep.tsx @@ -29,7 +29,7 @@ interface Props { onSaveData: (newData: FormProps) => void; } -const SelectLanguageStep: FunctionComponent<Props> = props => { +const SelectLanguageStep: FunctionComponent<Props> = (props) => { const { changeLocale } = useCoralContext(); const onSubmit = useCallback<OnSubmit<FormProps>>( async (input, form) => { diff --git a/src/core/client/stream/App/App.tsx b/src/core/client/stream/App/App.tsx index 252f79d05..b9751039a 100644 --- a/src/core/client/stream/App/App.tsx +++ b/src/core/client/stream/App/App.tsx @@ -22,7 +22,7 @@ export interface AppProps { activeTab: TabValue; } -const App: FunctionComponent<AppProps> = props => { +const App: FunctionComponent<AppProps> = (props) => { return ( <HorizontalGutter className={cn(CLASSES.app, styles.root)}> <nav> diff --git a/src/core/client/stream/App/AppContainer.tsx b/src/core/client/stream/App/AppContainer.tsx index 45afcaf21..f3d4ca0de 100644 --- a/src/core/client/stream/App/AppContainer.tsx +++ b/src/core/client/stream/App/AppContainer.tsx @@ -1,6 +1,7 @@ import React from "react"; +import { graphql } from "react-relay"; -import { graphql, withLocalStateContainer } from "coral-framework/lib/relay"; +import { withLocalStateContainer } from "coral-framework/lib/relay"; import { AppContainerLocal as Local } from "coral-stream/__generated__/AppContainerLocal.graphql"; diff --git a/src/core/client/stream/App/SetActiveTabMutation.ts b/src/core/client/stream/App/SetActiveTabMutation.ts index c18059001..1c8003bbb 100644 --- a/src/core/client/stream/App/SetActiveTabMutation.ts +++ b/src/core/client/stream/App/SetActiveTabMutation.ts @@ -15,7 +15,7 @@ export async function commit( input: SetActiveTabInput, { eventEmitter }: Pick<CoralContext, "eventEmitter"> ) { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; if (record.getValue("activeTab") !== input.tab) { SetMainTabEvent.emit(eventEmitter, { tab: input.tab }); diff --git a/src/core/client/stream/App/TabBar.tsx b/src/core/client/stream/App/TabBar.tsx index f0a2e9aa4..967bab723 100644 --- a/src/core/client/stream/App/TabBar.tsx +++ b/src/core/client/stream/App/TabBar.tsx @@ -16,7 +16,7 @@ export interface Props { mode: "%future added value" | "COMMENTS" | "QA" | null; } -const AppTabBar: FunctionComponent<Props> = props => { +const AppTabBar: FunctionComponent<Props> = (props) => { return ( <TabBar className={CLASSES.tabBar.$root} @@ -54,7 +54,7 @@ const AppTabBar: FunctionComponent<Props> = props => { {props.showConfigureTab && ( <Tab className={CLASSES.tabBar.configure} tabID="CONFIGURE"> <MatchMedia gteWidth="sm"> - {matches => + {(matches) => matches ? ( <Localized id="general-tabBar-configure"> <span>Configure</span> diff --git a/src/core/client/stream/App/TabBarContainer.tsx b/src/core/client/stream/App/TabBarContainer.tsx index 0e17f2240..9d853a817 100644 --- a/src/core/client/stream/App/TabBarContainer.tsx +++ b/src/core/client/stream/App/TabBarContainer.tsx @@ -1,7 +1,7 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; import { - graphql, withFragmentContainer, withLocalStateContainer, } from "coral-framework/lib/relay"; diff --git a/src/core/client/stream/App/TabBarQuery.tsx b/src/core/client/stream/App/TabBarQuery.tsx index 550afd507..839da7935 100644 --- a/src/core/client/stream/App/TabBarQuery.tsx +++ b/src/core/client/stream/App/TabBarQuery.tsx @@ -1,7 +1,7 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; import { - graphql, QueryRenderer, withLocalStateContainer, } from "coral-framework/lib/relay"; diff --git a/src/core/client/stream/App/listeners/OnEvents.spec.tsx b/src/core/client/stream/App/listeners/OnEvents.spec.tsx index bcf954d95..54de6ebcb 100644 --- a/src/core/client/stream/App/listeners/OnEvents.spec.tsx +++ b/src/core/client/stream/App/listeners/OnEvents.spec.tsx @@ -16,8 +16,8 @@ it("Broadcasts events to pym", () => { const pym = { sendMessage: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s.withArgs("event", JSON.stringify({ eventName, value })).returns(null) ), }; diff --git a/src/core/client/stream/App/listeners/OnPostMessageSetAccessToken.spec.tsx b/src/core/client/stream/App/listeners/OnPostMessageSetAccessToken.spec.tsx index f97042eb5..e35c90120 100644 --- a/src/core/client/stream/App/listeners/OnPostMessageSetAccessToken.spec.tsx +++ b/src/core/client/stream/App/listeners/OnPostMessageSetAccessToken.spec.tsx @@ -15,8 +15,8 @@ it("Listens to event and sets access token", () => { }; const setAccessToken = createSinonStub( - s => s.throws(), - s => s.withArgs({ accessToken: token }).returns(null) + (s) => s.throws(), + (s) => s.withArgs({ accessToken: token }).returns(null) ); createRenderer().render( diff --git a/src/core/client/stream/App/listeners/OnPymLogin.spec.tsx b/src/core/client/stream/App/listeners/OnPymLogin.spec.tsx index f9f5e4c97..2002bcb38 100644 --- a/src/core/client/stream/App/listeners/OnPymLogin.spec.tsx +++ b/src/core/client/stream/App/listeners/OnPymLogin.spec.tsx @@ -15,8 +15,8 @@ it("Listens to event and calls setAccessToken", () => { }; const setAccessToken = createSinonStub( - s => s.throws(), - s => s.withArgs({ accessToken }).returns(null) + (s) => s.throws(), + (s) => s.withArgs({ accessToken }).returns(null) ); createRenderer().render( diff --git a/src/core/client/stream/App/listeners/OnPymLogin.ts b/src/core/client/stream/App/listeners/OnPymLogin.ts index 3cb0429f9..80a3ee0fe 100644 --- a/src/core/client/stream/App/listeners/OnPymLogin.ts +++ b/src/core/client/stream/App/listeners/OnPymLogin.ts @@ -15,7 +15,7 @@ export class OnPymLogin extends Component<Props> { super(props); // Sets comment id through pym. - props.pym.onMessage("login", accessToken => { + props.pym.onMessage("login", (accessToken) => { this.props.setAccessToken({ accessToken }); }); } diff --git a/src/core/client/stream/App/listeners/OnPymLogout.ts b/src/core/client/stream/App/listeners/OnPymLogout.ts index 319ecb981..ee8d32458 100644 --- a/src/core/client/stream/App/listeners/OnPymLogout.ts +++ b/src/core/client/stream/App/listeners/OnPymLogout.ts @@ -17,7 +17,7 @@ export class OnPymLogout extends Component<Props> { super(props); // Sets comment id through pym. - props.pym.onMessage("logout", accessToken => { + props.pym.onMessage("logout", (accessToken) => { this.props.signOut(); }); } diff --git a/src/core/client/stream/App/listeners/OnPymSetCommentID.ts b/src/core/client/stream/App/listeners/OnPymSetCommentID.ts index 10155a56d..9ed95b3a4 100644 --- a/src/core/client/stream/App/listeners/OnPymSetCommentID.ts +++ b/src/core/client/stream/App/listeners/OnPymSetCommentID.ts @@ -17,8 +17,8 @@ export class OnPymSetCommentID extends Component<Props> { super(props); // Sets comment id through pym. - props.pym.onMessage("setCommentID", raw => { - commitLocalUpdate(this.props.relayEnvironment, s => { + props.pym.onMessage("setCommentID", (raw) => { + commitLocalUpdate(this.props.relayEnvironment, (s) => { const id = raw || null; if (s.get(LOCAL_ID)!.getValue("commentID") !== id) { s.get(LOCAL_ID)!.setValue(id, "commentID"); diff --git a/src/core/client/stream/App/listeners/index.ts b/src/core/client/stream/App/listeners/index.ts index 46de5021e..e1f292c76 100644 --- a/src/core/client/stream/App/listeners/index.ts +++ b/src/core/client/stream/App/listeners/index.ts @@ -1,7 +1,5 @@ export { default as OnPymSetCommentID } from "./OnPymSetCommentID"; -export { - default as OnPostMessageSetAccessToken, -} from "./OnPostMessageSetAccessToken"; +export { default as OnPostMessageSetAccessToken } from "./OnPostMessageSetAccessToken"; export { default as OnEvents } from "./OnEvents"; export { default as OnPymLogin } from "./OnPymLogin"; export { default as OnPymLogout } from "./OnPymLogout"; diff --git a/src/core/client/stream/common/HTMLContent/HTMLContent.css b/src/core/client/stream/common/HTMLContent/HTMLContent.css index 82f89c2a6..23262ef1a 100644 --- a/src/core/client/stream/common/HTMLContent/HTMLContent.css +++ b/src/core/client/stream/common/HTMLContent/HTMLContent.css @@ -1,3 +1,3 @@ .root { - composes: root from "coral-stream/shared/htmlContent.css"; + composes: root from "~coral-stream/shared/htmlContent.css"; } diff --git a/src/core/client/stream/common/MessageBox/MessageBox.tsx b/src/core/client/stream/common/MessageBox/MessageBox.tsx index 79873a4ff..f182d108e 100644 --- a/src/core/client/stream/common/MessageBox/MessageBox.tsx +++ b/src/core/client/stream/common/MessageBox/MessageBox.tsx @@ -20,7 +20,7 @@ interface Props { classes: typeof styles; } -const MessageBox: FunctionComponent<Props> = props => { +const MessageBox: FunctionComponent<Props> = (props) => { const { className, classes, children, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/stream/common/MessageBox/MessageBoxContent.css b/src/core/client/stream/common/MessageBox/MessageBoxContent.css index 7df99b09e..d19893572 100644 --- a/src/core/client/stream/common/MessageBox/MessageBoxContent.css +++ b/src/core/client/stream/common/MessageBox/MessageBoxContent.css @@ -1,4 +1,4 @@ .root { - composes: root from "coral-stream/shared/htmlContent.css"; + composes: root from "~coral-stream/shared/htmlContent.css"; color: var(--palette-text-light); } diff --git a/src/core/client/stream/common/MessageBox/MessageBoxContent.tsx b/src/core/client/stream/common/MessageBox/MessageBoxContent.tsx index 55a2634c6..5fed0475c 100644 --- a/src/core/client/stream/common/MessageBox/MessageBoxContent.tsx +++ b/src/core/client/stream/common/MessageBox/MessageBoxContent.tsx @@ -21,7 +21,7 @@ interface Props { classes: typeof styles; } -const MessageBox: FunctionComponent<Props> = props => { +const MessageBox: FunctionComponent<Props> = (props) => { const { className, classes, children, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/stream/common/MessageBox/MessageBoxIcon.tsx b/src/core/client/stream/common/MessageBox/MessageBoxIcon.tsx index dd0cef049..05d35072e 100644 --- a/src/core/client/stream/common/MessageBox/MessageBoxIcon.tsx +++ b/src/core/client/stream/common/MessageBox/MessageBoxIcon.tsx @@ -3,7 +3,6 @@ import React, { FunctionComponent, HTMLAttributes, Ref } from "react"; import Icon, { IconProps } from "coral-ui/components/Icon"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit } from "coral-ui/types"; import styles from "./MessageBoxIcon.css"; @@ -23,7 +22,7 @@ interface Props extends Omit<HTMLAttributes<HTMLSpanElement>, "color"> { forwardRef?: Ref<HTMLSpanElement>; } -export const MessageBoxIcon: FunctionComponent<Props> = props => { +export const MessageBoxIcon: FunctionComponent<Props> = (props) => { const { classes, className, forwardRef, ...rest } = props; const rootClassName = cn(classes.root, className); return <Icon className={rootClassName} {...rest} ref={forwardRef} />; diff --git a/src/core/client/stream/common/Timestamp.tsx b/src/core/client/stream/common/Timestamp.tsx index 5ab9ee65a..e89697f6c 100644 --- a/src/core/client/stream/common/Timestamp.tsx +++ b/src/core/client/stream/common/Timestamp.tsx @@ -5,9 +5,9 @@ import { ShowAbsoluteTimestampEvent } from "coral-stream/events"; import { Timestamp as BaseTimestamp } from "coral-ui/components"; import { PropTypesOf } from "coral-ui/types"; -const TimeStamp: FunctionComponent< - PropTypesOf<typeof BaseTimestamp> -> = props => { +const TimeStamp: FunctionComponent<PropTypesOf<typeof BaseTimestamp>> = ( + props +) => { const emitEvent = useViewerEvent(ShowAbsoluteTimestampEvent); const handleOnToggle = useCallback( (absolute: boolean) => { diff --git a/src/core/client/stream/common/UserBox/SetAuthPopupStateMutation.ts b/src/core/client/stream/common/UserBox/SetAuthPopupStateMutation.ts index 361f10ace..c60a7ef72 100644 --- a/src/core/client/stream/common/UserBox/SetAuthPopupStateMutation.ts +++ b/src/core/client/stream/common/UserBox/SetAuthPopupStateMutation.ts @@ -20,7 +20,7 @@ export async function commit( environment: Environment, input: SetAuthPopupStateInput ) { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(AUTH_POPUP_ID)!; if (input.open !== undefined) { record.setValue(input.open, "open"); diff --git a/src/core/client/stream/common/UserBox/UserBoxAuthenticated.tsx b/src/core/client/stream/common/UserBox/UserBoxAuthenticated.tsx index e8ad69c29..e85c859ba 100644 --- a/src/core/client/stream/common/UserBox/UserBoxAuthenticated.tsx +++ b/src/core/client/stream/common/UserBox/UserBoxAuthenticated.tsx @@ -13,9 +13,9 @@ export interface UserBoxAuthenticatedProps { showLogoutButton?: boolean; } -const UserBoxAuthenticated: FunctionComponent< - UserBoxAuthenticatedProps -> = props => { +const UserBoxAuthenticated: FunctionComponent<UserBoxAuthenticatedProps> = ( + props +) => { const Username = () => ( <Typography variant="heading3" container="span"> {props.username} diff --git a/src/core/client/stream/common/UserBox/UserBoxContainer.tsx b/src/core/client/stream/common/UserBox/UserBoxContainer.tsx index 81488d1cc..28153f9bd 100644 --- a/src/core/client/stream/common/UserBox/UserBoxContainer.tsx +++ b/src/core/client/stream/common/UserBox/UserBoxContainer.tsx @@ -1,8 +1,8 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; import { urls } from "coral-framework/helpers"; import { - graphql, MutationProp, withFragmentContainer, withLocalStateContainer, @@ -58,7 +58,7 @@ export class UserBoxContainer extends Component<Props> { integrations.google, integrations.local, integrations.oidc, - ].some(i => i.allowRegistration && i.enabled && i.targetFilter.stream); + ].some((i) => i.allowRegistration && i.enabled && i.targetFilter.stream); } private get weControlAuth() { @@ -68,7 +68,7 @@ export class UserBoxContainer extends Component<Props> { integrations.google, integrations.local, integrations.oidc, - ].some(i => i.enabled && i.targetFilter.stream); + ].some((i) => i.enabled && i.targetFilter.stream); } public render() { diff --git a/src/core/client/stream/common/UserBox/UserBoxUnauthenticated.tsx b/src/core/client/stream/common/UserBox/UserBoxUnauthenticated.tsx index 4e40e34bb..cfb968f83 100644 --- a/src/core/client/stream/common/UserBox/UserBoxUnauthenticated.tsx +++ b/src/core/client/stream/common/UserBox/UserBoxUnauthenticated.tsx @@ -13,9 +13,9 @@ export interface UserBoxUnauthenticatedProps { showRegisterButton?: boolean; } -const UserBoxUnauthenticated: FunctionComponent< - UserBoxUnauthenticatedProps -> = props => { +const UserBoxUnauthenticated: FunctionComponent<UserBoxUnauthenticatedProps> = ( + props +) => { return ( <Flex itemGutter alignItems="center" className={CLASSES.viewerBox.$root}> <MatchMedia gteWidth="sm"> diff --git a/src/core/client/stream/local/initLocalState.ts b/src/core/client/stream/local/initLocalState.ts index 0490242aa..80a27b353 100644 --- a/src/core/client/stream/local/initLocalState.ts +++ b/src/core/client/stream/local/initLocalState.ts @@ -26,7 +26,7 @@ export default async function initLocalState( (await context.localStorage.getItem(COMMENTS_ORDER_BY)) || "CREATED_AT_DESC"; - commitLocalUpdate(environment, s => { + commitLocalUpdate(environment, (s) => { const root = s.getRoot(); const localRecord = root.getLinkedRecord("local")!; diff --git a/src/core/client/stream/mutations/CancelAccountDeletionMutation.tsx b/src/core/client/stream/mutations/CancelAccountDeletionMutation.tsx index 476fa7ff3..29ee8ae8f 100644 --- a/src/core/client/stream/mutations/CancelAccountDeletionMutation.tsx +++ b/src/core/client/stream/mutations/CancelAccountDeletionMutation.tsx @@ -45,7 +45,7 @@ const CancelAccountDeletionMutation = createMutation( clientMutationId: (clientMutationId++).toString(), }, }, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const viewer = getViewer(environment)!; const viewerProxy = store.get(viewer.id); if (viewerProxy) { diff --git a/src/core/client/stream/mutations/SetCommentIDMutation.spec.ts b/src/core/client/stream/mutations/SetCommentIDMutation.spec.ts index 8de52a397..57ffb1ce7 100644 --- a/src/core/client/stream/mutations/SetCommentIDMutation.spec.ts +++ b/src/core/client/stream/mutations/SetCommentIDMutation.spec.ts @@ -35,10 +35,7 @@ it("Should call setCommentID in pym", async () => { const id = "comment2-id"; const context = { pym: { - sendMessage: sinon - .mock() - .once() - .withArgs("setCommentID", id), + sendMessage: sinon.mock().once().withArgs("setCommentID", id), }, }; commit(environment, { id }, context as any); @@ -50,10 +47,7 @@ it("Should call setCommentID in pym", async () => { it("Should call setCommentID in pym with empty id", async () => { const context = { pym: { - sendMessage: sinon - .mock() - .once() - .withArgs("setCommentID", ""), + sendMessage: sinon.mock().once().withArgs("setCommentID", ""), }, }; commit(environment, { id: null }, context as any); diff --git a/src/core/client/stream/mutations/SetCommentIDMutation.ts b/src/core/client/stream/mutations/SetCommentIDMutation.ts index c02951549..c01d11444 100644 --- a/src/core/client/stream/mutations/SetCommentIDMutation.ts +++ b/src/core/client/stream/mutations/SetCommentIDMutation.ts @@ -15,7 +15,7 @@ export async function commit( input: SetCommentIDInput, { pym }: CoralContext ) { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(LOCAL_ID)!; record.setValue(input.id, "commentID"); record.setValue("COMMENTS", "activeTab"); diff --git a/src/core/client/stream/mutations/ShowAuthPopupMutation.ts b/src/core/client/stream/mutations/ShowAuthPopupMutation.ts index f0a0dbfdb..9d0d4549e 100644 --- a/src/core/client/stream/mutations/ShowAuthPopupMutation.ts +++ b/src/core/client/stream/mutations/ShowAuthPopupMutation.ts @@ -26,7 +26,7 @@ export async function commit( LoginPromptEvent.emit(eventEmitter); } ShowAuthPopupEvent.emit(eventEmitter, { view: input.view }); - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(AUTH_POPUP_ID)!; record.setValue(input.view, "view"); if (!record.getValue("open")) { diff --git a/src/core/client/stream/shared/htmlContent.css b/src/core/client/stream/shared/htmlContent.css index 86afc2c65..7af892952 100644 --- a/src/core/client/stream/shared/htmlContent.css +++ b/src/core/client/stream/shared/htmlContent.css @@ -1,5 +1,5 @@ .root { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; color: var(--palette-text-dark); overflow-wrap: break-word; diff --git a/src/core/client/stream/tabs/Comments/Comment/AuthorBadgesContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/AuthorBadgesContainer.tsx index b3c62bba7..dfb9e3d1a 100644 --- a/src/core/client/stream/tabs/Comments/Comment/AuthorBadgesContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/AuthorBadgesContainer.tsx @@ -20,7 +20,7 @@ const AuthorBadgesContainer: FunctionComponent<Props> = ({ } return ( <> - {comment.author.badges.map(badge => ( + {comment.author.badges.map((badge) => ( <Tag key={badge} color="dark" className={className}> {badge} </Tag> diff --git a/src/core/client/stream/tabs/Comments/Comment/ButtonsBar.tsx b/src/core/client/stream/tabs/Comments/Comment/ButtonsBar.tsx index 031ac0072..b66658c46 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ButtonsBar.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ButtonsBar.tsx @@ -2,7 +2,7 @@ import React, { FunctionComponent } from "react"; import { Flex } from "coral-ui/components"; -const ButtonsBar: FunctionComponent = props => { +const ButtonsBar: FunctionComponent = (props) => { return ( <Flex direction="row" itemGutter="half" alignItems="center"> {props.children} diff --git a/src/core/client/stream/tabs/Comments/Comment/Comment.tsx b/src/core/client/stream/tabs/Comments/Comment/Comment.tsx index b6c79312b..1b3235c93 100644 --- a/src/core/client/stream/tabs/Comments/Comment/Comment.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/Comment.tsx @@ -25,7 +25,7 @@ export interface CommentProps { userTags?: React.ReactNode; } -const Comment: FunctionComponent<CommentProps> = props => { +const Comment: FunctionComponent<CommentProps> = (props) => { return ( <HorizontalGutter role="article" diff --git a/src/core/client/stream/tabs/Comments/Comment/CommentContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/CommentContainer.tsx index 208dbb0a6..0e17c1d46 100644 --- a/src/core/client/stream/tabs/Comments/Comment/CommentContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/CommentContainer.tsx @@ -127,7 +127,7 @@ export class CommentContainer extends Component<Props, State> { private toggleReplyDialog = () => { if (this.props.viewer) { - this.setState(state => { + this.setState((state) => { if (!state.showReplyDialog) { ShowReplyFormEvent.emit(this.props.eventEmitter, { commentID: this.props.comment.id, @@ -147,7 +147,7 @@ export class CommentContainer extends Component<Props, State> { ShowEditFormEvent.emit(this.props.eventEmitter, { commentID: this.props.comment.id, }); - this.setState(state => ({ + this.setState((state) => ({ showEditDialog: true, })); } else { @@ -156,13 +156,13 @@ export class CommentContainer extends Component<Props, State> { }; private closeEditDialog = () => { - this.setState(state => ({ + this.setState((state) => ({ showEditDialog: false, })); }; private closeReplyDialog = () => { - this.setState(state => ({ + this.setState((state) => ({ showReplyDialog: false, })); }; @@ -203,14 +203,14 @@ export class CommentContainer extends Component<Props, State> { } = this.props; const { showReplyDialog, showEditDialog, editable } = this.state; const hasFeaturedTag = Boolean( - comment.tags.find(t => t.code === GQLTAG.FEATURED) + comment.tags.find((t) => t.code === GQLTAG.FEATURED) ); // We are in a Q&A if the story mode is set to QA. const isQA = Boolean(story.settings.mode === GQLSTORY_MODE.QA); // Author is expert if comment is tagged Expert and the // story mode is Q&A. const authorIsExpert = - isQA && comment.tags.find(t => t.code === GQLTAG.EXPERT); + isQA && comment.tags.find((t) => t.code === GQLTAG.EXPERT); // Only show a button to clear removed answers if // this comment is by an expert, reply to a top level // comment (question) with an answer @@ -227,7 +227,7 @@ export class CommentContainer extends Component<Props, State> { const hasAnsweredTag = Boolean( !hideAnsweredTag && isQA && - comment.tags.every(t => t.code !== GQLTAG.UNANSWERED) && + comment.tags.every((t) => t.code !== GQLTAG.UNANSWERED) && !comment.parent ); const commentTags = ( diff --git a/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentForm.tsx b/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentForm.tsx index 3fbeb8dbd..0b977cb41 100644 --- a/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentForm.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentForm.tsx @@ -47,7 +47,7 @@ export interface EditCommentFormProps { max: number | null; } -const EditCommentForm: FunctionComponent<EditCommentFormProps> = props => { +const EditCommentForm: FunctionComponent<EditCommentFormProps> = (props) => { const inputID = `comments-editCommentForm-rte-${props.id}`; return ( <Form onSubmit={props.onSubmit} initialValues={props.initialValues}> @@ -162,7 +162,7 @@ const EditCommentForm: FunctionComponent<EditCommentFormProps> = props => { </Localized> ) : ( <MatchMedia ltWidth="sm"> - {matches => ( + {(matches) => ( <> <Localized id="comments-editCommentForm-cancel"> <Button diff --git a/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts b/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts index 1cb9f9af5..3e23fc48f 100644 --- a/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts +++ b/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts @@ -21,6 +21,7 @@ const mutation = graphql` mutation EditCommentMutation($input: EditCommentInput!) { editComment(input: $input) { comment { + id body status revision { @@ -73,7 +74,7 @@ async function commit( clientMutationId: (clientMutationId++).toString(), }, }, - updater: store => { + updater: (store) => { store.get(input.commentID)!.setValue("EDIT", "lastViewerAction"); }, } diff --git a/src/core/client/stream/tabs/Comments/Comment/EditedMarker.css b/src/core/client/stream/tabs/Comments/Comment/EditedMarker.css index 6df550f5c..f793e1c18 100644 --- a/src/core/client/stream/tabs/Comments/Comment/EditedMarker.css +++ b/src/core/client/stream/tabs/Comments/Comment/EditedMarker.css @@ -1,3 +1,3 @@ .root { - composes: detail from "coral-ui/shared/typography.css"; + composes: detail from "~coral-ui/shared/typography.css"; } diff --git a/src/core/client/stream/tabs/Comments/Comment/EditedMarker.tsx b/src/core/client/stream/tabs/Comments/Comment/EditedMarker.tsx index c5548dce4..86aca70cc 100644 --- a/src/core/client/stream/tabs/Comments/Comment/EditedMarker.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/EditedMarker.tsx @@ -8,7 +8,7 @@ interface Props { className?: string; } -const EditedMarker: FunctionComponent<Props> = props => ( +const EditedMarker: FunctionComponent<Props> = (props) => ( <div className={cn(styles.root, props.className)}> ( <Localized id="comments-editedMarker-edited"> diff --git a/src/core/client/stream/tabs/Comments/Comment/IndentedComment.tsx b/src/core/client/stream/tabs/Comments/Comment/IndentedComment.tsx index acaa3a069..0b6e1b008 100644 --- a/src/core/client/stream/tabs/Comments/Comment/IndentedComment.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/IndentedComment.tsx @@ -8,12 +8,13 @@ import Comment from "./Comment"; import styles from "./IndentedComment.css"; -export interface IndentedCommentProps extends PropTypesOf<typeof Comment> { +export interface IndentedCommentProps + extends Omit<PropTypesOf<typeof Comment>, "ref"> { indentLevel?: number; blur?: boolean; } -const IndentedComment: FunctionComponent<IndentedCommentProps> = props => { +const IndentedComment: FunctionComponent<IndentedCommentProps> = (props) => { const { indentLevel, ...rest } = props; const CommentElement = <Comment {...rest} />; const CommentwithIndent = ( diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ApproveCommentMutation.ts b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ApproveCommentMutation.ts index 9aa6f377d..f9659a896 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ApproveCommentMutation.ts +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ApproveCommentMutation.ts @@ -32,6 +32,7 @@ const ApproveCommentMutation = createMutation( mutation ApproveCommentMutation($input: ApproveCommentInput!) { approveComment(input: $input) { comment { + id status } clientMutationId @@ -53,7 +54,7 @@ const ApproveCommentMutation = createMutation( clientMutationId: (clientMutationId++).toString(), }, }, - updater: store => { + updater: (store) => { store.get(input.commentID)!.setValue("APPROVE", "lastViewerAction"); }, } diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/CaretContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/CaretContainer.tsx index 6c180ea86..0c7fe8732 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/CaretContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/CaretContainer.tsx @@ -21,7 +21,7 @@ interface Props { viewer: CaretContainer_viewer; } -const CaretContainer: FunctionComponent<Props> = props => { +const CaretContainer: FunctionComponent<Props> = (props) => { const popoverID = `comments-moderationMenu-${props.comment.id}`; return ( <Localized diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/FeatureCommentMutation.ts b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/FeatureCommentMutation.ts index 3fa46b8ca..3c9b5f73d 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/FeatureCommentMutation.ts +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/FeatureCommentMutation.ts @@ -59,7 +59,7 @@ const FeatureCommentMutation = createMutation( } } `, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const comment = store.get(input.commentID)!; const tags = comment.getLinkedRecords("tags"); if (tags) { @@ -70,7 +70,7 @@ const FeatureCommentMutation = createMutation( } incrementCount(store, input.storyID); }, - updater: store => { + updater: (store) => { incrementCount(store, input.storyID); }, variables: { diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionBanQuery.tsx b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionBanQuery.tsx index fb93527f9..bd53eb6fc 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionBanQuery.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionBanQuery.tsx @@ -1,6 +1,7 @@ import React, { Component } from "react"; +import { graphql } from "react-relay"; -import { graphql, QueryRenderer } from "coral-framework/lib/relay"; +import { QueryRenderer } from "coral-framework/lib/relay"; import { ModerationActionBanQuery as QueryTypes } from "coral-stream/__generated__/ModerationActionBanQuery.graphql"; @@ -22,7 +23,7 @@ export default class ModerationActionBanQuery extends Component<Props> { } } `} - dataFrom="STORE_THEN_NETWORK" + fetchPolicy="store-and-network" variables={{ userID: this.props.userID, }} diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionsContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionsContainer.tsx index cd88c3ad0..08c84f1b1 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionsContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/ModerationActionsContainer.tsx @@ -83,7 +83,7 @@ const ModerationActionsContainer: FunctionComponent<Props> = ({ }, [unfeature, onDismiss, story, comment]); const approved = comment.status === "APPROVED"; const rejected = comment.status === "REJECTED"; - const featured = comment.tags.some(t => t.code === "FEATURED"); + const featured = comment.tags.some((t) => t.code === "FEATURED"); const showBanOption = !comment.author || !comment.author.id || viewer === null ? false diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/RejectCommentMutation.ts b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/RejectCommentMutation.ts index 4f49dd773..f964ca67b 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/RejectCommentMutation.ts +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/RejectCommentMutation.ts @@ -38,11 +38,13 @@ const RejectCommentMutation = createMutation( mutation RejectCommentMutation($input: RejectCommentInput!) { rejectComment(input: $input) { comment { + id status tags { code } story { + id commentCounts { tags { FEATURED @@ -79,7 +81,7 @@ const RejectCommentMutation = createMutation( clientMutationId: clientMutationId.toString(), }, }, - updater: store => { + updater: (store) => { store.get(input.commentID)!.setValue("REJECT", "lastViewerAction"); }, } diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/UnfeatureCommentMutation.ts b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/UnfeatureCommentMutation.ts index b2c604a42..9bc311ad0 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/UnfeatureCommentMutation.ts +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/UnfeatureCommentMutation.ts @@ -58,16 +58,16 @@ const UnfeatureCommentMutation = createMutation( } } `, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const comment = store.get(input.commentID)!; const tags = comment.getLinkedRecords("tags")!; comment.setLinkedRecords( - tags.filter(t => t!.getValue("code") === GQLTAG.FEATURED), + tags.filter((t) => t.getValue("code") === GQLTAG.FEATURED), "tags" ); decrementCount(store, input.storyID); }, - updater: store => { + updater: (store) => { decrementCount(store, input.storyID); }, variables: { diff --git a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/index.ts b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/index.ts index d85d4e7af..e2e14e9c8 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/index.ts +++ b/src/core/client/stream/tabs/Comments/Comment/ModerationDropdown/index.ts @@ -1,4 +1,2 @@ export { default, default as CaretContainer } from "./CaretContainer"; -export { - default as RejectedTombstoneContainer, -} from "./RejectedTombstoneContainer"; +export { default as RejectedTombstoneContainer } from "./RejectedTombstoneContainer"; diff --git a/src/core/client/stream/tabs/Comments/Comment/ReplyButton.tsx b/src/core/client/stream/tabs/Comments/Comment/ReplyButton.tsx index fb5be1533..cfb9c811d 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReplyButton.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ReplyButton.tsx @@ -11,7 +11,7 @@ interface Props { className?: string; } -const ReplyButton: FunctionComponent<Props> = props => ( +const ReplyButton: FunctionComponent<Props> = (props) => ( <Button className={props.className} id={props.id} diff --git a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/CreateCommentReplyMutation.ts b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/CreateCommentReplyMutation.ts index 61a38d824..656eeec64 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/CreateCommentReplyMutation.ts +++ b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/CreateCommentReplyMutation.ts @@ -89,7 +89,7 @@ function addLocalCommentReplyToStory( input: CreateCommentReplyInput, commentEdge: RecordProxy ) { - const newComment = commentEdge.getLinkedRecord("node"); + const newComment = commentEdge.getLinkedRecord("node")!; // Get parent proxy. const parentProxy = store.get(input.parentID); @@ -134,6 +134,7 @@ const mutation = graphql` cursor node { ...AllCommentsTabContainer_comment @relay(mask: false) + id status parent { id @@ -242,8 +243,9 @@ async function commit( }, clientMutationId: (clientMutationId++).toString(), }, - }, - optimisticUpdater: store => { + // TODO: (cvle) fix types. + } as any, + optimisticUpdater: (store) => { // Skip optimistic update if comment is probably premoderated. if (expectPremoderation) { return; @@ -251,7 +253,7 @@ async function commit( sharedUpdater(environment, store, input); store.get(id)!.setValue(true, "pending"); }, - updater: store => { + updater: (store) => { sharedUpdater(environment, store, input); }, } diff --git a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentForm.tsx b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentForm.tsx index 78470f3f1..286e25084 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentForm.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentForm.tsx @@ -48,7 +48,7 @@ export interface ReplyCommentFormProps { disabledMessage?: React.ReactNode; } -const ReplyCommentForm: FunctionComponent<ReplyCommentFormProps> = props => { +const ReplyCommentForm: FunctionComponent<ReplyCommentFormProps> = (props) => { const inputID = `comments-replyCommentForm-rte-${props.id}`; const emitFocusEvent = useViewerEvent(ReplyCommentFocusEvent); const onFocus = useCallback(() => { @@ -64,7 +64,7 @@ const ReplyCommentForm: FunctionComponent<ReplyCommentFormProps> = props => { id={`comments-replyCommentForm-form-${props.id}`} > <FormSpy - onChange={state => props.onChange && props.onChange(state, form)} + onChange={(state) => props.onChange && props.onChange(state, form)} /> <HorizontalGutter> <Field @@ -135,7 +135,7 @@ const ReplyCommentForm: FunctionComponent<ReplyCommentFormProps> = props => { </HorizontalGutter> <MatchMedia ltWidth="sm"> - {matches => ( + {(matches) => ( <Flex direction="row" justifyContent="flex-end" diff --git a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.spec.tsx b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.spec.tsx index 0414ab7e6..bc4f8c82b 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.spec.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.spec.tsx @@ -124,10 +124,7 @@ it("creates a comment", async () => { const wrapper = shallow(<ReplyCommentFormContainerN {...props} />); await timeout(); wrapper.update(); - wrapper - .first() - .props() - .onSubmit(input, form); + wrapper.first().props().onSubmit(input, form); expect( createCommentStub.calledWith({ storyID, @@ -155,7 +152,7 @@ it("closes on cancel", async () => { const wrapper = shallow(<ReplyCommentFormContainerN {...props} />); await timeout(); wrapper.update(); - wrapper.findWhere(w => !!w.prop("onCancel")).prop("onCancel")(); + wrapper.findWhere((w) => !!w.prop("onCancel")).prop("onCancel")(); // Calls close. expect(onCloseStub.calledOnce).toBe(true); @@ -178,7 +175,7 @@ it("autofocuses", async () => { await timeout(); wrapper.update(); wrapper - .findWhere(n => n.prop("rteRef")) + .findWhere((n) => n.prop("rteRef")) .props() .rteRef(rte); await wait(() => expect(focusStub.calledOnce).toBe(true)); diff --git a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.tsx index 4dbfdb107..59ca54f87 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ReplyCommentForm/ReplyCommentFormContainer.tsx @@ -102,7 +102,7 @@ export class ReplyCommentFormContainer extends Component<Props, State> { } }; - private handleOnSubmit: ReplyCommentFormProps["onSubmit"] = async input => { + private handleOnSubmit: ReplyCommentFormProps["onSubmit"] = async (input) => { try { const submitStatus = getSubmitStatus( await this.props.createCommentReply({ diff --git a/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButton.tsx b/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButton.tsx index f52adf38b..84b81ebed 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButton.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButton.tsx @@ -7,7 +7,7 @@ import { withForwardRef } from "coral-ui/hocs"; import styles from "./ReportButton.css"; -interface Props extends PropTypesOf<typeof Button> { +interface Props extends Omit<PropTypesOf<typeof Button>, "ref"> { reported: boolean; /** Internal: Forwarded Ref */ diff --git a/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButtonWithPopover.tsx b/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButtonWithPopover.tsx index 77e884320..5ed9996d7 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButtonWithPopover.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ReportButton/ReportButtonWithPopover.tsx @@ -43,7 +43,7 @@ const ReportButtonWithPopover: React.FunctionComponent<Props> = ({ {({ toggleVisibility, ref, visible }) => ( <ReportButton className={className} - onClick={evt => !reported && toggleVisibility(evt)} + onClick={(evt) => !reported && toggleVisibility(evt)} aria-controls={popoverID} ref={ref} active={visible} diff --git a/src/core/client/stream/tabs/Comments/Comment/ReportPopover/ReportCommentForm.tsx b/src/core/client/stream/tabs/Comments/Comment/ReportPopover/ReportCommentForm.tsx index 452ef28e3..c2d259bf1 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ReportPopover/ReportCommentForm.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ReportPopover/ReportCommentForm.tsx @@ -19,12 +19,10 @@ import PropagateMount from "./PropagateMount"; import styles from "./ReportCommentForm.css"; -const RadioField: FunctionComponent< - Pick< - FieldProps<string, any>, - "validate" | "name" | "value" | "disabled" | "children" - > -> = ({ name, value, disabled, children }) => ( +const RadioField: FunctionComponent<Pick< + FieldProps<string, any>, + "validate" | "name" | "value" | "disabled" | "children" +>> = ({ name, value, disabled, children }) => ( <Field name={name} type="radio" value={value}> {({ input }) => ( <RadioButton diff --git a/src/core/client/stream/tabs/Comments/Comment/RootParent.tsx b/src/core/client/stream/tabs/Comments/Comment/RootParent.tsx index 0855816f4..e789aa76a 100644 --- a/src/core/client/stream/tabs/Comments/Comment/RootParent.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/RootParent.tsx @@ -14,7 +14,7 @@ export interface RootParentProps { tags: React.ReactNode; } -const RootParent: FunctionComponent<RootParentProps> = props => { +const RootParent: FunctionComponent<RootParentProps> = (props) => { return ( <Flex className={CLASSES.conversationThread.rootParent.$root} diff --git a/src/core/client/stream/tabs/Comments/Comment/ShowConversationLink.tsx b/src/core/client/stream/tabs/Comments/Comment/ShowConversationLink.tsx index bee75e93b..915897f66 100644 --- a/src/core/client/stream/tabs/Comments/Comment/ShowConversationLink.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/ShowConversationLink.tsx @@ -10,9 +10,9 @@ export interface ShowConversationLinkProps { className?: string; } -const ShowConversationLink: FunctionComponent< - ShowConversationLinkProps -> = props => { +const ShowConversationLink: FunctionComponent<ShowConversationLinkProps> = ( + props +) => { return ( <Localized id="comments-showConversationLink-readMore"> <Button diff --git a/src/core/client/stream/tabs/Comments/Comment/TopBarLeft.tsx b/src/core/client/stream/tabs/Comments/Comment/TopBarLeft.tsx index ba4e7cf05..b8ceea506 100644 --- a/src/core/client/stream/tabs/Comments/Comment/TopBarLeft.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/TopBarLeft.tsx @@ -8,11 +8,11 @@ export interface TopBarLeftProps { children: React.ReactNode; } -const TopBarLeft: FunctionComponent<TopBarLeftProps> = props => { +const TopBarLeft: FunctionComponent<TopBarLeftProps> = (props) => { const rootClassName = cn(props.className); return ( <MatchMedia gtWidth="xs"> - {matches => ( + {(matches) => ( <Flex className={rootClassName} alignItems={matches ? "flex-end" : "baseline"} diff --git a/src/core/client/stream/tabs/Comments/Comment/UserIgnorePopover/IgnoreUserMutation.ts b/src/core/client/stream/tabs/Comments/Comment/UserIgnorePopover/IgnoreUserMutation.ts index 0871ca0c0..8d64689ec 100644 --- a/src/core/client/stream/tabs/Comments/Comment/UserIgnorePopover/IgnoreUserMutation.ts +++ b/src/core/client/stream/tabs/Comments/Comment/UserIgnorePopover/IgnoreUserMutation.ts @@ -41,7 +41,7 @@ const IgnoreUserMutation = createMutation( clientMutationId: (clientMutationId++).toString(), }, }, - updater: store => { + updater: (store) => { const viewer = getViewer(environment)!; const viewerProxy = store.get(viewer.id)!; const ignoredUserRecords = viewerProxy.getLinkedRecords( @@ -49,7 +49,7 @@ const IgnoreUserMutation = createMutation( ); if (ignoredUserRecords) { viewerProxy.setLinkedRecords( - ignoredUserRecords.concat(store.get(input.userID)), + ignoredUserRecords.concat(store.get(input.userID)!), "ignoredUsers" ); } diff --git a/src/core/client/stream/tabs/Comments/Comment/UserPopover/UserPopoverOverviewContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/UserPopover/UserPopoverOverviewContainer.tsx index ead598226..4a61c66a1 100644 --- a/src/core/client/stream/tabs/Comments/Comment/UserPopover/UserPopoverOverviewContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/UserPopover/UserPopoverOverviewContainer.tsx @@ -33,7 +33,7 @@ export const UserPopoverOverviewContainer: FunctionComponent<Props> = ({ const canIgnore = viewer && viewer.id !== user.id && - viewer.ignoredUsers.every(u => u.id !== user.id) && + viewer.ignoredUsers.every((u) => u.id !== user.id) && user.ignoreable; return ( <HorizontalGutter diff --git a/src/core/client/stream/tabs/Comments/Comment/UserTagsContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/UserTagsContainer.tsx index 092742104..390ca1e67 100644 --- a/src/core/client/stream/tabs/Comments/Comment/UserTagsContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/UserTagsContainer.tsx @@ -27,8 +27,8 @@ const UserTagsContainer: FunctionComponent<Props> = ({ className, }) => { const isQA = story.settings.mode === GQLSTORY_MODE.QA; - const staffTag = comment.tags.find(t => t.code === "STAFF"); - const expertTag = isQA && comment.tags.find(t => t.code === "EXPERT"); + const staffTag = comment.tags.find((t) => t.code === "STAFF"); + const expertTag = isQA && comment.tags.find((t) => t.code === "EXPERT"); return ( <Flex alignItems="center"> {expertTag && ( diff --git a/src/core/client/stream/tabs/Comments/Comment/Username/Username.tsx b/src/core/client/stream/tabs/Comments/Comment/Username/Username.tsx index f8a566d61..c80f99c79 100644 --- a/src/core/client/stream/tabs/Comments/Comment/Username/Username.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/Username/Username.tsx @@ -10,7 +10,7 @@ interface Props { className?: string; } -const Username: FunctionComponent<Props> = props => { +const Username: FunctionComponent<Props> = (props) => { return ( <Typography variant={"heading3"} diff --git a/src/core/client/stream/tabs/Comments/Comment/Username/UsernameWithPopoverContainer.tsx b/src/core/client/stream/tabs/Comments/Comment/Username/UsernameWithPopoverContainer.tsx index 7abeb85a2..d09223509 100644 --- a/src/core/client/stream/tabs/Comments/Comment/Username/UsernameWithPopoverContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Comment/Username/UsernameWithPopoverContainer.tsx @@ -17,7 +17,7 @@ interface Props { className?: string; } -const UsernameWithPopoverContainer: FunctionComponent<Props> = props => { +const UsernameWithPopoverContainer: FunctionComponent<Props> = (props) => { const popoverID = `username-popover-${props.comment.id}`; if (!props.comment.author) { return null; diff --git a/src/core/client/stream/tabs/Comments/Comment/Username/index.ts b/src/core/client/stream/tabs/Comments/Comment/Username/index.ts index b06b38eeb..667cfc48e 100644 --- a/src/core/client/stream/tabs/Comments/Comment/Username/index.ts +++ b/src/core/client/stream/tabs/Comments/Comment/Username/index.ts @@ -1,4 +1,2 @@ export { default, default as Username } from "./Username"; -export { - default as UsernameWithPopoverContainer, -} from "./UsernameWithPopoverContainer"; +export { default as UsernameWithPopoverContainer } from "./UsernameWithPopoverContainer"; diff --git a/src/core/client/stream/tabs/Comments/CommentsPane.tsx b/src/core/client/stream/tabs/Comments/CommentsPane.tsx index 9a91821ea..7fa1b647e 100644 --- a/src/core/client/stream/tabs/Comments/CommentsPane.tsx +++ b/src/core/client/stream/tabs/Comments/CommentsPane.tsx @@ -1,6 +1,7 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, useLocal } from "coral-framework/lib/relay"; +import { useLocal } from "coral-framework/lib/relay"; import { CommentsPaneLocal } from "coral-stream/__generated__/CommentsPaneLocal.graphql"; diff --git a/src/core/client/stream/tabs/Comments/IgnoredTombstoneOrHideContainer.tsx b/src/core/client/stream/tabs/Comments/IgnoredTombstoneOrHideContainer.tsx index e1d3970ce..b4c023240 100644 --- a/src/core/client/stream/tabs/Comments/IgnoredTombstoneOrHideContainer.tsx +++ b/src/core/client/stream/tabs/Comments/IgnoredTombstoneOrHideContainer.tsx @@ -5,9 +5,10 @@ import React, { useEffect, useState, } from "react"; +import { graphql } from "react-relay"; import { usePrevious } from "coral-framework/hooks"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import CLASSES from "coral-stream/classes"; import { CallOut } from "coral-ui/components"; @@ -64,7 +65,7 @@ const IgnoredTombstoneOrHideContainer: FunctionComponent<Props> = ({ const hide = Boolean( comment.author && viewer && - viewer.ignoredUsers.some(u => Boolean(u.id === comment.author!.id)) + viewer.ignoredUsers.some((u) => Boolean(u.id === comment.author!.id)) ); const tombstone = useTombstone(hide); diff --git a/src/core/client/stream/tabs/Comments/Indent.tsx b/src/core/client/stream/tabs/Comments/Indent.tsx index d69193fbf..06f362c24 100644 --- a/src/core/client/stream/tabs/Comments/Indent.tsx +++ b/src/core/client/stream/tabs/Comments/Indent.tsx @@ -29,7 +29,7 @@ function getLevelClassName(level = 0) { return cn(levels[level], CLASSES.comment.indent[level]); } -const Indent: FunctionComponent<IndentProps> = props => { +const Indent: FunctionComponent<IndentProps> = (props) => { return ( <div className={cn(props.className, styles.root)}> <div diff --git a/src/core/client/stream/tabs/Comments/PermalinkView/ConversationThreadContainer.tsx b/src/core/client/stream/tabs/Comments/PermalinkView/ConversationThreadContainer.tsx index 22ab1b508..79550b7be 100644 --- a/src/core/client/stream/tabs/Comments/PermalinkView/ConversationThreadContainer.tsx +++ b/src/core/client/stream/tabs/Comments/PermalinkView/ConversationThreadContainer.tsx @@ -65,7 +65,7 @@ const ConversationThreadContainer: FunctionComponent<Props> = ({ console.error(error); } }, [loadMore, beginLoadMoreEvent]); - const parents = comment.parents.edges.map(edge => edge.node); + const parents = comment.parents.edges.map((edge) => edge.node); const remaining = comment.parentCount - comment.parents.edges.length; const hasMore = relay.hasMore(); const rootParent = hasMore && comment && comment.rootParent; @@ -173,7 +173,7 @@ interface FragmentVariables { cursor?: string; } -const enhanced = withContext(ctx => ({ +const enhanced = withContext((ctx) => ({ pym: ctx.pym, }))( withSetCommentIDMutation( diff --git a/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkView.tsx b/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkView.tsx index d8256fff3..489d32a69 100644 --- a/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkView.tsx +++ b/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkView.tsx @@ -25,8 +25,8 @@ export interface PermalinkViewProps { story: PropTypesOf<typeof ConversationThreadContainer>["story"] & PropTypesOf<typeof ReplyListContainer>["story"]; comment: - | PropTypesOf<typeof ConversationThreadContainer>["comment"] & - PropTypesOf<typeof ReplyListContainer>["comment"] + | (PropTypesOf<typeof ConversationThreadContainer>["comment"] & + PropTypesOf<typeof ReplyListContainer>["comment"]) | null; settings: PropTypesOf<typeof ConversationThreadContainer>["settings"] & PropTypesOf<typeof ReplyListContainer>["settings"] & diff --git a/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewContainer.tsx b/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewContainer.tsx index 577116408..bac0d991b 100644 --- a/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewContainer.tsx +++ b/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewContainer.tsx @@ -66,7 +66,7 @@ class PermalinkViewContainer extends React.Component< } } -const enhanced = withContext(ctx => ({ +const enhanced = withContext((ctx) => ({ pym: ctx.pym, eventEmitter: ctx.eventEmitter, }))( diff --git a/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewQuery.tsx b/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewQuery.tsx index a00da84fc..78c08a351 100644 --- a/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewQuery.tsx +++ b/src/core/client/stream/tabs/Comments/PermalinkView/PermalinkViewQuery.tsx @@ -1,8 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -79,7 +79,7 @@ const PermalinkViewQuery: FunctionComponent<Props> = ({ storyID, storyURL, }} - render={data => { + render={(data) => { if (handleIncompleteAccount(data)) { return null; } diff --git a/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Circle.tsx b/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Circle.tsx index e06950d80..dbaffdce9 100644 --- a/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Circle.tsx +++ b/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Circle.tsx @@ -9,7 +9,7 @@ export interface CircleProps { end?: boolean; } -const Circle: FunctionComponent<CircleProps> = props => { +const Circle: FunctionComponent<CircleProps> = (props) => { return ( <div className={cn(styles.circleContainer, props.className)}> <div diff --git a/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Line.tsx b/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Line.tsx index 2c7dcab11..fc730490b 100644 --- a/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Line.tsx +++ b/src/core/client/stream/tabs/Comments/PermalinkView/Timeline/Line.tsx @@ -8,7 +8,7 @@ interface LineProps { dotted?: boolean; } -const Line: FunctionComponent<LineProps> = props => { +const Line: FunctionComponent<LineProps> = (props) => { return ( <div className={cn(styles.root, props.className, { diff --git a/src/core/client/stream/tabs/Comments/RTE/RTE.css b/src/core/client/stream/tabs/Comments/RTE/RTE.css index 674360b34..2bddbb0d8 100644 --- a/src/core/client/stream/tabs/Comments/RTE/RTE.css +++ b/src/core/client/stream/tabs/Comments/RTE/RTE.css @@ -1,5 +1,5 @@ .content { - composes: root from "coral-stream/shared/htmlContent.css"; + composes: root from "~coral-stream/shared/htmlContent.css"; border: 1px solid var(--palette-grey-main); } @@ -9,6 +9,6 @@ } .placeholder { - composes: placeholder from "coral-ui/shared/typography.css"; + composes: placeholder from "~coral-ui/shared/typography.css"; margin: 10px 0 0 calc(10px); } diff --git a/src/core/client/stream/tabs/Comments/RTE/RTE.tsx b/src/core/client/stream/tabs/Comments/RTE/RTE.tsx index 9dc471f7a..60fc44ea9 100644 --- a/src/core/client/stream/tabs/Comments/RTE/RTE.tsx +++ b/src/core/client/stream/tabs/Comments/RTE/RTE.tsx @@ -97,7 +97,7 @@ const features = [ </Localized>, ]; -const RTE: FunctionComponent<RTEProps> = props => { +const RTE: FunctionComponent<RTEProps> = (props) => { const { className, fullWidth, diff --git a/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharacters.tsx b/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharacters.tsx index 6a8ea42df..0c08e6790 100644 --- a/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharacters.tsx +++ b/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharacters.tsx @@ -9,7 +9,7 @@ interface Props { remaining: number; } -const RemainingCharacters: FunctionComponent<Props> = props => { +const RemainingCharacters: FunctionComponent<Props> = (props) => { const belowZero = props.remaining < 0; return ( <Flex diff --git a/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharactersContainer.tsx b/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharactersContainer.tsx index fec9f72c2..ae34a62f9 100644 --- a/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharactersContainer.tsx +++ b/src/core/client/stream/tabs/Comments/RemainingCharacters/RemainingCharactersContainer.tsx @@ -9,7 +9,7 @@ interface Props { value: string | undefined; } -const RemainingCharactersContainer: FunctionComponent<Props> = props => { +const RemainingCharactersContainer: FunctionComponent<Props> = (props) => { return ( <RemainingCharacters className={props.className} diff --git a/src/core/client/stream/tabs/Comments/ReplyList/CommentReplyCreatedSubscription.tsx b/src/core/client/stream/tabs/Comments/ReplyList/CommentReplyCreatedSubscription.tsx index bdf662227..e5a74cab8 100644 --- a/src/core/client/stream/tabs/Comments/ReplyList/CommentReplyCreatedSubscription.tsx +++ b/src/core/client/stream/tabs/Comments/ReplyList/CommentReplyCreatedSubscription.tsx @@ -1,8 +1,9 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { ConnectionHandler, Environment, RecordProxy } from "relay-runtime"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; @@ -51,7 +52,7 @@ const CommentReplyCreatedSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { const rootField = store.getRootField("commentReplyCreated"); if (!rootField) { return; diff --git a/src/core/client/stream/tabs/Comments/ReplyList/ReplyList.tsx b/src/core/client/stream/tabs/Comments/ReplyList/ReplyList.tsx index 3169021f7..bbf95ec8a 100644 --- a/src/core/client/stream/tabs/Comments/ReplyList/ReplyList.tsx +++ b/src/core/client/stream/tabs/Comments/ReplyList/ReplyList.tsx @@ -38,14 +38,14 @@ export interface ReplyListProps { onRemoveAnswered?: () => void; } -const ReplyList: FunctionComponent<ReplyListProps> = props => { +const ReplyList: FunctionComponent<ReplyListProps> = (props) => { return ( <HorizontalGutter id={`coral-comments-replyList-log--${props.comment.id}`} data-testid={`commentReplyList-${props.comment.id}`} role="log" > - {props.comments.map(comment => ( + {props.comments.map((comment) => ( <FadeInTransition key={comment.id} active={Boolean(comment.enteredLive)} diff --git a/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.spec.tsx b/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.spec.tsx index 78bc21142..32d185c1f 100644 --- a/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.spec.tsx +++ b/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.spec.tsx @@ -125,7 +125,7 @@ describe("when has more replies", () => { localReply: false, }; - let wrapper: ShallowWrapper; + let wrapper: ShallowWrapper<any>; beforeAll(() => (wrapper = shallow(<ReplyListContainerN {...props} />))); @@ -135,10 +135,10 @@ describe("when has more replies", () => { describe("when showing all", () => { beforeAll(() => { - wrapper - .find(ReplyList) - .props() - .onShowAll(); + const replyList = wrapper.find(ReplyList); + if (replyList) { + wrapper.props().onShowAll(); + } }); it("calls relay loadMore", () => { expect(finishLoading).not.toBeNull(); diff --git a/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.tsx b/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.tsx index 085f00655..44db9eebe 100644 --- a/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.tsx +++ b/src/core/client/stream/tabs/Comments/ReplyList/ReplyListContainer.tsx @@ -10,7 +10,7 @@ import { withPaginationContainer, } from "coral-framework/lib/relay"; import { FragmentKeys } from "coral-framework/lib/relay/types"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import { ShowAllRepliesEvent } from "coral-stream/events"; import { ReplyListContainer1_comment as CommentData } from "coral-stream/__generated__/ReplyListContainer1_comment.graphql"; @@ -59,7 +59,7 @@ type FragmentVariables = Omit< "commentID" >; -export const ReplyListContainer: React.FunctionComponent<Props> = props => { +export const ReplyListContainer: React.FunctionComponent<Props> = (props) => { const [showAll, isLoadingShowAll] = useLoadMore(props.relay, 999999999); const beginShowAllEvent = useViewerNetworkEvent(ShowAllRepliesEvent); const showAllAndEmit = useCallback(async () => { @@ -124,7 +124,7 @@ export const ReplyListContainer: React.FunctionComponent<Props> = props => { // Comment is not visible after a viewer action, so don't render it anymore. props.comment.lastViewerAction && !isPublished(props.comment.status) ? [] - : props.comment.replies.edges.map(edge => ({ + : props.comment.replies.edges.map((edge) => ({ ...edge.node, replyListElement: props.ReplyListComponent && ( <props.ReplyListComponent @@ -202,9 +202,9 @@ function createReplyListContainer( /** * LastReplyList uses the LocalReplyListContainer. */ -const LastReplyList: FunctionComponent< - PropTypesOf<typeof LocalReplyListContainer> -> = props => <LocalReplyListContainer {...props} indentLevel={3} />; +const LastReplyList: FunctionComponent<PropTypesOf< + typeof LocalReplyListContainer +>> = (props) => <LocalReplyListContainer {...props} indentLevel={3} />; const ReplyListContainer3 = createReplyListContainer( 3, diff --git a/src/core/client/stream/tabs/Comments/ReplyList/ReplyListViewNewMutation.tsx b/src/core/client/stream/tabs/Comments/ReplyList/ReplyListViewNewMutation.tsx index fbdb19a4d..4efa1d743 100644 --- a/src/core/client/stream/tabs/Comments/ReplyList/ReplyListViewNewMutation.tsx +++ b/src/core/client/stream/tabs/Comments/ReplyList/ReplyListViewNewMutation.tsx @@ -18,7 +18,7 @@ const QueueViewNewMutation = createMutation( input: ReplyListViewNewInput, { eventEmitter }: CoralContext ) => { - await commitLocalUpdatePromisified(environment, async store => { + await commitLocalUpdatePromisified(environment, async (store) => { const parentProxy = store.get(input.commentID); if (!parentProxy) { return; @@ -39,7 +39,7 @@ const QueueViewNewMutation = createMutation( if (!viewNewEdges || viewNewEdges.length === 0) { return; } - viewNewEdges.forEach(edge => { + viewNewEdges.forEach((edge) => { ConnectionHandler.insertEdgeAfter(connection, edge); }); connection.setLinkedRecords([], "viewNewEdges"); diff --git a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabContainer.tsx index cf6475c42..e67ce5021 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabContainer.tsx @@ -12,7 +12,7 @@ import { withPaginationContainer, } from "coral-framework/lib/relay"; import { GQLCOMMENT_SORT, GQLSTORY_MODE } from "coral-framework/schema"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import CLASSES from "coral-stream/classes"; import { LoadMoreAllCommentsEvent } from "coral-stream/events"; import { Box, Button, HorizontalGutter } from "coral-ui/components"; @@ -50,7 +50,7 @@ graphql` } `; -export const AllCommentsTabContainer: FunctionComponent<Props> = props => { +export const AllCommentsTabContainer: FunctionComponent<Props> = (props) => { const [{ commentsOrderBy }] = useLocal<AllCommentsTabContainerLocal>( graphql` fragment AllCommentsTabContainerLocal on Local { @@ -124,7 +124,7 @@ export const AllCommentsTabContainer: FunctionComponent<Props> = props => { props.story.id, viewMore, ]); - const comments = props.story.comments.edges.map(edge => edge.node); + const comments = props.story.comments.edges.map((edge) => edge.node); const viewNewCount = (props.story.comments.viewNewEdges && props.story.comments.viewNewEdges.length) || @@ -167,7 +167,7 @@ export const AllCommentsTabContainer: FunctionComponent<Props> = props => { ></NoComments> )} {comments.length > 0 && - comments.map(comment => ( + comments.map((comment) => ( <IgnoredTombstoneOrHideContainer key={comment.id} viewer={props.viewer} diff --git a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabQuery.tsx b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabQuery.tsx index c4ca18f45..a5a290c25 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabQuery.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabQuery.tsx @@ -1,8 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -51,7 +51,7 @@ export const render = (data: QueryRenderData<QueryTypes>) => { ); }; -const AllCommentsTabQuery: FunctionComponent<Props> = props => { +const AllCommentsTabQuery: FunctionComponent<Props> = (props) => { const { local: { storyID, storyURL, commentsOrderBy }, } = props; @@ -80,7 +80,7 @@ const AllCommentsTabQuery: FunctionComponent<Props> = props => { storyURL, commentsOrderBy, }} - render={data => (props.preload ? null : render(data))} + render={(data) => (props.preload ? null : render(data))} /> ); }; diff --git a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabViewNewMutation.tsx b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabViewNewMutation.tsx index e4faf283c..34b5d8d9c 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabViewNewMutation.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/AllCommentsTabViewNewMutation.tsx @@ -19,7 +19,7 @@ const AllCommentsTabViewNewMutation = createMutation( input: Input, { eventEmitter }: CoralContext ) => { - await commitLocalUpdatePromisified(environment, async store => { + await commitLocalUpdatePromisified(environment, async (store) => { const story = store.get(input.storyID)!; const connection = ConnectionHandler.getConnection( story, @@ -34,7 +34,7 @@ const AllCommentsTabViewNewMutation = createMutation( if (!viewNewEdges || viewNewEdges.length === 0) { return; } - viewNewEdges.forEach(edge => { + viewNewEdges.forEach((edge) => { ConnectionHandler.insertEdgeBefore(connection, edge); }); ViewNewCommentsEvent.emit(eventEmitter, { diff --git a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentCreatedSubscription.tsx b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentCreatedSubscription.tsx index 970ace6a7..0a2c48ea2 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentCreatedSubscription.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentCreatedSubscription.tsx @@ -1,13 +1,13 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { ConnectionHandler, Environment, - RecordProxy, RecordSourceSelectorProxy, } from "relay-runtime"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; @@ -15,7 +15,7 @@ import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; import { CommentCreatedSubscription } from "coral-stream/__generated__/CommentCreatedSubscription.graphql"; function updateForNewestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const rootField = store.getRootField("commentCreated"); @@ -39,14 +39,14 @@ function updateForNewestFirst( } function updateForOldestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const story = store.get(storyID)!; const connection = ConnectionHandler.getConnection(story, "Stream_comments", { orderBy: GQLCOMMENT_SORT.CREATED_AT_ASC, })!; - const pageInfo = connection.getLinkedRecord("pageInfo") as RecordProxy; + const pageInfo = connection.getLinkedRecord("pageInfo")!; pageInfo.setValue(true, "hasNextPage"); } @@ -71,7 +71,7 @@ const CommentCreatedSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { if (variables.orderBy === GQLCOMMENT_SORT.CREATED_AT_DESC) { updateForNewestFirst(store, variables.storyID); return; diff --git a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentReleasedSubscription.tsx b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentReleasedSubscription.tsx index 55be7720e..1a5bf6681 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentReleasedSubscription.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/CommentReleasedSubscription.tsx @@ -1,13 +1,13 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { ConnectionHandler, Environment, - RecordProxy, RecordSourceSelectorProxy, } from "relay-runtime"; import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; @@ -15,7 +15,7 @@ import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; import { CommentReleasedSubscription } from "coral-stream/__generated__/CommentReleasedSubscription.graphql"; function updateForNewestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const rootField = store.getRootField("commentReleased"); @@ -39,14 +39,14 @@ function updateForNewestFirst( } function updateForOldestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const story = store.get(storyID)!; const connection = ConnectionHandler.getConnection(story, "Stream_comments", { orderBy: GQLCOMMENT_SORT.CREATED_AT_ASC, })!; - const pageInfo = connection.getLinkedRecord("pageInfo") as RecordProxy; + const pageInfo = connection.getLinkedRecord("pageInfo")!; pageInfo.setValue(true, "hasNextPage"); } @@ -71,7 +71,7 @@ const CommentReleasedSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { if (variables.orderBy === GQLCOMMENT_SORT.CREATED_AT_DESC) { updateForNewestFirst(store, variables.storyID); return; diff --git a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/SpinnerWhileRendering.tsx b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/SpinnerWhileRendering.tsx index ab386de5c..deb41db1c 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/SpinnerWhileRendering.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AllCommentsTab/SpinnerWhileRendering.tsx @@ -39,7 +39,7 @@ function callWhenReallyIdle(callback: () => void) { /** * Show spinner, wait for browser to idle and start rendering. */ -const SpinnerWhileRendering: FunctionComponent<Props> = props => { +const SpinnerWhileRendering: FunctionComponent<Props> = (props) => { // In our tests, we don't actually "render", so just skip this. if (process.env.NODE_ENV === "test") { return <>{props.children}</>; diff --git a/src/core/client/stream/tabs/Comments/Stream/Announcement/Announcement.tsx b/src/core/client/stream/tabs/Comments/Stream/Announcement/Announcement.tsx index 758c31900..4535666a0 100644 --- a/src/core/client/stream/tabs/Comments/Stream/Announcement/Announcement.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/Announcement/Announcement.tsx @@ -11,7 +11,7 @@ interface Props { onClose: () => void; } -const Announcement: FunctionComponent<Props> = props => { +const Announcement: FunctionComponent<Props> = (props) => { return ( <div className={cn(styles.root, CLASSES.announcement)}> <Flex justifyContent="space-between" alignItems="center"> diff --git a/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentContainer.tsx index 9c07ae54c..dee54eb47 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentContainer.tsx @@ -36,7 +36,7 @@ interface Props { setCommentID: SetCommentIDMutation; } -const AnsweredCommentContainer: FunctionComponent<Props> = props => { +const AnsweredCommentContainer: FunctionComponent<Props> = (props) => { const { comment, settings, story, viewer, setCommentID } = props; const banned = Boolean( viewer && viewer.status.current.includes(GQLUSER_STATUS.BANNED) diff --git a/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsContainer.tsx index fdfe65dcd..aef7606ec 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsContainer.tsx @@ -7,7 +7,7 @@ import { useLoadMore, withPaginationContainer, } from "coral-framework/lib/relay"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import CLASSES from "coral-stream/classes"; import { LoadMoreFeaturedCommentsEvent } from "coral-stream/events"; import { Button, HorizontalGutter } from "coral-ui/components"; @@ -27,7 +27,7 @@ interface Props { relay: RelayPaginationProp; } -export const AnsweredCommentsContainer: FunctionComponent<Props> = props => { +export const AnsweredCommentsContainer: FunctionComponent<Props> = (props) => { const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); const beginLoadMoreEvent = useViewerNetworkEvent( LoadMoreFeaturedCommentsEvent @@ -43,7 +43,7 @@ export const AnsweredCommentsContainer: FunctionComponent<Props> = props => { console.error(error); } }, [loadMore, beginLoadMoreEvent, props.story.id]); - const comments = props.story.featuredComments.edges.map(edge => edge.node); + const comments = props.story.featuredComments.edges.map((edge) => edge.node); return ( <HorizontalGutter id="comments-featuredComments-log" @@ -52,7 +52,7 @@ export const AnsweredCommentsContainer: FunctionComponent<Props> = props => { aria-live="polite" spacing={3} > - {comments.map(comment => ( + {comments.map((comment) => ( <IgnoredTombstoneOrHideContainer key={comment.id} viewer={props.viewer} diff --git a/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsQuery.tsx b/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsQuery.tsx index 99e20229e..a9f1e8a4f 100644 --- a/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsQuery.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/AnsweredCommentsTab/AnsweredCommentsQuery.tsx @@ -1,8 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -60,7 +60,7 @@ export const render = (data: QueryRenderData<QueryTypes>) => { ); }; -const AnsweredCommentsQuery: FunctionComponent<Props> = props => { +const AnsweredCommentsQuery: FunctionComponent<Props> = (props) => { const { local: { storyID, storyURL, commentsOrderBy }, } = props; @@ -89,7 +89,7 @@ const AnsweredCommentsQuery: FunctionComponent<Props> = props => { storyURL, commentsOrderBy, }} - render={data => (props.preload ? null : render(data))} + render={(data) => (props.preload ? null : render(data))} /> ); }; diff --git a/src/core/client/stream/tabs/Comments/Stream/BannedInfo.tsx b/src/core/client/stream/tabs/Comments/Stream/BannedInfo.tsx index 552cf5c55..ad1e53476 100644 --- a/src/core/client/stream/tabs/Comments/Stream/BannedInfo.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/BannedInfo.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent } from "react"; import { CallOut, HorizontalGutter, Typography } from "coral-ui/components"; -const BannedInfo: FunctionComponent = props => { +const BannedInfo: FunctionComponent = (props) => { return ( <CallOut fullWidth> <HorizontalGutter> diff --git a/src/core/client/stream/tabs/Comments/Stream/CommunityGuidelines/CommunityGuidelines.tsx b/src/core/client/stream/tabs/Comments/Stream/CommunityGuidelines/CommunityGuidelines.tsx index 6543367eb..7c36e92bf 100644 --- a/src/core/client/stream/tabs/Comments/Stream/CommunityGuidelines/CommunityGuidelines.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/CommunityGuidelines/CommunityGuidelines.tsx @@ -8,7 +8,7 @@ interface Props { children: string; } -const CommunityGuidelines: FunctionComponent<Props> = props => { +const CommunityGuidelines: FunctionComponent<Props> = (props) => { return ( <CallOut color="primary" fullWidth className={CLASSES.guidelines}> <Markdown>{props.children}</Markdown> diff --git a/src/core/client/stream/tabs/Comments/Stream/FeaturedCommentTooltip.tsx b/src/core/client/stream/tabs/Comments/Stream/FeaturedCommentTooltip.tsx index a8a282fb7..fbadf87bf 100644 --- a/src/core/client/stream/tabs/Comments/Stream/FeaturedCommentTooltip.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/FeaturedCommentTooltip.tsx @@ -15,9 +15,9 @@ interface ContentProps { isQA?: boolean; } -const FeaturedCommentTooltipContent: FunctionComponent< - ContentProps -> = props => { +const FeaturedCommentTooltipContent: FunctionComponent<ContentProps> = ( + props +) => { const emitShowTooltipEvent = useViewerEvent(ShowFeaturedCommentTooltipEvent); useEffect(() => { emitShowTooltipEvent(); @@ -38,9 +38,9 @@ const FeaturedCommentTooltipContent: FunctionComponent< ); }; -export const FeaturedCommentTooltip: FunctionComponent< - TooltipProps -> = props => { +export const FeaturedCommentTooltip: FunctionComponent<TooltipProps> = ( + props +) => { if (props.isQA) { return ( <Tooltip diff --git a/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentContainer.tsx index 44c0bf5b9..9913a68af 100644 --- a/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentContainer.tsx @@ -36,7 +36,7 @@ interface Props { setCommentID: SetCommentIDMutation; } -const FeaturedCommentContainer: FunctionComponent<Props> = props => { +const FeaturedCommentContainer: FunctionComponent<Props> = (props) => { const { comment, settings, story, viewer, setCommentID } = props; const banned = Boolean( viewer && viewer.status.current.includes(GQLUSER_STATUS.BANNED) diff --git a/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsContainer.tsx index 0e5ad64de..25c257477 100644 --- a/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsContainer.tsx @@ -7,7 +7,7 @@ import { useLoadMore, withPaginationContainer, } from "coral-framework/lib/relay"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import CLASSES from "coral-stream/classes"; import { LoadMoreFeaturedCommentsEvent } from "coral-stream/events"; import { Button, HorizontalGutter } from "coral-ui/components"; @@ -27,7 +27,7 @@ interface Props { relay: RelayPaginationProp; } -export const FeaturedCommentsContainer: FunctionComponent<Props> = props => { +export const FeaturedCommentsContainer: FunctionComponent<Props> = (props) => { const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); const beginLoadMoreEvent = useViewerNetworkEvent( LoadMoreFeaturedCommentsEvent @@ -43,7 +43,7 @@ export const FeaturedCommentsContainer: FunctionComponent<Props> = props => { console.error(error); } }, [loadMore, beginLoadMoreEvent, props.story.id]); - const comments = props.story.featuredComments.edges.map(edge => edge.node); + const comments = props.story.featuredComments.edges.map((edge) => edge.node); return ( <> <HorizontalGutter @@ -53,7 +53,7 @@ export const FeaturedCommentsContainer: FunctionComponent<Props> = props => { aria-live="polite" spacing={3} > - {comments.map(comment => ( + {comments.map((comment) => ( <IgnoredTombstoneOrHideContainer key={comment.id} viewer={props.viewer} diff --git a/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsQuery.tsx b/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsQuery.tsx index c22d0a15b..9777b5e10 100644 --- a/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsQuery.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/FeaturedComments/FeaturedCommentsQuery.tsx @@ -1,8 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -60,7 +60,7 @@ export const render = (data: QueryRenderData<QueryTypes>) => { ); }; -const FeaturedCommentsQuery: FunctionComponent<Props> = props => { +const FeaturedCommentsQuery: FunctionComponent<Props> = (props) => { const { local: { storyID, storyURL, commentsOrderBy }, } = props; @@ -89,7 +89,7 @@ const FeaturedCommentsQuery: FunctionComponent<Props> = props => { storyURL, commentsOrderBy, }} - render={data => (props.preload ? null : render(data))} + render={(data) => (props.preload ? null : render(data))} /> ); }; diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/CreateCommentMutation.ts b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/CreateCommentMutation.ts index 650268f91..331003ca6 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/CreateCommentMutation.ts +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/CreateCommentMutation.ts @@ -224,8 +224,9 @@ async function commit( }, clientMutationId: (clientMutationId++).toString(), }, - }, - optimisticUpdater: store => { + // TODO: (cvle) fix types. + } as any, + optimisticUpdater: (store) => { // Skip optimistic update if comment is probably premoderated. if (expectPremoderation) { return; @@ -233,7 +234,7 @@ async function commit( sharedUpdater(environment, store, input); store.get(id)!.setValue(true, "pending"); }, - updater: store => { + updater: (store) => { sharedUpdater(environment, store, input); }, } diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentForm.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentForm.tsx index 027c45769..0ef7dd9d0 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentForm.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentForm.tsx @@ -46,7 +46,7 @@ interface Props { story: PropTypesOf<typeof MessageBoxContainer>["story"] & StorySettings; } -const PostCommentForm: FunctionComponent<Props> = props => { +const PostCommentForm: FunctionComponent<Props> = (props) => { const emitFocusEvent = useViewerEvent(CreateCommentFocusEvent); const onFocus = useCallback(() => { emitFocusEvent(); @@ -69,7 +69,9 @@ const PostCommentForm: FunctionComponent<Props> = props => { id="comments-postCommentForm-form" > <FormSpy - onChange={state => props.onChange && props.onChange(state, form)} + onChange={(state) => + props.onChange && props.onChange(state, form) + } /> <HorizontalGutter> <Field diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosed.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosed.tsx index 268b7c969..d479a3aa9 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosed.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosed.tsx @@ -15,7 +15,7 @@ interface Props { showMessageBox?: boolean; story: PropTypesOf<typeof MessageBoxContainer>["story"]; } -const PostCommentFormClosed: FunctionComponent<Props> = props => ( +const PostCommentFormClosed: FunctionComponent<Props> = (props) => ( <div className={CLASSES.createComment.$root}> {props.showMessageBox && ( <MessageBoxContainer diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosedSitewide.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosedSitewide.tsx index 0b7a84162..935345d8a 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosedSitewide.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormClosedSitewide.tsx @@ -15,7 +15,7 @@ interface Props { showMessageBox?: boolean; story: PropTypesOf<typeof MessageBoxContainer>["story"]; } -const PostCommentFormClosedSitewide: FunctionComponent<Props> = props => ( +const PostCommentFormClosedSitewide: FunctionComponent<Props> = (props) => ( <HorizontalGutter size="double"> <CallOut fullWidth className={cn(styles.root, CLASSES.closedSitewide)}> <Markdown className={styles.message}>{props.message}</Markdown> diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.spec.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.spec.tsx index 81e6aad30..86aa31480 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.spec.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.spec.tsx @@ -121,10 +121,7 @@ it("creates a comment", async () => { const createCommentStub = sinon.stub().returns({ edge: { node: {} } }); const form = { initialize: noop }; const formMock = sinon.mock(form); - formMock - .expects("initialize") - .withArgs({}) - .once(); + formMock.expects("initialize").withArgs({}).once(); const props = createDefaultProps({ createComment: createCommentStub, @@ -146,10 +143,7 @@ it("creates a comment", async () => { wrapper.update(); }); act(() => { - wrapper - .first() - .props() - .onSubmit(input, form); + wrapper.first().props().onSubmit(input, form); }); await act(async () => { diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.tsx index 3b1080692..1b04f2851 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormContainer.tsx @@ -1,6 +1,7 @@ import { Localized } from "@fluent/react/compat"; import { FORM_ERROR } from "final-form"; import React, { Component } from "react"; +import { graphql } from "react-relay"; import { withContext } from "coral-framework/lib/bootstrap"; import { @@ -9,7 +10,6 @@ import { } from "coral-framework/lib/errors"; import { FetchProp, - graphql, withFetch, withFragmentContainer, } from "coral-framework/lib/relay"; @@ -171,6 +171,7 @@ export class PostCommentFormContainer extends Component<Props, State> { } else { this.props.sessionStorage.removeItem(contextKey); } + // Reset errors whenever user clears the form. if (state.touched && state.touched.body && !state.values.body) { form.reset({}); diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.css b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.css index 541366080..e8ddc65a0 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.css +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.css @@ -6,7 +6,7 @@ } .textarea { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; display: block; height: 150px; width: 100%; diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.tsx index ba374ff6d..88c95bb5b 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentFormFake.tsx @@ -28,7 +28,7 @@ interface Props { onSignIn: () => void; } -const PostCommentFormFake: FunctionComponent<Props> = props => { +const PostCommentFormFake: FunctionComponent<Props> = (props) => { const emitFocusEvent = useViewerEvent(CreateCommentFocusEvent); const onFocus = useCallback(() => { emitFocusEvent(); diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentInReviewMessage.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentInReviewMessage.tsx index c90041935..1eed5cdad 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentInReviewMessage.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentInReviewMessage.tsx @@ -10,9 +10,9 @@ export interface PostCommentInReviewProps { onDismiss: () => void; } -const PostCommentInReview: FunctionComponent< - PostCommentInReviewProps -> = props => { +const PostCommentInReview: FunctionComponent<PostCommentInReviewProps> = ( + props +) => { return ( <Message color="primary" diff --git a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentRejectedMessage.tsx b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentRejectedMessage.tsx index 124c73e50..1ff30e05c 100644 --- a/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentRejectedMessage.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/PostCommentForm/PostCommentRejectedMessage.tsx @@ -10,9 +10,9 @@ export interface PostCommentRejectedProps { onDismiss: () => void; } -const PostCommentRejected: FunctionComponent< - PostCommentRejectedProps -> = props => { +const PostCommentRejected: FunctionComponent<PostCommentRejectedProps> = ( + props +) => { return ( <Message color="error" className={CLASSES.createComment.rejected} fullWidth> <Flex justifyContent="space-between" className={styles.flex}> diff --git a/src/core/client/stream/tabs/Comments/Stream/SortMenu.tsx b/src/core/client/stream/tabs/Comments/Stream/SortMenu.tsx index 94addff69..a5d491be9 100644 --- a/src/core/client/stream/tabs/Comments/Stream/SortMenu.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/SortMenu.tsx @@ -29,14 +29,14 @@ interface Props { isQA?: boolean; } -const SortMenu: FunctionComponent<Props> = props => { +const SortMenu: FunctionComponent<Props> = (props) => { const emitOpenSortMenuEvent = useViewerEvent(OpenSortMenuEvent); const onClickSelectField = useCallback(() => emitOpenSortMenuEvent(), [ emitOpenSortMenuEvent, ]); return ( <MatchMedia ltWidth="sm"> - {matches => ( + {(matches) => ( <Flex className={cn(props.className, CLASSES.sortMenu)} justifyContent="flex-end" diff --git a/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/SetStoryClosedMutation.ts b/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/SetStoryClosedMutation.ts index 73d915852..e99eecf5c 100644 --- a/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/SetStoryClosedMutation.ts +++ b/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/SetStoryClosedMutation.ts @@ -15,7 +15,7 @@ export async function commit( environment: Environment, input: SetStoryClosedInput ) { - return commitLocalUpdate(environment, store => { + return commitLocalUpdate(environment, (store) => { const record = store.get(input.storyID)!; record.setValue(input.isClosed, "isClosed"); }); diff --git a/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/StoryClosedTimeoutContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/StoryClosedTimeoutContainer.tsx index db2eb97f9..39effbc3f 100644 --- a/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/StoryClosedTimeoutContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/StoryClosedTimeout/StoryClosedTimeoutContainer.tsx @@ -1,6 +1,7 @@ import React from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { StoryClosedTimeoutContainer_story as StoryData } from "coral-stream/__generated__/StoryClosedTimeoutContainer_story.graphql"; diff --git a/src/core/client/stream/tabs/Comments/Stream/StreamContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/StreamContainer.tsx index 74f9f4226..58e0b47c8 100644 --- a/src/core/client/stream/tabs/Comments/Stream/StreamContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/StreamContainer.tsx @@ -56,7 +56,7 @@ interface Props { viewer: ViewerData | null; } -interface TooltipTabProps extends PropTypesOf<typeof Tab> { +interface TooltipTabProps extends Omit<PropTypesOf<typeof Tab>, "ref"> { isQA?: boolean; } @@ -91,7 +91,7 @@ const TabWithFeaturedTooltip: FunctionComponent<TooltipTabProps> = ({ </div> ); -export const StreamContainer: FunctionComponent<Props> = props => { +export const StreamContainer: FunctionComponent<Props> = (props) => { const emitSetCommentsTabEvent = useViewerEvent(SetCommentsTabEvent); const emitSetCommentsOrderByEvent = useViewerEvent(SetCommentsOrderByEvent); const { localStorage } = useCoralContext(); diff --git a/src/core/client/stream/tabs/Comments/Stream/StreamQuery.tsx b/src/core/client/stream/tabs/Comments/Stream/StreamQuery.tsx index 9b4a17a30..4f028dd8f 100644 --- a/src/core/client/stream/tabs/Comments/Stream/StreamQuery.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/StreamQuery.tsx @@ -1,8 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -64,7 +64,7 @@ export const render = ( ); }; -const StreamQuery: FunctionComponent<Props> = props => { +const StreamQuery: FunctionComponent<Props> = (props) => { const { local: { storyID, storyURL, commentsTab }, } = props; @@ -89,7 +89,7 @@ const StreamQuery: FunctionComponent<Props> = props => { storyID, storyURL, }} - render={data => { + render={(data) => { if (handleIncompleteAccount(data)) { return null; } diff --git a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/SpinnerWhileRendering.tsx b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/SpinnerWhileRendering.tsx index ab386de5c..deb41db1c 100644 --- a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/SpinnerWhileRendering.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/SpinnerWhileRendering.tsx @@ -39,7 +39,7 @@ function callWhenReallyIdle(callback: () => void) { /** * Show spinner, wait for browser to idle and start rendering. */ -const SpinnerWhileRendering: FunctionComponent<Props> = props => { +const SpinnerWhileRendering: FunctionComponent<Props> = (props) => { // In our tests, we don't actually "render", so just skip this. if (process.env.NODE_ENV === "test") { return <>{props.children}</>; diff --git a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentCreatedSubscription.tsx b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentCreatedSubscription.tsx index 2a3aa9e97..cf33b1bff 100644 --- a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentCreatedSubscription.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentCreatedSubscription.tsx @@ -1,4 +1,4 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { ConnectionHandler, Environment, @@ -8,6 +8,7 @@ import { import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; @@ -15,7 +16,7 @@ import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; import { UnansweredCommentCreatedSubscription } from "coral-stream/__generated__/UnansweredCommentCreatedSubscription.graphql"; function updateForNewestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const rootField = store.getRootField("commentCreated"); @@ -39,7 +40,7 @@ function updateForNewestFirst( } function updateForOldestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const story = store.get(storyID)!; @@ -73,7 +74,7 @@ const UnansweredCommentCreatedSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { if (variables.orderBy === GQLCOMMENT_SORT.CREATED_AT_DESC) { updateForNewestFirst(store, variables.storyID); return; diff --git a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentReleasedSubscription.tsx b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentReleasedSubscription.tsx index 61d4ad9ce..26dd72831 100644 --- a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentReleasedSubscription.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentReleasedSubscription.tsx @@ -1,4 +1,4 @@ -import { graphql, requestSubscription } from "react-relay"; +import { graphql } from "react-relay"; import { ConnectionHandler, Environment, @@ -8,6 +8,7 @@ import { import { createSubscription, + requestSubscription, SubscriptionVariables, } from "coral-framework/lib/relay"; import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; @@ -15,7 +16,7 @@ import { GQLCOMMENT_SORT, GQLCOMMENT_SORT_RL } from "coral-framework/schema"; import { UnansweredCommentReleasedSubscription } from "coral-stream/__generated__/UnansweredCommentReleasedSubscription.graphql"; function updateForNewestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const rootField = store.getRootField("commentReleased"); @@ -39,7 +40,7 @@ function updateForNewestFirst( } function updateForOldestFirst( - store: RecordSourceSelectorProxy, + store: RecordSourceSelectorProxy<unknown>, storyID: string ) { const story = store.get(storyID)!; @@ -73,7 +74,7 @@ const UnansweredCommentReleasedSubscription = createSubscription( } `, variables, - updater: store => { + updater: (store) => { if (variables.orderBy === GQLCOMMENT_SORT.CREATED_AT_DESC) { updateForNewestFirst(store, variables.storyID); return; diff --git a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabContainer.tsx b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabContainer.tsx index 014491fe2..3fe69e821 100644 --- a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabContainer.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabContainer.tsx @@ -12,7 +12,7 @@ import { withPaginationContainer, } from "coral-framework/lib/relay"; import { GQLCOMMENT_SORT, GQLTAG } from "coral-framework/schema"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import CLASSES from "coral-stream/classes"; import { LoadMoreAllCommentsEvent } from "coral-stream/events"; import { Box, Button, CallOut, HorizontalGutter } from "coral-ui/components"; @@ -49,9 +49,9 @@ graphql` } `; -export const UnansweredCommentsTabContainer: FunctionComponent< - Props -> = props => { +export const UnansweredCommentsTabContainer: FunctionComponent<Props> = ( + props +) => { const [{ commentsOrderBy }] = useLocal<UnansweredCommentsTabContainerLocal>( graphql` fragment UnansweredCommentsTabContainerLocal on Local { @@ -126,7 +126,7 @@ export const UnansweredCommentsTabContainer: FunctionComponent< props.story.id, viewMore, ]); - const comments = props.story.comments.edges.map(edge => edge.node); + const comments = props.story.comments.edges.map((edge) => edge.node); const viewNewCount = (props.story.comments.viewNewEdges && props.story.comments.viewNewEdges.length) || @@ -173,7 +173,7 @@ export const UnansweredCommentsTabContainer: FunctionComponent< </Localized> )} {comments.length > 0 && - comments.map(comment => ( + comments.map((comment) => ( <IgnoredTombstoneOrHideContainer key={comment.id} viewer={props.viewer} diff --git a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabQuery.tsx b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabQuery.tsx index a33f24fc3..862f38d27 100644 --- a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabQuery.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabQuery.tsx @@ -1,8 +1,8 @@ import { Localized } from "@fluent/react/compat"; import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -51,7 +51,7 @@ export const render = (data: QueryRenderData<QueryTypes>) => { ); }; -const UnansweredCommentsTabQuery: FunctionComponent<Props> = props => { +const UnansweredCommentsTabQuery: FunctionComponent<Props> = (props) => { const { local: { storyID, storyURL, commentsOrderBy }, } = props; @@ -62,7 +62,6 @@ const UnansweredCommentsTabQuery: FunctionComponent<Props> = props => { $storyID: ID $storyURL: String $commentsOrderBy: COMMENT_SORT - $tag: TAG ) { viewer { ...UnansweredCommentsTabContainer_viewer @@ -81,7 +80,7 @@ const UnansweredCommentsTabQuery: FunctionComponent<Props> = props => { storyURL, commentsOrderBy, }} - render={data => (props.preload ? null : render(data))} + render={(data) => (props.preload ? null : render(data))} /> ); }; diff --git a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabViewNewMutation.tsx b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabViewNewMutation.tsx index 7b698eede..4e719eee4 100644 --- a/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabViewNewMutation.tsx +++ b/src/core/client/stream/tabs/Comments/Stream/UnansweredCommentsTab/UnansweredCommentsTabViewNewMutation.tsx @@ -19,7 +19,7 @@ const UnansweredCommentsTabViewNewMutation = createMutation( input: Input, { eventEmitter }: CoralContext ) => { - await commitLocalUpdatePromisified(environment, async store => { + await commitLocalUpdatePromisified(environment, async (store) => { const story = store.get(input.storyID)!; const connection = ConnectionHandler.getConnection( story, @@ -36,7 +36,7 @@ const UnansweredCommentsTabViewNewMutation = createMutation( if (!viewNewEdges || viewNewEdges.length === 0) { return; } - viewNewEdges.forEach(edge => { + viewNewEdges.forEach((edge) => { ConnectionHandler.insertEdgeBefore(connection, edge); }); ViewNewCommentsEvent.emit(eventEmitter, { diff --git a/src/core/client/stream/tabs/Comments/helpers/index.ts b/src/core/client/stream/tabs/Comments/helpers/index.ts index 570541baa..f053b0283 100644 --- a/src/core/client/stream/tabs/Comments/helpers/index.ts +++ b/src/core/client/stream/tabs/Comments/helpers/index.ts @@ -1,19 +1,11 @@ export { default as getHTMLCharacterLength } from "./getHTMLCharacterLength"; -export { - default as getCommentBodyValidators, -} from "./getCommentBodyValidators"; +export { default as getCommentBodyValidators } from "./getCommentBodyValidators"; export { default as normalizeRTEHTML } from "./normalizeRTEHTML"; -export { - default as shouldTriggerSettingsRefresh, -} from "./shouldTriggerSettingsRefresh"; +export { default as shouldTriggerSettingsRefresh } from "./shouldTriggerSettingsRefresh"; export { default as getHTMLText } from "./getHTMLText"; export { default as getSubmitStatus, SubmitStatus } from "./getSubmitStatus"; -export { - default as incrementStoryCommentCounts, -} from "./incrementStoryCommentCounts"; +export { default as incrementStoryCommentCounts } from "./incrementStoryCommentCounts"; export { default as isInReview } from "./isInReview"; export { default as isRejected } from "./isRejected"; export { default as isPublished } from "./isPublished"; -export { - default as prependCommentEdgeToProfile, -} from "./prependCommentEdgeToProfile"; +export { default as prependCommentEdgeToProfile } from "./prependCommentEdgeToProfile"; diff --git a/src/core/client/stream/tabs/Configure/Configure.tsx b/src/core/client/stream/tabs/Configure/Configure.tsx index 1d9c349e9..20cf0f0f6 100644 --- a/src/core/client/stream/tabs/Configure/Configure.tsx +++ b/src/core/client/stream/tabs/Configure/Configure.tsx @@ -21,7 +21,7 @@ export interface Props { PropTypesOf<typeof QAConfigContainer>["story"]; } -const Configure: FunctionComponent<Props> = props => { +const Configure: FunctionComponent<Props> = (props) => { return ( <div> <HorizontalGutter size="double"> diff --git a/src/core/client/stream/tabs/Configure/ConfigureQuery.tsx b/src/core/client/stream/tabs/Configure/ConfigureQuery.tsx index 91ed1e9bf..2f2af712a 100644 --- a/src/core/client/stream/tabs/Configure/ConfigureQuery.tsx +++ b/src/core/client/stream/tabs/Configure/ConfigureQuery.tsx @@ -1,10 +1,10 @@ import { Localized } from "@fluent/react/compat"; import { once } from "lodash"; import React, { FunctionComponent, Suspense } from "react"; +import { graphql } from "react-relay"; import { polyfillCSSVarsForIE11 } from "coral-framework/helpers"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -16,11 +16,13 @@ import { ConfigureQuery as QueryTypes } from "coral-stream/__generated__/Configu import { ConfigureQueryLocal as Local } from "coral-stream/__generated__/ConfigureQueryLocal.graphql"; const loadConfigureContainer = () => - import("./ConfigureContainer" /* webpackChunkName: "configure" */).then(x => { - // New css is loaded, take care of polyfilling those css vars for IE11. - polyfillCSSVarsForIE11(); - return x; - }); + import("./ConfigureContainer" /* webpackChunkName: "configure" */).then( + (x) => { + // New css is loaded, take care of polyfilling those css vars for IE11. + polyfillCSSVarsForIE11(); + return x; + } + ); // (cvle) For some reason without `setTimeout` this request will block other requests. const preloadConfigureContainer = once(() => setTimeout(loadConfigureContainer) diff --git a/src/core/client/stream/tabs/Configure/ConfigureStream/ConfigureStreamContainer.tsx b/src/core/client/stream/tabs/Configure/ConfigureStream/ConfigureStreamContainer.tsx index 96678fadf..4f486b1d2 100644 --- a/src/core/client/stream/tabs/Configure/ConfigureStream/ConfigureStreamContainer.tsx +++ b/src/core/client/stream/tabs/Configure/ConfigureStream/ConfigureStreamContainer.tsx @@ -1,8 +1,9 @@ import { FormApi } from "final-form"; import React from "react"; +import { graphql } from "react-relay"; import { SubmitHookHandler } from "coral-framework/lib/form"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { ConfigureStreamContainer_story as StoryData } from "coral-stream/__generated__/ConfigureStreamContainer_story.graphql"; diff --git a/src/core/client/stream/tabs/Configure/ConfigureStream/ToggleConfig.tsx b/src/core/client/stream/tabs/Configure/ConfigureStream/ToggleConfig.tsx index 5680ebce0..848ecd72a 100644 --- a/src/core/client/stream/tabs/Configure/ConfigureStream/ToggleConfig.tsx +++ b/src/core/client/stream/tabs/Configure/ConfigureStream/ToggleConfig.tsx @@ -1,6 +1,6 @@ import React, { FunctionComponent } from "react"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import { CheckBox, Typography } from "coral-ui/components"; import styles from "./ToggleConfig.css"; @@ -10,7 +10,7 @@ export interface Props extends Omit<PropTypesOf<typeof CheckBox>, "children"> { children?: React.ReactNode; } -const ToggleConfig: FunctionComponent<Props> = props => { +const ToggleConfig: FunctionComponent<Props> = (props) => { const { title, children, ...rest } = props; return ( <div> diff --git a/src/core/client/stream/tabs/Configure/ConfigureStream/WidthLimitedDescription.tsx b/src/core/client/stream/tabs/Configure/ConfigureStream/WidthLimitedDescription.tsx index 7a86b022d..d860d9193 100644 --- a/src/core/client/stream/tabs/Configure/ConfigureStream/WidthLimitedDescription.tsx +++ b/src/core/client/stream/tabs/Configure/ConfigureStream/WidthLimitedDescription.tsx @@ -1,6 +1,6 @@ import React, { FunctionComponent } from "react"; -import { Omit, PropTypesOf } from "coral-framework/types"; +import { PropTypesOf } from "coral-framework/types"; import { CheckBox, Typography } from "coral-ui/components"; import styles from "./WidthLimitedDescription.css"; @@ -9,7 +9,7 @@ export interface Props extends Omit<PropTypesOf<typeof CheckBox>, "children"> { children?: React.ReactNode; } -const WidthLimitedDescription: FunctionComponent<Props> = props => { +const WidthLimitedDescription: FunctionComponent<Props> = (props) => { return ( <Typography variant="detail" color="textSecondary" className={styles.root}> {props.children} diff --git a/src/core/client/stream/tabs/Configure/OpenOrCloseStream/OpenOrCloseStreamContainer.tsx b/src/core/client/stream/tabs/Configure/OpenOrCloseStream/OpenOrCloseStreamContainer.tsx index 888cfe836..e13b9d86b 100644 --- a/src/core/client/stream/tabs/Configure/OpenOrCloseStream/OpenOrCloseStreamContainer.tsx +++ b/src/core/client/stream/tabs/Configure/OpenOrCloseStream/OpenOrCloseStreamContainer.tsx @@ -1,6 +1,7 @@ import React from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { OpenOrCloseStreamContainer_story as StoryData } from "coral-stream/__generated__/OpenOrCloseStreamContainer_story.graphql"; diff --git a/src/core/client/stream/tabs/Configure/Q&A/ExpertSearchList.tsx b/src/core/client/stream/tabs/Configure/Q&A/ExpertSearchList.tsx index 8f54e6854..86554b102 100644 --- a/src/core/client/stream/tabs/Configure/Q&A/ExpertSearchList.tsx +++ b/src/core/client/stream/tabs/Configure/Q&A/ExpertSearchList.tsx @@ -49,7 +49,7 @@ const ExpertSearchList: FunctionComponent<Props> = ({ return ( <Card className={styles.list}> - {users.map(u => ( + {users.map((u) => ( <ExpertSearchItem key={u.id} id={u.id} diff --git a/src/core/client/stream/tabs/Configure/Q&A/ExpertSelectionContainer.tsx b/src/core/client/stream/tabs/Configure/Q&A/ExpertSelectionContainer.tsx index 58e6614e9..9671613f5 100644 --- a/src/core/client/stream/tabs/Configure/Q&A/ExpertSelectionContainer.tsx +++ b/src/core/client/stream/tabs/Configure/Q&A/ExpertSelectionContainer.tsx @@ -5,10 +5,9 @@ import React, { useEffect, useState, } from "react"; -import { RelayPaginationProp } from "react-relay"; +import { graphql, RelayPaginationProp } from "react-relay"; import { - graphql, useLoadMore, useMutation, useRefetch, @@ -39,7 +38,7 @@ function computeUsers(query: QueryData | null) { return []; } - return query.users.edges.map(edge => edge.node); + return query.users.edges.map((edge) => edge.node); } function computeExperts(query: QueryData | null) { @@ -227,7 +226,7 @@ const ExpertSelectionContainer: FunctionComponent<Props> = ({ </Typography> {experts.length > 0 ? ( <ul className={styles.list}> - {experts.map(u => ( + {experts.map((u) => ( <ExpertListItem key={u.id} id={u.id} diff --git a/src/core/client/stream/tabs/Configure/Q&A/QAConfigContainer.tsx b/src/core/client/stream/tabs/Configure/Q&A/QAConfigContainer.tsx index 335a11c9f..8213b7abb 100644 --- a/src/core/client/stream/tabs/Configure/Q&A/QAConfigContainer.tsx +++ b/src/core/client/stream/tabs/Configure/Q&A/QAConfigContainer.tsx @@ -1,10 +1,7 @@ import React, { FunctionComponent, useCallback, useState } from "react"; +import { graphql } from "react-relay"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { GQLFEATURE_FLAG, GQLSTORY_MODE } from "coral-framework/schema"; import { QAConfigContainer_settings } from "coral-stream/__generated__/QAConfigContainer_settings.graphql"; diff --git a/src/core/client/stream/tabs/Profile/DeletionRequest/DeletionRequestCalloutContainer.tsx b/src/core/client/stream/tabs/Profile/DeletionRequest/DeletionRequestCalloutContainer.tsx index b6463fde5..035f18878 100644 --- a/src/core/client/stream/tabs/Profile/DeletionRequest/DeletionRequestCalloutContainer.tsx +++ b/src/core/client/stream/tabs/Profile/DeletionRequest/DeletionRequestCalloutContainer.tsx @@ -1,13 +1,10 @@ import { Localized } from "@fluent/react/compat"; import cn from "classnames"; import React, { FunctionComponent, useCallback } from "react"; +import { graphql } from "react-relay"; import { useCoralContext } from "coral-framework/lib/bootstrap"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import CLASSES from "coral-stream/classes"; import CancelAccountDeletionMutation from "coral-stream/mutations/CancelAccountDeletionMutation"; import { diff --git a/src/core/client/stream/tabs/Profile/MyComments/CommentHistory.tsx b/src/core/client/stream/tabs/Profile/MyComments/CommentHistory.tsx index aa535987b..7de54835a 100644 --- a/src/core/client/stream/tabs/Profile/MyComments/CommentHistory.tsx +++ b/src/core/client/stream/tabs/Profile/MyComments/CommentHistory.tsx @@ -26,7 +26,7 @@ interface CommentHistoryProps { disableLoadMore?: boolean; } -const CommentHistory: FunctionComponent<CommentHistoryProps> = props => { +const CommentHistory: FunctionComponent<CommentHistoryProps> = (props) => { return ( <HorizontalGutter size="double" @@ -52,7 +52,7 @@ const CommentHistory: FunctionComponent<CommentHistoryProps> = props => { </Localized> </Flex> )} - {props.comments.map(comment => ( + {props.comments.map((comment) => ( <HistoryCommentContainer key={comment.id} story={props.story} diff --git a/src/core/client/stream/tabs/Profile/MyComments/CommentHistoryContainer.tsx b/src/core/client/stream/tabs/Profile/MyComments/CommentHistoryContainer.tsx index 83e7ae7f2..a915bad6b 100644 --- a/src/core/client/stream/tabs/Profile/MyComments/CommentHistoryContainer.tsx +++ b/src/core/client/stream/tabs/Profile/MyComments/CommentHistoryContainer.tsx @@ -22,7 +22,7 @@ interface Props { relay: RelayPaginationProp; } -export const CommentHistoryContainer: FunctionComponent<Props> = props => { +export const CommentHistoryContainer: FunctionComponent<Props> = (props) => { const [loadMore, isLoadingMore] = useLoadMore(props.relay, 10); const beginLoadMoreEvent = useViewerNetworkEvent( LoadMoreHistoryCommentsEvent @@ -38,7 +38,7 @@ export const CommentHistoryContainer: FunctionComponent<Props> = props => { console.error(error); } }, [loadMore, beginLoadMoreEvent]); - const comments = props.viewer.comments.edges.map(edge => edge.node); + const comments = props.viewer.comments.edges.map((edge) => edge.node); return ( <CommentHistory story={props.story} diff --git a/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.css b/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.css index 1b7511a01..0bbee666b 100644 --- a/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.css +++ b/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.css @@ -9,21 +9,21 @@ } .replies { - composes: button from "coral-ui/shared/typography.css"; + composes: button from "~coral-ui/shared/typography.css"; color: var(--palette-text-primary); display: inline-flex; align-items: center; } .reactions { - composes: button from "coral-ui/shared/typography.css"; + composes: button from "~coral-ui/shared/typography.css"; color: var(--palette-text-primary); display: inline-flex; align-items: center; } .viewConversation { - composes: button from "coral-ui/shared/typography.css"; + composes: button from "~coral-ui/shared/typography.css"; } .container { @@ -38,4 +38,4 @@ .subBar { margin-bottom: calc(0.5 * var(--mini-unit)); -} \ No newline at end of file +} diff --git a/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.tsx b/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.tsx index a86aaf7ee..6353d001e 100644 --- a/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.tsx +++ b/src/core/client/stream/tabs/Profile/MyComments/HistoryComment.tsx @@ -36,7 +36,7 @@ export interface HistoryCommentProps { onGotoConversation: (e: React.MouseEvent) => void; } -const HistoryComment: FunctionComponent<HistoryCommentProps> = props => { +const HistoryComment: FunctionComponent<HistoryCommentProps> = (props) => { return ( <HorizontalGutter className={cn(styles.root, CLASSES.myComment.$root)} diff --git a/src/core/client/stream/tabs/Profile/MyComments/HistoryCommentContainer.tsx b/src/core/client/stream/tabs/Profile/MyComments/HistoryCommentContainer.tsx index d3e74f740..2be91621a 100644 --- a/src/core/client/stream/tabs/Profile/MyComments/HistoryCommentContainer.tsx +++ b/src/core/client/stream/tabs/Profile/MyComments/HistoryCommentContainer.tsx @@ -23,7 +23,7 @@ interface Props { settings: SettingsData; } -const HistoryCommentContainer: FunctionComponent<Props> = props => { +const HistoryCommentContainer: FunctionComponent<Props> = (props) => { const emitViewConversationEvent = useViewerEvent(ViewConversationEvent); const handleGotoConversation = useCallback( (e: React.MouseEvent) => { diff --git a/src/core/client/stream/tabs/Profile/Preferences/IgnoreUserSettingsContainer.tsx b/src/core/client/stream/tabs/Profile/Preferences/IgnoreUserSettingsContainer.tsx index 7454fb25a..a099aaed0 100644 --- a/src/core/client/stream/tabs/Profile/Preferences/IgnoreUserSettingsContainer.tsx +++ b/src/core/client/stream/tabs/Profile/Preferences/IgnoreUserSettingsContainer.tsx @@ -83,7 +83,7 @@ const IgnoreUserSettingsContainer: FunctionComponent<Props> = ({ viewer }) => { </p> </Localized> <HorizontalGutter spacing={1}> - {viewer.ignoredUsers.map(user => ( + {viewer.ignoredUsers.map((user) => ( <Flex key={user.id} justifyContent="space-between" diff --git a/src/core/client/stream/tabs/Profile/Preferences/PreferencesContainer.tsx b/src/core/client/stream/tabs/Profile/Preferences/PreferencesContainer.tsx index d0a12f5f2..eb1a7fd4c 100644 --- a/src/core/client/stream/tabs/Profile/Preferences/PreferencesContainer.tsx +++ b/src/core/client/stream/tabs/Profile/Preferences/PreferencesContainer.tsx @@ -1,18 +1,19 @@ import React, { FunctionComponent } from "react"; +import { graphql } from "react-relay"; -import { graphql, withFragmentContainer } from "coral-framework/lib/relay"; +import { withFragmentContainer } from "coral-framework/lib/relay"; import { HorizontalGutter } from "coral-ui/components/v2"; +import { PreferencesContainer_viewer } from "coral-stream/__generated__/PreferencesContainer_viewer.graphql"; + import IgnoreUserSettingsContainer from "./IgnoreUserSettingsContainer"; import NotificationSettingsContainer from "./NotificationSettingsContainer"; -import { PreferencesContainer_viewer } from "coral-stream/__generated__/PreferencesContainer_viewer.graphql"; - interface Props { viewer: PreferencesContainer_viewer; } -const PreferencesContainer: FunctionComponent<Props> = props => { +const PreferencesContainer: FunctionComponent<Props> = (props) => { return ( <HorizontalGutter spacing={4}> <NotificationSettingsContainer viewer={props.viewer} /> diff --git a/src/core/client/stream/tabs/Profile/Preferences/RemoveUserIgnoreMutation.ts b/src/core/client/stream/tabs/Profile/Preferences/RemoveUserIgnoreMutation.ts index 8822bb515..69821fb96 100644 --- a/src/core/client/stream/tabs/Profile/Preferences/RemoveUserIgnoreMutation.ts +++ b/src/core/client/stream/tabs/Profile/Preferences/RemoveUserIgnoreMutation.ts @@ -41,7 +41,7 @@ const RemoveUserIgnoreMutation = createMutation( clientMutationId: (clientMutationId++).toString(), }, }, - updater: store => { + updater: (store) => { const viewer = getViewer(environment)!; const viewerProxy = store.get(viewer.id)!; const removeIgnoredUserRecords = viewerProxy.getLinkedRecords( @@ -50,7 +50,7 @@ const RemoveUserIgnoreMutation = createMutation( if (removeIgnoredUserRecords) { viewerProxy.setLinkedRecords( removeIgnoredUserRecords.filter( - r => r!.getValue("id") !== input.userID + (r) => r.getValue("id") !== input.userID ), "ignoredUsers" ); diff --git a/src/core/client/stream/tabs/Profile/Profile.tsx b/src/core/client/stream/tabs/Profile/Profile.tsx index c5af133b3..5e562d878 100644 --- a/src/core/client/stream/tabs/Profile/Profile.tsx +++ b/src/core/client/stream/tabs/Profile/Profile.tsx @@ -1,9 +1,10 @@ import { Localized } from "@fluent/react/compat"; import cn from "classnames"; import React, { FunctionComponent, useCallback, useMemo } from "react"; +import { graphql } from "react-relay"; import { useViewerEvent } from "coral-framework/lib/events"; -import { graphql, useLocal } from "coral-framework/lib/relay"; +import { useLocal } from "coral-framework/lib/relay"; import { PropTypesOf } from "coral-framework/types"; import CLASSES from "coral-stream/classes"; import UserBoxContainer from "coral-stream/common/UserBox"; @@ -37,7 +38,7 @@ export interface ProfileProps { PropTypesOf<typeof MyCommentsContainer>["settings"]; } -const Profile: FunctionComponent<ProfileProps> = props => { +const Profile: FunctionComponent<ProfileProps> = (props) => { const emitSetProfileTabEvent = useViewerEvent(SetProfileTabEvent); const [local, setLocal] = useLocal<ProfileLocal>(graphql` fragment ProfileLocal on Local { diff --git a/src/core/client/stream/tabs/Profile/ProfileContainer.tsx b/src/core/client/stream/tabs/Profile/ProfileContainer.tsx index f6387f105..441e791d8 100644 --- a/src/core/client/stream/tabs/Profile/ProfileContainer.tsx +++ b/src/core/client/stream/tabs/Profile/ProfileContainer.tsx @@ -19,7 +19,7 @@ interface ProfileContainerProps { export class ProfileContainer extends React.Component<ProfileContainerProps> { public render() { const ssoProfile = this.props.viewer.profiles.find( - profile => profile.__typename === "SSOProfile" + (profile) => profile.__typename === "SSOProfile" ); return ( <Profile diff --git a/src/core/client/stream/tabs/Profile/ProfileQuery.tsx b/src/core/client/stream/tabs/Profile/ProfileQuery.tsx index 3e8e0cf21..6612828ec 100644 --- a/src/core/client/stream/tabs/Profile/ProfileQuery.tsx +++ b/src/core/client/stream/tabs/Profile/ProfileQuery.tsx @@ -1,10 +1,10 @@ import { Localized } from "@fluent/react/compat"; import { once } from "lodash"; import React, { FunctionComponent, Suspense } from "react"; +import { graphql } from "react-relay"; import { polyfillCSSVarsForIE11 } from "coral-framework/helpers"; import { - graphql, QueryRenderData, QueryRenderer, withLocalStateContainer, @@ -17,7 +17,7 @@ import { ProfileQuery as QueryTypes } from "coral-stream/__generated__/ProfileQu import { ProfileQueryLocal as Local } from "coral-stream/__generated__/ProfileQueryLocal.graphql"; const loadProfileContainer = () => - import("./ProfileContainer" /* webpackChunkName: "profile" */).then(x => { + import("./ProfileContainer" /* webpackChunkName: "profile" */).then((x) => { // New css is loaded, take care of polyfilling those css vars for IE11. polyfillCSSVarsForIE11(); return x; @@ -101,7 +101,7 @@ const ProfileQuery: FunctionComponent<Props> = ({ storyID, storyURL, }} - render={data => { + render={(data) => { if (handleIncompleteAccount(data)) { return null; } diff --git a/src/core/client/stream/tabs/Profile/Settings/ChangeEmail/ChangeEmailContainer.tsx b/src/core/client/stream/tabs/Profile/Settings/ChangeEmail/ChangeEmailContainer.tsx index efff9406d..c4582040e 100644 --- a/src/core/client/stream/tabs/Profile/Settings/ChangeEmail/ChangeEmailContainer.tsx +++ b/src/core/client/stream/tabs/Profile/Settings/ChangeEmail/ChangeEmailContainer.tsx @@ -8,6 +8,7 @@ import React, { useState, } from "react"; import { Field, Form } from "react-final-form"; +import { graphql } from "react-relay"; import { Environment } from "relay-runtime"; import { PasswordField } from "coral-framework/components"; @@ -17,7 +18,6 @@ import { useViewerEvent } from "coral-framework/lib/events"; import { colorFromMeta } from "coral-framework/lib/form"; import { createFetch, - graphql, useFetch, useMutation, withFragmentContainer, @@ -132,7 +132,7 @@ const changeEmailContainer: FunctionComponent<Props> = ({ const canChangeEmail = useMemo(() => { if ( - !viewer.profiles.find(profile => profile.__typename === "LocalProfile") + !viewer.profiles.find((profile) => profile.__typename === "LocalProfile") ) { return false; } diff --git a/src/core/client/stream/tabs/Profile/Settings/ChangeUsername/ChangeUsernameContainer.tsx b/src/core/client/stream/tabs/Profile/Settings/ChangeUsername/ChangeUsernameContainer.tsx index 56064eed7..d3bd71fa6 100644 --- a/src/core/client/stream/tabs/Profile/Settings/ChangeUsername/ChangeUsernameContainer.tsx +++ b/src/core/client/stream/tabs/Profile/Settings/ChangeUsername/ChangeUsernameContainer.tsx @@ -8,6 +8,7 @@ import React, { useState, } from "react"; import { Field, Form } from "react-final-form"; +import { graphql } from "react-relay"; import { ALLOWED_USERNAME_CHANGE_TIMEFRAME_DURATION } from "coral-common/constants"; import { reduceSeconds } from "coral-common/helpers/i18n"; @@ -16,11 +17,7 @@ import getAuthenticationIntegrations from "coral-framework/helpers/getAuthentica import { useCoralContext } from "coral-framework/lib/bootstrap"; import { InvalidRequestError } from "coral-framework/lib/errors"; import { useViewerEvent } from "coral-framework/lib/events"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import { composeValidators, required, @@ -92,7 +89,7 @@ const ChangeUsernameContainer: FunctionComponent<Props> = ({ return false; } if ( - !viewer.profiles.find(profile => profile.__typename === "LocalProfile") + !viewer.profiles.find((profile) => profile.__typename === "LocalProfile") ) { return false; } diff --git a/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/DeleteAccountContainer.tsx b/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/DeleteAccountContainer.tsx index 42de65fd1..330122fbc 100644 --- a/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/DeleteAccountContainer.tsx +++ b/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/DeleteAccountContainer.tsx @@ -1,13 +1,10 @@ import { Localized } from "@fluent/react/compat"; import cn from "classnames"; import React, { FunctionComponent, useCallback, useState } from "react"; +import { graphql } from "react-relay"; import { useCoralContext } from "coral-framework/lib/bootstrap"; -import { - graphql, - useMutation, - withFragmentContainer, -} from "coral-framework/lib/relay"; +import { useMutation, withFragmentContainer } from "coral-framework/lib/relay"; import CLASSES from "coral-stream/classes"; import CancelAccountDeletionMutation from "coral-stream/mutations/CancelAccountDeletionMutation"; import { Flex, Icon, Typography } from "coral-ui/components"; diff --git a/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/Pages/RequestAccountDeletionMutation.tsx b/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/Pages/RequestAccountDeletionMutation.tsx index 408774420..19cc9ee74 100644 --- a/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/Pages/RequestAccountDeletionMutation.tsx +++ b/src/core/client/stream/tabs/Profile/Settings/DeleteAccount/Pages/RequestAccountDeletionMutation.tsx @@ -46,7 +46,7 @@ const RequestAccountDeletionMutation = createMutation( clientMutationId: (clientMutationId++).toString(), }, }, - optimisticUpdater: store => { + optimisticUpdater: (store) => { const viewer = getViewer(environment)!; const deletionDate = new Date( Date.now() + SCHEDULED_DELETION_WINDOW_DURATION * 1000 diff --git a/src/core/client/stream/test/comments/permalink/liveDirectReplies.spec.tsx b/src/core/client/stream/test/comments/permalink/liveDirectReplies.spec.tsx index 54c237008..3a666929c 100644 --- a/src/core/client/stream/test/comments/permalink/liveDirectReplies.spec.tsx +++ b/src/core/client/stream/test/comments/permalink/liveDirectReplies.spec.tsx @@ -61,7 +61,7 @@ it("direct replies to the permalink comment should immediately appear", async () subscriptionHandler.dispatch<SubscriptionToCommentReplyCreatedResolver>( "commentReplyCreated", - variables => { + (variables) => { if (variables.ancestorID !== rootComment.id) { return; } diff --git a/src/core/client/stream/test/comments/permalink/permalinkView.spec.tsx b/src/core/client/stream/test/comments/permalink/permalinkView.spec.tsx index 2addbe62b..1105f7643 100644 --- a/src/core/client/stream/test/comments/permalink/permalinkView.spec.tsx +++ b/src/core/client/stream/test/comments/permalink/permalinkView.spec.tsx @@ -56,19 +56,20 @@ beforeEach(() => { const resolvers = { Query: { comment: createSinonStub( - s => s.throws(), - s => s.withArgs(undefined, { id: commentStub.id }).returns(commentStub) + (s) => s.throws(), + (s) => + s.withArgs(undefined, { id: commentStub.id }).returns(commentStub) ), story: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyStub.id, url: null }) .returns(storyStub) ), stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyStub.id, url: null }) .returns(storyStub) @@ -81,7 +82,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyStub.id, "storyID"); localRecord.setValue(commentStub.id, "commentID"); }, @@ -89,9 +90,6 @@ beforeEach(() => { }); it("renders permalink view", async () => { - // axe checking takes a bit of time. - jest.setTimeout(10000); - const tabPane = await waitForElement(() => within(testRenderer.root).getByTestID("current-tab-pane") ); @@ -109,9 +107,7 @@ it("show all comments", async () => { ); await act(async () => { - within(tabPane) - .getByText("View Full Discussion") - .props.onClick(mockEvent); + within(tabPane).getByText("View Full Discussion").props.onClick(mockEvent); await waitForElement(() => within(testRenderer.root).getByTestID("comments-allComments-log") ); diff --git a/src/core/client/stream/test/comments/permalink/permalinkViewCommentNotFound.spec.tsx b/src/core/client/stream/test/comments/permalink/permalinkViewCommentNotFound.spec.tsx index cffe0ee59..f48ec552d 100644 --- a/src/core/client/stream/test/comments/permalink/permalinkViewCommentNotFound.spec.tsx +++ b/src/core/client/stream/test/comments/permalink/permalinkViewCommentNotFound.spec.tsx @@ -36,15 +36,15 @@ beforeEach(() => { Query: { comment: () => null, story: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyStub.id, url: null }) .returns(storyStub) ), stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyStub.id, url: null }) .returns(storyStub) @@ -57,7 +57,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyStub.id, "storyID"); localRecord.setValue("unknown-comment-id", "commentID"); }, @@ -81,9 +81,7 @@ it("show all comments", async () => { ); await act(async () => { - within(tabPane) - .getByText("View Full Discussion") - .props.onClick(mockEvent); + within(tabPane).getByText("View Full Discussion").props.onClick(mockEvent); await waitForElement(() => within(tabPane).getByTestID("comments-allComments-log") diff --git a/src/core/client/stream/test/comments/permalink/permalinkViewLoadMoreParents.spec.tsx b/src/core/client/stream/test/comments/permalink/permalinkViewLoadMoreParents.spec.tsx index c808c30c7..ea384ab2c 100644 --- a/src/core/client/stream/test/comments/permalink/permalinkViewLoadMoreParents.spec.tsx +++ b/src/core/client/stream/test/comments/permalink/permalinkViewLoadMoreParents.spec.tsx @@ -19,8 +19,8 @@ beforeEach(() => { parentCount: 2, rootParent: commentsFromStaff[0], parents: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s.withArgs({ last: 0 }).returns({ pageInfo: { startCursor: "0", @@ -28,7 +28,7 @@ beforeEach(() => { }, edges: [], }), - s => + (s) => s.withArgs({ last: 5, before: "0" }).returns({ pageInfo: { startCursor: "2", @@ -66,12 +66,13 @@ beforeEach(() => { const resolvers = { Query: { comment: createSinonStub( - s => s.throws(), - s => s.withArgs(undefined, { id: commentStub.id }).returns(commentStub) + (s) => s.throws(), + (s) => + s.withArgs(undefined, { id: commentStub.id }).returns(commentStub) ), story: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyStub.id, url: null }) .returns(storyStub) @@ -84,7 +85,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyStub.id, "storyID"); localRecord.setValue(commentStub.id, "commentID"); }, diff --git a/src/core/client/stream/test/comments/permalink/permalinkViewPostReply.spec.tsx b/src/core/client/stream/test/comments/permalink/permalinkViewPostReply.spec.tsx index f29e98d1a..d50405531 100644 --- a/src/core/client/stream/test/comments/permalink/permalinkViewPostReply.spec.tsx +++ b/src/core/client/stream/test/comments/permalink/permalinkViewPostReply.spec.tsx @@ -73,9 +73,7 @@ const createTestRenderer = async ( ); // Open reply form. - within(comment) - .getByText("Reply", { selector: "button" }) - .props.onClick(); + within(comment).getByText("Reply", { selector: "button" }).props.onClick(); const rte = await waitForElement( () => diff --git a/src/core/client/stream/test/comments/permalink/permalinkViewStoryNotFound.spec.tsx b/src/core/client/stream/test/comments/permalink/permalinkViewStoryNotFound.spec.tsx index 6275a447f..99c70120e 100644 --- a/src/core/client/stream/test/comments/permalink/permalinkViewStoryNotFound.spec.tsx +++ b/src/core/client/stream/test/comments/permalink/permalinkViewStoryNotFound.spec.tsx @@ -19,7 +19,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("unknown-story-id", "storyID"); localRecord.setValue("unknown-comment-id", "commentID"); }, diff --git a/src/core/client/stream/test/comments/stream/charCountEditComment.spec.tsx b/src/core/client/stream/test/comments/stream/charCountEditComment.spec.tsx index 99336cafe..09eebd128 100644 --- a/src/core/client/stream/test/comments/stream/charCountEditComment.spec.tsx +++ b/src/core/client/stream/test/comments/stream/charCountEditComment.spec.tsx @@ -51,7 +51,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); @@ -61,9 +61,7 @@ async function createTestRenderer( ); // Open edit form. - within(comment) - .getByText("Edit") - .props.onClick(); + within(comment).getByText("Edit").props.onClick(); const rte = await waitForElement( () => diff --git a/src/core/client/stream/test/comments/stream/charCountPostComment.spec.tsx b/src/core/client/stream/test/comments/stream/charCountPostComment.spec.tsx index 4d92a71e3..dcd2009b8 100644 --- a/src/core/client/stream/test/comments/stream/charCountPostComment.spec.tsx +++ b/src/core/client/stream/test/comments/stream/charCountPostComment.spec.tsx @@ -44,7 +44,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); diff --git a/src/core/client/stream/test/comments/stream/charCountReplyComment.spec.tsx b/src/core/client/stream/test/comments/stream/charCountReplyComment.spec.tsx index 371bf6bda..20d93f051 100644 --- a/src/core/client/stream/test/comments/stream/charCountReplyComment.spec.tsx +++ b/src/core/client/stream/test/comments/stream/charCountReplyComment.spec.tsx @@ -43,7 +43,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); @@ -53,9 +53,7 @@ async function createTestRenderer( ); // Open reply form. - within(comment) - .getByText("Reply", { selector: "button" }) - .props.onClick(); + within(comment).getByText("Reply", { selector: "button" }).props.onClick(); const rte = await waitForElement( () => diff --git a/src/core/client/stream/test/comments/stream/closedOrDisabledCommentStream.spec.tsx b/src/core/client/stream/test/comments/stream/closedOrDisabledCommentStream.spec.tsx index 339a07f79..98876439d 100644 --- a/src/core/client/stream/test/comments/stream/closedOrDisabledCommentStream.spec.tsx +++ b/src/core/client/stream/test/comments/stream/closedOrDisabledCommentStream.spec.tsx @@ -28,7 +28,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); diff --git a/src/core/client/stream/test/comments/stream/editComment.spec.tsx b/src/core/client/stream/test/comments/stream/editComment.spec.tsx index d8f914b61..90c978025 100644 --- a/src/core/client/stream/test/comments/stream/editComment.spec.tsx +++ b/src/core/client/stream/test/comments/stream/editComment.spec.tsx @@ -25,8 +25,8 @@ function createTestRenderer( const resolvers = { Query: { stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyWithReplies.id, url: null }) .returns(storyWithReplies) @@ -68,7 +68,7 @@ function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyWithReplies.id, "storyID"); }, }); @@ -94,11 +94,7 @@ it("edit a comment", async () => { ); // Open edit form. - act(() => - within(comment) - .getByText("Edit") - .props.onClick() - ); + act(() => within(comment).getByText("Edit").props.onClick()); expect(within(comment).toJSON()).toMatchSnapshot("edit form"); expect(await within(comment).axe()).toHaveNoViolations(); @@ -111,9 +107,7 @@ it("edit a comment", async () => { ); act(() => { - within(comment) - .getByType("form") - .props.onSubmit(); + within(comment).getByType("form").props.onSubmit(); }); // Test optimistic response. @@ -138,11 +132,7 @@ it("edit a comment and handle non-published comment state", async () => { ); // Open edit form. - act(() => - within(comment) - .getByText("Edit") - .props.onClick() - ); + act(() => within(comment).getByText("Edit").props.onClick()); act(() => testRenderer.root @@ -153,18 +143,14 @@ it("edit a comment and handle non-published comment state", async () => { ); act(() => { - within(comment) - .getByType("form") - .props.onSubmit(); + within(comment).getByType("form").props.onSubmit(); }); // Test after server response. await waitForElement(() => within(comment).getByText("will be reviewed", { exact: false }) ); - within(comment) - .getByText("Dismiss") - .props.onClick(); + within(comment).getByText("Dismiss").props.onClick(); expect( within(testRenderer.root).queryByText("will be reviewed", { exact: false }) ).toBeNull(); @@ -192,18 +178,10 @@ it("cancel edit", async () => { ); // Open edit form. - act(() => - within(comment) - .getByText("Edit") - .props.onClick() - ); + act(() => within(comment).getByText("Edit").props.onClick()); // Cancel edit form. - act(() => - within(comment) - .getByText("Cancel") - .props.onClick() - ); + act(() => within(comment).getByText("Cancel").props.onClick()); expect(within(comment).toJSON()).toMatchSnapshot(); }); @@ -218,11 +196,7 @@ it("shows expiry message", async () => { jest.useFakeTimers(); // Open edit form. - act(() => - within(comment) - .getByText("Edit") - .props.onClick() - ); + act(() => within(comment).getByText("Edit").props.onClick()); timekeeper.reset(); jest.runOnlyPendingTimers(); @@ -231,11 +205,7 @@ it("shows expiry message", async () => { expect(within(comment).toJSON()).toMatchSnapshot("edit time expired"); // Close edit form. - act(() => - within(comment) - .getByText("Close") - .props.onClick() - ); + act(() => within(comment).getByText("Close").props.onClick()); expect(within(comment).toJSON()).toMatchSnapshot("edit form closed"); }); @@ -256,11 +226,7 @@ it("edit a comment and handle server error", async () => { ); // Open edit form. - act(() => - within(comment) - .getByText("Edit") - .props.onClick() - ); + act(() => within(comment).getByText("Edit").props.onClick()); expect(within(comment).toJSON()).toMatchSnapshot("edit form"); act(() => @@ -272,9 +238,7 @@ it("edit a comment and handle server error", async () => { ); act(() => { - within(comment) - .getByType("form") - .props.onSubmit(); + within(comment).getByType("form").props.onSubmit(); }); // Look for internal error being displayed. diff --git a/src/core/client/stream/test/comments/stream/emitCountEvents.spec.tsx b/src/core/client/stream/test/comments/stream/emitCountEvents.spec.tsx index 7ef325353..37a38df98 100644 --- a/src/core/client/stream/test/comments/stream/emitCountEvents.spec.tsx +++ b/src/core/client/stream/test/comments/stream/emitCountEvents.spec.tsx @@ -39,9 +39,9 @@ async function createTestRenderer( }; } -it("emit commentCount events", done => { +it("emit commentCount events", (done) => { createTestRenderer().then(({ context: { eventEmitter } }) => { - eventEmitter.on("commentCount", args => { + eventEmitter.on("commentCount", (args) => { expect(args).toMatchInlineSnapshot(` Object { "number": 2, diff --git a/src/core/client/stream/test/comments/stream/liveCommentReplies.spec.tsx b/src/core/client/stream/test/comments/stream/liveCommentReplies.spec.tsx index 09e433e35..c16245eb8 100644 --- a/src/core/client/stream/test/comments/stream/liveCommentReplies.spec.tsx +++ b/src/core/client/stream/test/comments/stream/liveCommentReplies.spec.tsx @@ -137,7 +137,7 @@ it("should show more replies", async () => { subscriptionHandler.dispatch<SubscriptionToCommentReplyCreatedResolver>( "commentReplyCreated", - variables => { + (variables) => { if (variables.ancestorID !== rootComment.id) { return; } @@ -174,7 +174,7 @@ it("should show Read More of this Conversation", async () => { subscriptionHandler.dispatch<SubscriptionToCommentReplyCreatedResolver>( "commentReplyCreated", - variables => { + (variables) => { if (variables.ancestorID !== rootComment.id) { return; } diff --git a/src/core/client/stream/test/comments/stream/liveTopLevelComments.spec.tsx b/src/core/client/stream/test/comments/stream/liveTopLevelComments.spec.tsx index 0965529eb..1d9096933 100644 --- a/src/core/client/stream/test/comments/stream/liveTopLevelComments.spec.tsx +++ b/src/core/client/stream/test/comments/stream/liveTopLevelComments.spec.tsx @@ -58,7 +58,7 @@ it("should view more when ordering by newest", async () => { subscriptionHandler.dispatch<SubscriptionToCommentCreatedResolver>( "commentCreated", - variables => { + (variables) => { if (variables.storyID !== story.id) { return; } @@ -80,7 +80,7 @@ it("should view more when ordering by newest", async () => { it("should load more when ordering by oldest", async () => { const { testRenderer, subscriptionHandler } = await createTestRenderer({ - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("CREATED_AT_ASC", "commentsOrderBy"); }, }); @@ -100,7 +100,7 @@ it("should load more when ordering by oldest", async () => { await act(async () => { subscriptionHandler.dispatch<SubscriptionToCommentCreatedResolver>( "commentCreated", - variables => { + (variables) => { if (variables.storyID !== story.id) { return; } diff --git a/src/core/client/stream/test/comments/stream/loadMore.spec.tsx b/src/core/client/stream/test/comments/stream/loadMore.spec.tsx index 80041c207..37475ab0b 100644 --- a/src/core/client/stream/test/comments/stream/loadMore.spec.tsx +++ b/src/core/client/stream/test/comments/stream/loadMore.spec.tsx @@ -19,7 +19,7 @@ let testRenderer: ReactTestRenderer; beforeEach(() => { const storyStub = { ...stories[0], - comments: createSinonStub(s => + comments: createSinonStub((s) => s.callsFake((input: any) => { if ( isMatch(input, { @@ -74,8 +74,8 @@ beforeEach(() => { const resolvers = { Query: { story: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs( undefined, @@ -86,8 +86,8 @@ beforeEach(() => { .returns(storyStub) ), stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs( undefined, @@ -105,7 +105,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyStub.id, "storyID"); }, })); @@ -133,9 +133,7 @@ it("loads more comments", async () => { const commentsBefore = within(streamLog).getAllByTestID(/^comment-/).length; await act(async () => { - within(streamLog) - .getByText("Load More") - .props.onClick(); + within(streamLog).getByText("Load More").props.onClick(); }); // Should now have one more comment diff --git a/src/core/client/stream/test/comments/stream/moderation.spec.tsx b/src/core/client/stream/test/comments/stream/moderation.spec.tsx index e8c6008d8..11014aeba 100644 --- a/src/core/client/stream/test/comments/stream/moderation.spec.tsx +++ b/src/core/client/stream/test/comments/stream/moderation.spec.tsx @@ -211,7 +211,10 @@ it("reject comment", async () => { ); const link = within(tabPane).getByText( "Go to Moderate to review this decision", - { selector: "a", exact: false } + { + selector: "a", + exact: false, + } ); expect(link.props.href).toBe(`/admin/moderate/comment/${firstComment.id}`); }); diff --git a/src/core/client/stream/test/comments/stream/postComment.spec.tsx b/src/core/client/stream/test/comments/stream/postComment.spec.tsx index f398ad537..3ac3f75d7 100644 --- a/src/core/client/stream/test/comments/stream/postComment.spec.tsx +++ b/src/core/client/stream/test/comments/stream/postComment.spec.tsx @@ -43,7 +43,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); @@ -167,9 +167,7 @@ const postACommentAndHandleNonPublishedComment = async ( it("post a comment and handle non-visible comment state (dismiss by click)", async () => await postACommentAndHandleNonPublishedComment((form, rte) => { - within(form) - .getByText("Dismiss") - .props.onClick(); + within(form).getByText("Dismiss").props.onClick(); })); it("post a comment and handle non-visible comment state (dismiss by typing)", async () => @@ -204,7 +202,7 @@ it("handle moderation nudge error", async () => { { Mutation: { createComment: createSinonStub( - s => + (s) => s.onFirstCall().callsFake((_, data) => { expectAndFail(data).toMatchObject({ input: { @@ -217,7 +215,7 @@ it("handle moderation nudge error", async () => { code: ERROR_CODES.TOXIC_COMMENT, }); }), - s => + (s) => s.onSecondCall().callsFake((_, data) => { expectAndFail(data).toMatchObject({ input: { diff --git a/src/core/client/stream/test/comments/stream/postLocalReply.spec.tsx b/src/core/client/stream/test/comments/stream/postLocalReply.spec.tsx index 00c984591..d0c675329 100644 --- a/src/core/client/stream/test/comments/stream/postLocalReply.spec.tsx +++ b/src/core/client/stream/test/comments/stream/postLocalReply.spec.tsx @@ -24,8 +24,8 @@ beforeEach(() => { settings: sinon.stub().returns(settings), viewer: sinon.stub().returns(commenters[0]), stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyWithDeepestReplies.id, url: null }) .returns(storyWithDeepestReplies) @@ -59,7 +59,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyWithDeepestReplies.id, "storyID"); }, })); diff --git a/src/core/client/stream/test/comments/stream/postReply.spec.tsx b/src/core/client/stream/test/comments/stream/postReply.spec.tsx index 1e60ec221..ac5ad00f2 100644 --- a/src/core/client/stream/test/comments/stream/postReply.spec.tsx +++ b/src/core/client/stream/test/comments/stream/postReply.spec.tsx @@ -40,7 +40,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); @@ -180,11 +180,7 @@ it("post a reply and handle non-visible comment state", async () => { within(comment).getByText("will be reviewed", { exact: false }) ); }); - act(() => - within(comment) - .getByText("Dismiss") - .props.onClick() - ); + act(() => within(comment).getByText("Dismiss").props.onClick()); expect( within(comment).queryByText("will be reviewed", { exact: false }) ).toBeNull(); @@ -220,7 +216,7 @@ it("handle moderation nudge error", async () => { { Mutation: { createCommentReply: createSinonStub( - s => + (s) => s.onFirstCall().callsFake((_, data) => { expectAndFail(data).toMatchObject({ input: { @@ -236,7 +232,7 @@ it("handle moderation nudge error", async () => { code: ERROR_CODES.TOXIC_COMMENT, }); }), - s => + (s) => s.onSecondCall().callsFake((_, data) => { expectAndFail(data).toMatchObject({ input: { diff --git a/src/core/client/stream/test/comments/stream/reaction.spec.tsx b/src/core/client/stream/test/comments/stream/reaction.spec.tsx index 7a3d2ab38..21002d187 100644 --- a/src/core/client/stream/test/comments/stream/reaction.spec.tsx +++ b/src/core/client/stream/test/comments/stream/reaction.spec.tsx @@ -55,7 +55,7 @@ function createTestRenderer() { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); diff --git a/src/core/client/stream/test/comments/stream/renderCommunityGuidelines.spec.tsx b/src/core/client/stream/test/comments/stream/renderCommunityGuidelines.spec.tsx index 10a88e368..aeccee63c 100644 --- a/src/core/client/stream/test/comments/stream/renderCommunityGuidelines.spec.tsx +++ b/src/core/client/stream/test/comments/stream/renderCommunityGuidelines.spec.tsx @@ -23,7 +23,7 @@ function createTestRenderer() { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); diff --git a/src/core/client/stream/test/comments/stream/renderMessageBox.spec.tsx b/src/core/client/stream/test/comments/stream/renderMessageBox.spec.tsx index 2f4d4745e..ca563d68c 100644 --- a/src/core/client/stream/test/comments/stream/renderMessageBox.spec.tsx +++ b/src/core/client/stream/test/comments/stream/renderMessageBox.spec.tsx @@ -30,7 +30,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyWithNoComments.id, "storyID"); }, }); diff --git a/src/core/client/stream/test/comments/stream/renderReplies.spec.tsx b/src/core/client/stream/test/comments/stream/renderReplies.spec.tsx index 7757d56ef..4fae3ab3b 100644 --- a/src/core/client/stream/test/comments/stream/renderReplies.spec.tsx +++ b/src/core/client/stream/test/comments/stream/renderReplies.spec.tsx @@ -15,8 +15,8 @@ beforeEach(() => { const resolvers = { Query: { stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyWithDeepReplies.id, url: null }) .returns(storyWithDeepReplies) @@ -29,7 +29,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyWithDeepReplies.id, "storyID"); }, })); diff --git a/src/core/client/stream/test/comments/stream/renderStream.spec.tsx b/src/core/client/stream/test/comments/stream/renderStream.spec.tsx index 9ee057d3e..c42650f8e 100644 --- a/src/core/client/stream/test/comments/stream/renderStream.spec.tsx +++ b/src/core/client/stream/test/comments/stream/renderStream.spec.tsx @@ -28,7 +28,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(story.id, "storyID"); }, }); diff --git a/src/core/client/stream/test/comments/stream/reportComment.spec.tsx b/src/core/client/stream/test/comments/stream/reportComment.spec.tsx index cdb310a30..8ed17639b 100644 --- a/src/core/client/stream/test/comments/stream/reportComment.spec.tsx +++ b/src/core/client/stream/test/comments/stream/reportComment.spec.tsx @@ -63,7 +63,7 @@ function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); @@ -165,9 +165,7 @@ it("report comment as offensive", async () => { ); act(() => { - within(popover) - .getByType("form") - .props.onSubmit({}); + within(popover).getByType("form").props.onSubmit({}); }); await act(async () => { @@ -181,9 +179,7 @@ it("report comment as offensive", async () => { selector: "button", }); expect(reportedButton.props.disabled).toBe(false); - within(comment) - .getByText("Dismiss") - .props.onClick(); + within(comment).getByText("Dismiss").props.onClick(); expect(reportedButton.props.disabled).toBe(true); expect(resolvers.Mutation.createCommentFlag.called).toBe(true); }); @@ -220,9 +216,7 @@ it("dont agree with comment", async () => { ); act(() => { - within(popover) - .getByType("form") - .props.onSubmit({}); + within(popover).getByType("form").props.onSubmit({}); }); await act(async () => { @@ -232,9 +226,7 @@ it("dont agree with comment", async () => { }); act(() => - within(popover) - .getByText("Dismiss", { exact: false }) - .props.onClick({}) + within(popover).getByText("Dismiss", { exact: false }).props.onClick({}) ); await wait(() => @@ -283,9 +275,7 @@ it("report comment as offensive and handle server error", async () => { ); act(() => { - within(popover) - .getByType("form") - .props.onSubmit({}); + within(popover).getByType("form").props.onSubmit({}); }); // Look for internal error being displayed. diff --git a/src/core/client/stream/test/comments/stream/showAllReplies.spec.tsx b/src/core/client/stream/test/comments/stream/showAllReplies.spec.tsx index 3ca4d9099..896587d7e 100644 --- a/src/core/client/stream/test/comments/stream/showAllReplies.spec.tsx +++ b/src/core/client/stream/test/comments/stream/showAllReplies.spec.tsx @@ -17,8 +17,8 @@ beforeEach(() => { const commentStub = { ...comments[0], replies: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s.withArgs({ first: 3, orderBy: "CREATED_AT_ASC" }).returns({ edges: [ { @@ -31,10 +31,10 @@ beforeEach(() => { hasNextPage: true, }, }), - s => + (s) => s .withArgs({ - first: sinon.match(n => n > 10000), + first: sinon.match((n) => n > 10000), orderBy: "CREATED_AT_ASC", after: comments[1].createdAt, }) @@ -72,12 +72,13 @@ beforeEach(() => { Query: { settings: sinon.stub().returns(settings), comment: createSinonStub( - s => s.throws(), - s => s.withArgs(undefined, { id: commentStub.id }).returns(commentStub) + (s) => s.throws(), + (s) => + s.withArgs(undefined, { id: commentStub.id }).returns(commentStub) ), stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: storyStub.id, url: null }) .returns(storyStub) @@ -89,7 +90,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyStub.id, "storyID"); }, })); @@ -115,9 +116,7 @@ it("show all replies", async () => { .length; await act(async () => { - within(commentReplyList) - .getByText("Show All") - .props.onClick(); + within(commentReplyList).getByText("Show All").props.onClick(); // Wait for loading. await wait(() => expect(within(commentReplyList).queryByText("Show All")).toBeNull() diff --git a/src/core/client/stream/test/comments/stream/showConversation.spec.tsx b/src/core/client/stream/test/comments/stream/showConversation.spec.tsx index 955ec1a23..2bff5faaa 100644 --- a/src/core/client/stream/test/comments/stream/showConversation.spec.tsx +++ b/src/core/client/stream/test/comments/stream/showConversation.spec.tsx @@ -16,16 +16,16 @@ beforeEach(() => { const resolvers = { Query: { story: createSinonStub( - s => s.throws(), - s => s.returns(storyWithDeepestReplies) + (s) => s.throws(), + (s) => s.returns(storyWithDeepestReplies) ), stream: createSinonStub( - s => s.throws(), - s => s.returns(storyWithDeepestReplies) + (s) => s.throws(), + (s) => s.returns(storyWithDeepestReplies) ), comment: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: "comment-with-deepest-replies-3" }) .returns({ @@ -41,7 +41,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(storyWithDeepestReplies.id, "storyID"); }, })); diff --git a/src/core/client/stream/test/comments/stream/sortStream.spec.tsx b/src/core/client/stream/test/comments/stream/sortStream.spec.tsx index 4378d5e31..80d698bcd 100644 --- a/src/core/client/stream/test/comments/stream/sortStream.spec.tsx +++ b/src/core/client/stream/test/comments/stream/sortStream.spec.tsx @@ -22,7 +22,7 @@ const createTestRenderer = async (resolver: any = {}) => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); @@ -33,7 +33,7 @@ const createTestRenderer = async (resolver: any = {}) => { it("renders app with comment stream", async () => { let changedSort = false; - const commentsQueryStub = createSinonStub(s => + const commentsQueryStub = createSinonStub((s) => s.callsFake((input: any) => { if (!changedSort) { expectAndFail(input).toMatchObject({ @@ -49,7 +49,7 @@ it("renders app with comment stream", async () => { return stories[1].comments; }) ); - const storyQueryStub = createSinonStub(s => + const storyQueryStub = createSinonStub((s) => s.callsFake((_: any, input: any) => { expectAndFail(input.id).toEqual("story-1"); expectAndFail(input.url).toBeFalsy(); diff --git a/src/core/client/stream/test/configure/openOrCloseStream.spec.tsx b/src/core/client/stream/test/configure/openOrCloseStream.spec.tsx index e0fcb386e..1f28df074 100644 --- a/src/core/client/stream/test/configure/openOrCloseStream.spec.tsx +++ b/src/core/client/stream/test/configure/openOrCloseStream.spec.tsx @@ -24,7 +24,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); diff --git a/src/core/client/stream/test/configure/renderConfigure.spec.tsx b/src/core/client/stream/test/configure/renderConfigure.spec.tsx index 384a2c3ba..68f70d152 100644 --- a/src/core/client/stream/test/configure/renderConfigure.spec.tsx +++ b/src/core/client/stream/test/configure/renderConfigure.spec.tsx @@ -27,7 +27,7 @@ async function createTestRenderer( logNetwork: false, muteNetworkErrors: options.muteNetworkErrors, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue(stories[0].id, "storyID"); }, }); diff --git a/src/core/client/stream/test/create.tsx b/src/core/client/stream/test/create.tsx index e90a0b5f8..9ef78c66a 100644 --- a/src/core/client/stream/test/create.tsx +++ b/src/core/client/stream/test/create.tsx @@ -1,5 +1,6 @@ import React from "react"; +import { createAndRetain } from "coral-framework/lib/relay"; import { createTestRenderer, CreateTestRendererParams, @@ -11,7 +12,12 @@ export default function create(params: CreateTestRendererParams) { return createTestRenderer("stream", <AppContainer disableListeners />, { ...params, initLocalState: (localRecord, source, environment) => { - const authPopupRecord = source.create(AUTH_POPUP_ID, AUTH_POPUP_TYPE); + const authPopupRecord = createAndRetain( + environment, + source, + AUTH_POPUP_ID, + AUTH_POPUP_TYPE + ); authPopupRecord.setValue(false, "open"); authPopupRecord.setValue(false, "focus"); authPopupRecord.setValue("", "href"); diff --git a/src/core/client/stream/test/helpers/fixture.ts b/src/core/client/stream/test/helpers/fixture.ts index 4aa609a10..16054ca25 100644 --- a/src/core/client/stream/test/helpers/fixture.ts +++ b/src/core/client/stream/test/helpers/fixture.ts @@ -1,4 +1,4 @@ -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import { GQLComment, diff --git a/src/core/client/stream/test/profile/deleteAccount.spec.tsx b/src/core/client/stream/test/profile/deleteAccount.spec.tsx index 0aca01813..8c7ab8441 100644 --- a/src/core/client/stream/test/profile/deleteAccount.spec.tsx +++ b/src/core/client/stream/test/profile/deleteAccount.spec.tsx @@ -159,10 +159,9 @@ describe("delete account steps", () => { await form.props.onSubmit(); }); - const confirmRequiredWarning = within(modal).getByText( - "This field is required.", - { exact: false } - ); + const confirmRequiredWarning = within( + modal + ).getByText("This field is required.", { exact: false }); expect(confirmRequiredWarning).toBeDefined(); }); @@ -197,10 +196,9 @@ describe("delete account steps", () => { await form.props.onSubmit(); }); - const passwordRequiredWarning = within(modal).getByText( - "This field is required.", - { exact: false } - ); + const passwordRequiredWarning = within( + modal + ).getByText("This field is required.", { exact: false }); expect(passwordRequiredWarning).toBeDefined(); }); }); diff --git a/src/core/client/stream/test/profile/myComments.spec.tsx b/src/core/client/stream/test/profile/myComments.spec.tsx index 5f2ab7f68..1b8315c2f 100644 --- a/src/core/client/stream/test/profile/myComments.spec.tsx +++ b/src/core/client/stream/test/profile/myComments.spec.tsx @@ -17,8 +17,8 @@ beforeEach(() => { const meStub = { ...viewerWithComments, comments: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s.withArgs({ first: 5, orderBy: "CREATED_AT_DESC" }).returns({ edges: [ { @@ -35,7 +35,7 @@ beforeEach(() => { hasNextPage: true, }, }), - s => + (s) => s .withArgs({ first: 10, @@ -61,8 +61,8 @@ beforeEach(() => { Query: { settings: sinon.stub().returns(settings), stream: createSinonStub( - s => s.throws(), - s => + (s) => s.throws(), + (s) => s .withArgs(undefined, { id: stories[0].id, url: null }) .returns(stories[0]) @@ -75,7 +75,7 @@ beforeEach(() => { // Set this to true, to see graphql responses. logNetwork: false, resolvers, - initLocalState: localRecord => { + initLocalState: (localRecord) => { localRecord.setValue("MY_COMMENTS", "profileTab"); localRecord.setValue(stories[0].id, "storyID"); }, @@ -101,9 +101,7 @@ it("loads more comments", async () => { ).length; act(() => { - within(commentHistory) - .getByText("Load More") - .props.onClick(); + within(commentHistory).getByText("Load More").props.onClick(); }); // Wait for loading. diff --git a/src/core/client/test/expectAndFail.tsx b/src/core/client/test/expectAndFail.tsx index 9b93e43ee..36dac2876 100644 --- a/src/core/client/test/expectAndFail.tsx +++ b/src/core/client/test/expectAndFail.tsx @@ -20,13 +20,13 @@ const isPromise = <T extends any>(obj: any): obj is PromiseLike<T> => const wrapMatcher = (func: any) => { const wrappedMatcher: any = {}; const keys = Object.keys(func); - keys.forEach(k => { + keys.forEach((k) => { if (typeof func[k] === "function") { wrappedMatcher[k] = (...args: any[]) => { try { const result = func[k](...args); if (isPromise(result)) { - return result.then(undefined, e => { + return result.then(undefined, (e) => { // Remove this function from stacktrace. Error.captureStackTrace(e, wrappedMatcher[k]); fail(e); diff --git a/src/core/client/test/helpers/fixture.ts b/src/core/client/test/helpers/fixture.ts index 2f7febccf..e32d363cb 100644 --- a/src/core/client/test/helpers/fixture.ts +++ b/src/core/client/test/helpers/fixture.ts @@ -1,4 +1,4 @@ -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import { GQLComment, @@ -171,7 +171,7 @@ export function createComments(count = 3) { export function createStory() { const id = uuid(); const comments = createComments(); - comments.forEach(c => { + comments.forEach((c) => { const edges = [{ node: c, cursor: c.createdAt }]; c.author!.comments = { edges, @@ -233,7 +233,7 @@ export function createStory() { }) ); - comments.forEach(c => (c.story = story)); + comments.forEach((c) => (c.story = story)); return story; } diff --git a/src/core/client/test/jsdom.ts b/src/core/client/test/jsdom.ts index a3789a02a..32a4da5ae 100644 --- a/src/core/client/test/jsdom.ts +++ b/src/core/client/test/jsdom.ts @@ -9,7 +9,7 @@ const { window } = jsdom; function copyProps(src: any, target: any) { const props = Object.getOwnPropertyNames(src) - .filter(prop => typeof target[prop] === "undefined") + .filter((prop) => typeof target[prop] === "undefined") .reduce( (result, prop) => ({ ...result, @@ -28,11 +28,9 @@ global.navigator = { copyProps(window, global); -/* eslint-disable @typescript-eslint/no-empty-function */ global.window.getSelection = () => ({ addRange() {}, removeAllRanges() {}, } as any); global.window.resizeTo = () => {}; -/* eslint-enable @typescript-eslint/no-empty-function */ diff --git a/src/core/client/test/setupConsole.ts b/src/core/client/test/setupConsole.ts index 87c0998c8..bec3fcf1e 100644 --- a/src/core/client/test/setupConsole.ts +++ b/src/core/client/test/setupConsole.ts @@ -20,8 +20,10 @@ const failPatterns: PatternMap = { * messages before they reach the console. */ const mutePatterns: PatternMap = { - "False validateMutation warnings (https://github.com/facebook/relay/pull/2760)": /`optimisticResponse`.*contains an unused field .*\.\d+/g, - "ComponentWillReceiveProps has been renamed, and is not recommended for use": /componentWillReceiveProps has been renamed, and is not recommended for use/g, + "ReactFinalForm - Update a component while rendering another": /Cannot update a component.*while rendering a different component.*Field/, + "ReactFinalForm - Update a component from inside the function body (https://github.com/final-form/react-final-form/issues/751)": /Warning: Cannot update a component from inside the function body/g, + "Recompose - React.createFactory() is deprecated (https://github.com/acdlite/recompose/pull/795)": /React.createFactory\(\) is deprecated/g, + "RTE - ComponentWillReceiveProps has been renamed, and is not recommended for use (https://github.com/coralproject/rte)": /componentWillReceiveProps has been renamed, and is not recommended for use.*RTE/gs, }; let matchedFail: string[] = []; @@ -32,10 +34,10 @@ const originalLog = global.console.log; function getMatchingPatterns(patterns: PatternMap, args: any[]) { const str = args - .map(a => (typeof a === "string" ? a : JSON.stringify(a))) + .map((a) => (typeof a === "string" ? a : JSON.stringify(a))) .join(" "); const matchedPatterns: string[] = []; - Object.keys(patterns).forEach(k => { + Object.keys(patterns).forEach((k) => { const matching = typeof patterns[k] === "string" ? str.includes(patterns[k] as string) diff --git a/src/core/client/test/setupTestFramework.ts b/src/core/client/test/setupTestFramework.ts index 1de7d4631..b1fffbd25 100644 --- a/src/core/client/test/setupTestFramework.ts +++ b/src/core/client/test/setupTestFramework.ts @@ -13,7 +13,7 @@ import "./setupConsole"; // Log unhandled rejections. // eslint-disable-next-line no-console -process.on("unhandledRejection", err => { +process.on("unhandledRejection", (err) => { // eslint-disable-next-line no-console console.error("Unhandled Rejection"); // eslint-disable-next-line no-console @@ -21,3 +21,8 @@ process.on("unhandledRejection", err => { }); expect.extend(toHaveNoViolations); + +// axe checking takes a bit of time. +beforeEach(() => { + jest.setTimeout(20000); +}); diff --git a/src/core/client/ui/README.md b/src/core/client/ui/README.md index 344c6a69e..e33ad88d1 100644 --- a/src/core/client/ui/README.md +++ b/src/core/client/ui/README.md @@ -1,8 +1,8 @@ -# UI Kit +# UI Kit v1 The UI Kit provides the building blocks to create a Rich Graphical User Interface. -## What should be inside the UI Kit +## What should be inside the UI Kit v1 - The UI Kit focuses on providing presentational building blocks that is not specific to any domain or product. - The UI Kit should be completely independent from the rest of the codebase. diff --git a/src/core/client/ui/components/AppBar/Begin.tsx b/src/core/client/ui/components/AppBar/Begin.tsx index 08732cfc0..9f66f2dfc 100644 --- a/src/core/client/ui/components/AppBar/Begin.tsx +++ b/src/core/client/ui/components/AppBar/Begin.tsx @@ -7,7 +7,7 @@ import { PropTypesOf } from "coral-ui/types"; import styles from "./Begin.css"; -interface Props extends PropTypesOf<typeof Flex> { +interface Props extends Omit<PropTypesOf<typeof Flex>, "ref"> { children?: React.ReactNode; className?: string; classes: typeof styles; diff --git a/src/core/client/ui/components/AppBar/End.tsx b/src/core/client/ui/components/AppBar/End.tsx index ffc2275ef..828019543 100644 --- a/src/core/client/ui/components/AppBar/End.tsx +++ b/src/core/client/ui/components/AppBar/End.tsx @@ -7,7 +7,7 @@ import { PropTypesOf } from "coral-ui/types"; import styles from "./End.css"; -interface Props extends PropTypesOf<typeof Flex> { +interface Props extends Omit<PropTypesOf<typeof Flex>, "ref"> { children?: React.ReactNode; className?: string; classes: typeof styles; diff --git a/src/core/client/ui/components/AppBar/NavigationItem.css b/src/core/client/ui/components/AppBar/NavigationItem.css index c5c33f484..643722246 100644 --- a/src/core/client/ui/components/AppBar/NavigationItem.css +++ b/src/core/client/ui/components/AppBar/NavigationItem.css @@ -2,7 +2,7 @@ } .anchor { - composes: navItem from "coral-ui/shared/typography.css"; + composes: navItem from "~coral-ui/shared/typography.css"; color: var(--palette-grey-dark); height: 100%; display: inline-flex; @@ -16,7 +16,7 @@ } .active { - composes: navItemActive from "coral-ui/shared/typography.css"; + composes: navItemActive from "~coral-ui/shared/typography.css"; background-color: var(--palette-brand-main); text-decoration: none; color: var(--palette-text-light); diff --git a/src/core/client/ui/components/AppBar/AppBar.mdx b/src/core/client/ui/components/AppBar/README.mdx similarity index 85% rename from src/core/client/ui/components/AppBar/AppBar.mdx rename to src/core/client/ui/components/AppBar/README.mdx index a0b6c5a65..6dc2cc9f0 100644 --- a/src/core/client/ui/components/AppBar/AppBar.mdx +++ b/src/core/client/ui/components/AppBar/README.mdx @@ -1,12 +1,12 @@ --- name: AppBar -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { AppBar, Begin, End, Navigation, NavigationItem, Divider } from "./"; -import { Logo } from "../Brand"; +import { LogoHorizontal } from "../Brand"; import Flex from "../Flex"; import Icon from "../Icon"; import BaseButton from "../BaseButton"; @@ -18,7 +18,7 @@ import BaseButton from "../BaseButton"; <Playground> <AppBar gutterBegin gutterEnd> <Begin itemGutter="double"> - <Logo /> + <LogoHorizontal /> <Navigation> <NavigationItem active>Home</NavigationItem> <NavigationItem>Team</NavigationItem> diff --git a/src/core/client/ui/components/AriaInfo/AriaInfo.tsx b/src/core/client/ui/components/AriaInfo/AriaInfo.tsx index 4ec81e353..ce4ee889a 100644 --- a/src/core/client/ui/components/AriaInfo/AriaInfo.tsx +++ b/src/core/client/ui/components/AriaInfo/AriaInfo.tsx @@ -18,7 +18,7 @@ interface Props extends AllHTMLAttributes<HTMLElement> { forwardRef?: Ref<HTMLElement>; } -const AriaInfo: FunctionComponent<Props> = props => { +const AriaInfo: FunctionComponent<Props> = (props) => { const { component, className, classes, forwardRef: ref, ...rest } = props; const Component: React.ComponentType< React.HTMLAttributes<HTMLElement> & React.ClassAttributes<HTMLElement> diff --git a/src/core/client/ui/components/v2/AriaInfo/AriaInfo.mdx b/src/core/client/ui/components/AriaInfo/README.mdx similarity index 95% rename from src/core/client/ui/components/v2/AriaInfo/AriaInfo.mdx rename to src/core/client/ui/components/AriaInfo/README.mdx index 6cdaf7b62..7869f3b93 100644 --- a/src/core/client/ui/components/v2/AriaInfo/AriaInfo.mdx +++ b/src/core/client/ui/components/AriaInfo/README.mdx @@ -1,6 +1,6 @@ --- name: AriaInfo -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/v2/Backdrop/Backdrop.mdx b/src/core/client/ui/components/Backdrop/README.mdx similarity index 50% rename from src/core/client/ui/components/v2/Backdrop/Backdrop.mdx rename to src/core/client/ui/components/Backdrop/README.mdx index b1491616c..9a752237f 100644 --- a/src/core/client/ui/components/v2/Backdrop/Backdrop.mdx +++ b/src/core/client/ui/components/Backdrop/README.mdx @@ -1,10 +1,10 @@ --- name: Backdrop -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; -import Container from "react-with-state-props"; +import { Playground } from "docz"; +import { useState } from "react"; import Button from "../Button"; import Backdrop from "./Backdrop"; @@ -14,19 +14,19 @@ import Backdrop from "./Backdrop"; ## Basic usage <Playground> - <Container - state={{ value: false }} - render={props => ( + {() => { + const [value, setValue] = useState(false); + return ( <div> - <Backdrop active={props.value} /> + <Backdrop active={value} /> <Button variant="filled" color="primary" - onClick={() => props.setValue(!props.value)} + onClick={() => setValue(!value)} > Toggle </Button> </div> - )} - /> + ); + }} </Playground> diff --git a/src/core/client/ui/components/BaseButton/BaseButton.css b/src/core/client/ui/components/BaseButton/BaseButton.css index be3ba82aa..3c192ecc7 100644 --- a/src/core/client/ui/components/BaseButton/BaseButton.css +++ b/src/core/client/ui/components/BaseButton/BaseButton.css @@ -1,5 +1,5 @@ .root { - composes: buttonReset from "coral-ui/shared/buttonReset.css"; + composes: buttonReset from "~coral-ui/shared/buttonReset.css"; } .keyboardFocus { diff --git a/src/core/client/ui/components/BaseButton/BaseButton.mdx b/src/core/client/ui/components/BaseButton/README.mdx similarity index 92% rename from src/core/client/ui/components/BaseButton/BaseButton.mdx rename to src/core/client/ui/components/BaseButton/README.mdx index d4dd00669..b6bdc82a5 100644 --- a/src/core/client/ui/components/BaseButton/BaseButton.mdx +++ b/src/core/client/ui/components/BaseButton/README.mdx @@ -1,9 +1,9 @@ --- name: BaseButton -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import BaseButton from './BaseButton' # BaseButton diff --git a/src/core/client/ui/components/Box/Box.tsx b/src/core/client/ui/components/Box/Box.tsx index 4a00ccbd9..35e5c29f2 100644 --- a/src/core/client/ui/components/Box/Box.tsx +++ b/src/core/client/ui/components/Box/Box.tsx @@ -70,7 +70,7 @@ interface Props extends HTMLAttributes<any> { container?: React.ReactElement<any> | React.ComponentType<any> | string; } -const Box: FunctionComponent<Props> = props => { +const Box: FunctionComponent<Props> = (props) => { const { clone, classes, diff --git a/src/core/client/ui/components/v2/Box/Box.mdx b/src/core/client/ui/components/Box/README.mdx similarity index 96% rename from src/core/client/ui/components/v2/Box/Box.mdx rename to src/core/client/ui/components/Box/README.mdx index e7b8aa2a0..26885caf6 100644 --- a/src/core/client/ui/components/v2/Box/Box.mdx +++ b/src/core/client/ui/components/Box/README.mdx @@ -1,5 +1,5 @@ --- -menu: UI Kit +menu: UI Kit v1 name: Box --- diff --git a/src/core/client/ui/components/Brand/Brand.mdx b/src/core/client/ui/components/Brand/README.mdx similarity index 55% rename from src/core/client/ui/components/Brand/Brand.mdx rename to src/core/client/ui/components/Brand/README.mdx index 668a963ce..1c8f24de5 100644 --- a/src/core/client/ui/components/Brand/Brand.mdx +++ b/src/core/client/ui/components/Brand/README.mdx @@ -1,10 +1,10 @@ --- name: Brand -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; -import { BrandName, BrandIcon, Logo } from "./"; +import { Playground } from "docz"; +import { BrandName, BrandMark, LogoHorizontal } from "./"; import HorizontalGutter from "../HorizontalGutter"; # Brand @@ -14,7 +14,7 @@ import HorizontalGutter from "../HorizontalGutter"; <Playground> <HorizontalGutter> <BrandName /> - <BrandIcon /> - <Logo /> + <BrandMark /> + <LogoHorizontal /> </HorizontalGutter> </Playground> diff --git a/src/core/client/ui/components/Button/Button.css b/src/core/client/ui/components/Button/Button.css index 645b714e5..3e05ec1d7 100644 --- a/src/core/client/ui/components/Button/Button.css +++ b/src/core/client/ui/components/Button/Button.css @@ -30,17 +30,17 @@ } .sizeSmall { - composes: button from "coral-ui/shared/typography.css"; + composes: button from "~coral-ui/shared/typography.css"; padding: 4px 10px; } .sizeRegular { - composes: button from "coral-ui/shared/typography.css"; + composes: button from "~coral-ui/shared/typography.css"; padding: 8px 15px; } .sizeLarge { - composes: buttonLarge from "coral-ui/shared/typography.css"; + composes: buttonLarge from "~coral-ui/shared/typography.css"; padding: 10px 15px; } @@ -151,7 +151,7 @@ &.colorDark { background-color: var(--palette-text-primary); } -} +} .variantOutlineFilled.mouseHover { border: 1px solid transparent; /* prevent jumping between outlined and filled on hover */ @@ -609,4 +609,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/core/client/ui/components/Button/Button.tsx b/src/core/client/ui/components/Button/Button.tsx index a6c45aa4e..aa106e4fb 100644 --- a/src/core/client/ui/components/Button/Button.tsx +++ b/src/core/client/ui/components/Button/Button.tsx @@ -3,7 +3,7 @@ import { pick } from "lodash"; import React, { Ref } from "react"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import BaseButton, { BaseButtonProps } from "../BaseButton"; diff --git a/src/core/client/ui/components/Button/ButtonIcon.tsx b/src/core/client/ui/components/Button/ButtonIcon.tsx index 070b05cb2..62948b973 100644 --- a/src/core/client/ui/components/Button/ButtonIcon.tsx +++ b/src/core/client/ui/components/Button/ButtonIcon.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent, HTMLAttributes, Ref } from "react"; import Icon, { IconProps } from "coral-ui/components/Icon"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import styles from "./ButtonIcon.css"; @@ -23,7 +23,7 @@ interface Props extends Omit<HTMLAttributes<HTMLSpanElement>, "color"> { forwardRef?: Ref<HTMLSpanElement>; } -export const ButtonIcon: FunctionComponent<Props> = props => { +export const ButtonIcon: FunctionComponent<Props> = (props) => { const { classes, className, forwardRef, ...rest } = props; const rootClassName = cn(classes.root, className); return <Icon className={rootClassName} {...rest} ref={forwardRef} />; diff --git a/src/core/client/ui/components/Button/Button.mdx b/src/core/client/ui/components/Button/README.mdx similarity index 99% rename from src/core/client/ui/components/Button/Button.mdx rename to src/core/client/ui/components/Button/README.mdx index 6abcd8ed0..33ded5027 100644 --- a/src/core/client/ui/components/Button/Button.mdx +++ b/src/core/client/ui/components/Button/README.mdx @@ -1,6 +1,6 @@ --- name: Button -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/CallOut/CallOut.css b/src/core/client/ui/components/CallOut/CallOut.css index dadd678e8..bde9c25c4 100644 --- a/src/core/client/ui/components/CallOut/CallOut.css +++ b/src/core/client/ui/components/CallOut/CallOut.css @@ -1,5 +1,5 @@ .root { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; position: relative; display: inline-flex; justify-content: center; diff --git a/src/core/client/ui/components/CallOut/CallOut.tsx b/src/core/client/ui/components/CallOut/CallOut.tsx index 2b4efb0a0..075d368eb 100644 --- a/src/core/client/ui/components/CallOut/CallOut.tsx +++ b/src/core/client/ui/components/CallOut/CallOut.tsx @@ -33,7 +33,7 @@ export interface CallOutProps { borderless?: boolean; } -const CallOut: FunctionComponent<CallOutProps> = props => { +const CallOut: FunctionComponent<CallOutProps> = (props) => { const { borderless, className, diff --git a/src/core/client/ui/components/v2/CallOut/CallOut.mdx b/src/core/client/ui/components/CallOut/README.mdx similarity index 95% rename from src/core/client/ui/components/v2/CallOut/CallOut.mdx rename to src/core/client/ui/components/CallOut/README.mdx index fb71ea7ee..2b9b6265b 100644 --- a/src/core/client/ui/components/v2/CallOut/CallOut.mdx +++ b/src/core/client/ui/components/CallOut/README.mdx @@ -1,9 +1,9 @@ --- name: CallOut -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import CallOut from './CallOut' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/Card/Card.tsx b/src/core/client/ui/components/Card/Card.tsx index bba4b3c59..cd41c9d6d 100644 --- a/src/core/client/ui/components/Card/Card.tsx +++ b/src/core/client/ui/components/Card/Card.tsx @@ -23,7 +23,7 @@ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> { forwardRef?: Ref<HTMLDivElement>; } -const Card: FunctionComponent<CardProps> = props => { +const Card: FunctionComponent<CardProps> = (props) => { const { className, classes, children, forwardRef, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/Card/CloseButton.tsx b/src/core/client/ui/components/Card/CloseButton.tsx index 268c88584..11738e6a8 100644 --- a/src/core/client/ui/components/Card/CloseButton.tsx +++ b/src/core/client/ui/components/Card/CloseButton.tsx @@ -1,7 +1,7 @@ import React, { FunctionComponent, Ref } from "react"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import BaseButton from "../BaseButton"; import Icon from "../Icon"; @@ -19,7 +19,7 @@ export interface CloseButtonProps forwardRef?: Ref<HTMLButtonElement>; } -const CloseButton: FunctionComponent<CloseButtonProps> = props => { +const CloseButton: FunctionComponent<CloseButtonProps> = (props) => { const { classes: { icon: iconClassName, ...restClasses }, forwardRef, diff --git a/src/core/client/ui/components/v2/Card/Card.mdx b/src/core/client/ui/components/Card/README.mdx similarity index 95% rename from src/core/client/ui/components/v2/Card/Card.mdx rename to src/core/client/ui/components/Card/README.mdx index 8de7390ce..0e2b94553 100644 --- a/src/core/client/ui/components/v2/Card/Card.mdx +++ b/src/core/client/ui/components/Card/README.mdx @@ -1,9 +1,9 @@ --- name: Card -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Card from "./Card"; import CloseButton from "./CloseButton"; diff --git a/src/core/client/ui/components/Check/Check.mdx b/src/core/client/ui/components/Check/README.mdx similarity index 76% rename from src/core/client/ui/components/Check/Check.mdx rename to src/core/client/ui/components/Check/README.mdx index f233c0294..ad0dd9450 100644 --- a/src/core/client/ui/components/Check/Check.mdx +++ b/src/core/client/ui/components/Check/README.mdx @@ -1,9 +1,9 @@ --- name: Check -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { CheckIcon } from "./"; import Flex from "../Flex"; diff --git a/src/core/client/ui/components/CheckBox/CheckBox.css b/src/core/client/ui/components/CheckBox/CheckBox.css index 6a9a5f265..4a989c25f 100644 --- a/src/core/client/ui/components/CheckBox/CheckBox.css +++ b/src/core/client/ui/components/CheckBox/CheckBox.css @@ -8,7 +8,7 @@ } .label { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; position: relative; display: inline-block; cursor: pointer; diff --git a/src/core/client/ui/components/CheckBox/CheckBox.tsx b/src/core/client/ui/components/CheckBox/CheckBox.tsx index d97a7b102..63e82d29f 100644 --- a/src/core/client/ui/components/CheckBox/CheckBox.tsx +++ b/src/core/client/ui/components/CheckBox/CheckBox.tsx @@ -1,6 +1,6 @@ import cn from "classnames"; import React, { ChangeEvent, Component, EventHandler, FocusEvent } from "react"; -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import { withKeyboardFocus, withStyles } from "coral-ui/hocs"; diff --git a/src/core/client/ui/components/v2/CheckBox/CheckBox.mdx b/src/core/client/ui/components/CheckBox/README.mdx similarity index 87% rename from src/core/client/ui/components/v2/CheckBox/CheckBox.mdx rename to src/core/client/ui/components/CheckBox/README.mdx index ae33bbbf5..62a16c444 100644 --- a/src/core/client/ui/components/v2/CheckBox/CheckBox.mdx +++ b/src/core/client/ui/components/CheckBox/README.mdx @@ -1,9 +1,9 @@ --- name: CheckBox -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import CheckBox from './CheckBox.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/ClickOutside/ClickOutside.spec.tsx b/src/core/client/ui/components/ClickOutside/ClickOutside.spec.tsx index e70821644..54d4bb201 100644 --- a/src/core/client/ui/components/ClickOutside/ClickOutside.spec.tsx +++ b/src/core/client/ui/components/ClickOutside/ClickOutside.spec.tsx @@ -70,7 +70,7 @@ it("should ignore click inside", () => { it("should detect click far away", () => { let emitFarAwayClick: ClickFarAwayCallback = Function; const unlisten = sinon.spy(); - const registerClickFarAway: ClickFarAwayRegister = cb => { + const registerClickFarAway: ClickFarAwayRegister = (cb) => { emitFarAwayClick = cb; return unlisten; }; diff --git a/src/core/client/ui/components/ClickOutside/ClickOutside.tsx b/src/core/client/ui/components/ClickOutside/ClickOutside.tsx index ffef90688..f9f5d5323 100644 --- a/src/core/client/ui/components/ClickOutside/ClickOutside.tsx +++ b/src/core/client/ui/components/ClickOutside/ClickOutside.tsx @@ -67,7 +67,9 @@ export class ClickOutside extends React.Component<ClickOutsideProps> { } } -const ClickOutsideWithContext: FunctionComponent<ClickOutsideProps> = props => ( +const ClickOutsideWithContext: FunctionComponent<ClickOutsideProps> = ( + props +) => ( <UIContext.Consumer> {({ registerClickFarAway }) => ( <ClickOutside {...props} registerClickFarAway={registerClickFarAway} /> diff --git a/src/core/client/ui/components/ClickOutside/ClickOutside.mdx b/src/core/client/ui/components/ClickOutside/README.mdx similarity index 92% rename from src/core/client/ui/components/ClickOutside/ClickOutside.mdx rename to src/core/client/ui/components/ClickOutside/README.mdx index 04bd19da7..91017b65b 100644 --- a/src/core/client/ui/components/ClickOutside/ClickOutside.mdx +++ b/src/core/client/ui/components/ClickOutside/README.mdx @@ -1,9 +1,9 @@ --- name: ClickOutside -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import ClickOutside from './ClickOutside' import Button from '../Button/Button' diff --git a/src/core/client/ui/components/Counter/Counter.mdx b/src/core/client/ui/components/Counter/README.mdx similarity index 89% rename from src/core/client/ui/components/Counter/Counter.mdx rename to src/core/client/ui/components/Counter/README.mdx index 73e13787c..2658f959f 100644 --- a/src/core/client/ui/components/Counter/Counter.mdx +++ b/src/core/client/ui/components/Counter/README.mdx @@ -1,9 +1,9 @@ --- name: Counter -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Flex from "../Flex"; import Counter from "./Counter"; diff --git a/src/core/client/ui/components/v2/Delay/Delay.mdx b/src/core/client/ui/components/Delay/README.mdx similarity index 85% rename from src/core/client/ui/components/v2/Delay/Delay.mdx rename to src/core/client/ui/components/Delay/README.mdx index 9a3375d97..c1a370f0a 100644 --- a/src/core/client/ui/components/v2/Delay/Delay.mdx +++ b/src/core/client/ui/components/Delay/README.mdx @@ -1,9 +1,9 @@ --- name: Delay -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Delay from "./Delay.tsx"; import HorizontalGutter from "../HorizontalGutter"; import Spinner from "../Spinner"; diff --git a/src/core/client/ui/components/Dropdown/Button.css b/src/core/client/ui/components/Dropdown/Button.css index fe87b877a..6dcc99823 100644 --- a/src/core/client/ui/components/Dropdown/Button.css +++ b/src/core/client/ui/components/Dropdown/Button.css @@ -1,5 +1,5 @@ .root { - composes: menuItem from "coral-ui/shared/typography.css"; + composes: menuItem from "~coral-ui/shared/typography.css"; display: flex; justify-content: space-between; align-items: center; diff --git a/src/core/client/ui/components/Dropdown/Button.tsx b/src/core/client/ui/components/Dropdown/Button.tsx index 10b465bc0..8dc3d4226 100644 --- a/src/core/client/ui/components/Dropdown/Button.tsx +++ b/src/core/client/ui/components/Dropdown/Button.tsx @@ -1,7 +1,6 @@ import cn from "classnames"; import React, { FunctionComponent } from "react"; -import { Omit } from "coral-framework/types"; import { withStyles } from "coral-ui/hocs"; import { Flex } from "../"; diff --git a/src/core/client/ui/components/v2/Dropdown/Dropdown.mdx b/src/core/client/ui/components/Dropdown/README.mdx similarity index 95% rename from src/core/client/ui/components/v2/Dropdown/Dropdown.mdx rename to src/core/client/ui/components/Dropdown/README.mdx index 46ac31ceb..a9b663046 100644 --- a/src/core/client/ui/components/v2/Dropdown/Dropdown.mdx +++ b/src/core/client/ui/components/Dropdown/README.mdx @@ -1,9 +1,9 @@ --- name: Dropdown -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { Dropdown, diff --git a/src/core/client/ui/components/FieldSet/FieldSet.tsx b/src/core/client/ui/components/FieldSet/FieldSet.tsx index 3526f54aa..c0db95e91 100644 --- a/src/core/client/ui/components/FieldSet/FieldSet.tsx +++ b/src/core/client/ui/components/FieldSet/FieldSet.tsx @@ -16,7 +16,7 @@ interface InnerProps extends AllHTMLAttributes<HTMLElement> { forwardRef?: Ref<HTMLFieldSetElement>; } -const FieldSet: FunctionComponent<InnerProps> = props => { +const FieldSet: FunctionComponent<InnerProps> = (props) => { const { className, classes, forwardRef: ref, ...rest } = props; const rootClassName = cn(classes.root, className); return <fieldset className={rootClassName} {...rest} ref={ref} />; diff --git a/src/core/client/ui/components/FieldSet/FieldSet.mdx b/src/core/client/ui/components/FieldSet/README.mdx similarity index 63% rename from src/core/client/ui/components/FieldSet/FieldSet.mdx rename to src/core/client/ui/components/FieldSet/README.mdx index 52fdd24fc..bc9c6a353 100644 --- a/src/core/client/ui/components/FieldSet/FieldSet.mdx +++ b/src/core/client/ui/components/FieldSet/README.mdx @@ -1,9 +1,9 @@ --- name: FieldSet -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; # FieldSet diff --git a/src/core/client/ui/components/Flex/Flex.tsx b/src/core/client/ui/components/Flex/Flex.tsx index 878e90fd9..86ad461e1 100644 --- a/src/core/client/ui/components/Flex/Flex.tsx +++ b/src/core/client/ui/components/Flex/Flex.tsx @@ -11,7 +11,7 @@ import Box from "../Box"; import styles from "./Flex.css"; -interface Props extends PropTypesOf<typeof Box> { +interface Props extends Omit<PropTypesOf<typeof Box>, "ref"> { /** * This prop can be used to add custom classnames. * It is handled by the `withStyles `HOC. @@ -39,7 +39,7 @@ interface Props extends PropTypesOf<typeof Box> { forwardRef?: Ref<HTMLDivElement>; } -const Flex: FunctionComponent<Props> = props => { +const Flex: FunctionComponent<Props> = (props) => { const { classes, className, @@ -88,7 +88,7 @@ const Flex: FunctionComponent<Props> = props => { // text nodes can't be modified with css, so replace them with spans. // Readd spaces at the beginning or end of text nodes because // flex removes it. - const content = React.Children.map(children, child => { + const content = React.Children.map(children, (child) => { if (typeof child === "string") { return <span>{child.replace(/^ +| +$/g, "\xa0")}</span>; } diff --git a/src/core/client/ui/components/Flex/Flex.mdx b/src/core/client/ui/components/Flex/README.mdx similarity index 95% rename from src/core/client/ui/components/Flex/Flex.mdx rename to src/core/client/ui/components/Flex/README.mdx index baf6177f4..3ca921a03 100644 --- a/src/core/client/ui/components/Flex/Flex.mdx +++ b/src/core/client/ui/components/Flex/README.mdx @@ -1,9 +1,9 @@ --- name: Flex -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Flex from "./Flex"; import HorizontalGutter from "../HorizontalGutter"; import Button from "../Button"; diff --git a/src/core/client/ui/components/FormField/FormField.tsx b/src/core/client/ui/components/FormField/FormField.tsx index d8f5cf223..dc3e9c431 100644 --- a/src/core/client/ui/components/FormField/FormField.tsx +++ b/src/core/client/ui/components/FormField/FormField.tsx @@ -2,7 +2,7 @@ import cn from "classnames"; import React, { FunctionComponent, ReactNode } from "react"; import { withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import HorizontalGutter from "../HorizontalGutter"; @@ -15,7 +15,7 @@ interface Props extends Omit<PropTypesOf<typeof HorizontalGutter>, "ref"> { className?: string; } -const FormField: FunctionComponent<Props> = props => { +const FormField: FunctionComponent<Props> = (props) => { const { classes, className, children, ...rest } = props; return ( diff --git a/src/core/client/ui/components/FormField/FormField.mdx b/src/core/client/ui/components/FormField/README.mdx similarity index 92% rename from src/core/client/ui/components/FormField/FormField.mdx rename to src/core/client/ui/components/FormField/README.mdx index 6005da178..ead5633a3 100644 --- a/src/core/client/ui/components/FormField/FormField.mdx +++ b/src/core/client/ui/components/FormField/README.mdx @@ -1,9 +1,9 @@ --- name: FormField -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import { InputLabel, ValidationMessage, TextField, InputDescription, FormField } from '../' # FormField diff --git a/src/core/client/ui/components/HorizontalGutter/HorizontalGutter.tsx b/src/core/client/ui/components/HorizontalGutter/HorizontalGutter.tsx index 7efb764a8..22f864ae4 100644 --- a/src/core/client/ui/components/HorizontalGutter/HorizontalGutter.tsx +++ b/src/core/client/ui/components/HorizontalGutter/HorizontalGutter.tsx @@ -10,7 +10,7 @@ import Box from "../Box"; import styles from "./HorizontalGutter.css"; -interface Props extends PropTypesOf<typeof Box> { +interface Props extends Omit<PropTypesOf<typeof Box>, "ref"> { /** * This prop can be used to add custom classnames. * It is handled by the `withStyles `HOC. @@ -37,7 +37,7 @@ interface Props extends PropTypesOf<typeof Box> { container?: React.ReactElement<any> | React.ComponentType<any> | string; } -const HorizontalGutter: FunctionComponent<Props> = props => { +const HorizontalGutter: FunctionComponent<Props> = (props) => { const { classes, className, diff --git a/src/core/client/ui/components/HorizontalGutter/HorizontalGutter.mdx b/src/core/client/ui/components/HorizontalGutter/README.mdx similarity index 98% rename from src/core/client/ui/components/HorizontalGutter/HorizontalGutter.mdx rename to src/core/client/ui/components/HorizontalGutter/README.mdx index 40a7908ad..0f925bb3d 100644 --- a/src/core/client/ui/components/HorizontalGutter/HorizontalGutter.mdx +++ b/src/core/client/ui/components/HorizontalGutter/README.mdx @@ -1,6 +1,6 @@ --- name: HorizontalGutter -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/Icon/Icon.css b/src/core/client/ui/components/Icon/Icon.css index 773986d02..6fe4b6ae6 100644 --- a/src/core/client/ui/components/Icon/Icon.css +++ b/src/core/client/ui/components/Icon/Icon.css @@ -1,5 +1,5 @@ .root { - composes: icon from "coral-ui/shared/icon.css"; + composes: icon from "~coral-ui/shared/icon.css"; font-family: "Material Icons"; speak: none; font-style: normal; diff --git a/src/core/client/ui/components/Icon/Icon.tsx b/src/core/client/ui/components/Icon/Icon.tsx index a1c936835..43bc87f6b 100644 --- a/src/core/client/ui/components/Icon/Icon.tsx +++ b/src/core/client/ui/components/Icon/Icon.tsx @@ -27,7 +27,7 @@ interface Props extends HTMLAttributes<HTMLSpanElement> { forwardRef?: Ref<HTMLSpanElement>; } -const Icon: FunctionComponent<Props> = props => { +const Icon: FunctionComponent<Props> = (props) => { const { classes, className, size, color, forwardRef, ...rest } = props; const rootClassName = cn( diff --git a/src/core/client/ui/components/Icon/Icon.mdx b/src/core/client/ui/components/Icon/README.mdx similarity index 83% rename from src/core/client/ui/components/Icon/Icon.mdx rename to src/core/client/ui/components/Icon/README.mdx index 83428c28b..3c3b15a8e 100644 --- a/src/core/client/ui/components/Icon/Icon.mdx +++ b/src/core/client/ui/components/Icon/README.mdx @@ -1,9 +1,9 @@ --- name: Icon -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import Icon from './Icon' # Icon diff --git a/src/core/client/ui/components/InputDescription/InputDescription.tsx b/src/core/client/ui/components/InputDescription/InputDescription.tsx index f6a14af43..699369921 100644 --- a/src/core/client/ui/components/InputDescription/InputDescription.tsx +++ b/src/core/client/ui/components/InputDescription/InputDescription.tsx @@ -10,7 +10,7 @@ interface InputDescriptionProps { container?: PropTypesOf<typeof Typography>["container"]; } -const InputDescription: FunctionComponent<InputDescriptionProps> = props => { +const InputDescription: FunctionComponent<InputDescriptionProps> = (props) => { const { className, children, ...rest } = props; return ( <Typography diff --git a/src/core/client/ui/components/InputDescription/InputDescription.mdx b/src/core/client/ui/components/InputDescription/README.mdx similarity index 80% rename from src/core/client/ui/components/InputDescription/InputDescription.mdx rename to src/core/client/ui/components/InputDescription/README.mdx index 7a68cc49f..f46b4eb54 100644 --- a/src/core/client/ui/components/InputDescription/InputDescription.mdx +++ b/src/core/client/ui/components/InputDescription/README.mdx @@ -1,9 +1,9 @@ --- name: InputDescription -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import InputDescription from './InputDescription' # Flex diff --git a/src/core/client/ui/components/InputLabel/InputLabel.tsx b/src/core/client/ui/components/InputLabel/InputLabel.tsx index 2afe72d6e..e1810d04d 100644 --- a/src/core/client/ui/components/InputLabel/InputLabel.tsx +++ b/src/core/client/ui/components/InputLabel/InputLabel.tsx @@ -2,7 +2,7 @@ import cn from "classnames"; import React, { FunctionComponent, ReactNode } from "react"; import { withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import Typography from "../Typography"; @@ -26,7 +26,7 @@ export interface InputLabelProps classes: typeof styles; } -const InputLabelProps: FunctionComponent<InputLabelProps> = props => { +const InputLabelProps: FunctionComponent<InputLabelProps> = (props) => { const { className, children, classes, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/v2/InputLabel/InputLabel.mdx b/src/core/client/ui/components/InputLabel/README.mdx similarity index 82% rename from src/core/client/ui/components/v2/InputLabel/InputLabel.mdx rename to src/core/client/ui/components/InputLabel/README.mdx index 57b5156cb..cef12992d 100644 --- a/src/core/client/ui/components/v2/InputLabel/InputLabel.mdx +++ b/src/core/client/ui/components/InputLabel/README.mdx @@ -1,9 +1,9 @@ --- name: InputLabel -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import InputLabel from './InputLabel.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/Marker/Count.css b/src/core/client/ui/components/Marker/Count.css index 5ee106262..aec911bf2 100644 --- a/src/core/client/ui/components/Marker/Count.css +++ b/src/core/client/ui/components/Marker/Count.css @@ -1,5 +1,5 @@ .root { - composes: markerText from "coral-ui/shared/typography.css"; + composes: markerText from "~coral-ui/shared/typography.css"; border-left: 1px solid currentColor; margin-left: calc(0.5 * var(--mini-unit)); margin-right: calc(-0.25 * var(--mini-unit)); diff --git a/src/core/client/ui/components/Marker/Count.tsx b/src/core/client/ui/components/Marker/Count.tsx index 96f13ae8c..3cc8fad73 100644 --- a/src/core/client/ui/components/Marker/Count.tsx +++ b/src/core/client/ui/components/Marker/Count.tsx @@ -14,7 +14,7 @@ interface Props { children: React.ReactNode; } -const Count: FunctionComponent<Props> = props => { +const Count: FunctionComponent<Props> = (props) => { const { className, children, classes, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/Marker/Marker.css b/src/core/client/ui/components/Marker/Marker.css index 79482d206..1468a83b4 100644 --- a/src/core/client/ui/components/Marker/Marker.css +++ b/src/core/client/ui/components/Marker/Marker.css @@ -1,5 +1,5 @@ .root { - composes: markerText from "coral-ui/shared/typography.css"; + composes: markerText from "~coral-ui/shared/typography.css"; color: var(--palette-error-main); border: 1px solid currentColor; diff --git a/src/core/client/ui/components/Marker/Marker.tsx b/src/core/client/ui/components/Marker/Marker.tsx index 7981d7122..5c4a9f843 100644 --- a/src/core/client/ui/components/Marker/Marker.tsx +++ b/src/core/client/ui/components/Marker/Marker.tsx @@ -20,7 +20,7 @@ interface Props { variant?: "regular" | "filled"; } -const Marker: FunctionComponent<Props> = props => { +const Marker: FunctionComponent<Props> = (props) => { const { className, children, classes, color, variant, ...rest } = props; const rootClassName = cn(classes.root, className, { diff --git a/src/core/client/ui/components/Marker/Marker.mdx b/src/core/client/ui/components/Marker/README.mdx similarity index 94% rename from src/core/client/ui/components/Marker/Marker.mdx rename to src/core/client/ui/components/Marker/README.mdx index b1e6883ea..ef4450593 100644 --- a/src/core/client/ui/components/Marker/Marker.mdx +++ b/src/core/client/ui/components/Marker/README.mdx @@ -1,9 +1,9 @@ --- name: Marker -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Marker from "./Marker"; import Count from "./Count"; import HorizontalGutter from "../HorizontalGutter"; diff --git a/src/core/client/ui/components/MatchMedia/MatchMedia.tsx b/src/core/client/ui/components/MatchMedia/MatchMedia.tsx index 2ee0d16ad..cf3ecadf6 100644 --- a/src/core/client/ui/components/MatchMedia/MatchMedia.tsx +++ b/src/core/client/ui/components/MatchMedia/MatchMedia.tsx @@ -34,8 +34,16 @@ interface Props { values?: Partial<MediaQueryMatchers>; } -export const MatchMedia: FunctionComponent<Props> = props => { - const { speech, gteWidth, gtWidth, lteWidth, ltWidth, ...rest } = props; +export const MatchMedia: FunctionComponent<Props> = (props) => { + const { + speech, + gteWidth, + gtWidth, + lteWidth, + ltWidth, + values, + ...rest + } = props; const mapped = { // TODO: Temporarily map newer speech to older aural type until // react-responsive supports the speech prop. @@ -50,11 +58,12 @@ export const MatchMedia: FunctionComponent<Props> = props => { : lteWidth ? theme.breakpoints[lteWidth] : undefined, + device: values, }; return <Responsive {...rest} {...mapped} />; }; -const MatchMediaWithContext: FunctionComponent<Props> = props => ( +const MatchMediaWithContext: FunctionComponent<Props> = (props) => ( <UIContext.Consumer> {({ mediaQueryValues }) => ( <MatchMedia {...props} values={mediaQueryValues} /> diff --git a/src/core/client/ui/components/MatchMedia/MatchMedia.mdx b/src/core/client/ui/components/MatchMedia/README.mdx similarity index 93% rename from src/core/client/ui/components/MatchMedia/MatchMedia.mdx rename to src/core/client/ui/components/MatchMedia/README.mdx index b9a64a328..13f0e6175 100644 --- a/src/core/client/ui/components/MatchMedia/MatchMedia.mdx +++ b/src/core/client/ui/components/MatchMedia/README.mdx @@ -1,9 +1,9 @@ --- name: MatchMedia -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import MatchMedia from './MatchMedia' # MatchMedia diff --git a/src/core/client/ui/components/MatchMedia/__snapshots__/MatchMedia.spec.tsx.snap b/src/core/client/ui/components/MatchMedia/__snapshots__/MatchMedia.spec.tsx.snap index 516f3ae04..b2139264e 100644 --- a/src/core/client/ui/components/MatchMedia/__snapshots__/MatchMedia.spec.tsx.snap +++ b/src/core/client/ui/components/MatchMedia/__snapshots__/MatchMedia.spec.tsx.snap @@ -1,17 +1,17 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`map new speech prop to older aural prop 1`] = ` -<MediaQueryContextConsumer +<MediaQuery aural={true} > <div> Hello World </div> -</MediaQueryContextConsumer> +</MediaQuery> `; exports[`renders correctly 1`] = ` -<MediaQueryContextConsumer +<MediaQuery component="div" maxWidth={320} minWidth={640} @@ -20,16 +20,16 @@ exports[`renders correctly 1`] = ` <div> Hello World </div> -</MediaQueryContextConsumer> +</MediaQuery> `; exports[`renders less than and great than correctly 1`] = ` -<MediaQueryContextConsumer +<MediaQuery maxWidth={319} minWidth={641} > <div> Hello World </div> -</MediaQueryContextConsumer> +</MediaQuery> `; diff --git a/src/core/client/ui/components/Message/Message.css b/src/core/client/ui/components/Message/Message.css index d1f902a02..c6da9ef06 100644 --- a/src/core/client/ui/components/Message/Message.css +++ b/src/core/client/ui/components/Message/Message.css @@ -1,5 +1,5 @@ .root { - composes: alertMessage from "coral-ui/shared/typography.css"; + composes: alertMessage from "~coral-ui/shared/typography.css"; position: relative; display: inline-flex; justify-content: flex-start; diff --git a/src/core/client/ui/components/Message/Message.tsx b/src/core/client/ui/components/Message/Message.tsx index b07db57a4..58e735d12 100644 --- a/src/core/client/ui/components/Message/Message.tsx +++ b/src/core/client/ui/components/Message/Message.tsx @@ -28,7 +28,7 @@ export interface MessageProps { color?: "error" | "grey" | "primary" | "dark"; } -const Message: FunctionComponent<MessageProps> = props => { +const Message: FunctionComponent<MessageProps> = (props) => { const { className, classes, fullWidth, children, color, ...rest } = props; const rootClassName = cn( diff --git a/src/core/client/ui/components/Message/MessageIcon.tsx b/src/core/client/ui/components/Message/MessageIcon.tsx index d6b2eed38..533bf040b 100644 --- a/src/core/client/ui/components/Message/MessageIcon.tsx +++ b/src/core/client/ui/components/Message/MessageIcon.tsx @@ -3,7 +3,6 @@ import React, { FunctionComponent, HTMLAttributes, Ref } from "react"; import Icon, { IconProps } from "coral-ui/components/Icon"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit } from "coral-ui/types"; import styles from "./MessageIcon.css"; @@ -23,7 +22,7 @@ interface Props extends Omit<HTMLAttributes<HTMLSpanElement>, "color"> { forwardRef?: Ref<HTMLSpanElement>; } -export const MessageIcon: FunctionComponent<Props> = props => { +export const MessageIcon: FunctionComponent<Props> = (props) => { const { classes, className, forwardRef, ...rest } = props; const rootClassName = cn(classes.root, className); return <Icon className={rootClassName} {...rest} ref={forwardRef} />; diff --git a/src/core/client/ui/components/v2/Message/Message.mdx b/src/core/client/ui/components/Message/README.mdx similarity index 98% rename from src/core/client/ui/components/v2/Message/Message.mdx rename to src/core/client/ui/components/Message/README.mdx index 5baa5aa78..7690b85f9 100644 --- a/src/core/client/ui/components/v2/Message/Message.mdx +++ b/src/core/client/ui/components/Message/README.mdx @@ -1,6 +1,6 @@ --- name: Message -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/Modal/Modal.spec.tsx b/src/core/client/ui/components/Modal/Modal.spec.tsx index 02fa4f970..82f092ba0 100644 --- a/src/core/client/ui/components/Modal/Modal.spec.tsx +++ b/src/core/client/ui/components/Modal/Modal.spec.tsx @@ -78,7 +78,7 @@ it("relays esc events", () => { { createNodeMock } ); }); - const el = testRenderer!.root.find(i => i.props.onKeyDown); + const el = testRenderer!.root.find((i) => i.props.onKeyDown); el.props.onKeyDown(escEvent); el.props.onKeyDown(otherEvent); TestRenderer.act(() => { diff --git a/src/core/client/ui/components/Modal/Modal.mdx b/src/core/client/ui/components/Modal/README.mdx similarity index 97% rename from src/core/client/ui/components/Modal/Modal.mdx rename to src/core/client/ui/components/Modal/README.mdx index 61fd1c278..cd4f57f31 100644 --- a/src/core/client/ui/components/Modal/Modal.mdx +++ b/src/core/client/ui/components/Modal/README.mdx @@ -1,9 +1,9 @@ --- name: Modal -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { useState, useCallback } from "react"; import Button from "../Button"; diff --git a/src/core/client/ui/components/NoScroll/NoScroll.tsx b/src/core/client/ui/components/NoScroll/NoScroll.tsx index 5e995f542..2c6f7ced5 100644 --- a/src/core/client/ui/components/NoScroll/NoScroll.tsx +++ b/src/core/client/ui/components/NoScroll/NoScroll.tsx @@ -17,7 +17,7 @@ const NoScroll: FunctionComponent<Props> = ({ active }) => { // Add className. document.body.className = document.body.className .split(/\s+/) - .filter(s => s) + .filter((s) => s) .concat(styles.noScroll) .join(" "); } @@ -28,7 +28,7 @@ const NoScroll: FunctionComponent<Props> = ({ active }) => { // Remove className. document.body.className = document.body.className .split(/\s+/) - .filter(s => s && s !== styles.noScroll) + .filter((s) => s && s !== styles.noScroll) .join(" "); } }; diff --git a/src/core/client/ui/components/NoScroll/NoScroll.mdx b/src/core/client/ui/components/NoScroll/README.mdx similarity index 51% rename from src/core/client/ui/components/NoScroll/NoScroll.mdx rename to src/core/client/ui/components/NoScroll/README.mdx index 6781badcb..c4e5cb9dc 100644 --- a/src/core/client/ui/components/NoScroll/NoScroll.mdx +++ b/src/core/client/ui/components/NoScroll/README.mdx @@ -1,10 +1,10 @@ --- name: NoScroll -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; -import Container from "react-with-state-props"; +import { Playground } from "docz"; +import { useState } from "react"; import Button from "../Button"; import NoScroll from "./NoScroll"; @@ -16,20 +16,20 @@ Disables scrolling of `<body>`. ## Basic usage <Playground> - <Container - state={{ value: false }} - render={props => ( + {() => { + const [value, setValue] = useState(false); + return ( <div> - <NoScroll active={props.value} /> + <NoScroll active={value} /> <Button variant="ghost" color="primary" - active={props.value} - onClick={() => props.setValue(!props.value)} + active={value} + onClick={() => setValue(!value)} > Disable Scrolling </Button> </div> - )} - /> + ); + }} </Playground> diff --git a/src/core/client/ui/components/PasswordField/PasswordField.css b/src/core/client/ui/components/PasswordField/PasswordField.css index be7a7a13c..3bdff0643 100644 --- a/src/core/client/ui/components/PasswordField/PasswordField.css +++ b/src/core/client/ui/components/PasswordField/PasswordField.css @@ -43,7 +43,7 @@ _:-ms-lang(x), .icon { top: 8px; } .input { - composes: inputText placeholderPseudo from "coral-ui/shared/typography.css"; + composes: inputText placeholderPseudo from "~coral-ui/shared/typography.css"; display: block; padding: calc(0.5 * var(--mini-unit)) calc(3 * var(--mini-unit)) calc(0.5 * var(--mini-unit)) calc(0.5 * var(--mini-unit)); diff --git a/src/core/client/ui/components/PasswordField/PasswordField.tsx b/src/core/client/ui/components/PasswordField/PasswordField.tsx index 56f12e4c5..fab01a2b6 100644 --- a/src/core/client/ui/components/PasswordField/PasswordField.tsx +++ b/src/core/client/ui/components/PasswordField/PasswordField.tsx @@ -95,7 +95,7 @@ class PasswordField extends Component<PasswordFieldProps, State> { }; private toggleVisibility = () => { - this.setState(state => ({ + this.setState((state) => ({ reveal: !state.reveal, })); }; diff --git a/src/core/client/ui/components/v2/PasswordField/PasswordField.mdx b/src/core/client/ui/components/PasswordField/README.mdx similarity index 90% rename from src/core/client/ui/components/v2/PasswordField/PasswordField.mdx rename to src/core/client/ui/components/PasswordField/README.mdx index 965d2dd97..e2fab5091 100644 --- a/src/core/client/ui/components/v2/PasswordField/PasswordField.mdx +++ b/src/core/client/ui/components/PasswordField/README.mdx @@ -1,9 +1,9 @@ --- name: PasswordField -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import PasswordField from "./PasswordField.tsx"; import HorizontalGutter from "../HorizontalGutter"; diff --git a/src/core/client/ui/components/Popover/Popover.tsx b/src/core/client/ui/components/Popover/Popover.tsx index a614fd0f3..33fb54a81 100644 --- a/src/core/client/ui/components/Popover/Popover.tsx +++ b/src/core/client/ui/components/Popover/Popover.tsx @@ -1,6 +1,6 @@ import cn from "classnames"; import React from "react"; -import { Manager, Popper, Reference, RefHandler } from "react-popper"; +import { Manager, Popper, Reference } from "react-popper"; import { oncePerFrame } from "coral-common/utils"; import { withStyles } from "coral-ui/hocs"; @@ -35,7 +35,7 @@ interface BodyRenderProps { interface ChildrenRenderProps { /** toggles visibility, if event is provided, the event will stop propagating. */ toggleVisibility: (event?: React.SyntheticEvent | Event) => void; - ref?: RefHandler; + ref?: React.Ref<any>; visible: boolean; } @@ -139,7 +139,7 @@ class Popover extends React.Component<PopoverProps> { <div className={cn(classes.root, className)} {...rest}> <Manager> <Reference> - {props => + {(props) => children({ ref: props.ref, toggleVisibility: this.toggleVisibility, @@ -153,7 +153,7 @@ class Popover extends React.Component<PopoverProps> { positionFixed={positionFixed} modifiers={modifiers} > - {props => ( + {(props) => ( <div id={id} role="dialog" diff --git a/src/core/client/ui/components/Popover/Popover.mdx b/src/core/client/ui/components/Popover/README.mdx similarity index 99% rename from src/core/client/ui/components/Popover/Popover.mdx rename to src/core/client/ui/components/Popover/README.mdx index 54434116b..983f58a94 100644 --- a/src/core/client/ui/components/Popover/Popover.mdx +++ b/src/core/client/ui/components/Popover/README.mdx @@ -1,6 +1,6 @@ --- name: Popover -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/Popup/Popup.mdx b/src/core/client/ui/components/Popup/Popup.mdx deleted file mode 100644 index d17d58347..000000000 --- a/src/core/client/ui/components/Popup/Popup.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -name: Popup -menu: UI Kit ---- - -import { Playground } from "docz" -import Popup from "./Popup" -import Button from "../Button" -import Flex from "../Flex" -import Container from "react-with-state-props" - -# Popup - -Declaratively control a popup. - -## Basic usage - -<Playground> - <Container - state={{ open: false, focus: false }} - render={props => ( - <Flex itemGutter> - <Popup - href={"/static/js/src-core-client-ui-components-popup-popup.js"} - title="Coral Project" - features="menubar=0,resizable=0,width=500,height=550,top=200,left=500" - open={props.open} - focus={props.focus} - onFocus={() => props.setFocus(true)} - onBlur={() => props.setFocus(false)} - onClose={() => props.setOpen(false)} - /> - <Button onClick={() => props.setOpen(true)} variant="filled" color="primary" disabled={props.open}> - Open Popup - </Button> - <Button onClick={() => props.setOpen(false)} variant="outlined" disabled={!props.open}> - Close Popup - </Button> - <Button onClick={() => props.setFocus(true)} variant="outlined" disabled={!props.open}> - Focus Popup - </Button> - </Flex> - )}/> -</Playground> diff --git a/src/core/client/ui/components/Popup/Popup.ts b/src/core/client/ui/components/Popup/Popup.ts index c72c97201..ca5f27281 100644 --- a/src/core/client/ui/components/Popup/Popup.ts +++ b/src/core/client/ui/components/Popup/Popup.ts @@ -102,24 +102,24 @@ export default class Popup extends Component<PopupProps> { if (!this.ref) { return; } - this.ref.onload = e => { + this.ref.onload = (e) => { if (this.detectCloseInterval) { clearInterval(this.detectCloseInterval); } this.onLoad(e); }; - this.ref.onfocus = e => { + this.ref.onfocus = (e) => { this.onFocus(e); }; - this.ref.onblur = e => { + this.ref.onblur = (e) => { this.onBlur(e); }; // Use `onunload` instead of `onbeforeunload` which is not supported in iOS // Safari. - this.ref.onunload = e => { + this.ref.onunload = (e) => { this.onUnload(e); if (this.resetCallbackInterval) { diff --git a/src/core/client/ui/components/Popup/README.mdx b/src/core/client/ui/components/Popup/README.mdx new file mode 100644 index 000000000..432f2634f --- /dev/null +++ b/src/core/client/ui/components/Popup/README.mdx @@ -0,0 +1,47 @@ +--- +name: Popup +menu: UI Kit v1 +--- + +import { Playground } from "docz" +import { useState } from "react"; + +import Popup from "./Popup" +import Button from "../Button" +import Flex from "../Flex" + +# Popup + +Declaratively control a popup. + +## Basic usage + +<Playground> + {() => { + const [open, setOpen] = useState(false); + const [focus, setFocus] = useState(false); + return ( + <Flex itemGutter> + <Popup + href={"/static/js/src-core-client-ui-components-popup-popup.js"} + title="Coral Project" + features="menubar=0,resizable=0,width=500,height=550,top=200,left=500" + open={open} + focus={focus} + onFocus={() => setFocus(true)} + onBlur={() => setFocus(false)} + onClose={() => setOpen(false)} + /> + <Button onClick={() => setOpen(true)} variant="filled" color="primary" disabled={open}> + Open Popup + </Button> + <Button onClick={() => setOpen(false)} variant="outlined" disabled={!open}> + Close Popup + </Button> + <Button onClick={() => setFocus(true)} variant="outlined" disabled={!open}> + Focus Popup + </Button> + </Flex> + ); + }} +</Playground> diff --git a/src/core/client/ui/components/RadioButton/RadioButton.mdx b/src/core/client/ui/components/RadioButton/README.mdx similarity index 90% rename from src/core/client/ui/components/RadioButton/RadioButton.mdx rename to src/core/client/ui/components/RadioButton/README.mdx index 20377f4bc..8812ffda5 100644 --- a/src/core/client/ui/components/RadioButton/RadioButton.mdx +++ b/src/core/client/ui/components/RadioButton/README.mdx @@ -1,9 +1,9 @@ --- name: RadioButton -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import RadioButton from './RadioButton.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/RadioButton/RadioButton.css b/src/core/client/ui/components/RadioButton/RadioButton.css index 1d6c8b01c..129394840 100644 --- a/src/core/client/ui/components/RadioButton/RadioButton.css +++ b/src/core/client/ui/components/RadioButton/RadioButton.css @@ -8,7 +8,7 @@ } .label { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; display: inline-flex; position: relative; cursor: pointer; diff --git a/src/core/client/ui/components/RadioButton/RadioButton.tsx b/src/core/client/ui/components/RadioButton/RadioButton.tsx index d725cdf77..d7c1f4f0e 100644 --- a/src/core/client/ui/components/RadioButton/RadioButton.tsx +++ b/src/core/client/ui/components/RadioButton/RadioButton.tsx @@ -1,6 +1,6 @@ import cn from "classnames"; import React, { ChangeEvent, Component, EventHandler, FocusEvent } from "react"; -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import { Flex } from "coral-ui/components"; import { withKeyboardFocus, withStyles } from "coral-ui/hocs"; diff --git a/src/core/client/ui/components/RelativeTime/RelativeTime.mdx b/src/core/client/ui/components/RelativeTime/README.mdx similarity index 95% rename from src/core/client/ui/components/RelativeTime/RelativeTime.mdx rename to src/core/client/ui/components/RelativeTime/README.mdx index 3122e8806..fe90c99aa 100644 --- a/src/core/client/ui/components/RelativeTime/RelativeTime.mdx +++ b/src/core/client/ui/components/RelativeTime/README.mdx @@ -1,6 +1,6 @@ --- name: RelativeTime -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from 'docz' diff --git a/src/core/client/ui/components/RelativeTime/RelativeTime.tsx b/src/core/client/ui/components/RelativeTime/RelativeTime.tsx index 92b79f6f5..3560e1b61 100644 --- a/src/core/client/ui/components/RelativeTime/RelativeTime.tsx +++ b/src/core/client/ui/components/RelativeTime/RelativeTime.tsx @@ -22,7 +22,7 @@ interface Props { const defaultFormatter: Formatter = (value, unit, suffix, timestamp: string) => new Date(timestamp).toISOString(); -const RelativeTime: React.FunctionComponent<Props> = props => { +const RelativeTime: React.FunctionComponent<Props> = (props) => { const { date, classes, live, className, formatter } = props; return ( <UIContext.Consumer> diff --git a/src/core/client/ui/components/SelectField/OptGroup.tsx b/src/core/client/ui/components/SelectField/OptGroup.tsx index 04e3d2c93..7cdb0c138 100644 --- a/src/core/client/ui/components/SelectField/OptGroup.tsx +++ b/src/core/client/ui/components/SelectField/OptGroup.tsx @@ -5,7 +5,7 @@ export interface OptGroupProps { children?: React.ReactNode; } -const OptionGroup: FunctionComponent<OptGroupProps> = props => { +const OptionGroup: FunctionComponent<OptGroupProps> = (props) => { return <optgroup {...props} />; }; diff --git a/src/core/client/ui/components/SelectField/Option.tsx b/src/core/client/ui/components/SelectField/Option.tsx index 672cb3d15..105e8f0d4 100644 --- a/src/core/client/ui/components/SelectField/Option.tsx +++ b/src/core/client/ui/components/SelectField/Option.tsx @@ -7,7 +7,7 @@ export interface OptionProps { children?: React.ReactNode; } -const Option: FunctionComponent<OptionProps> = props => { +const Option: FunctionComponent<OptionProps> = (props) => { return <option {...props} />; }; diff --git a/src/core/client/ui/components/SelectField/README.mdx b/src/core/client/ui/components/SelectField/README.mdx new file mode 100644 index 000000000..55aeb43b3 --- /dev/null +++ b/src/core/client/ui/components/SelectField/README.mdx @@ -0,0 +1,55 @@ +--- +name: SelectField +menu: UI Kit v1 +--- + +import { Playground } from 'docz' +import { useState } from "react"; + +import SelectField from './SelectField.tsx' +import Option from './Option.tsx' +import OptGroup from './OptGroup.tsx' +import HorizontalGutter from '../HorizontalGutter' + +# SelectField + +## Basic Use +<Playground> + {() => { + const [value, setValue] = useState("blue"); + return ( + <SelectField value={value} onChange={e => setValue(e.target.value)}> + <Option value="red">Red Pill</Option> + <Option value="blue">Blue Pill</Option> + </SelectField> + ); + }} +</Playground> + +## Groups +<Playground> + {() => { + const [value, setValue] = useState("dog"); + return ( + <SelectField value={value} onChange={e => setValue(e.target.value)}> + <OptGroup label="mammals"> + <Option value="dog">Dog</Option> + <Option value="cat">Cat</Option> + </OptGroup> + <OptGroup label="fish"> + <Option value="salmon">Salmon</Option> + <Option value="tuna">Tuna</Option> + </OptGroup> + </SelectField> + ); + }} +</Playground> + + +## Disabled +<Playground> + <SelectField disabled> + <Option value="red">Red Pill</Option> + <Option value="blue">Blue Pill</Option> + </SelectField> +</Playground> diff --git a/src/core/client/ui/components/SelectField/SelectField.css b/src/core/client/ui/components/SelectField/SelectField.css index 8b6d2514f..dedd6d5b2 100644 --- a/src/core/client/ui/components/SelectField/SelectField.css +++ b/src/core/client/ui/components/SelectField/SelectField.css @@ -19,7 +19,7 @@ } .select { - composes: menuItem from "coral-ui/shared/typography.css"; + composes: menuItem from "~coral-ui/shared/typography.css"; -webkit-appearance: none; -moz-appearance: none; appearance: none; diff --git a/src/core/client/ui/components/SelectField/SelectField.mdx b/src/core/client/ui/components/SelectField/SelectField.mdx deleted file mode 100644 index f0d7dd4dc..000000000 --- a/src/core/client/ui/components/SelectField/SelectField.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -name: SelectField -menu: UI Kit ---- - -import { Playground, PropsTable } from 'docz' -import SelectField from './SelectField.tsx' -import Option from './Option.tsx' -import OptGroup from './OptGroup.tsx' -import HorizontalGutter from '../HorizontalGutter' -import Container from "react-with-state-props" - -# SelectField - -## Basic Use -<Playground> - <Container - state={{ value: "blue" }} - render={props => ( - <SelectField value={props.value} onChange={e => props.setValue(e.target.value)}> - <Option value="red">Red Pill</Option> - <Option value="blue">Blue Pill</Option> - </SelectField> - )}/> -</Playground> - -## Groups -<Playground> - <Container - state={{ value: "dog" }} - render={props => ( - <SelectField value={props.value} onChange={e => props.setValue(e.target.value)}> - <OptGroup label="mammals"> - <Option value="dog">Dog</Option> - <Option value="cat">Cat</Option> - </OptGroup> - <OptGroup label="fish"> - <Option value="salmon">Salmon</Option> - <Option value="tuna">Tuna</Option> - </OptGroup> - </SelectField> - )}/> -</Playground> - - -## Disabled -<Playground> - <SelectField disabled> - <Option value="red">Red Pill</Option> - <Option value="blue">Blue Pill</Option> - </SelectField> -</Playground> diff --git a/src/core/client/ui/components/SelectField/SelectField.tsx b/src/core/client/ui/components/SelectField/SelectField.tsx index 75483a80c..1511bf24c 100644 --- a/src/core/client/ui/components/SelectField/SelectField.tsx +++ b/src/core/client/ui/components/SelectField/SelectField.tsx @@ -49,7 +49,7 @@ export interface SelectFieldProps { afterWrapper?: React.ReactElement<any>; } -const SelectField: FunctionComponent<SelectFieldProps> = props => { +const SelectField: FunctionComponent<SelectFieldProps> = (props) => { const { className, classes, diff --git a/src/core/client/ui/components/v2/Spinner/Spinner.mdx b/src/core/client/ui/components/Spinner/README.mdx similarity index 90% rename from src/core/client/ui/components/v2/Spinner/Spinner.mdx rename to src/core/client/ui/components/Spinner/README.mdx index 66ef80309..3f51f980a 100644 --- a/src/core/client/ui/components/v2/Spinner/Spinner.mdx +++ b/src/core/client/ui/components/Spinner/README.mdx @@ -1,6 +1,6 @@ --- name: Spinner -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from "docz" diff --git a/src/core/client/ui/components/Spinner/Spinner.tsx b/src/core/client/ui/components/Spinner/Spinner.tsx index 14d8e2d77..121044969 100644 --- a/src/core/client/ui/components/Spinner/Spinner.tsx +++ b/src/core/client/ui/components/Spinner/Spinner.tsx @@ -33,7 +33,7 @@ function calculateSize(size: Size): number { } } -const Spinner: FunctionComponent<SpinnerProps> = props => { +const Spinner: FunctionComponent<SpinnerProps> = (props) => { const { className, classes } = props; const rootClassName = cn(classes.spinner, className); diff --git a/src/core/client/ui/components/Steps/steps.mdx b/src/core/client/ui/components/Steps/README.mdx similarity index 95% rename from src/core/client/ui/components/Steps/steps.mdx rename to src/core/client/ui/components/Steps/README.mdx index f9792fdae..0f6856df6 100644 --- a/src/core/client/ui/components/Steps/steps.mdx +++ b/src/core/client/ui/components/Steps/README.mdx @@ -1,6 +1,6 @@ --- name: Steps -menu: UI Kit +menu: UI Kit v1 --- # Steps diff --git a/src/core/client/ui/components/SubBar/NavigationItem.css b/src/core/client/ui/components/SubBar/NavigationItem.css index e71095714..4404d797b 100644 --- a/src/core/client/ui/components/SubBar/NavigationItem.css +++ b/src/core/client/ui/components/SubBar/NavigationItem.css @@ -3,7 +3,7 @@ } .anchor { - composes: adminTabItem from "coral-ui/shared/typography.css"; + composes: adminTabItem from "~coral-ui/shared/typography.css"; color: var(--palette-grey-dark); height: 100%; display: inline-flex; @@ -24,7 +24,7 @@ } .active { - composes: adminTabItemActive from "coral-ui/shared/typography.css"; + composes: adminTabItemActive from "~coral-ui/shared/typography.css"; border-bottom: 3px solid var(--palette-primary-main); color: var(--palette-primary-main); } diff --git a/src/core/client/ui/components/v2/SubBar/SubBar.mdx b/src/core/client/ui/components/SubBar/README.mdx similarity index 93% rename from src/core/client/ui/components/v2/SubBar/SubBar.mdx rename to src/core/client/ui/components/SubBar/README.mdx index 4db8fc439..f74761ade 100644 --- a/src/core/client/ui/components/v2/SubBar/SubBar.mdx +++ b/src/core/client/ui/components/SubBar/README.mdx @@ -1,9 +1,9 @@ --- name: SubBar -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { SubBar, Navigation, NavigationItem, Divider } from "./"; import Icon from "../Icon"; diff --git a/src/core/client/ui/components/v2/Table/Table.mdx b/src/core/client/ui/components/Table/README.mdx similarity index 92% rename from src/core/client/ui/components/v2/Table/Table.mdx rename to src/core/client/ui/components/Table/README.mdx index 795190272..a712bba40 100644 --- a/src/core/client/ui/components/v2/Table/Table.mdx +++ b/src/core/client/ui/components/Table/README.mdx @@ -1,9 +1,9 @@ --- name: Table -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { Table, TableBody, TableHead, TableRow, TableCell } from "./"; diff --git a/src/core/client/ui/components/Table/TableCell.css b/src/core/client/ui/components/Table/TableCell.css index c2618642a..20de7e6b4 100644 --- a/src/core/client/ui/components/Table/TableCell.css +++ b/src/core/client/ui/components/Table/TableCell.css @@ -7,11 +7,11 @@ } .header { - composes: tableHeading from "coral-ui/shared/typography.css"; + composes: tableHeading from "~coral-ui/shared/typography.css"; } .body { - composes: tableData from "coral-ui/shared/typography.css"; + composes: tableData from "~coral-ui/shared/typography.css"; } .alignCenter { diff --git a/src/core/client/ui/components/Table/TableCell.tsx b/src/core/client/ui/components/Table/TableCell.tsx index 4ccb29dff..84519465f 100644 --- a/src/core/client/ui/components/Table/TableCell.tsx +++ b/src/core/client/ui/components/Table/TableCell.tsx @@ -2,7 +2,6 @@ import cn from "classnames"; import React, { FunctionComponent, useContext } from "react"; import { withStyles } from "coral-ui/hocs"; -import { Omit } from "coral-ui/types"; import { TableHeadContext } from "./TableHead"; diff --git a/src/core/client/ui/components/v2/Tabs/tabs.mdx b/src/core/client/ui/components/Tabs/README.mdx similarity index 50% rename from src/core/client/ui/components/v2/Tabs/tabs.mdx rename to src/core/client/ui/components/Tabs/README.mdx index f77c503fd..8724be90c 100644 --- a/src/core/client/ui/components/v2/Tabs/tabs.mdx +++ b/src/core/client/ui/components/Tabs/README.mdx @@ -1,6 +1,6 @@ --- name: Tabs -menu: UI Kit +menu: UI Kit v1 --- # Tabs @@ -8,51 +8,73 @@ menu: UI Kit ### Examples import { Playground } from "docz"; +import { useState } from "react"; + import { Flex, TabBar, Tab, TabContent, TabPane } from "./index"; -import Container from "react-with-state-props"; ## Primary Tabs <Playground> - <Container - state={{ activeId: "two" }} - render={props => ( + {() => { + const [activeID, setActiveID] = useState("two"); + return ( <div> <TabBar - activeTab={props.activeId} - onTabClick={id => props.setActiveId(id)} + activeTab={activeID} + onTabClick={id => setActiveID(id)} > <Tab tabID="one">One</Tab> <Tab tabID="two">Two</Tab> <Tab tabID="three">Three</Tab> </TabBar> - <TabContent activeTab={props.activeId}> + <TabContent activeTab={activeID}> <TabPane tabID="one">Hola One</TabPane> <TabPane tabID="two">Hola Two</TabPane> <TabPane tabID="three">Hola Three</TabPane> </TabContent> </div> - )} - /> + ); + }} </Playground> ## Secondary Tabs <Playground> - <Container - state={{ activeId: "two" }} - render={props => ( + {() => { + const [activeID, setActiveID] = useState("two"); + return ( <div> <TabBar variant="secondary" - activeTab={props.activeId} - onTabClick={id => props.setActiveId(id)} + activeTab={activeID} + onTabClick={id => setActiveID(id)} > <Tab tabID="one">One</Tab> <Tab tabID="two">Two</Tab> <Tab tabID="three">Three</Tab> </TabBar> - <TabContent activeTab={props.activeId}> + <TabContent activeTab={activeID}> + <TabPane tabID="one">Hola One</TabPane> + <TabPane tabID="two">Hola Two</TabPane> + <TabPane tabID="three">Hola Three</TabPane> + </TabContent> + </div> + ); + }} + <Container + state={{ activeID: "two" }} + render={props => ( + <div> + <TabBar + variant="secondary" + activeTab={props.activeID} + onTabClick={id => props.setActiveID(id)} + > + <Tab tabID="one">One</Tab> + <Tab tabID="two">Two</Tab> + <Tab tabID="three">Three</Tab> + </TabBar> + <TabContent activeTab={props.activeID}> <TabPane tabID="one">Hola One</TabPane> <TabPane tabID="two">Hola Two</TabPane> <TabPane tabID="three">Hola Three</TabPane> diff --git a/src/core/client/ui/components/Tabs/TabBar.tsx b/src/core/client/ui/components/Tabs/TabBar.tsx index f7d6d0335..de39d00c5 100644 --- a/src/core/client/ui/components/Tabs/TabBar.tsx +++ b/src/core/client/ui/components/Tabs/TabBar.tsx @@ -32,7 +32,7 @@ export interface TabBarProps { onTabClick?: (tabID: string) => void; } -const TabBar: FunctionComponent<TabBarProps> = props => { +const TabBar: FunctionComponent<TabBarProps> = (props) => { const { className, classes, diff --git a/src/core/client/ui/components/Tabs/TabContent.tsx b/src/core/client/ui/components/Tabs/TabContent.tsx index f419a0da4..223720870 100644 --- a/src/core/client/ui/components/Tabs/TabContent.tsx +++ b/src/core/client/ui/components/Tabs/TabContent.tsx @@ -12,7 +12,7 @@ export interface TabContentProps { className?: string; } -const TabContent: FunctionComponent<TabContentProps> = props => { +const TabContent: FunctionComponent<TabContentProps> = (props) => { const { children, activeTab, className } = props; return ( <> diff --git a/src/core/client/ui/components/Tabs/TabPane.tsx b/src/core/client/ui/components/Tabs/TabPane.tsx index 757d757e9..9dd3c6575 100644 --- a/src/core/client/ui/components/Tabs/TabPane.tsx +++ b/src/core/client/ui/components/Tabs/TabPane.tsx @@ -11,7 +11,7 @@ export interface TabBarProps { tabID: string; } -const TabPane: FunctionComponent<TabBarProps> = props => { +const TabPane: FunctionComponent<TabBarProps> = (props) => { const { className, children, tabID, ...rest } = props; return ( <section diff --git a/src/core/client/ui/components/v2/Tag/Tag.mdx b/src/core/client/ui/components/Tag/README.mdx similarity index 90% rename from src/core/client/ui/components/v2/Tag/Tag.mdx rename to src/core/client/ui/components/Tag/README.mdx index 266f73948..2f3b09896 100644 --- a/src/core/client/ui/components/v2/Tag/Tag.mdx +++ b/src/core/client/ui/components/Tag/README.mdx @@ -1,9 +1,9 @@ --- name: Tag -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Tag from "./Tag"; import HorizontalGutter from "../HorizontalGutter"; import Flex from "../Flex"; diff --git a/src/core/client/ui/components/Tag/Tag.css b/src/core/client/ui/components/Tag/Tag.css index c4c9a8a31..5e7f47f52 100644 --- a/src/core/client/ui/components/Tag/Tag.css +++ b/src/core/client/ui/components/Tag/Tag.css @@ -1,5 +1,5 @@ .root { - composes: tagText from "coral-ui/shared/typography.css"; + composes: tagText from "~coral-ui/shared/typography.css"; color: var(--palette-text-light); line-height: 1; padding: var(--spacing-1); @@ -47,4 +47,4 @@ .uppercase { text-transform: uppercase; -} \ No newline at end of file +} diff --git a/src/core/client/ui/components/Tag/Tag.tsx b/src/core/client/ui/components/Tag/Tag.tsx index cc946d9ba..074519135 100644 --- a/src/core/client/ui/components/Tag/Tag.tsx +++ b/src/core/client/ui/components/Tag/Tag.tsx @@ -17,7 +17,7 @@ interface Props { variant?: "regular" | "pill"; } -const Tag: FunctionComponent<Props> = props => { +const Tag: FunctionComponent<Props> = (props) => { const { className, children, classes, variant, color, ...rest } = props; const rootClassName = cn(classes.root, className, { diff --git a/src/core/client/ui/components/v2/TextField/TextField.mdx b/src/core/client/ui/components/TextField/README.mdx similarity index 93% rename from src/core/client/ui/components/v2/TextField/TextField.mdx rename to src/core/client/ui/components/TextField/README.mdx index 59be64785..427f7345e 100644 --- a/src/core/client/ui/components/v2/TextField/TextField.mdx +++ b/src/core/client/ui/components/TextField/README.mdx @@ -1,9 +1,9 @@ --- name: TextField -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import TextField from "./TextField"; import Button from "../Button"; diff --git a/src/core/client/ui/components/TextField/TextField.css b/src/core/client/ui/components/TextField/TextField.css index df2acb36a..dee506685 100644 --- a/src/core/client/ui/components/TextField/TextField.css +++ b/src/core/client/ui/components/TextField/TextField.css @@ -6,7 +6,7 @@ } .input { - composes: inputText placeholderPseudo from "coral-ui/shared/typography.css"; + composes: inputText placeholderPseudo from "~coral-ui/shared/typography.css"; position: relative; display: block; padding: calc(0.5 * var(--mini-unit)); diff --git a/src/core/client/ui/components/TextField/TextField.tsx b/src/core/client/ui/components/TextField/TextField.tsx index 3e65454c5..ac6fa7b76 100644 --- a/src/core/client/ui/components/TextField/TextField.tsx +++ b/src/core/client/ui/components/TextField/TextField.tsx @@ -80,7 +80,7 @@ export interface TextFieldProps { variant?: "regular" | "seamlessAdornment"; } -const TextField: FunctionComponent<TextFieldProps> = props => { +const TextField: FunctionComponent<TextFieldProps> = (props) => { const { className, classes, diff --git a/src/core/client/ui/components/TextLink/TextLink.mdx b/src/core/client/ui/components/TextLink/README.mdx similarity index 83% rename from src/core/client/ui/components/TextLink/TextLink.mdx rename to src/core/client/ui/components/TextLink/README.mdx index 8f6f42813..09c4796c4 100644 --- a/src/core/client/ui/components/TextLink/TextLink.mdx +++ b/src/core/client/ui/components/TextLink/README.mdx @@ -1,9 +1,9 @@ --- name: TextLink -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import TextLink from './TextLink.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/TextLink/TextLink.tsx b/src/core/client/ui/components/TextLink/TextLink.tsx index 5296beea1..3d9a1e1ac 100644 --- a/src/core/client/ui/components/TextLink/TextLink.tsx +++ b/src/core/client/ui/components/TextLink/TextLink.tsx @@ -13,7 +13,7 @@ interface Props extends AnchorHTMLAttributes<HTMLAnchorElement> { classes: typeof styles; } -const TextLinkProps: StatelessComponent<Props> = props => { +const TextLinkProps: StatelessComponent<Props> = (props) => { const { className, children, classes, target, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/TileSelector/TileSelector.mdx b/src/core/client/ui/components/TileSelector/README.mdx similarity index 78% rename from src/core/client/ui/components/TileSelector/TileSelector.mdx rename to src/core/client/ui/components/TileSelector/README.mdx index 1a868af1b..3c570b038 100644 --- a/src/core/client/ui/components/TileSelector/TileSelector.mdx +++ b/src/core/client/ui/components/TileSelector/README.mdx @@ -1,10 +1,10 @@ --- name: TileSelector -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; -import Container from "react-with-state-props"; +import { Playground } from "docz"; +import { useState } from "react"; import TileSelector from "./TileSelector"; import TileOption from "./TileOption"; @@ -16,14 +16,14 @@ import Icon from "../Icon"; ## Basic Use <Playground> - <Container - state={{ value: null }} - render={props => ( + {() => { + const [value, setValue] = useState(null); + return ( <TileSelector id="icon" name="icon" - onChange={val => props.setValue(val)} - value={props.value} + onChange={val => setValue(val)} + value={value} > <TileOption value="question_answer"> <Icon size="md">question_answer</Icon> @@ -42,6 +42,6 @@ import Icon from "../Icon"; </TileOption> <TileOption value="">No Icon</TileOption> </TileSelector> - )} - /> + ); + }} </Playground> diff --git a/src/core/client/ui/components/TileSelector/TileOption.css b/src/core/client/ui/components/TileSelector/TileOption.css index a947ea0db..b42cb8f0e 100644 --- a/src/core/client/ui/components/TileSelector/TileOption.css +++ b/src/core/client/ui/components/TileSelector/TileOption.css @@ -5,7 +5,7 @@ } .label { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; display: inline-flex; align-items: center; position: relative; diff --git a/src/core/client/ui/components/TileSelector/TileSelector.tsx b/src/core/client/ui/components/TileSelector/TileSelector.tsx index 5388a6f02..f46056390 100644 --- a/src/core/client/ui/components/TileSelector/TileSelector.tsx +++ b/src/core/client/ui/components/TileSelector/TileSelector.tsx @@ -22,7 +22,7 @@ interface Props { children: Array<ReactElement<SelectorChildProps, any>>; } -const TileSelector: FunctionComponent<Props> = props => { +const TileSelector: FunctionComponent<Props> = (props) => { const { id, name, value, className, children, onChange } = props; const onItemChange = useCallback( (evt: React.ChangeEvent<HTMLInputElement>) => diff --git a/src/core/client/ui/components/Timestamp/Timestamp.css b/src/core/client/ui/components/Timestamp/Timestamp.css index 9764a04e6..6ab19bf45 100644 --- a/src/core/client/ui/components/Timestamp/Timestamp.css +++ b/src/core/client/ui/components/Timestamp/Timestamp.css @@ -3,5 +3,5 @@ } .text { - composes: timestamp from "coral-ui/shared/typography.css"; + composes: timestamp from "~coral-ui/shared/typography.css"; } diff --git a/src/core/client/ui/components/Timestamp/Timestamp.tsx b/src/core/client/ui/components/Timestamp/Timestamp.tsx index 3f91ebfd6..92c0b969d 100644 --- a/src/core/client/ui/components/Timestamp/Timestamp.tsx +++ b/src/core/client/ui/components/Timestamp/Timestamp.tsx @@ -19,7 +19,7 @@ export interface TimestampProps { onClick?: EventHandler<MouseEvent>; } -const Timestamp: FunctionComponent<TimestampProps> = props => { +const Timestamp: FunctionComponent<TimestampProps> = (props) => { const [showAbsolute, setShowAbsolute] = useState(false); const handleOnClick = useCallback( (event: MouseEvent) => { diff --git a/src/core/client/ui/components/ToggleShow/ToogleShow.mdx b/src/core/client/ui/components/ToggleShow/README.mdx similarity index 97% rename from src/core/client/ui/components/ToggleShow/ToogleShow.mdx rename to src/core/client/ui/components/ToggleShow/README.mdx index 3a7fcdbda..2a3bd02d5 100644 --- a/src/core/client/ui/components/ToggleShow/ToogleShow.mdx +++ b/src/core/client/ui/components/ToggleShow/README.mdx @@ -1,6 +1,6 @@ --- name: ToggleShow -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from 'docz' diff --git a/src/core/client/ui/components/ToggleShow/ToggleShow.tsx b/src/core/client/ui/components/ToggleShow/ToggleShow.tsx index d8830c56e..a319d28ab 100644 --- a/src/core/client/ui/components/ToggleShow/ToggleShow.tsx +++ b/src/core/client/ui/components/ToggleShow/ToggleShow.tsx @@ -19,7 +19,7 @@ class ToggleShow extends React.Component<Props, State> { }; public toggleShow = () => { - this.setState(state => ({ show: !state.show })); + this.setState((state) => ({ show: !state.show })); }; public render() { diff --git a/src/core/client/ui/components/Tooltip/Tooltip.tsx b/src/core/client/ui/components/Tooltip/Tooltip.tsx index a1b49ecba..69c1dbe40 100644 --- a/src/core/client/ui/components/Tooltip/Tooltip.tsx +++ b/src/core/client/ui/components/Tooltip/Tooltip.tsx @@ -30,7 +30,7 @@ export const Tooltip: FunctionComponent<Props> = ({ <Box p={2} className={styles.tooltip} - onClick={evt => { + onClick={(evt) => { // Don't propagate click events when clicking inside of popover to // avoid accidentally activating other components. evt.stopPropagation(); @@ -54,7 +54,7 @@ export const Tooltip: FunctionComponent<Props> = ({ placement={"bottom"} dark > - {props => button(props)} + {(props) => button(props)} </Popover> ); }; diff --git a/src/core/client/ui/components/Tooltip/TooltipButton.tsx b/src/core/client/ui/components/Tooltip/TooltipButton.tsx index 7e417aae4..965049d2b 100644 --- a/src/core/client/ui/components/Tooltip/TooltipButton.tsx +++ b/src/core/client/ui/components/Tooltip/TooltipButton.tsx @@ -26,7 +26,7 @@ const TooltipButton: FunctionComponent<Props> = ({ }) => ( <BaseButton className={cn(styles.button, className)} - onClick={evt => { + onClick={(evt) => { evt.stopPropagation(); toggleVisibility(); }} diff --git a/src/core/client/ui/components/v2/TrapFocus/TrapFocus.mdx b/src/core/client/ui/components/TrapFocus/README.mdx similarity index 97% rename from src/core/client/ui/components/v2/TrapFocus/TrapFocus.mdx rename to src/core/client/ui/components/TrapFocus/README.mdx index da30e1171..46df2907a 100644 --- a/src/core/client/ui/components/v2/TrapFocus/TrapFocus.mdx +++ b/src/core/client/ui/components/TrapFocus/README.mdx @@ -1,6 +1,6 @@ --- name: TrapFocus -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from 'docz' diff --git a/src/core/client/ui/components/TrapFocus/TrapFocus.spec.tsx b/src/core/client/ui/components/TrapFocus/TrapFocus.spec.tsx index 228600e9e..c8c137c38 100644 --- a/src/core/client/ui/components/TrapFocus/TrapFocus.spec.tsx +++ b/src/core/client/ui/components/TrapFocus/TrapFocus.spec.tsx @@ -35,7 +35,7 @@ it("renders correctly", () => { it("autofocus", () => { const autoFocus = sinon.stub(); create(<TrapFocus />, { - createNodeMock: el => ({ + createNodeMock: (el) => ({ focus: el.props.tabIndex === -1 ? autoFocus : noop, }), }); diff --git a/src/core/client/ui/components/Typography/Typography.mdx b/src/core/client/ui/components/Typography/README.mdx similarity index 99% rename from src/core/client/ui/components/Typography/Typography.mdx rename to src/core/client/ui/components/Typography/README.mdx index da4edf14f..2436c1a4d 100644 --- a/src/core/client/ui/components/Typography/Typography.mdx +++ b/src/core/client/ui/components/Typography/README.mdx @@ -1,6 +1,6 @@ --- name: Typography -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/Typography/Typography.css b/src/core/client/ui/components/Typography/Typography.css index cc52d79f2..d246d9f46 100644 --- a/src/core/client/ui/components/Typography/Typography.css +++ b/src/core/client/ui/components/Typography/Typography.css @@ -4,76 +4,76 @@ } .heading1 { - composes: heading1 from "coral-ui/shared/typography.css"; + composes: heading1 from "~coral-ui/shared/typography.css"; } .heading2 { - composes: heading2 from "coral-ui/shared/typography.css"; + composes: heading2 from "~coral-ui/shared/typography.css"; } .heading3 { - composes: heading3 from "coral-ui/shared/typography.css"; + composes: heading3 from "~coral-ui/shared/typography.css"; } .heading4 { - composes: heading4 from "coral-ui/shared/typography.css"; + composes: heading4 from "~coral-ui/shared/typography.css"; } .heading5 { - composes: heading5 from "coral-ui/shared/typography.css"; + composes: heading5 from "~coral-ui/shared/typography.css"; } .header1 { - composes: header1 from "coral-ui/shared/typography.css"; + composes: header1 from "~coral-ui/shared/typography.css"; } .header2 { - composes: header2 from "coral-ui/shared/typography.css"; + composes: header2 from "~coral-ui/shared/typography.css"; } .header3 { - composes: header3 from "coral-ui/shared/typography.css"; + composes: header3 from "~coral-ui/shared/typography.css"; } .header4 { - composes: header4 from "coral-ui/shared/typography.css"; + composes: header4 from "~coral-ui/shared/typography.css"; } .header5 { - composes: header5 from "coral-ui/shared/typography.css"; + composes: header5 from "~coral-ui/shared/typography.css"; } .bodyCopy { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; } .bodyCopyBold { - composes: bodyCopy from "coral-ui/shared/typography.css"; + composes: bodyCopy from "~coral-ui/shared/typography.css"; font-weight: var(--font-weight-medium); } .bodyShort { - composes: bodyShort from "coral-ui/shared/typography.css"; + composes: bodyShort from "~coral-ui/shared/typography.css"; } .fieldDescription { - composes: fieldDescription from "coral-ui/shared/typography.css"; + composes: fieldDescription from "~coral-ui/shared/typography.css"; } .button { - composes: button from "coral-ui/shared/typography.css"; + composes: button from "~coral-ui/shared/typography.css"; } .buttonLarge { - composes: buttonLarge from "coral-ui/shared/typography.css"; + composes: buttonLarge from "~coral-ui/shared/typography.css"; } .detail { - composes: detail from "coral-ui/shared/typography.css"; + composes: detail from "~coral-ui/shared/typography.css"; } .timestamp { - composes: timestamp from "coral-ui/shared/typography.css"; + composes: timestamp from "~coral-ui/shared/typography.css"; } .alignLeft { @@ -143,11 +143,11 @@ } .inputLabel { - composes: inputLabel from "coral-ui/shared/typography.css"; + composes: inputLabel from "~coral-ui/shared/typography.css"; } /* V2 Typography */ .bodyCommentV2 { - composes: bodyCommentV2 from "coral-ui/shared/typography.css"; + composes: bodyCommentV2 from "~coral-ui/shared/typography.css"; } diff --git a/src/core/client/ui/components/Typography/Typography.tsx b/src/core/client/ui/components/Typography/Typography.tsx index f9dabdbc4..d3fd67958 100644 --- a/src/core/client/ui/components/Typography/Typography.tsx +++ b/src/core/client/ui/components/Typography/Typography.tsx @@ -34,7 +34,7 @@ type Variant = // Based on Typography Component of Material UI. // https://github.com/mui-org/material-ui/blob/303199d39b42a321d28347d8440d69166f872f27/packages/material-ui/src/Typography/Typography.js -interface Props extends PropTypesOf<typeof Box> { +interface Props extends Omit<PropTypesOf<typeof Box>, "ref"> { /** * Set the text-align on the component. */ @@ -100,7 +100,7 @@ interface Props extends PropTypesOf<typeof Box> { forwardRef?: PropTypesOf<typeof Box>["ref"]; } -const Typography: FunctionComponent<Props> = props => { +const Typography: FunctionComponent<Props> = (props) => { const { align, classes, diff --git a/src/core/client/ui/components/v2/ValidationMessage/ValidationMessage.mdx b/src/core/client/ui/components/ValidationMessage/README.mdx similarity index 96% rename from src/core/client/ui/components/v2/ValidationMessage/ValidationMessage.mdx rename to src/core/client/ui/components/ValidationMessage/README.mdx index 28bbec5a6..446694122 100644 --- a/src/core/client/ui/components/v2/ValidationMessage/ValidationMessage.mdx +++ b/src/core/client/ui/components/ValidationMessage/README.mdx @@ -1,6 +1,6 @@ --- name: ValidationMessage -menu: UI Kit +menu: UI Kit v1 --- import { Playground } from 'docz' diff --git a/src/core/client/ui/components/ValidationMessage/ValidationMessage.tsx b/src/core/client/ui/components/ValidationMessage/ValidationMessage.tsx index d9cac0d65..70cc894d1 100644 --- a/src/core/client/ui/components/ValidationMessage/ValidationMessage.tsx +++ b/src/core/client/ui/components/ValidationMessage/ValidationMessage.tsx @@ -18,7 +18,9 @@ export interface ValidationMessageProps { fullWidth?: boolean; } -const ValidationMessage: FunctionComponent<ValidationMessageProps> = props => { +const ValidationMessage: FunctionComponent<ValidationMessageProps> = ( + props +) => { const { className, fullWidth, children, ...rest } = props; return ( diff --git a/src/core/client/ui/components/v2/AppBar/Begin.tsx b/src/core/client/ui/components/v2/AppBar/Begin.tsx index 08732cfc0..9f66f2dfc 100644 --- a/src/core/client/ui/components/v2/AppBar/Begin.tsx +++ b/src/core/client/ui/components/v2/AppBar/Begin.tsx @@ -7,7 +7,7 @@ import { PropTypesOf } from "coral-ui/types"; import styles from "./Begin.css"; -interface Props extends PropTypesOf<typeof Flex> { +interface Props extends Omit<PropTypesOf<typeof Flex>, "ref"> { children?: React.ReactNode; className?: string; classes: typeof styles; diff --git a/src/core/client/ui/components/v2/AppBar/End.tsx b/src/core/client/ui/components/v2/AppBar/End.tsx index ffc2275ef..828019543 100644 --- a/src/core/client/ui/components/v2/AppBar/End.tsx +++ b/src/core/client/ui/components/v2/AppBar/End.tsx @@ -7,7 +7,7 @@ import { PropTypesOf } from "coral-ui/types"; import styles from "./End.css"; -interface Props extends PropTypesOf<typeof Flex> { +interface Props extends Omit<PropTypesOf<typeof Flex>, "ref"> { children?: React.ReactNode; className?: string; classes: typeof styles; diff --git a/src/core/client/ui/components/v2/AppBar/AppBar.mdx b/src/core/client/ui/components/v2/AppBar/README.mdx similarity index 91% rename from src/core/client/ui/components/v2/AppBar/AppBar.mdx rename to src/core/client/ui/components/v2/AppBar/README.mdx index 6abd6a781..673ed272b 100644 --- a/src/core/client/ui/components/v2/AppBar/AppBar.mdx +++ b/src/core/client/ui/components/v2/AppBar/README.mdx @@ -1,9 +1,9 @@ --- name: AppBar -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { AppBar, Begin, End, Navigation, NavigationItem, Divider } from "./"; import Flex from "../Flex"; diff --git a/src/core/client/ui/components/v2/AriaInfo/AriaInfo.tsx b/src/core/client/ui/components/v2/AriaInfo/AriaInfo.tsx index 4ec81e353..ce4ee889a 100644 --- a/src/core/client/ui/components/v2/AriaInfo/AriaInfo.tsx +++ b/src/core/client/ui/components/v2/AriaInfo/AriaInfo.tsx @@ -18,7 +18,7 @@ interface Props extends AllHTMLAttributes<HTMLElement> { forwardRef?: Ref<HTMLElement>; } -const AriaInfo: FunctionComponent<Props> = props => { +const AriaInfo: FunctionComponent<Props> = (props) => { const { component, className, classes, forwardRef: ref, ...rest } = props; const Component: React.ComponentType< React.HTMLAttributes<HTMLElement> & React.ClassAttributes<HTMLElement> diff --git a/src/core/client/ui/components/AriaInfo/AriaInfo.mdx b/src/core/client/ui/components/v2/AriaInfo/README.mdx similarity index 95% rename from src/core/client/ui/components/AriaInfo/AriaInfo.mdx rename to src/core/client/ui/components/v2/AriaInfo/README.mdx index 6cdaf7b62..f7d4b8a5f 100644 --- a/src/core/client/ui/components/AriaInfo/AriaInfo.mdx +++ b/src/core/client/ui/components/v2/AriaInfo/README.mdx @@ -1,6 +1,6 @@ --- name: AriaInfo -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/Backdrop/Backdrop.mdx b/src/core/client/ui/components/v2/Backdrop/README.mdx similarity index 50% rename from src/core/client/ui/components/Backdrop/Backdrop.mdx rename to src/core/client/ui/components/v2/Backdrop/README.mdx index b1491616c..97294f769 100644 --- a/src/core/client/ui/components/Backdrop/Backdrop.mdx +++ b/src/core/client/ui/components/v2/Backdrop/README.mdx @@ -1,10 +1,10 @@ --- name: Backdrop -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; -import Container from "react-with-state-props"; +import { Playground } from "docz"; +import { useState } from "react"; import Button from "../Button"; import Backdrop from "./Backdrop"; @@ -14,19 +14,19 @@ import Backdrop from "./Backdrop"; ## Basic usage <Playground> - <Container - state={{ value: false }} - render={props => ( + {() => { + const [value, setValue] = useState(false); + return ( <div> - <Backdrop active={props.value} /> + <Backdrop active={value} /> <Button variant="filled" color="primary" - onClick={() => props.setValue(!props.value)} + onClick={() => setValue(!value)} > Toggle </Button> </div> - )} - /> + ); + }} </Playground> diff --git a/src/core/client/ui/components/v2/BaseButton/BaseButton.mdx b/src/core/client/ui/components/v2/BaseButton/README.mdx similarity index 92% rename from src/core/client/ui/components/v2/BaseButton/BaseButton.mdx rename to src/core/client/ui/components/v2/BaseButton/README.mdx index d4dd00669..cf03b3834 100644 --- a/src/core/client/ui/components/v2/BaseButton/BaseButton.mdx +++ b/src/core/client/ui/components/v2/BaseButton/README.mdx @@ -1,9 +1,9 @@ --- name: BaseButton -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import BaseButton from './BaseButton' # BaseButton diff --git a/src/core/client/ui/components/v2/Box/Box.tsx b/src/core/client/ui/components/v2/Box/Box.tsx index 4a00ccbd9..35e5c29f2 100644 --- a/src/core/client/ui/components/v2/Box/Box.tsx +++ b/src/core/client/ui/components/v2/Box/Box.tsx @@ -70,7 +70,7 @@ interface Props extends HTMLAttributes<any> { container?: React.ReactElement<any> | React.ComponentType<any> | string; } -const Box: FunctionComponent<Props> = props => { +const Box: FunctionComponent<Props> = (props) => { const { clone, classes, diff --git a/src/core/client/ui/components/Box/Box.mdx b/src/core/client/ui/components/v2/Box/README.mdx similarity index 96% rename from src/core/client/ui/components/Box/Box.mdx rename to src/core/client/ui/components/v2/Box/README.mdx index e7b8aa2a0..9f0a3f7ca 100644 --- a/src/core/client/ui/components/Box/Box.mdx +++ b/src/core/client/ui/components/v2/Box/README.mdx @@ -1,5 +1,5 @@ --- -menu: UI Kit +menu: UI Kit v2 name: Box --- diff --git a/src/core/client/ui/components/v2/Brand/Brand.mdx b/src/core/client/ui/components/v2/Brand/README.mdx similarity index 55% rename from src/core/client/ui/components/v2/Brand/Brand.mdx rename to src/core/client/ui/components/v2/Brand/README.mdx index 668a963ce..1c8f24de5 100644 --- a/src/core/client/ui/components/v2/Brand/Brand.mdx +++ b/src/core/client/ui/components/v2/Brand/README.mdx @@ -1,10 +1,10 @@ --- name: Brand -menu: UI Kit +menu: UI Kit v1 --- -import { Playground, PropsTable } from "docz"; -import { BrandName, BrandIcon, Logo } from "./"; +import { Playground } from "docz"; +import { BrandName, BrandMark, LogoHorizontal } from "./"; import HorizontalGutter from "../HorizontalGutter"; # Brand @@ -14,7 +14,7 @@ import HorizontalGutter from "../HorizontalGutter"; <Playground> <HorizontalGutter> <BrandName /> - <BrandIcon /> - <Logo /> + <BrandMark /> + <LogoHorizontal /> </HorizontalGutter> </Playground> diff --git a/src/core/client/ui/components/v2/Button/Button.tsx b/src/core/client/ui/components/v2/Button/Button.tsx index 82376abb8..ac9b74dcb 100644 --- a/src/core/client/ui/components/v2/Button/Button.tsx +++ b/src/core/client/ui/components/v2/Button/Button.tsx @@ -3,7 +3,7 @@ import { pick } from "lodash"; import React, { Ref } from "react"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import BaseButton, { BaseButtonProps } from "../BaseButton"; diff --git a/src/core/client/ui/components/v2/Button/ButtonIcon.tsx b/src/core/client/ui/components/v2/Button/ButtonIcon.tsx index e7b566be0..2a8d4d2ca 100644 --- a/src/core/client/ui/components/v2/Button/ButtonIcon.tsx +++ b/src/core/client/ui/components/v2/Button/ButtonIcon.tsx @@ -3,7 +3,7 @@ import React, { FunctionComponent, HTMLAttributes, Ref } from "react"; import Icon, { IconProps } from "coral-ui/components/v2/Icon"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import styles from "./ButtonIcon.css"; @@ -23,7 +23,7 @@ interface Props extends Omit<HTMLAttributes<HTMLSpanElement>, "color"> { forwardRef?: Ref<HTMLSpanElement>; } -export const ButtonIcon: FunctionComponent<Props> = props => { +export const ButtonIcon: FunctionComponent<Props> = (props) => { const { classes, className, forwardRef, ...rest } = props; const rootClassName = cn(classes.root, className); return <Icon className={rootClassName} {...rest} ref={forwardRef} />; diff --git a/src/core/client/ui/components/v2/Button/Button.mdx b/src/core/client/ui/components/v2/Button/README.mdx similarity index 99% rename from src/core/client/ui/components/v2/Button/Button.mdx rename to src/core/client/ui/components/v2/Button/README.mdx index 6abcd8ed0..40a13a620 100644 --- a/src/core/client/ui/components/v2/Button/Button.mdx +++ b/src/core/client/ui/components/v2/Button/README.mdx @@ -1,6 +1,6 @@ --- name: Button -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/v2/CallOut/CallOut.tsx b/src/core/client/ui/components/v2/CallOut/CallOut.tsx index 2b4efb0a0..075d368eb 100644 --- a/src/core/client/ui/components/v2/CallOut/CallOut.tsx +++ b/src/core/client/ui/components/v2/CallOut/CallOut.tsx @@ -33,7 +33,7 @@ export interface CallOutProps { borderless?: boolean; } -const CallOut: FunctionComponent<CallOutProps> = props => { +const CallOut: FunctionComponent<CallOutProps> = (props) => { const { borderless, className, diff --git a/src/core/client/ui/components/CallOut/CallOut.mdx b/src/core/client/ui/components/v2/CallOut/README.mdx similarity index 95% rename from src/core/client/ui/components/CallOut/CallOut.mdx rename to src/core/client/ui/components/v2/CallOut/README.mdx index fb71ea7ee..78b9be68b 100644 --- a/src/core/client/ui/components/CallOut/CallOut.mdx +++ b/src/core/client/ui/components/v2/CallOut/README.mdx @@ -1,9 +1,9 @@ --- name: CallOut -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import CallOut from './CallOut' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/v2/Card/Card.tsx b/src/core/client/ui/components/v2/Card/Card.tsx index bba4b3c59..cd41c9d6d 100644 --- a/src/core/client/ui/components/v2/Card/Card.tsx +++ b/src/core/client/ui/components/v2/Card/Card.tsx @@ -23,7 +23,7 @@ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> { forwardRef?: Ref<HTMLDivElement>; } -const Card: FunctionComponent<CardProps> = props => { +const Card: FunctionComponent<CardProps> = (props) => { const { className, classes, children, forwardRef, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/v2/Card/CloseButton.tsx b/src/core/client/ui/components/v2/Card/CloseButton.tsx index 4f3247e7c..75635c446 100644 --- a/src/core/client/ui/components/v2/Card/CloseButton.tsx +++ b/src/core/client/ui/components/v2/Card/CloseButton.tsx @@ -1,7 +1,7 @@ import React, { FunctionComponent, Ref } from "react"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import BaseButton from "../BaseButton"; import Flex from "../Flex"; @@ -20,7 +20,7 @@ export interface CloseButtonProps forwardRef?: Ref<HTMLButtonElement>; } -const CloseButton: FunctionComponent<CloseButtonProps> = props => { +const CloseButton: FunctionComponent<CloseButtonProps> = (props) => { const { classes: { icon: iconClassName, ...restClasses }, forwardRef, diff --git a/src/core/client/ui/components/Card/Card.mdx b/src/core/client/ui/components/v2/Card/README.mdx similarity index 95% rename from src/core/client/ui/components/Card/Card.mdx rename to src/core/client/ui/components/v2/Card/README.mdx index 8de7390ce..8deb04c4f 100644 --- a/src/core/client/ui/components/Card/Card.mdx +++ b/src/core/client/ui/components/v2/Card/README.mdx @@ -1,9 +1,9 @@ --- name: Card -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Card from "./Card"; import CloseButton from "./CloseButton"; diff --git a/src/core/client/ui/components/v2/CheckBox/CheckBox.tsx b/src/core/client/ui/components/v2/CheckBox/CheckBox.tsx index d97a7b102..63e82d29f 100644 --- a/src/core/client/ui/components/v2/CheckBox/CheckBox.tsx +++ b/src/core/client/ui/components/v2/CheckBox/CheckBox.tsx @@ -1,6 +1,6 @@ import cn from "classnames"; import React, { ChangeEvent, Component, EventHandler, FocusEvent } from "react"; -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import { withKeyboardFocus, withStyles } from "coral-ui/hocs"; diff --git a/src/core/client/ui/components/CheckBox/CheckBox.mdx b/src/core/client/ui/components/v2/CheckBox/README.mdx similarity index 87% rename from src/core/client/ui/components/CheckBox/CheckBox.mdx rename to src/core/client/ui/components/v2/CheckBox/README.mdx index ae33bbbf5..c7fbe6cf5 100644 --- a/src/core/client/ui/components/CheckBox/CheckBox.mdx +++ b/src/core/client/ui/components/v2/CheckBox/README.mdx @@ -1,9 +1,9 @@ --- name: CheckBox -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import CheckBox from './CheckBox.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/v2/ClickOutside/ClickOutside.spec.tsx b/src/core/client/ui/components/v2/ClickOutside/ClickOutside.spec.tsx index e70821644..54d4bb201 100644 --- a/src/core/client/ui/components/v2/ClickOutside/ClickOutside.spec.tsx +++ b/src/core/client/ui/components/v2/ClickOutside/ClickOutside.spec.tsx @@ -70,7 +70,7 @@ it("should ignore click inside", () => { it("should detect click far away", () => { let emitFarAwayClick: ClickFarAwayCallback = Function; const unlisten = sinon.spy(); - const registerClickFarAway: ClickFarAwayRegister = cb => { + const registerClickFarAway: ClickFarAwayRegister = (cb) => { emitFarAwayClick = cb; return unlisten; }; diff --git a/src/core/client/ui/components/v2/ClickOutside/ClickOutside.tsx b/src/core/client/ui/components/v2/ClickOutside/ClickOutside.tsx index ffef90688..f9f5d5323 100644 --- a/src/core/client/ui/components/v2/ClickOutside/ClickOutside.tsx +++ b/src/core/client/ui/components/v2/ClickOutside/ClickOutside.tsx @@ -67,7 +67,9 @@ export class ClickOutside extends React.Component<ClickOutsideProps> { } } -const ClickOutsideWithContext: FunctionComponent<ClickOutsideProps> = props => ( +const ClickOutsideWithContext: FunctionComponent<ClickOutsideProps> = ( + props +) => ( <UIContext.Consumer> {({ registerClickFarAway }) => ( <ClickOutside {...props} registerClickFarAway={registerClickFarAway} /> diff --git a/src/core/client/ui/components/v2/ClickOutside/ClickOutside.mdx b/src/core/client/ui/components/v2/ClickOutside/README.mdx similarity index 92% rename from src/core/client/ui/components/v2/ClickOutside/ClickOutside.mdx rename to src/core/client/ui/components/v2/ClickOutside/README.mdx index 04bd19da7..4488de94f 100644 --- a/src/core/client/ui/components/v2/ClickOutside/ClickOutside.mdx +++ b/src/core/client/ui/components/v2/ClickOutside/README.mdx @@ -1,9 +1,9 @@ --- name: ClickOutside -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import ClickOutside from './ClickOutside' import Button from '../Button/Button' diff --git a/src/core/client/ui/components/v2/Counter/Counter.mdx b/src/core/client/ui/components/v2/Counter/README.mdx similarity index 89% rename from src/core/client/ui/components/v2/Counter/Counter.mdx rename to src/core/client/ui/components/v2/Counter/README.mdx index 73e13787c..5e37d7995 100644 --- a/src/core/client/ui/components/v2/Counter/Counter.mdx +++ b/src/core/client/ui/components/v2/Counter/README.mdx @@ -1,9 +1,9 @@ --- name: Counter -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Flex from "../Flex"; import Counter from "./Counter"; diff --git a/src/core/client/ui/components/Delay/Delay.mdx b/src/core/client/ui/components/v2/Delay/README.mdx similarity index 85% rename from src/core/client/ui/components/Delay/Delay.mdx rename to src/core/client/ui/components/v2/Delay/README.mdx index 9a3375d97..4b8150b40 100644 --- a/src/core/client/ui/components/Delay/Delay.mdx +++ b/src/core/client/ui/components/v2/Delay/README.mdx @@ -1,9 +1,9 @@ --- name: Delay -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Delay from "./Delay.tsx"; import HorizontalGutter from "../HorizontalGutter"; import Spinner from "../Spinner"; diff --git a/src/core/client/ui/components/v2/Dropdown/Button.tsx b/src/core/client/ui/components/v2/Dropdown/Button.tsx index b3acc8c5a..bec4dd3ba 100644 --- a/src/core/client/ui/components/v2/Dropdown/Button.tsx +++ b/src/core/client/ui/components/v2/Dropdown/Button.tsx @@ -1,7 +1,6 @@ import cn from "classnames"; import React, { FunctionComponent } from "react"; -import { Omit } from "coral-framework/types"; import { withStyles } from "coral-ui/hocs"; import BaseButton, { BaseButtonProps } from "coral-ui/components/BaseButton"; diff --git a/src/core/client/ui/components/Dropdown/Dropdown.mdx b/src/core/client/ui/components/v2/Dropdown/README.mdx similarity index 95% rename from src/core/client/ui/components/Dropdown/Dropdown.mdx rename to src/core/client/ui/components/v2/Dropdown/README.mdx index 46ac31ceb..a78e35842 100644 --- a/src/core/client/ui/components/Dropdown/Dropdown.mdx +++ b/src/core/client/ui/components/v2/Dropdown/README.mdx @@ -1,9 +1,9 @@ --- name: Dropdown -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { Dropdown, diff --git a/src/core/client/ui/components/v2/DurationField/DurationField.tsx b/src/core/client/ui/components/v2/DurationField/DurationField.tsx index 08d300de1..07457d12d 100644 --- a/src/core/client/ui/components/v2/DurationField/DurationField.tsx +++ b/src/core/client/ui/components/v2/DurationField/DurationField.tsx @@ -99,9 +99,10 @@ const DurationField: FunctionComponent<Props> = ({ } }, [value]); - const elementCallbacks = useMemo(() => units.map(k => DURATION_UNIT_MAP[k]), [ - units, - ]); + const elementCallbacks = useMemo( + () => units.map((k) => DURATION_UNIT_MAP[k]), + [units] + ); const { value: computedValue } = useMemo( () => convertFromSeconds(value, units, selectedUnit), diff --git a/src/core/client/ui/components/v2/FieldSet/FieldSet.tsx b/src/core/client/ui/components/v2/FieldSet/FieldSet.tsx index 3526f54aa..c0db95e91 100644 --- a/src/core/client/ui/components/v2/FieldSet/FieldSet.tsx +++ b/src/core/client/ui/components/v2/FieldSet/FieldSet.tsx @@ -16,7 +16,7 @@ interface InnerProps extends AllHTMLAttributes<HTMLElement> { forwardRef?: Ref<HTMLFieldSetElement>; } -const FieldSet: FunctionComponent<InnerProps> = props => { +const FieldSet: FunctionComponent<InnerProps> = (props) => { const { className, classes, forwardRef: ref, ...rest } = props; const rootClassName = cn(classes.root, className); return <fieldset className={rootClassName} {...rest} ref={ref} />; diff --git a/src/core/client/ui/components/v2/FieldSet/FieldSet.mdx b/src/core/client/ui/components/v2/FieldSet/README.mdx similarity index 63% rename from src/core/client/ui/components/v2/FieldSet/FieldSet.mdx rename to src/core/client/ui/components/v2/FieldSet/README.mdx index 52fdd24fc..d0d1701a4 100644 --- a/src/core/client/ui/components/v2/FieldSet/FieldSet.mdx +++ b/src/core/client/ui/components/v2/FieldSet/README.mdx @@ -1,9 +1,9 @@ --- name: FieldSet -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; # FieldSet diff --git a/src/core/client/ui/components/v2/Flex/Flex.tsx b/src/core/client/ui/components/v2/Flex/Flex.tsx index 878e90fd9..86ad461e1 100644 --- a/src/core/client/ui/components/v2/Flex/Flex.tsx +++ b/src/core/client/ui/components/v2/Flex/Flex.tsx @@ -11,7 +11,7 @@ import Box from "../Box"; import styles from "./Flex.css"; -interface Props extends PropTypesOf<typeof Box> { +interface Props extends Omit<PropTypesOf<typeof Box>, "ref"> { /** * This prop can be used to add custom classnames. * It is handled by the `withStyles `HOC. @@ -39,7 +39,7 @@ interface Props extends PropTypesOf<typeof Box> { forwardRef?: Ref<HTMLDivElement>; } -const Flex: FunctionComponent<Props> = props => { +const Flex: FunctionComponent<Props> = (props) => { const { classes, className, @@ -88,7 +88,7 @@ const Flex: FunctionComponent<Props> = props => { // text nodes can't be modified with css, so replace them with spans. // Readd spaces at the beginning or end of text nodes because // flex removes it. - const content = React.Children.map(children, child => { + const content = React.Children.map(children, (child) => { if (typeof child === "string") { return <span>{child.replace(/^ +| +$/g, "\xa0")}</span>; } diff --git a/src/core/client/ui/components/v2/Flex/Flex.mdx b/src/core/client/ui/components/v2/Flex/README.mdx similarity index 95% rename from src/core/client/ui/components/v2/Flex/Flex.mdx rename to src/core/client/ui/components/v2/Flex/README.mdx index baf6177f4..839c8ba61 100644 --- a/src/core/client/ui/components/v2/Flex/Flex.mdx +++ b/src/core/client/ui/components/v2/Flex/README.mdx @@ -1,9 +1,9 @@ --- name: Flex -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Flex from "./Flex"; import HorizontalGutter from "../HorizontalGutter"; import Button from "../Button"; diff --git a/src/core/client/ui/components/v2/FormField/FormField.mdx b/src/core/client/ui/components/v2/FormField/FormField.mdx deleted file mode 100644 index f6b369861..000000000 --- a/src/core/client/ui/components/v2/FormField/FormField.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -name: FormField -menu: UI Kit ---- - -import { Playground, PropsTable } from 'docz' -import { Field } from "react-final-form"; -import { Label, FormFieldHeader, TextField, FormFieldDescription, HelperText, FormField, TextFieldWithValidation, DurationField, ValidationMessage } from '../' - -# FormField - -`FormField` is to be used with Form Components: `FormFieldDescription`, `FormFieldHeader`, `TextField`, `HelperText`, etc. -These components manage the gutters between inner elements to ensure consistent spacing. - -- `FormField` should wrap a form input and its label, along with any field descriptions or helper text -- `FormFieldHeader` wraps a form label and its helper text. Not necessary if there's only a label -- `FormFieldDescription` is a general description or explanation of the field or series of fields -- `HelperText` is clarifying information or instructions, that follows a label -- `TextFieldWithValidation` wraps a text field and its validation - -## Justify content -<Playground> - <FormField> - <Label htmlFor="simple.field">A simple form field</Label> - <Field name="simple.field"> - {({ input, meta }) => ( - <TextFieldWithValidation - meta={meta} - {...input} - /> - )} - </Field> - </FormField> - <FormField> - <FormFieldDescription>This is a description of this form field</FormFieldDescription> - <FormFieldHeader> - <Label htmlFor="simple.field">A form field with helper text</Label> - <HelperText>This is some helper text or instructions</HelperText> - </FormFieldHeader> - <Field name="simple.field"> - {({ input, meta }) => ( - <TextFieldWithValidation - meta={meta} - {...input} - /> - )} - </Field> - </FormField> - <FormField> - <Label htmlFor="simple.field">A form field with a different input type</Label> - <Field name="simple.field"> - {({ input, meta }) => ( - <HorizontalGutter spacing={2}> - <DurationField - units={[DURATION_UNIT.WEEKS,]} - disabled={disabled} - color={colorFromMeta(meta)} - {...input} - /> - <ValidationMessage meta={meta} fullWidth /> - </HorizontalGutter> - )} - </Field> - </FormField> -</Playground> diff --git a/src/core/client/ui/components/v2/FormField/FormField.tsx b/src/core/client/ui/components/v2/FormField/FormField.tsx index d44afff6a..7e8189738 100644 --- a/src/core/client/ui/components/v2/FormField/FormField.tsx +++ b/src/core/client/ui/components/v2/FormField/FormField.tsx @@ -2,7 +2,7 @@ import cn from "classnames"; import React, { FunctionComponent, ReactNode } from "react"; import { withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import HorizontalGutter from "coral-ui/components/HorizontalGutter"; @@ -14,7 +14,7 @@ interface Props extends Omit<PropTypesOf<typeof HorizontalGutter>, "ref"> { className?: string; } -const FormField: FunctionComponent<Props> = props => { +const FormField: FunctionComponent<Props> = (props) => { const { classes, className, children, ...rest } = props; return ( diff --git a/src/core/client/ui/components/v2/FormField/README.mdx b/src/core/client/ui/components/v2/FormField/README.mdx new file mode 100644 index 000000000..8dc28b368 --- /dev/null +++ b/src/core/client/ui/components/v2/FormField/README.mdx @@ -0,0 +1,76 @@ +--- +name: FormField +menu: UI Kit v2 +--- + +import { Playground } from 'docz' +import { Field, Form } from "react-final-form"; +import { noop } from 'lodash' + + +import { Label, FormFieldHeader, TextField, FormFieldDescription, HelperText, FormField, DurationField, ValidationMessage, DURATION_UNIT } from '../' +import HorizontalGutter from "../HorizontalGutter"; + +# FormField + +`FormField` is to be used with Form Components: `FormFieldDescription`, `FormFieldHeader`, `TextField`, `HelperText`, etc. +These components manage the gutters between inner elements to ensure consistent spacing. + +- `FormField` should wrap a form input and its label, along with any field descriptions or helper text +- `FormFieldHeader` wraps a form label and its helper text. Not necessary if there's only a label +- `FormFieldDescription` is a general description or explanation of the field or series of fields +- `HelperText` is clarifying information or instructions, that follows a label + +## Justify content +<Playground> + <Form onSubmit={noop}> + {() => ( + <> + <FormField> + <Label htmlFor="simple.field">A simple form field</Label> + <Field name="simple.field"> + {({ input, meta }) => ( + <TextField + meta={meta} + {...input} + /> + )} + </Field> + </FormField> + <FormField> + <FormFieldDescription>This is a description of this form field</FormFieldDescription> + <FormFieldHeader> + <Label htmlFor="simple.field">A form field with helper text</Label> + <HelperText>This is some helper text or instructions</HelperText> + </FormFieldHeader> + <Field name="simple.field"> + {({ input, meta }) => ( + <> + <TextField + meta={meta} + {...input} + /> + <ValidationMessage meta={meta} fullWidth /> + </> + )} + </Field> + </FormField> + <FormField> + <Label htmlFor="simple.field">A form field with a different input type</Label> + <Field name="simple.field"> + {({ input, meta }) => ( + <HorizontalGutter spacing={2}> + <DurationField + units={[DURATION_UNIT.WEEKS]} + disabled={false} + {...input} + /> + <ValidationMessage meta={meta} fullWidth /> + </HorizontalGutter> + )} + </Field> + </FormField> + </> + )} + </Form> +</Playground> diff --git a/src/core/client/ui/components/v2/FormFieldFooter/FormFieldFooter.tsx b/src/core/client/ui/components/v2/FormFieldFooter/FormFieldFooter.tsx index 165e15146..d41d29b5b 100644 --- a/src/core/client/ui/components/v2/FormFieldFooter/FormFieldFooter.tsx +++ b/src/core/client/ui/components/v2/FormFieldFooter/FormFieldFooter.tsx @@ -2,7 +2,7 @@ import cn from "classnames"; import React, { FunctionComponent, ReactNode } from "react"; import { withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import HorizontalGutter from "coral-ui/components/HorizontalGutter"; @@ -14,7 +14,7 @@ interface Props extends Omit<PropTypesOf<typeof HorizontalGutter>, "ref"> { className?: string; } -const FormFieldFooter: FunctionComponent<Props> = props => { +const FormFieldFooter: FunctionComponent<Props> = (props) => { const { classes, className, children, ...rest } = props; return ( diff --git a/src/core/client/ui/components/v2/FormFieldHeader/FormFieldHeader.tsx b/src/core/client/ui/components/v2/FormFieldHeader/FormFieldHeader.tsx index e08b15daf..a0efd4858 100644 --- a/src/core/client/ui/components/v2/FormFieldHeader/FormFieldHeader.tsx +++ b/src/core/client/ui/components/v2/FormFieldHeader/FormFieldHeader.tsx @@ -2,7 +2,7 @@ import cn from "classnames"; import React, { FunctionComponent, ReactNode } from "react"; import { withStyles } from "coral-ui/hocs"; -import { Omit, PropTypesOf } from "coral-ui/types"; +import { PropTypesOf } from "coral-ui/types"; import HorizontalGutter from "coral-ui/components/HorizontalGutter"; @@ -14,7 +14,7 @@ interface Props extends Omit<PropTypesOf<typeof HorizontalGutter>, "ref"> { className?: string; } -const FormFieldHeader: FunctionComponent<Props> = props => { +const FormFieldHeader: FunctionComponent<Props> = (props) => { const { classes, className, children, ...rest } = props; return ( diff --git a/src/core/client/ui/components/v2/HorizontalGutter/HorizontalGutter.tsx b/src/core/client/ui/components/v2/HorizontalGutter/HorizontalGutter.tsx index 7efb764a8..22f864ae4 100644 --- a/src/core/client/ui/components/v2/HorizontalGutter/HorizontalGutter.tsx +++ b/src/core/client/ui/components/v2/HorizontalGutter/HorizontalGutter.tsx @@ -10,7 +10,7 @@ import Box from "../Box"; import styles from "./HorizontalGutter.css"; -interface Props extends PropTypesOf<typeof Box> { +interface Props extends Omit<PropTypesOf<typeof Box>, "ref"> { /** * This prop can be used to add custom classnames. * It is handled by the `withStyles `HOC. @@ -37,7 +37,7 @@ interface Props extends PropTypesOf<typeof Box> { container?: React.ReactElement<any> | React.ComponentType<any> | string; } -const HorizontalGutter: FunctionComponent<Props> = props => { +const HorizontalGutter: FunctionComponent<Props> = (props) => { const { classes, className, diff --git a/src/core/client/ui/components/v2/HorizontalGutter/HorizontalGutter.mdx b/src/core/client/ui/components/v2/HorizontalGutter/README.mdx similarity index 98% rename from src/core/client/ui/components/v2/HorizontalGutter/HorizontalGutter.mdx rename to src/core/client/ui/components/v2/HorizontalGutter/README.mdx index 40a7908ad..c20aa1498 100644 --- a/src/core/client/ui/components/v2/HorizontalGutter/HorizontalGutter.mdx +++ b/src/core/client/ui/components/v2/HorizontalGutter/README.mdx @@ -1,6 +1,6 @@ --- name: HorizontalGutter -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/v2/Icon/Icon.tsx b/src/core/client/ui/components/v2/Icon/Icon.tsx index 601624fb6..2f7086ceb 100644 --- a/src/core/client/ui/components/v2/Icon/Icon.tsx +++ b/src/core/client/ui/components/v2/Icon/Icon.tsx @@ -27,7 +27,7 @@ interface Props extends HTMLAttributes<HTMLSpanElement> { forwardRef?: Ref<HTMLSpanElement>; } -const Icon: FunctionComponent<Props> = props => { +const Icon: FunctionComponent<Props> = (props) => { const { classes, className, size, color, forwardRef, ...rest } = props; const rootClassName = cn( diff --git a/src/core/client/ui/components/v2/Icon/Icon.mdx b/src/core/client/ui/components/v2/Icon/README.mdx similarity index 83% rename from src/core/client/ui/components/v2/Icon/Icon.mdx rename to src/core/client/ui/components/v2/Icon/README.mdx index 83428c28b..442381991 100644 --- a/src/core/client/ui/components/v2/Icon/Icon.mdx +++ b/src/core/client/ui/components/v2/Icon/README.mdx @@ -1,9 +1,9 @@ --- name: Icon -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import Icon from './Icon' # Icon diff --git a/src/core/client/ui/components/v2/InputLabel/InputLabel.tsx b/src/core/client/ui/components/v2/InputLabel/InputLabel.tsx index 8ef103bc2..070bc5c31 100644 --- a/src/core/client/ui/components/v2/InputLabel/InputLabel.tsx +++ b/src/core/client/ui/components/v2/InputLabel/InputLabel.tsx @@ -22,7 +22,7 @@ export interface InputLabelProps { classes: typeof styles; } -const InputLabelProps: FunctionComponent<InputLabelProps> = props => { +const InputLabelProps: FunctionComponent<InputLabelProps> = (props) => { const { className, children, classes, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/InputLabel/InputLabel.mdx b/src/core/client/ui/components/v2/InputLabel/README.mdx similarity index 82% rename from src/core/client/ui/components/InputLabel/InputLabel.mdx rename to src/core/client/ui/components/v2/InputLabel/README.mdx index 57b5156cb..db2f425d5 100644 --- a/src/core/client/ui/components/InputLabel/InputLabel.mdx +++ b/src/core/client/ui/components/v2/InputLabel/README.mdx @@ -1,9 +1,9 @@ --- name: InputLabel -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import InputLabel from './InputLabel.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/v2/Marker/Count.tsx b/src/core/client/ui/components/v2/Marker/Count.tsx index 96f13ae8c..3cc8fad73 100644 --- a/src/core/client/ui/components/v2/Marker/Count.tsx +++ b/src/core/client/ui/components/v2/Marker/Count.tsx @@ -14,7 +14,7 @@ interface Props { children: React.ReactNode; } -const Count: FunctionComponent<Props> = props => { +const Count: FunctionComponent<Props> = (props) => { const { className, children, classes, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/v2/Marker/Marker.tsx b/src/core/client/ui/components/v2/Marker/Marker.tsx index 3a6063d1c..61409ad79 100644 --- a/src/core/client/ui/components/v2/Marker/Marker.tsx +++ b/src/core/client/ui/components/v2/Marker/Marker.tsx @@ -20,7 +20,7 @@ interface Props { variant?: "regular" | "filled"; } -const Marker: FunctionComponent<Props> = props => { +const Marker: FunctionComponent<Props> = (props) => { const { className, children, classes, color, variant, ...rest } = props; const rootClassName = cn(classes.root, className, { diff --git a/src/core/client/ui/components/v2/Marker/Marker.mdx b/src/core/client/ui/components/v2/Marker/README.mdx similarity index 94% rename from src/core/client/ui/components/v2/Marker/Marker.mdx rename to src/core/client/ui/components/v2/Marker/README.mdx index 7a5138a8f..81363dc60 100644 --- a/src/core/client/ui/components/v2/Marker/Marker.mdx +++ b/src/core/client/ui/components/v2/Marker/README.mdx @@ -1,9 +1,9 @@ --- name: Marker -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Marker from "./Marker"; import Count from "./Count"; import HorizontalGutter from "../HorizontalGutter"; diff --git a/src/core/client/ui/components/v2/Message/Message.tsx b/src/core/client/ui/components/v2/Message/Message.tsx index b07db57a4..58e735d12 100644 --- a/src/core/client/ui/components/v2/Message/Message.tsx +++ b/src/core/client/ui/components/v2/Message/Message.tsx @@ -28,7 +28,7 @@ export interface MessageProps { color?: "error" | "grey" | "primary" | "dark"; } -const Message: FunctionComponent<MessageProps> = props => { +const Message: FunctionComponent<MessageProps> = (props) => { const { className, classes, fullWidth, children, color, ...rest } = props; const rootClassName = cn( diff --git a/src/core/client/ui/components/v2/Message/MessageIcon.tsx b/src/core/client/ui/components/v2/Message/MessageIcon.tsx index d6b2eed38..533bf040b 100644 --- a/src/core/client/ui/components/v2/Message/MessageIcon.tsx +++ b/src/core/client/ui/components/v2/Message/MessageIcon.tsx @@ -3,7 +3,6 @@ import React, { FunctionComponent, HTMLAttributes, Ref } from "react"; import Icon, { IconProps } from "coral-ui/components/Icon"; import { withForwardRef, withStyles } from "coral-ui/hocs"; -import { Omit } from "coral-ui/types"; import styles from "./MessageIcon.css"; @@ -23,7 +22,7 @@ interface Props extends Omit<HTMLAttributes<HTMLSpanElement>, "color"> { forwardRef?: Ref<HTMLSpanElement>; } -export const MessageIcon: FunctionComponent<Props> = props => { +export const MessageIcon: FunctionComponent<Props> = (props) => { const { classes, className, forwardRef, ...rest } = props; const rootClassName = cn(classes.root, className); return <Icon className={rootClassName} {...rest} ref={forwardRef} />; diff --git a/src/core/client/ui/components/Message/Message.mdx b/src/core/client/ui/components/v2/Message/README.mdx similarity index 98% rename from src/core/client/ui/components/Message/Message.mdx rename to src/core/client/ui/components/v2/Message/README.mdx index 5baa5aa78..f0e9a477a 100644 --- a/src/core/client/ui/components/Message/Message.mdx +++ b/src/core/client/ui/components/v2/Message/README.mdx @@ -1,6 +1,6 @@ --- name: Message -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/v2/Modal/Modal.spec.tsx b/src/core/client/ui/components/v2/Modal/Modal.spec.tsx index 02fa4f970..82f092ba0 100644 --- a/src/core/client/ui/components/v2/Modal/Modal.spec.tsx +++ b/src/core/client/ui/components/v2/Modal/Modal.spec.tsx @@ -78,7 +78,7 @@ it("relays esc events", () => { { createNodeMock } ); }); - const el = testRenderer!.root.find(i => i.props.onKeyDown); + const el = testRenderer!.root.find((i) => i.props.onKeyDown); el.props.onKeyDown(escEvent); el.props.onKeyDown(otherEvent); TestRenderer.act(() => { diff --git a/src/core/client/ui/components/v2/Modal/Modal.mdx b/src/core/client/ui/components/v2/Modal/README.mdx similarity index 96% rename from src/core/client/ui/components/v2/Modal/Modal.mdx rename to src/core/client/ui/components/v2/Modal/README.mdx index 93bc3d11c..dc8c7902a 100644 --- a/src/core/client/ui/components/v2/Modal/Modal.mdx +++ b/src/core/client/ui/components/v2/Modal/README.mdx @@ -1,9 +1,9 @@ --- name: Modal -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { useState, useCallback } from "react"; import Button from "../Button"; diff --git a/src/core/client/ui/components/v2/NoScroll/NoScroll.tsx b/src/core/client/ui/components/v2/NoScroll/NoScroll.tsx index 5e995f542..2c6f7ced5 100644 --- a/src/core/client/ui/components/v2/NoScroll/NoScroll.tsx +++ b/src/core/client/ui/components/v2/NoScroll/NoScroll.tsx @@ -17,7 +17,7 @@ const NoScroll: FunctionComponent<Props> = ({ active }) => { // Add className. document.body.className = document.body.className .split(/\s+/) - .filter(s => s) + .filter((s) => s) .concat(styles.noScroll) .join(" "); } @@ -28,7 +28,7 @@ const NoScroll: FunctionComponent<Props> = ({ active }) => { // Remove className. document.body.className = document.body.className .split(/\s+/) - .filter(s => s && s !== styles.noScroll) + .filter((s) => s && s !== styles.noScroll) .join(" "); } }; diff --git a/src/core/client/ui/components/v2/NoScroll/NoScroll.mdx b/src/core/client/ui/components/v2/NoScroll/README.mdx similarity index 51% rename from src/core/client/ui/components/v2/NoScroll/NoScroll.mdx rename to src/core/client/ui/components/v2/NoScroll/README.mdx index 6781badcb..2fa3fcfaf 100644 --- a/src/core/client/ui/components/v2/NoScroll/NoScroll.mdx +++ b/src/core/client/ui/components/v2/NoScroll/README.mdx @@ -1,10 +1,10 @@ --- name: NoScroll -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; -import Container from "react-with-state-props"; +import { Playground } from "docz"; +import { useState } from "react"; import Button from "../Button"; import NoScroll from "./NoScroll"; @@ -16,20 +16,20 @@ Disables scrolling of `<body>`. ## Basic usage <Playground> - <Container - state={{ value: false }} - render={props => ( + {() => { + const [value, setValue] = useState(false); + return ( <div> - <NoScroll active={props.value} /> + <NoScroll active={value} /> <Button variant="ghost" color="primary" - active={props.value} - onClick={() => props.setValue(!props.value)} + active={value} + onClick={() => setValue(!value)} > Disable Scrolling </Button> </div> - )} - /> + ); + }} </Playground> diff --git a/src/core/client/ui/components/v2/PasswordField/PasswordField.tsx b/src/core/client/ui/components/v2/PasswordField/PasswordField.tsx index bc8431791..8342bb0df 100644 --- a/src/core/client/ui/components/v2/PasswordField/PasswordField.tsx +++ b/src/core/client/ui/components/v2/PasswordField/PasswordField.tsx @@ -95,7 +95,7 @@ class PasswordField extends Component<PasswordFieldProps, State> { }; private toggleVisibility = () => { - this.setState(state => ({ + this.setState((state) => ({ reveal: !state.reveal, })); }; diff --git a/src/core/client/ui/components/PasswordField/PasswordField.mdx b/src/core/client/ui/components/v2/PasswordField/README.mdx similarity index 90% rename from src/core/client/ui/components/PasswordField/PasswordField.mdx rename to src/core/client/ui/components/v2/PasswordField/README.mdx index 965d2dd97..71aca8e0a 100644 --- a/src/core/client/ui/components/PasswordField/PasswordField.mdx +++ b/src/core/client/ui/components/v2/PasswordField/README.mdx @@ -1,9 +1,9 @@ --- name: PasswordField -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import PasswordField from "./PasswordField.tsx"; import HorizontalGutter from "../HorizontalGutter"; diff --git a/src/core/client/ui/components/v2/Popover/Arrow.tsx b/src/core/client/ui/components/v2/Popover/Arrow.tsx index e40145a6a..4032ba379 100644 --- a/src/core/client/ui/components/v2/Popover/Arrow.tsx +++ b/src/core/client/ui/components/v2/Popover/Arrow.tsx @@ -10,7 +10,7 @@ interface Props extends React.HTMLAttributes<HTMLDivElement> { forwardRef?: Ref<HTMLDivElement>; } -const Arrow: FunctionComponent<Props> = props => { +const Arrow: FunctionComponent<Props> = (props) => { const { className, dark, forwardRef: ref, ...rest } = props; return ( <div diff --git a/src/core/client/ui/components/v2/Popover/Popover.tsx b/src/core/client/ui/components/v2/Popover/Popover.tsx index af6cb4c31..3f3fd42d1 100644 --- a/src/core/client/ui/components/v2/Popover/Popover.tsx +++ b/src/core/client/ui/components/v2/Popover/Popover.tsx @@ -1,6 +1,6 @@ import cn from "classnames"; import React from "react"; -import { Manager, Popper, Reference, RefHandler } from "react-popper"; +import { Manager, Popper, Reference } from "react-popper"; import { oncePerFrame } from "coral-common/utils"; import { withStyles } from "coral-ui/hocs"; @@ -35,7 +35,7 @@ interface BodyRenderProps { interface ChildrenRenderProps { /** toggles visibility, if event is provided, the event will stop propagating. */ toggleVisibility: (event?: React.SyntheticEvent | Event) => void; - ref?: RefHandler; + ref?: React.Ref<any>; visible: boolean; } @@ -139,7 +139,7 @@ class Popover extends React.Component<PopoverProps> { <div className={cn(classes.root, className)} {...rest}> <Manager> <Reference> - {props => + {(props) => children({ ref: props.ref, toggleVisibility: this.toggleVisibility, @@ -153,7 +153,7 @@ class Popover extends React.Component<PopoverProps> { positionFixed={positionFixed} modifiers={modifiers} > - {props => ( + {(props) => ( <div id={id} role="dialog" diff --git a/src/core/client/ui/components/v2/Popover/Popover.mdx b/src/core/client/ui/components/v2/Popover/README.mdx similarity index 99% rename from src/core/client/ui/components/v2/Popover/Popover.mdx rename to src/core/client/ui/components/v2/Popover/README.mdx index 14e558b3b..9259c8f3d 100644 --- a/src/core/client/ui/components/v2/Popover/Popover.mdx +++ b/src/core/client/ui/components/v2/Popover/README.mdx @@ -1,6 +1,6 @@ --- name: Popover -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from "docz"; diff --git a/src/core/client/ui/components/v2/RadioButton/RadioButton.mdx b/src/core/client/ui/components/v2/RadioButton/README.mdx similarity index 90% rename from src/core/client/ui/components/v2/RadioButton/RadioButton.mdx rename to src/core/client/ui/components/v2/RadioButton/README.mdx index 20377f4bc..5085f8286 100644 --- a/src/core/client/ui/components/v2/RadioButton/RadioButton.mdx +++ b/src/core/client/ui/components/v2/RadioButton/README.mdx @@ -1,9 +1,9 @@ --- name: RadioButton -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import RadioButton from './RadioButton.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/v2/RadioButton/RadioButton.tsx b/src/core/client/ui/components/v2/RadioButton/RadioButton.tsx index 27aef9158..e75bc3633 100644 --- a/src/core/client/ui/components/v2/RadioButton/RadioButton.tsx +++ b/src/core/client/ui/components/v2/RadioButton/RadioButton.tsx @@ -1,6 +1,6 @@ import cn from "classnames"; import React, { ChangeEvent, Component, EventHandler, FocusEvent } from "react"; -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import { Flex } from "coral-ui/components"; import { withKeyboardFocus, withStyles } from "coral-ui/hocs"; diff --git a/src/core/client/ui/components/v2/RelativeTime/RelativeTime.mdx b/src/core/client/ui/components/v2/RelativeTime/README.mdx similarity index 95% rename from src/core/client/ui/components/v2/RelativeTime/RelativeTime.mdx rename to src/core/client/ui/components/v2/RelativeTime/README.mdx index 3122e8806..74cb7b17c 100644 --- a/src/core/client/ui/components/v2/RelativeTime/RelativeTime.mdx +++ b/src/core/client/ui/components/v2/RelativeTime/README.mdx @@ -1,6 +1,6 @@ --- name: RelativeTime -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from 'docz' diff --git a/src/core/client/ui/components/v2/RelativeTime/RelativeTime.tsx b/src/core/client/ui/components/v2/RelativeTime/RelativeTime.tsx index 8f203cdb5..90b56e0f6 100644 --- a/src/core/client/ui/components/v2/RelativeTime/RelativeTime.tsx +++ b/src/core/client/ui/components/v2/RelativeTime/RelativeTime.tsx @@ -22,7 +22,7 @@ interface Props { const defaultFormatter: Formatter = (value, unit, suffix, timestamp: string) => new Date(timestamp).toISOString(); -const RelativeTime: React.FunctionComponent<Props> = props => { +const RelativeTime: React.FunctionComponent<Props> = (props) => { const { date, classes, live, className, formatter } = props; return ( <UIContext.Consumer> diff --git a/src/core/client/ui/components/v2/SelectField/OptGroup.tsx b/src/core/client/ui/components/v2/SelectField/OptGroup.tsx index 04e3d2c93..7cdb0c138 100644 --- a/src/core/client/ui/components/v2/SelectField/OptGroup.tsx +++ b/src/core/client/ui/components/v2/SelectField/OptGroup.tsx @@ -5,7 +5,7 @@ export interface OptGroupProps { children?: React.ReactNode; } -const OptionGroup: FunctionComponent<OptGroupProps> = props => { +const OptionGroup: FunctionComponent<OptGroupProps> = (props) => { return <optgroup {...props} />; }; diff --git a/src/core/client/ui/components/v2/SelectField/Option.tsx b/src/core/client/ui/components/v2/SelectField/Option.tsx index 672cb3d15..105e8f0d4 100644 --- a/src/core/client/ui/components/v2/SelectField/Option.tsx +++ b/src/core/client/ui/components/v2/SelectField/Option.tsx @@ -7,7 +7,7 @@ export interface OptionProps { children?: React.ReactNode; } -const Option: FunctionComponent<OptionProps> = props => { +const Option: FunctionComponent<OptionProps> = (props) => { return <option {...props} />; }; diff --git a/src/core/client/ui/components/v2/SelectField/README.mdx b/src/core/client/ui/components/v2/SelectField/README.mdx new file mode 100644 index 000000000..eb499b73b --- /dev/null +++ b/src/core/client/ui/components/v2/SelectField/README.mdx @@ -0,0 +1,54 @@ +--- +name: SelectField +menu: UI Kit v2 +--- + +import { Playground } from 'docz' +import { useState } from "react"; + +import SelectField from './SelectField.tsx' +import Option from './Option.tsx' +import OptGroup from './OptGroup.tsx' +import HorizontalGutter from '../HorizontalGutter' + +# SelectField + +## Basic Use +<Playground> + {() => { + const [value, setValue] = useState("blue"); + return ( + <SelectField value={value} onChange={e => setValue(e.target.value)}> + <Option value="red">Red Pill</Option> + <Option value="blue">Blue Pill</Option> + </SelectField> + ); + }} +</Playground> + +## Groups +<Playground> + {() => { + const [value, setValue] = useState("dog"); + return ( + <SelectField value={value} onChange={e => setValue(e.target.value)}> + <OptGroup label="mammals"> + <Option value="dog">Dog</Option> + <Option value="cat">Cat</Option> + </OptGroup> + <OptGroup label="fish"> + <Option value="salmon">Salmon</Option> + <Option value="tuna">Tuna</Option> + </OptGroup> + </SelectField> + ); + }} +</Playground> + +## Disabled +<Playground> + <SelectField disabled> + <Option value="red">Red Pill</Option> + <Option value="blue">Blue Pill</Option> + </SelectField> +</Playground> diff --git a/src/core/client/ui/components/v2/SelectField/SelectField.mdx b/src/core/client/ui/components/v2/SelectField/SelectField.mdx deleted file mode 100644 index f0d7dd4dc..000000000 --- a/src/core/client/ui/components/v2/SelectField/SelectField.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -name: SelectField -menu: UI Kit ---- - -import { Playground, PropsTable } from 'docz' -import SelectField from './SelectField.tsx' -import Option from './Option.tsx' -import OptGroup from './OptGroup.tsx' -import HorizontalGutter from '../HorizontalGutter' -import Container from "react-with-state-props" - -# SelectField - -## Basic Use -<Playground> - <Container - state={{ value: "blue" }} - render={props => ( - <SelectField value={props.value} onChange={e => props.setValue(e.target.value)}> - <Option value="red">Red Pill</Option> - <Option value="blue">Blue Pill</Option> - </SelectField> - )}/> -</Playground> - -## Groups -<Playground> - <Container - state={{ value: "dog" }} - render={props => ( - <SelectField value={props.value} onChange={e => props.setValue(e.target.value)}> - <OptGroup label="mammals"> - <Option value="dog">Dog</Option> - <Option value="cat">Cat</Option> - </OptGroup> - <OptGroup label="fish"> - <Option value="salmon">Salmon</Option> - <Option value="tuna">Tuna</Option> - </OptGroup> - </SelectField> - )}/> -</Playground> - - -## Disabled -<Playground> - <SelectField disabled> - <Option value="red">Red Pill</Option> - <Option value="blue">Blue Pill</Option> - </SelectField> -</Playground> diff --git a/src/core/client/ui/components/v2/SelectField/SelectField.tsx b/src/core/client/ui/components/v2/SelectField/SelectField.tsx index 156d35f83..403ca07b4 100644 --- a/src/core/client/ui/components/v2/SelectField/SelectField.tsx +++ b/src/core/client/ui/components/v2/SelectField/SelectField.tsx @@ -42,7 +42,7 @@ export interface SelectFieldProps { afterWrapper?: React.ReactElement<any>; } -const SelectField: FunctionComponent<SelectFieldProps> = props => { +const SelectField: FunctionComponent<SelectFieldProps> = (props) => { const { className, classes, diff --git a/src/core/client/ui/components/Spinner/Spinner.mdx b/src/core/client/ui/components/v2/Spinner/README.mdx similarity index 90% rename from src/core/client/ui/components/Spinner/Spinner.mdx rename to src/core/client/ui/components/v2/Spinner/README.mdx index 66ef80309..45b368869 100644 --- a/src/core/client/ui/components/Spinner/Spinner.mdx +++ b/src/core/client/ui/components/v2/Spinner/README.mdx @@ -1,6 +1,6 @@ --- name: Spinner -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from "docz" diff --git a/src/core/client/ui/components/v2/Spinner/Spinner.tsx b/src/core/client/ui/components/v2/Spinner/Spinner.tsx index 14d8e2d77..121044969 100644 --- a/src/core/client/ui/components/v2/Spinner/Spinner.tsx +++ b/src/core/client/ui/components/v2/Spinner/Spinner.tsx @@ -33,7 +33,7 @@ function calculateSize(size: Size): number { } } -const Spinner: FunctionComponent<SpinnerProps> = props => { +const Spinner: FunctionComponent<SpinnerProps> = (props) => { const { className, classes } = props; const rootClassName = cn(classes.spinner, className); diff --git a/src/core/client/ui/components/SubBar/SubBar.mdx b/src/core/client/ui/components/v2/SubBar/README.mdx similarity index 93% rename from src/core/client/ui/components/SubBar/SubBar.mdx rename to src/core/client/ui/components/v2/SubBar/README.mdx index 4db8fc439..0996b1d64 100644 --- a/src/core/client/ui/components/SubBar/SubBar.mdx +++ b/src/core/client/ui/components/v2/SubBar/README.mdx @@ -1,9 +1,9 @@ --- name: SubBar -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { SubBar, Navigation, NavigationItem, Divider } from "./"; import Icon from "../Icon"; diff --git a/src/core/client/ui/components/Table/Table.mdx b/src/core/client/ui/components/v2/Table/README.mdx similarity index 92% rename from src/core/client/ui/components/Table/Table.mdx rename to src/core/client/ui/components/v2/Table/README.mdx index 795190272..5836ddf4f 100644 --- a/src/core/client/ui/components/Table/Table.mdx +++ b/src/core/client/ui/components/v2/Table/README.mdx @@ -1,9 +1,9 @@ --- name: Table -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import { Table, TableBody, TableHead, TableRow, TableCell } from "./"; diff --git a/src/core/client/ui/components/v2/Table/TableCell.tsx b/src/core/client/ui/components/v2/Table/TableCell.tsx index 4ccb29dff..84519465f 100644 --- a/src/core/client/ui/components/v2/Table/TableCell.tsx +++ b/src/core/client/ui/components/v2/Table/TableCell.tsx @@ -2,7 +2,6 @@ import cn from "classnames"; import React, { FunctionComponent, useContext } from "react"; import { withStyles } from "coral-ui/hocs"; -import { Omit } from "coral-ui/types"; import { TableHeadContext } from "./TableHead"; diff --git a/src/core/client/ui/components/Tabs/tabs.mdx b/src/core/client/ui/components/v2/Tabs/README.mdx similarity index 50% rename from src/core/client/ui/components/Tabs/tabs.mdx rename to src/core/client/ui/components/v2/Tabs/README.mdx index f77c503fd..e907f1580 100644 --- a/src/core/client/ui/components/Tabs/tabs.mdx +++ b/src/core/client/ui/components/v2/Tabs/README.mdx @@ -1,6 +1,6 @@ --- name: Tabs -menu: UI Kit +menu: UI Kit v2 --- # Tabs @@ -8,51 +8,73 @@ menu: UI Kit ### Examples import { Playground } from "docz"; +import { useState } from "react"; + import { Flex, TabBar, Tab, TabContent, TabPane } from "./index"; -import Container from "react-with-state-props"; ## Primary Tabs <Playground> - <Container - state={{ activeId: "two" }} - render={props => ( + {() => { + const [activeID, setActiveID] = useState("two"); + return ( <div> <TabBar - activeTab={props.activeId} - onTabClick={id => props.setActiveId(id)} + activeTab={activeID} + onTabClick={id => setActiveID(id)} > <Tab tabID="one">One</Tab> <Tab tabID="two">Two</Tab> <Tab tabID="three">Three</Tab> </TabBar> - <TabContent activeTab={props.activeId}> + <TabContent activeTab={activeID}> <TabPane tabID="one">Hola One</TabPane> <TabPane tabID="two">Hola Two</TabPane> <TabPane tabID="three">Hola Three</TabPane> </TabContent> </div> - )} - /> + ); + }} </Playground> ## Secondary Tabs <Playground> - <Container - state={{ activeId: "two" }} - render={props => ( + {() => { + const [activeID, setActiveID] = useState("two"); + return ( <div> <TabBar variant="secondary" - activeTab={props.activeId} - onTabClick={id => props.setActiveId(id)} + activeTab={activeID} + onTabClick={id => setActiveID(id)} > <Tab tabID="one">One</Tab> <Tab tabID="two">Two</Tab> <Tab tabID="three">Three</Tab> </TabBar> - <TabContent activeTab={props.activeId}> + <TabContent activeTab={activeID}> + <TabPane tabID="one">Hola One</TabPane> + <TabPane tabID="two">Hola Two</TabPane> + <TabPane tabID="three">Hola Three</TabPane> + </TabContent> + </div> + ); + }} + <Container + state={{ activeID: "two" }} + render={props => ( + <div> + <TabBar + variant="secondary" + activeTab={props.activeID} + onTabClick={id => props.setActiveID(id)} + > + <Tab tabID="one">One</Tab> + <Tab tabID="two">Two</Tab> + <Tab tabID="three">Three</Tab> + </TabBar> + <TabContent activeTab={props.activeID}> <TabPane tabID="one">Hola One</TabPane> <TabPane tabID="two">Hola Two</TabPane> <TabPane tabID="three">Hola Three</TabPane> diff --git a/src/core/client/ui/components/v2/Tabs/TabBar.tsx b/src/core/client/ui/components/v2/Tabs/TabBar.tsx index 7f8a50ab3..02e116a11 100644 --- a/src/core/client/ui/components/v2/Tabs/TabBar.tsx +++ b/src/core/client/ui/components/v2/Tabs/TabBar.tsx @@ -32,7 +32,7 @@ export interface TabBarProps { onTabClick?: (tabID: string) => void; } -const TabBar: FunctionComponent<TabBarProps> = props => { +const TabBar: FunctionComponent<TabBarProps> = (props) => { const { className, classes, diff --git a/src/core/client/ui/components/v2/Tabs/TabContent.tsx b/src/core/client/ui/components/v2/Tabs/TabContent.tsx index f419a0da4..223720870 100644 --- a/src/core/client/ui/components/v2/Tabs/TabContent.tsx +++ b/src/core/client/ui/components/v2/Tabs/TabContent.tsx @@ -12,7 +12,7 @@ export interface TabContentProps { className?: string; } -const TabContent: FunctionComponent<TabContentProps> = props => { +const TabContent: FunctionComponent<TabContentProps> = (props) => { const { children, activeTab, className } = props; return ( <> diff --git a/src/core/client/ui/components/v2/Tabs/TabPane.tsx b/src/core/client/ui/components/v2/Tabs/TabPane.tsx index 757d757e9..9dd3c6575 100644 --- a/src/core/client/ui/components/v2/Tabs/TabPane.tsx +++ b/src/core/client/ui/components/v2/Tabs/TabPane.tsx @@ -11,7 +11,7 @@ export interface TabBarProps { tabID: string; } -const TabPane: FunctionComponent<TabBarProps> = props => { +const TabPane: FunctionComponent<TabBarProps> = (props) => { const { className, children, tabID, ...rest } = props; return ( <section diff --git a/src/core/client/ui/components/Tag/Tag.mdx b/src/core/client/ui/components/v2/Tag/README.mdx similarity index 90% rename from src/core/client/ui/components/Tag/Tag.mdx rename to src/core/client/ui/components/v2/Tag/README.mdx index 266f73948..683fb3a5a 100644 --- a/src/core/client/ui/components/Tag/Tag.mdx +++ b/src/core/client/ui/components/v2/Tag/README.mdx @@ -1,9 +1,9 @@ --- name: Tag -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import Tag from "./Tag"; import HorizontalGutter from "../HorizontalGutter"; import Flex from "../Flex"; diff --git a/src/core/client/ui/components/v2/Tag/Tag.tsx b/src/core/client/ui/components/v2/Tag/Tag.tsx index cc946d9ba..074519135 100644 --- a/src/core/client/ui/components/v2/Tag/Tag.tsx +++ b/src/core/client/ui/components/v2/Tag/Tag.tsx @@ -17,7 +17,7 @@ interface Props { variant?: "regular" | "pill"; } -const Tag: FunctionComponent<Props> = props => { +const Tag: FunctionComponent<Props> = (props) => { const { className, children, classes, variant, color, ...rest } = props; const rootClassName = cn(classes.root, className, { diff --git a/src/core/client/ui/components/TextField/TextField.mdx b/src/core/client/ui/components/v2/TextField/README.mdx similarity index 93% rename from src/core/client/ui/components/TextField/TextField.mdx rename to src/core/client/ui/components/v2/TextField/README.mdx index 59be64785..566ca2f4f 100644 --- a/src/core/client/ui/components/TextField/TextField.mdx +++ b/src/core/client/ui/components/v2/TextField/README.mdx @@ -1,9 +1,9 @@ --- name: TextField -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from "docz"; +import { Playground } from "docz"; import TextField from "./TextField"; import Button from "../Button"; diff --git a/src/core/client/ui/components/v2/TextField/TextField.tsx b/src/core/client/ui/components/v2/TextField/TextField.tsx index ded7e084f..062bb11ed 100644 --- a/src/core/client/ui/components/v2/TextField/TextField.tsx +++ b/src/core/client/ui/components/v2/TextField/TextField.tsx @@ -80,7 +80,7 @@ export interface TextFieldProps { variant?: "regular" | "seamlessAdornment"; } -const TextField: FunctionComponent<TextFieldProps> = props => { +const TextField: FunctionComponent<TextFieldProps> = (props) => { const { className, classes, diff --git a/src/core/client/ui/components/v2/TextLink/TextLink.mdx b/src/core/client/ui/components/v2/TextLink/README.mdx similarity index 83% rename from src/core/client/ui/components/v2/TextLink/TextLink.mdx rename to src/core/client/ui/components/v2/TextLink/README.mdx index 8f6f42813..7f67cca5b 100644 --- a/src/core/client/ui/components/v2/TextLink/TextLink.mdx +++ b/src/core/client/ui/components/v2/TextLink/README.mdx @@ -1,9 +1,9 @@ --- name: TextLink -menu: UI Kit +menu: UI Kit v2 --- -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import TextLink from './TextLink.tsx' import HorizontalGutter from '../HorizontalGutter' diff --git a/src/core/client/ui/components/v2/TextLink/TextLink.tsx b/src/core/client/ui/components/v2/TextLink/TextLink.tsx index 31c886a88..1237592c9 100644 --- a/src/core/client/ui/components/v2/TextLink/TextLink.tsx +++ b/src/core/client/ui/components/v2/TextLink/TextLink.tsx @@ -13,7 +13,7 @@ interface Props extends AnchorHTMLAttributes<HTMLAnchorElement> { classes: typeof styles; } -const TextLinkProps: StatelessComponent<Props> = props => { +const TextLinkProps: StatelessComponent<Props> = (props) => { const { className, children, classes, ...rest } = props; const rootClassName = cn(classes.root, className); diff --git a/src/core/client/ui/components/v2/Timestamp/Timestamp.tsx b/src/core/client/ui/components/v2/Timestamp/Timestamp.tsx index 151cfc427..19aed8971 100644 --- a/src/core/client/ui/components/v2/Timestamp/Timestamp.tsx +++ b/src/core/client/ui/components/v2/Timestamp/Timestamp.tsx @@ -11,7 +11,7 @@ export interface TimestampProps { toggleAbsolute?: boolean; } -const Timestamp: FunctionComponent<TimestampProps> = props => { +const Timestamp: FunctionComponent<TimestampProps> = (props) => { const [showAbsolute, setShowAbsolute] = useState(false); const toggleShowAbsolute = useCallback(() => { if (props.toggleAbsolute) { diff --git a/src/core/client/ui/components/v2/Tooltip/Tooltip.tsx b/src/core/client/ui/components/v2/Tooltip/Tooltip.tsx index a68f370be..2e73445d6 100644 --- a/src/core/client/ui/components/v2/Tooltip/Tooltip.tsx +++ b/src/core/client/ui/components/v2/Tooltip/Tooltip.tsx @@ -33,7 +33,7 @@ export const Tooltip: FunctionComponent<Props> = ({ <Box p={2} className={styles.tooltip} - onClick={evt => { + onClick={(evt) => { // Don't propagate click events when clicking inside of popover to // avoid accidentally activating other components. evt.stopPropagation(); @@ -45,7 +45,7 @@ export const Tooltip: FunctionComponent<Props> = ({ </ClickOutside> )} > - {props => button(props)} + {(props) => button(props)} </Popover> ); }; diff --git a/src/core/client/ui/components/v2/Tooltip/TooltipButton.tsx b/src/core/client/ui/components/v2/Tooltip/TooltipButton.tsx index 58f6c63b0..145c04a23 100644 --- a/src/core/client/ui/components/v2/Tooltip/TooltipButton.tsx +++ b/src/core/client/ui/components/v2/Tooltip/TooltipButton.tsx @@ -24,7 +24,7 @@ const TooltipButton: FunctionComponent<Props> = ({ }) => ( <BaseButton className={cn(styles.button, className)} - onClick={evt => { + onClick={(evt) => { evt.stopPropagation(); toggleVisibility(); }} diff --git a/src/core/client/ui/components/TrapFocus/TrapFocus.mdx b/src/core/client/ui/components/v2/TrapFocus/README.mdx similarity index 97% rename from src/core/client/ui/components/TrapFocus/TrapFocus.mdx rename to src/core/client/ui/components/v2/TrapFocus/README.mdx index da30e1171..6211600eb 100644 --- a/src/core/client/ui/components/TrapFocus/TrapFocus.mdx +++ b/src/core/client/ui/components/v2/TrapFocus/README.mdx @@ -1,6 +1,6 @@ --- name: TrapFocus -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from 'docz' diff --git a/src/core/client/ui/components/v2/TrapFocus/TrapFocus.spec.tsx b/src/core/client/ui/components/v2/TrapFocus/TrapFocus.spec.tsx index 228600e9e..c8c137c38 100644 --- a/src/core/client/ui/components/v2/TrapFocus/TrapFocus.spec.tsx +++ b/src/core/client/ui/components/v2/TrapFocus/TrapFocus.spec.tsx @@ -35,7 +35,7 @@ it("renders correctly", () => { it("autofocus", () => { const autoFocus = sinon.stub(); create(<TrapFocus />, { - createNodeMock: el => ({ + createNodeMock: (el) => ({ focus: el.props.tabIndex === -1 ? autoFocus : noop, }), }); diff --git a/src/core/client/ui/components/ValidationMessage/ValidationMessage.mdx b/src/core/client/ui/components/v2/ValidationMessage/README.mdx similarity index 96% rename from src/core/client/ui/components/ValidationMessage/ValidationMessage.mdx rename to src/core/client/ui/components/v2/ValidationMessage/README.mdx index 28bbec5a6..94cc88f21 100644 --- a/src/core/client/ui/components/ValidationMessage/ValidationMessage.mdx +++ b/src/core/client/ui/components/v2/ValidationMessage/README.mdx @@ -1,6 +1,6 @@ --- name: ValidationMessage -menu: UI Kit +menu: UI Kit v2 --- import { Playground } from 'docz' diff --git a/src/core/client/ui/components/v2/ValidationMessage/ValidationMessage.tsx b/src/core/client/ui/components/v2/ValidationMessage/ValidationMessage.tsx index d9cac0d65..70cc894d1 100644 --- a/src/core/client/ui/components/v2/ValidationMessage/ValidationMessage.tsx +++ b/src/core/client/ui/components/v2/ValidationMessage/ValidationMessage.tsx @@ -18,7 +18,9 @@ export interface ValidationMessageProps { fullWidth?: boolean; } -const ValidationMessage: FunctionComponent<ValidationMessageProps> = props => { +const ValidationMessage: FunctionComponent<ValidationMessageProps> = ( + props +) => { const { className, fullWidth, children, ...rest } = props; return ( diff --git a/src/core/client/ui/helpers/combineEventHandlers.ts b/src/core/client/ui/helpers/combineEventHandlers.ts index 4de349043..f2cd9adf2 100644 --- a/src/core/client/ui/helpers/combineEventHandlers.ts +++ b/src/core/client/ui/helpers/combineEventHandlers.ts @@ -18,8 +18,8 @@ export default function combineEventHandlers<A, B>(a: A, b: B): A & B; */ export default function combineEventHandlers(...propObjects: any[]): any { const result: any = {}; - propObjects.forEach(o => { - Object.keys(o).forEach(k => { + propObjects.forEach((o) => { + Object.keys(o).forEach((k) => { if (k in result) { const prev = result[k]; result[k] = (...args: any[]) => { diff --git a/src/core/client/ui/hocs/withForwardRef.tsx b/src/core/client/ui/hocs/withForwardRef.tsx index f7ba999bc..098615882 100644 --- a/src/core/client/ui/hocs/withForwardRef.tsx +++ b/src/core/client/ui/hocs/withForwardRef.tsx @@ -1,5 +1,4 @@ import React, { Ref, RefForwardingComponent } from "react"; -import { Omit } from "recompose"; /** * withForwardRef provides a property called `forwardRef` using diff --git a/src/core/client/ui/hocs/withKeyboardFocus.tsx b/src/core/client/ui/hocs/withKeyboardFocus.tsx index 9f010ded1..ac18759c2 100644 --- a/src/core/client/ui/hocs/withKeyboardFocus.tsx +++ b/src/core/client/ui/hocs/withKeyboardFocus.tsx @@ -12,64 +12,68 @@ interface InjectedProps { * to indicate a focus on the element, that wasn't triggered by mouse * or touch. */ -const withKeyboardFocus: DefaultingInferableComponentEnhancer< +const withKeyboardFocus: DefaultingInferableComponentEnhancer<InjectedProps> = hoistStatics< InjectedProps -> = hoistStatics<InjectedProps>( - <T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { - // TODO: (cvle) This is a workaround for a typescript bug - // https://github.com/Microsoft/TypeScript/issues/30762 - const Workaround = BaseComponent as React.ComponentType<InjectedProps>; +>(<T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { + // TODO: (cvle) This is a workaround for a typescript bug + // https://github.com/Microsoft/TypeScript/issues/30762 + const Workaround = BaseComponent as React.ComponentType<InjectedProps>; - class WithKeyboardFocus extends React.Component<any> { - private lastMouseDownTime = 0; - public state = { - keyboardFocus: false, - }; + class WithKeyboardFocus extends React.Component<any> { + private lastMouseDownTime = 0; + public state = { + keyboardFocus: false, + }; - constructor(props: any) { - super(props); + constructor(props: any) { + super(props); + // docz uses SSR with no access to window or document. + if (typeof document !== "undefined") { document.addEventListener("mousedown", this.handleMouseDown); } - - public componentWillUnmount() { - document.removeEventListener("mousedown", this.handleMouseDown); - } - - private handleFocus: React.EventHandler<FocusEvent<any>> = event => { - if (this.props.onFocus) { - this.props.onFocus(event); - } - const now = new Date().getTime(); - if (now - this.lastMouseDownTime > 750) { - this.setState({ keyboardFocus: true }); - } - }; - - private handleBlur: React.EventHandler<FocusEvent<any>> = event => { - if (this.props.onBlur) { - this.props.onBlur(event); - } - this.setState({ keyboardFocus: false }); - }; - - private handleMouseDown = () => { - this.lastMouseDownTime = new Date().getTime(); - }; - - public render() { - return ( - <Workaround - {...this.props} - onFocus={this.handleFocus} - onBlur={this.handleBlur} - keyboardFocus={this.state.keyboardFocus} - /> - ); - } } - return WithKeyboardFocus as React.ComponentType<any>; + public componentWillUnmount() { + // docz uses SSR with no access to window or document. + if (typeof document !== "undefined") { + document.removeEventListener("mousedown", this.handleMouseDown); + } + } + + private handleFocus: React.EventHandler<FocusEvent<any>> = (event) => { + if (this.props.onFocus) { + this.props.onFocus(event); + } + const now = new Date().getTime(); + if (now - this.lastMouseDownTime > 750) { + this.setState({ keyboardFocus: true }); + } + }; + + private handleBlur: React.EventHandler<FocusEvent<any>> = (event) => { + if (this.props.onBlur) { + this.props.onBlur(event); + } + this.setState({ keyboardFocus: false }); + }; + + private handleMouseDown = () => { + this.lastMouseDownTime = new Date().getTime(); + }; + + public render() { + return ( + <Workaround + {...this.props} + onFocus={this.handleFocus} + onBlur={this.handleBlur} + keyboardFocus={this.state.keyboardFocus} + /> + ); + } } -); + + return WithKeyboardFocus as React.ComponentClass<any>; +}); export default withKeyboardFocus; diff --git a/src/core/client/ui/hocs/withMouseHover.tsx b/src/core/client/ui/hocs/withMouseHover.tsx index 15504f439..7d36b1898 100644 --- a/src/core/client/ui/hocs/withMouseHover.tsx +++ b/src/core/client/ui/hocs/withMouseHover.tsx @@ -13,59 +13,57 @@ interface InjectedProps { * withMouseHover provides a property `MouseHover: boolean` * to indicate a that the mouse is hovering the element. */ -const withMouseHover: DefaultingInferableComponentEnhancer< +const withMouseHover: DefaultingInferableComponentEnhancer<InjectedProps> = hoistStatics< InjectedProps -> = hoistStatics<InjectedProps>( - <T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { - // TODO: (cvle) This is a workaround for a typescript bug - // https://github.com/Microsoft/TypeScript/issues/30762 - const Workaround = BaseComponent as React.ComponentType<InjectedProps>; +>(<T extends InjectedProps>(BaseComponent: React.ComponentType<T>) => { + // TODO: (cvle) This is a workaround for a typescript bug + // https://github.com/Microsoft/TypeScript/issues/30762 + const Workaround = BaseComponent as React.ComponentType<InjectedProps>; - class WithMouseHover extends React.Component<InjectedProps> { - private lastTouchEndTime = 0; - public state = { - mouseHover: false, - }; + class WithMouseHover extends React.Component<InjectedProps> { + private lastTouchEndTime = 0; + public state = { + mouseHover: false, + }; - private handleTouchEnd: React.EventHandler<TouchEvent<any>> = event => { - if (this.props.onTouchEnd) { - this.props.onTouchEnd(event); - } - this.lastTouchEndTime = new Date().getTime(); - }; - - private handleMouseOver: React.EventHandler<MouseEvent<any>> = event => { - if (this.props.onMouseOver) { - this.props.onMouseOver(event); - } - const now = new Date().getTime(); - if (now - this.lastTouchEndTime > 750) { - this.setState({ mouseHover: true }); - } - }; - - private handleMouseOut: React.EventHandler<MouseEvent<any>> = event => { - if (this.props.onMouseOut) { - this.props.onMouseOut(event); - } - this.setState({ mouseHover: false }); - }; - - public render() { - return ( - <Workaround - {...this.props} - onMouseOver={this.handleMouseOver} - onMouseOut={this.handleMouseOut} - onTouchEnd={this.handleTouchEnd} - mouseHover={this.state.mouseHover} - /> - ); + private handleTouchEnd: React.EventHandler<TouchEvent<any>> = (event) => { + if (this.props.onTouchEnd) { + this.props.onTouchEnd(event); } - } + this.lastTouchEndTime = new Date().getTime(); + }; - return WithMouseHover as React.ComponentType<any>; + private handleMouseOver: React.EventHandler<MouseEvent<any>> = (event) => { + if (this.props.onMouseOver) { + this.props.onMouseOver(event); + } + const now = new Date().getTime(); + if (now - this.lastTouchEndTime > 750) { + this.setState({ mouseHover: true }); + } + }; + + private handleMouseOut: React.EventHandler<MouseEvent<any>> = (event) => { + if (this.props.onMouseOut) { + this.props.onMouseOut(event); + } + this.setState({ mouseHover: false }); + }; + + public render() { + return ( + <Workaround + {...this.props} + onMouseOver={this.handleMouseOver} + onMouseOut={this.handleMouseOut} + onTouchEnd={this.handleTouchEnd} + mouseHover={this.state.mouseHover} + /> + ); + } } -); + + return WithMouseHover as React.ComponentClass<any>; +}); export default withMouseHover; diff --git a/src/core/client/ui/hocs/withStyles.ts b/src/core/client/ui/hocs/withStyles.ts index 9db64ea5c..e6c3e3dc4 100644 --- a/src/core/client/ui/hocs/withStyles.ts +++ b/src/core/client/ui/hocs/withStyles.ts @@ -12,10 +12,10 @@ function withStyles<T>( styles: T ): DefaultingInferableComponentEnhancer<{ classes?: Partial<T> }> { const classes = { ...(styles as any) }; - return withPropsOnChange<any, any>(["classes"], props => { + return withPropsOnChange<any, any>(["classes"], (props) => { const resolvedClasses = { ...classes }; if (props.classes) { - Object.keys(props.classes).forEach(k => { + Object.keys(props.classes).forEach((k) => { if (classes[k]) { resolvedClasses[k] += ` ${props.classes[k]}`; } else if (process.env.NODE_ENV === "test") { diff --git a/src/core/client/ui/shared/icon.css b/src/core/client/ui/shared/icon.css index ab8497c1b..8f4f70ff9 100644 --- a/src/core/client/ui/shared/icon.css +++ b/src/core/client/ui/shared/icon.css @@ -3,9 +3,9 @@ font-style: normal; font-weight: 400; src: local("Material Icons"), local("MaterialIcons-Regular"), - url("material-design-icons/iconfont/MaterialIcons-Regular.woff2") + url("~material-design-icons/iconfont/MaterialIcons-Regular.woff2") format("woff2"), - url("material-design-icons/iconfont/MaterialIcons-Regular.woff") + url("~material-design-icons/iconfont/MaterialIcons-Regular.woff") format("woff"); } diff --git a/src/core/client/ui/shared/typography.css b/src/core/client/ui/shared/typography.css index 026af2cbd..3ed8f4462 100644 --- a/src/core/client/ui/shared/typography.css +++ b/src/core/client/ui/shared/typography.css @@ -4,9 +4,9 @@ font-display: block; font-weight: 300; src: local("Source Sans Pro Light "), local("Source Sans Pro-Light"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-300.woff2") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-300.woff2") format("woff2"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-300.woff") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-300.woff") format("woff"); } @font-face { @@ -15,9 +15,9 @@ font-display: block; font-weight: 300; src: local("Source Sans Pro Light "), local("Source Sans Pro-Light"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-300italic.woff2") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-300italic.woff2") format("woff2"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-300italic.woff") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-300italic.woff") format("woff"); } @@ -28,9 +28,9 @@ font-weight: 400; src: local("Source Sans Pro Regular italic"), local("Source Sans Pro-Regularitalic"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-400.woff2") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-400.woff2") format("woff2"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-400.woff") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-400.woff") format("woff"); } @font-face { @@ -39,9 +39,9 @@ font-display: block; font-weight: 400; src: local("Source Sans Pro Light "), local("Source Sans Pro-Light"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-400italic.woff2") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-400italic.woff2") format("woff2"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-400italic.woff") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-400italic.woff") format("woff"); } @@ -52,9 +52,9 @@ font-weight: 600; src: local("Source Sans Pro SemiBold italic"), local("Source Sans Pro-SemiBolditalic"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-600.woff2") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-600.woff2") format("woff2"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-600.woff") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-600.woff") format("woff"); } @@ -65,9 +65,9 @@ font-weight: 700; src: local("Source Sans Pro SemiBold italic"), local("Source Sans Pro-SemiBolditalic"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-700.woff2") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-700.woff2") format("woff2"), - url("typeface-source-sans-pro/files/source-sans-pro-latin-700.woff") + url("~typeface-source-sans-pro/files/source-sans-pro-latin-700.woff") format("woff"); } @@ -77,8 +77,8 @@ font-display: block; font-weight: 400; src: local("Manuale Regular "), local("Manuale-Regular"), - url("typeface-manuale/files/manuale-latin-400.woff2") format("woff2"), - url("typeface-manuale/files/manuale-latin-400.woff") format("woff"); + url("~typeface-manuale/files/manuale-latin-400.woff2") format("woff2"), + url("~typeface-manuale/files/manuale-latin-400.woff") format("woff"); } @font-face { @@ -87,8 +87,8 @@ font-display: block; font-weight: 600; src: local("Manuale SemiBold "), local("Manuale-SemiBold"), - url("typeface-manuale/files/manuale-latin-600.woff2") format("woff2"), - url("typeface-manuale/files/manuale-latin-600.woff") format("woff"); + url("~typeface-manuale/files/manuale-latin-600.woff2") format("woff2"), + url("~typeface-manuale/files/manuale-latin-600.woff") format("woff"); } @font-face { @@ -97,8 +97,8 @@ font-display: block; font-weight: 700; src: local("Manuale SemiBold "), local("Manuale-SemiBold"), - url("typeface-manuale/files/manuale-latin-700.woff2") format("woff2"), - url("typeface-manuale/files/manuale-latin-700.woff") format("woff"); + url("~typeface-manuale/files/manuale-latin-700.woff2") format("woff2"), + url("~typeface-manuale/files/manuale-latin-700.woff") format("woff"); } /* V2 Font Faces */ @@ -109,8 +109,8 @@ font-display: block; font-weight: 400; src: local("Nunito Regular"), local("Nunito-Regular"), - url("typeface-nunito/files/nunito-latin-400.woff2") format("woff2"), - url("typeface-nunito/files/nunito-latin-400.woff") format("woff"); + url("~typeface-nunito/files/nunito-latin-400.woff2") format("woff2"), + url("~typeface-nunito/files/nunito-latin-400.woff") format("woff"); } @font-face { @@ -119,8 +119,8 @@ font-display: block; font-weight: 700; src: local("Nunito SemiBold"), local("Nunito-SemiBold"), - url("typeface-nunito/files/nunito-latin-700.woff2") format("woff2"), - url("typeface-nunito/files/nunito-latin-700.woff") format("woff"); + url("~typeface-nunito/files/nunito-latin-700.woff2") format("woff2"), + url("~typeface-nunito/files/nunito-latin-700.woff") format("woff"); } @font-face { @@ -129,8 +129,8 @@ font-display: block; font-weight: 400; src: local("Open Sans Regular"), local("Open Sans-Regular"), - url("typeface-open-sans/files/open-sans-latin-400.woff2") format("woff2"), - url("typeface-open-sans/files/open-sans-latin-400.woff") format("woff"); + url("~typeface-open-sans/files/open-sans-latin-400.woff2") format("woff2"), + url("~typeface-open-sans/files/open-sans-latin-400.woff") format("woff"); } @font-face { @@ -139,8 +139,8 @@ font-display: block; font-weight: 600; src: local("Open Sans SemiBold"), local("Open Sans-SemiBold"), - url("typeface-open-sans/files/open-sans-latin-600.woff2") format("woff2"), - url("typeface-open-sans/files/open-sans-latin-600.woff") format("woff"); + url("~typeface-open-sans/files/open-sans-latin-600.woff2") format("woff2"), + url("~typeface-open-sans/files/open-sans-latin-600.woff") format("woff"); } @font-face { @@ -149,8 +149,8 @@ font-display: block; font-weight: 700; src: local("Open Sans Bold"), local("Open Sans-Bold"), - url("typeface-open-sans/files/open-sans-latin-700.woff2") format("woff2"), - url("typeface-open-sans/files/open-sans-latin-700.woff") format("woff"); + url("~typeface-open-sans/files/open-sans-latin-700.woff2") format("woff2"), + url("~typeface-open-sans/files/open-sans-latin-700.woff") format("woff"); } /* --- */ diff --git a/src/core/client/ui/theme/variables.css.ts b/src/core/client/ui/theme/variables.css.ts index c1809f033..402e7e44a 100644 --- a/src/core/client/ui/theme/variables.css.ts +++ b/src/core/client/ui/theme/variables.css.ts @@ -12,7 +12,7 @@ import variables from "./variables"; import variables2 from "./variables2"; const flatKebabVariables = mapKeys( - mapValues(flat(variables, { delimiter: "-" }), v => v.toString()), + mapValues(flat(variables, { delimiter: "-" }), (v) => v.toString()), (_, k) => `--${kebabCase(k)}` ); @@ -23,7 +23,7 @@ const cssVariables = pickBy( ); const v2FlatKebabVariables = mapKeys( - mapValues(flat(variables2, { delimiter: "-" }), v => v.toString()), + mapValues(flat(variables2, { delimiter: "-" }), (v) => v.toString()), (_, k) => `--v2-${kebabCase(k)}` ); diff --git a/src/core/client/ui/types.ts b/src/core/client/ui/types.ts index 697ecd100..185a3acc8 100644 --- a/src/core/client/ui/types.ts +++ b/src/core/client/ui/types.ts @@ -2,13 +2,6 @@ import React from "react"; // TODO: Extract useful common types into its own package. -/** - * Overwrite properties of `T`. - * - * E.g. Omit<{a: boolean, b: boolean}, "b"> = {a: boolean} - */ -export type Omit<U, K extends keyof U> = Pick<U, Exclude<keyof U, K>>; - /** * Overwrite properties of `T`. * diff --git a/src/core/common/helpers/i18n/reduceSeconds.ts b/src/core/common/helpers/i18n/reduceSeconds.ts index d8a6600e6..1c319da54 100644 --- a/src/core/common/helpers/i18n/reduceSeconds.ts +++ b/src/core/common/helpers/i18n/reduceSeconds.ts @@ -31,7 +31,7 @@ export default function reduceSeconds( ): ScaledUnit { // Find the largest match for the smallest number. const unit: keyof typeof UNIT_MAP = - units.find(compare => value >= compare) || TIME.SECOND; + units.find((compare) => value >= compare) || TIME.SECOND; // Scale the value to the unit. const scaled = Math.round((value / unit) * 100) / 100; diff --git a/src/core/common/helpers/validate.spec.ts b/src/core/common/helpers/validate.spec.ts index 74b1719e2..89c118160 100644 --- a/src/core/common/helpers/validate.spec.ts +++ b/src/core/common/helpers/validate.spec.ts @@ -13,7 +13,7 @@ describe("USERNAME_REGEX", () => { "åki_smith", ]; - usernames.forEach(username => { + usernames.forEach((username) => { expect(USERNAME_REGEX.test(username)).toEqual(true); }); }); diff --git a/src/core/common/helpers/waitFor.ts b/src/core/common/helpers/waitFor.ts index ac85079a4..5349f1e66 100644 --- a/src/core/common/helpers/waitFor.ts +++ b/src/core/common/helpers/waitFor.ts @@ -1,5 +1,5 @@ export default function waitFor(timeout: number): Promise<void> { - return new Promise(resolve => { + return new Promise((resolve) => { setTimeout(() => { resolve(); }, timeout); diff --git a/src/core/common/types.ts b/src/core/common/types.ts index d4f63b598..bfa30e6df 100644 --- a/src/core/common/types.ts +++ b/src/core/common/types.ts @@ -1,8 +1,6 @@ export type Diff<T extends keyof any, U extends keyof any> = ({ [P in T]: P } & { [P in U]: never } & { [x: string]: never })[T]; -export type Omit<U, K extends keyof U> = Pick<U, Diff<keyof U, K>>; - export type Overwrite<T, U> = Pick<T, Diff<keyof T, keyof U>> & U; export type Sub<T, U> = Pick<T, Diff<keyof T, keyof U>>; @@ -24,25 +22,23 @@ export type Nullable<T> = { [P in keyof T]: T[P] | null }; export type DeepWritableObject<T> = T extends object ? { - -readonly [P in keyof T]: T[P] extends (Array<infer U> | undefined) + -readonly [P in keyof T]: T[P] extends Array<infer U> | undefined ? Array<DeepWritableObject<U>> - : T[P] extends (ReadonlyArray<infer V> | undefined) + : T[P] extends ReadonlyArray<infer V> | undefined ? ReadonlyArray<DeepWritableObject<V>> : DeepWritableObject<T[P]>; } : T; -export type DeepWritable<T> = T extends ( - | Array<infer U> - | ReadonlyArray<infer U>) +export type DeepWritable<T> = T extends Array<infer U> | ReadonlyArray<infer U> ? Array<DeepWritableObject<U>> : DeepWritableObject<T>; export type DeepNullable<T> = T extends object ? { - [P in keyof T]: T[P] extends (Array<infer U> | undefined) + [P in keyof T]: T[P] extends Array<infer U> | undefined ? Array<DeepNullable<U>> - : T[P] extends (ReadonlyArray<infer V> | undefined) + : T[P] extends ReadonlyArray<infer V> | undefined ? ReadonlyArray<DeepNullable<V>> : DeepNullable<T[P]>; } @@ -53,9 +49,9 @@ export type DeepNullable<T> = T extends object */ export type DeepPartial<T> = T extends object ? { - [P in keyof T]?: T[P] extends (Array<infer U> | undefined) + [P in keyof T]?: T[P] extends Array<infer U> | undefined ? Array<DeepPartial<U>> - : T[P] extends (ReadonlyArray<infer V> | undefined) + : T[P] extends ReadonlyArray<infer V> | undefined ? ReadonlyArray<DeepPartial<V>> : DeepPartial<T[P]>; } diff --git a/src/core/common/utils/animationFrame.ts b/src/core/common/utils/animationFrame.ts index 8ef6f152c..8eeca3bbd 100644 --- a/src/core/common/utils/animationFrame.ts +++ b/src/core/common/utils/animationFrame.ts @@ -1,4 +1,4 @@ /** A promisified animation frame. */ export default function animationFrame() { - return new Promise(resolve => requestAnimationFrame(resolve)); + return new Promise((resolve) => requestAnimationFrame(resolve)); } diff --git a/src/core/common/utils/createWordListRegExp.ts b/src/core/common/utils/createWordListRegExp.ts index c6fed401e..64a418d68 100644 --- a/src/core/common/utils/createWordListRegExp.ts +++ b/src/core/common/utils/createWordListRegExp.ts @@ -51,12 +51,12 @@ export default function createWordListRegExp( // Split up the words from the list into a regex escaped string. const words = phrases - .map(phrase => + .map((phrase) => phrase // Split each phrase by whitespace. .split(/\s/) // Escape each phrase, we don't expect any of them to contain regex. - .map(word => escapeRegExp(word)) + .map((word) => escapeRegExp(word)) // Rejoin to ensure that any variation of the word separated by a // punctuation character should also be caught. .join(rule.punctuation) diff --git a/src/core/common/utils/getOrigin.spec.ts b/src/core/common/utils/getOrigin.spec.ts index 30b83d3f2..dfb1b1d31 100644 --- a/src/core/common/utils/getOrigin.spec.ts +++ b/src/core/common/utils/getOrigin.spec.ts @@ -6,7 +6,7 @@ it("should get origin", () => { "http://localhost:8080/xyz": "http://localhost:8080", "https://localhost:8080/xyz": "https://localhost:8080", }; - Object.keys(cases).forEach(k => { + Object.keys(cases).forEach((k) => { expect(getOrigin(k)).toBe(cases[k]); }); }); diff --git a/src/core/common/utils/purify.spec.ts b/src/core/common/utils/purify.spec.ts index f8978da81..aa6bc2144 100644 --- a/src/core/common/utils/purify.spec.ts +++ b/src/core/common/utils/purify.spec.ts @@ -3,7 +3,7 @@ import { JSDOM } from "jsdom"; import { createPurify, sanitizeCommentBody } from "./purify"; const window = new JSDOM("", {}).window; -const DOMPurify = createPurify(window); +const DOMPurify = createPurify(window as any); it("sanitizes out tags not allowed", () => { expect( diff --git a/src/core/common/utils/purify.ts b/src/core/common/utils/purify.ts index 897062ae1..a88852064 100644 --- a/src/core/common/utils/purify.ts +++ b/src/core/common/utils/purify.ts @@ -20,7 +20,7 @@ export function createPurify(window: Window, returnDOM = true) { // Ensure that each anchor tag has a "target" and "rel" attributes set, and // strip the "href" attribute from all non-anchor tags. - purify.addHook("afterSanitizeAttributes", node => { + purify.addHook("afterSanitizeAttributes", (node) => { if (node.nodeName === "A") { // Ensure we wrap all the links with the target + rel set. node.setAttribute("target", "_blank"); diff --git a/src/core/common/utils/stringifyQuery.ts b/src/core/common/utils/stringifyQuery.ts index 5c8bd8d08..fe54dc95f 100644 --- a/src/core/common/utils/stringifyQuery.ts +++ b/src/core/common/utils/stringifyQuery.ts @@ -15,7 +15,7 @@ export default function stringifyQuery( prefix?: string | boolean ): string { const copy: any = { ...obj }; - Object.keys(copy).forEach(key => { + Object.keys(copy).forEach((key) => { if (copy[key] === undefined) { delete copy[key]; } diff --git a/src/core/common/utils/timeout.ts b/src/core/common/utils/timeout.ts index 635a6b4e9..98fdf356c 100644 --- a/src/core/common/utils/timeout.ts +++ b/src/core/common/utils/timeout.ts @@ -1,4 +1,4 @@ /** A promisified timeout. */ export default function timeout(ms = 0) { - return new Promise(resolve => setTimeout(resolve, ms)); + return new Promise((resolve) => setTimeout(resolve, ms)); } diff --git a/src/core/server/app/handlers/api/account/confirm.ts b/src/core/server/app/handlers/api/account/confirm.ts index 6e181fbcd..651648778 100644 --- a/src/core/server/app/handlers/api/account/confirm.ts +++ b/src/core/server/app/handlers/api/account/confirm.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { AppOptions } from "coral-server/app"; import { validate } from "coral-server/app/request/body"; @@ -27,11 +27,9 @@ export interface ConfirmRequestBody { userID?: string; } -export const ConfirmRequestBodySchema = Joi.object() - .keys({ - userID: Joi.string().default(undefined), - }) - .optionalKeys(["userID"]); +export const ConfirmRequestBodySchema = Joi.object().keys({ + userID: Joi.string().optional(), +}); export const confirmRequestHandler = ({ redis, diff --git a/src/core/server/app/handlers/api/account/download.ts b/src/core/server/app/handlers/api/account/download.ts index 0b6b18aaf..57e273966 100644 --- a/src/core/server/app/handlers/api/account/download.ts +++ b/src/core/server/app/handlers/api/account/download.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { AppOptions } from "coral-server/app"; import { validate } from "coral-server/app/request/body"; diff --git a/src/core/server/app/handlers/api/account/invite.ts b/src/core/server/app/handlers/api/account/invite.ts index a2b17f075..bf6aacd28 100644 --- a/src/core/server/app/handlers/api/account/invite.ts +++ b/src/core/server/app/handlers/api/account/invite.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { AppOptions } from "coral-server/app"; import { validate } from "coral-server/app/request/body"; diff --git a/src/core/server/app/handlers/api/auth/local/forgot.ts b/src/core/server/app/handlers/api/auth/local/forgot.ts index 62ecfecd3..71d949385 100644 --- a/src/core/server/app/handlers/api/auth/local/forgot.ts +++ b/src/core/server/app/handlers/api/auth/local/forgot.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { AppOptions } from "coral-server/app"; import { validate } from "coral-server/app/request/body"; @@ -20,10 +20,7 @@ export interface ForgotBody { } export const ForgotBodySchema = Joi.object().keys({ - email: Joi.string() - .trim() - .lowercase() - .email(), + email: Joi.string().trim().lowercase().email(), }); export type ForgotOptions = Pick< diff --git a/src/core/server/app/handlers/api/auth/local/link.ts b/src/core/server/app/handlers/api/auth/local/link.ts index 8f2a242ce..5fc3bfeb1 100644 --- a/src/core/server/app/handlers/api/auth/local/link.ts +++ b/src/core/server/app/handlers/api/auth/local/link.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { AppOptions } from "coral-server/app"; import { validate } from "coral-server/app/request/body"; @@ -14,10 +14,7 @@ export interface LinkBody { } export const LinkBodySchema = Joi.object().keys({ - email: Joi.string() - .trim() - .lowercase() - .email(), + email: Joi.string().trim().lowercase().email(), password: Joi.string(), }); diff --git a/src/core/server/app/handlers/api/auth/local/signup.ts b/src/core/server/app/handlers/api/auth/local/signup.ts index 173f54339..2b2b2c328 100644 --- a/src/core/server/app/handlers/api/auth/local/signup.ts +++ b/src/core/server/app/handlers/api/auth/local/signup.ts @@ -1,5 +1,5 @@ -import Joi from "joi"; -import uuid from "uuid/v4"; +import Joi from "@hapi/joi"; +import { v4 as uuid } from "uuid"; import { AppOptions } from "coral-server/app"; import { handleSuccessfulLogin } from "coral-server/app/middleware/passport"; @@ -23,10 +23,7 @@ export interface SignupBody { export const SignupBodySchema = Joi.object().keys({ username: Joi.string().trim(), password: Joi.string(), - email: Joi.string() - .trim() - .lowercase() - .email(), + email: Joi.string().trim().lowercase().email(), }); export type SignupOptions = Pick< diff --git a/src/core/server/app/handlers/api/install.ts b/src/core/server/app/handlers/api/install.ts index ab3478917..3bc2f100c 100644 --- a/src/core/server/app/handlers/api/install.ts +++ b/src/core/server/app/handlers/api/install.ts @@ -1,8 +1,8 @@ -import Joi from "joi"; -import uuid from "uuid/v4"; +import Joi from "@hapi/joi"; +import { v4 as uuid } from "uuid"; import { LanguageCode, LOCALES } from "coral-common/helpers/i18n/locales"; -import { Omit } from "coral-common/types"; + import { AppOptions } from "coral-server/app"; import { validate } from "coral-server/app/request/body"; import { RequestLimiter } from "coral-server/app/request/limiter"; @@ -99,23 +99,17 @@ export interface TenantInstallBody { } const TenantInstallBodySchema = Joi.object().keys({ - tenant: Joi.object() - .keys({ - organization: Joi.object().keys({ - name: Joi.string().trim(), - url: Joi.string() - .trim() - .uri(), - contactEmail: Joi.string() - .trim() - .lowercase() - .email(), - }), - locale: Joi.string() - .default(null) - .valid(LOCALES), - }) - .optionalKeys("locale"), + tenant: Joi.object().keys({ + organization: Joi.object().keys({ + name: Joi.string().trim(), + url: Joi.string().trim().uri(), + contactEmail: Joi.string().trim().lowercase().email(), + }), + locale: Joi.string() + .default(null) + .valid(...LOCALES) + .optional(), + }), site: Joi.object().keys({ name: Joi.string().trim(), allowedOrigins: Joi.array().items( @@ -127,10 +121,7 @@ const TenantInstallBodySchema = Joi.object().keys({ user: Joi.object().keys({ username: Joi.string().trim(), password: Joi.string(), - email: Joi.string() - .trim() - .lowercase() - .email(), + email: Joi.string().trim().lowercase().email(), }), }); diff --git a/src/core/server/app/handlers/api/story/count.ts b/src/core/server/app/handlers/api/story/count.ts index 28412c1b6..f6a231415 100644 --- a/src/core/server/app/handlers/api/story/count.ts +++ b/src/core/server/app/handlers/api/story/count.ts @@ -17,7 +17,7 @@ export type CountOptions = Pick<AppOptions, "mongo" | "tenantCache" | "i18n">; */ export const countHandler = ({ mongo, i18n }: CountOptions): RequestHandler => { const window = new JSDOM("").window; - const DOMPurify = createDOMPurify(window); + const DOMPurify = createDOMPurify(window as any); return async (req, res, next) => { try { diff --git a/src/core/server/app/index.ts b/src/core/server/app/index.ts index f7913682d..a26eae7e8 100644 --- a/src/core/server/app/index.ts +++ b/src/core/server/app/index.ts @@ -123,7 +123,7 @@ export const listenAndServe = ( app: Express, port: number ): Promise<http.Server> => - new Promise(resolve => { + new Promise((resolve) => { // Listen on the designated port. const httpServer = app.listen(port, () => resolve(httpServer)); }); diff --git a/src/core/server/app/middleware/csp/tenant.ts b/src/core/server/app/middleware/csp/tenant.ts index 0e6563bed..a29be6137 100644 --- a/src/core/server/app/middleware/csp/tenant.ts +++ b/src/core/server/app/middleware/csp/tenant.ts @@ -139,8 +139,8 @@ export function generateFrameOptions(req: Request, allowedOrigins: string[]) { // We need to find the domain that is asking so we can respond with the right // result, sort of like CORS! const allowFrom = allowedOrigins - .map(domain => getOrigin(domain)) - .find(origin => origin === parentsOrigin); + .map((domain) => getOrigin(domain)) + .find((origin) => origin === parentsOrigin); if (!allowFrom) { return "deny"; } diff --git a/src/core/server/app/middleware/graphql/graphqlMiddleware.ts b/src/core/server/app/middleware/graphql/graphqlMiddleware.ts index b61c82020..0f264eae6 100644 --- a/src/core/server/app/middleware/graphql/graphqlMiddleware.ts +++ b/src/core/server/app/middleware/graphql/graphqlMiddleware.ts @@ -8,7 +8,6 @@ import { graphqlExpress, } from "apollo-server-express/dist/expressApollo"; -import { Omit } from "coral-common/types"; import { Config } from "coral-server/config"; import { ErrorWrappingExtension, diff --git a/src/core/server/app/middleware/graphql/index.ts b/src/core/server/app/middleware/graphql/index.ts index 7aacc35c9..5ff781903 100644 --- a/src/core/server/app/middleware/graphql/index.ts +++ b/src/core/server/app/middleware/graphql/index.ts @@ -1,4 +1,2 @@ export { default as graphqlMiddleware } from "./graphqlMiddleware"; -export { - default as persistedQueryMiddleware, -} from "./persistedQueryMiddleware"; +export { default as persistedQueryMiddleware } from "./persistedQueryMiddleware"; diff --git a/src/core/server/app/middleware/installed.ts b/src/core/server/app/middleware/installed.ts index 810020506..3243a0937 100644 --- a/src/core/server/app/middleware/installed.ts +++ b/src/core/server/app/middleware/installed.ts @@ -6,9 +6,7 @@ export interface InstalledMiddlewareOptions { redirectIfInstalled?: boolean; } -const DefaultInstalledMiddlewareOptions: Required< - InstalledMiddlewareOptions -> = { +const DefaultInstalledMiddlewareOptions: Required<InstalledMiddlewareOptions> = { redirectIfInstalled: false, redirectURL: "/install", }; diff --git a/src/core/server/app/middleware/passport/index.ts b/src/core/server/app/middleware/passport/index.ts index de590c7b9..8ac8b0044 100644 --- a/src/core/server/app/middleware/passport/index.ts +++ b/src/core/server/app/middleware/passport/index.ts @@ -1,6 +1,6 @@ +import Joi from "@hapi/joi"; import { CookieOptions, NextFunction, RequestHandler, Response } from "express"; import { Redis } from "ioredis"; -import Joi from "joi"; import jwt from "jsonwebtoken"; import { DateTime } from "luxon"; import passport, { Authenticator } from "passport"; @@ -64,12 +64,10 @@ interface LogoutToken { exp?: number; } -const LogoutTokenSchema = Joi.object() - .keys({ - jti: Joi.string().default(undefined), - exp: Joi.number().default(undefined), - }) - .optionalKeys(["jti", "exp"]); +const LogoutTokenSchema = Joi.object().keys({ + jti: Joi.string().optional(), + exp: Joi.number().optional(), +}); export async function handleLogout(redis: Redis, req: Request, res: Response) { // Extract the token from the request. @@ -159,7 +157,7 @@ const generateCookieOptions = ( // anyways, so don't bother setting `None` when we're not secure. The only // time we aren't behind HTTPS is when we're testing/in development where the // the setting for `SameSite: Lax` would be OK. - sameSite: req.secure ? "None" : "Lax", + sameSite: req.secure ? "none" : "lax", expires: expiresIn, }); diff --git a/src/core/server/app/middleware/passport/strategies/local.ts b/src/core/server/app/middleware/passport/strategies/local.ts index 2e4cf9737..4dcbb04b2 100644 --- a/src/core/server/app/middleware/passport/strategies/local.ts +++ b/src/core/server/app/middleware/passport/strategies/local.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { Db } from "mongodb"; import { Strategy as LocalStrategy } from "passport-local"; @@ -27,10 +27,7 @@ const verifyFactory = ( // Validate that the email address and password are reasonable. const email = Joi.attempt( emailInput, - Joi.string() - .trim() - .lowercase() - .email() + Joi.string().trim().lowercase().email() ); const password = Joi.attempt(passwordInput, Joi.string()); diff --git a/src/core/server/app/middleware/passport/strategies/oauth2.ts b/src/core/server/app/middleware/passport/strategies/oauth2.ts index f599625e3..188eefa44 100644 --- a/src/core/server/app/middleware/passport/strategies/oauth2.ts +++ b/src/core/server/app/middleware/passport/strategies/oauth2.ts @@ -1,4 +1,5 @@ import { Db } from "mongodb"; +import { Strategy as BaseStrategy, StrategyCreated } from "passport"; import { Strategy } from "passport-strategy"; import { Config } from "coral-server/config"; @@ -27,12 +28,12 @@ export interface OAuth2StrategyOptions { export default abstract class OAuth2Strategy< T extends OAuth2Integration, - U extends Strategy + U extends BaseStrategy > extends Strategy { public abstract name: string; protected config: Config; protected mongo: Db; - protected cache: TenantCacheAdapter<U>; + protected cache: TenantCacheAdapter<Strategy>; private authenticateOptions: Record<string, any>; constructor({ @@ -118,17 +119,21 @@ export default abstract class OAuth2Strategy< let strategy = this.cache.get(tenant.id); if (!strategy) { - strategy = this.createStrategy(tenant, integration as Required<T>); + strategy = this.createStrategy( + tenant, + integration as Required<T> + ) as StrategyCreated<U>; + + // Augment the strategy with the request method bindings. + strategy.error = this.error.bind(this); + strategy.fail = this.fail.bind(this); + strategy.pass = this.pass.bind(this); + strategy.redirect = this.redirect.bind(this); + strategy.success = this.success.bind(this); + this.cache.set(tenant.id, strategy); } - // Augment the strategy with the request method bindings. - strategy.error = this.error.bind(this); - strategy.fail = this.fail.bind(this); - strategy.pass = this.pass.bind(this); - strategy.redirect = this.redirect.bind(this); - strategy.success = this.success.bind(this); - strategy.authenticate(req, { session: false, ...this.authenticateOptions, diff --git a/src/core/server/app/middleware/passport/strategies/oidc/index.ts b/src/core/server/app/middleware/passport/strategies/oidc/index.ts index 627b870bb..71c5cf242 100644 --- a/src/core/server/app/middleware/passport/strategies/oidc/index.ts +++ b/src/core/server/app/middleware/passport/strategies/oidc/index.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import jwt from "jsonwebtoken"; import jwks, { CertSigningKey, @@ -58,21 +58,24 @@ export const OIDCIDTokenSchema = Joi.object() sub: Joi.string().required(), iss: Joi.string().required(), aud: Joi.string().required(), - email: Joi.string().default(undefined), + email: Joi.string(), email_verified: Joi.boolean().default(false), - picture: Joi.string().default(undefined), - name: Joi.string().default(undefined), - nickname: Joi.string().default(undefined), - preferred_username: Joi.string().default(undefined), + picture: Joi.string(), + name: Joi.string(), + nickname: Joi.string(), + preferred_username: Joi.string(), }) - .optionalKeys([ - "picture", - "email", - "email_verified", - "name", - "nickname", - "preferred_username", - ]); + .fork( + [ + "picture", + "email", + "email_verified", + "name", + "nickname", + "preferred_username", + ], + (s) => s.optional() + ); export interface StrategyItem { strategy: OAuth2Strategy; @@ -80,7 +83,7 @@ export interface StrategyItem { } export function isOIDCToken(token: OIDCIDToken | object): token is OIDCIDToken { - const { error } = Joi.validate(token, OIDCIDTokenSchema, { + const { error } = OIDCIDTokenSchema.validate(token, { // OIDC ID tokens may contain many other fields we haven't seen.. We Just // need to check to see that it contains at least the fields we need. allowUnknown: true, diff --git a/src/core/server/app/middleware/passport/strategies/verifiers/jwt.spec.ts b/src/core/server/app/middleware/passport/strategies/verifiers/jwt.spec.ts index 79929ecd2..ef5853e8f 100644 --- a/src/core/server/app/middleware/passport/strategies/verifiers/jwt.spec.ts +++ b/src/core/server/app/middleware/passport/strategies/verifiers/jwt.spec.ts @@ -31,8 +31,6 @@ it("validates a jwt token", async () => { expect(isJWTToken(token)).toBeTruthy(); expect((token as JWTToken).exp).toBe( - DateTime.fromJSDate(now) - .plus({ seconds: 100 }) - .toSeconds() + DateTime.fromJSDate(now).plus({ seconds: 100 }).toSeconds() ); }); diff --git a/src/core/server/app/middleware/passport/strategies/verifiers/jwt.ts b/src/core/server/app/middleware/passport/strategies/verifiers/jwt.ts index 9f3af3f83..54b96367e 100644 --- a/src/core/server/app/middleware/passport/strategies/verifiers/jwt.ts +++ b/src/core/server/app/middleware/passport/strategies/verifiers/jwt.ts @@ -1,5 +1,5 @@ +import Joi from "@hapi/joi"; import { Redis } from "ioredis"; -import Joi from "joi"; import { isNil } from "lodash"; import { Db } from "mongodb"; @@ -36,7 +36,7 @@ export const JWTTokenSchema = Joi.object().keys({ }); export function isJWTToken(token: JWTToken | object): token is JWTToken { - const { error } = Joi.validate(token, JWTTokenSchema, { + const { error } = JWTTokenSchema.validate(token, { allowUnknown: true, }); return isNil(error); diff --git a/src/core/server/app/middleware/passport/strategies/verifiers/oidc.ts b/src/core/server/app/middleware/passport/strategies/verifiers/oidc.ts index d40df0a08..fcd10db80 100644 --- a/src/core/server/app/middleware/passport/strategies/verifiers/oidc.ts +++ b/src/core/server/app/middleware/passport/strategies/verifiers/oidc.ts @@ -14,7 +14,7 @@ import { OIDCIDToken, } from "../oidc"; -export type OIDCIDToken = OIDCIDToken; +export { OIDCIDToken } from "../oidc"; export type OIDCVerifierOptions = Pick< AppOptions, diff --git a/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts b/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts index 111f23d39..3bc93f6cd 100644 --- a/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts +++ b/src/core/server/app/middleware/passport/strategies/verifiers/sso.ts @@ -1,5 +1,5 @@ +import Joi from "@hapi/joi"; import { Redis } from "ioredis"; -import Joi from "joi"; import { isNil, throttle } from "lodash"; import { DateTime } from "luxon"; import { Db } from "mongodb"; @@ -57,31 +57,27 @@ export interface SSOToken { } export function isSSOToken(token: SSOToken | object): token is SSOToken { - const { error } = Joi.validate(token, SSOTokenSchema, { allowUnknown: true }); + const { error } = SSOTokenSchema.validate(token, { allowUnknown: true }); return isNil(error); } -export const SSOUserProfileSchema = Joi.object() - .keys({ - id: Joi.string().required(), - email: Joi.string() - .lowercase() - .required(), - username: Joi.string().required(), - badges: Joi.array().items(Joi.string()), - role: Joi.string().only(Object.values(GQLUSER_ROLE)), - url: Joi.string().uri(), - }) - .optionalKeys(["badges", "role", "url"]); +export const SSOUserProfileSchema = Joi.object().keys({ + id: Joi.string().required(), + email: Joi.string().lowercase().required(), + username: Joi.string().required(), + badges: Joi.array().items(Joi.string()).optional(), + role: Joi.string() + .valid(...Object.values(GQLUSER_ROLE)) + .optional(), + url: Joi.string().uri().optional(), +}); -export const SSOTokenSchema = Joi.object() - .keys({ - jti: Joi.string().default(undefined), - exp: Joi.number().default(undefined), - iat: Joi.number().default(undefined), - user: SSOUserProfileSchema.required(), - }) - .optionalKeys(["jti", "exp", "iat"]); +export const SSOTokenSchema = Joi.object().keys({ + jti: Joi.string().optional(), + exp: Joi.number().optional(), + iat: Joi.number().optional(), + user: SSOUserProfileSchema.required(), +}); export async function findOrCreateSSOUser( mongo: Db, @@ -196,7 +192,7 @@ export function getRelevantSSOKeys( kid?: string ): Secret[] { // Collect all the current valid keys. - const keys = integration.keys.filter(k => { + const keys = integration.keys.filter((k) => { if (k.inactiveAt && now >= k.inactiveAt) { return false; } @@ -215,7 +211,7 @@ export function getRelevantSSOKeys( // The token has a kid, so if we have a matching token, we should use it. If // we don't have a matching kid, we can't possibly verify it, so throw an // error. - const key = keys.find(k => k.kid === kid); + const key = keys.find((k) => k.kid === kid); if (!key) { throw new TokenInvalidError( tokenString, diff --git a/src/core/server/app/middleware/tenant.ts b/src/core/server/app/middleware/tenant.ts index 2f7e02e15..62adce3ea 100644 --- a/src/core/server/app/middleware/tenant.ts +++ b/src/core/server/app/middleware/tenant.ts @@ -1,4 +1,4 @@ -import uuid from "uuid/v1"; +import { v1 as uuid } from "uuid"; import { TenantNotFoundError } from "coral-server/errors"; import logger from "coral-server/logger"; diff --git a/src/core/server/app/request/__snapshots__/body.spec.ts.snap b/src/core/server/app/request/__snapshots__/body.spec.ts.snap index 823d9cb68..63a584e18 100644 --- a/src/core/server/app/request/__snapshots__/body.spec.ts.snap +++ b/src/core/server/app/request/__snapshots__/body.spec.ts.snap @@ -1,3 +1,3 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`throws an error for missing fields 1`] = `"child \\"d\\" fails because [\\"d\\" is required]"`; +exports[`throws an error for missing fields 1`] = `"\\"d\\" is required"`; diff --git a/src/core/server/app/request/body.spec.ts b/src/core/server/app/request/body.spec.ts index 722114428..08b41c207 100644 --- a/src/core/server/app/request/body.spec.ts +++ b/src/core/server/app/request/body.spec.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { validate } from "coral-server/app/request/body"; diff --git a/src/core/server/app/request/body.ts b/src/core/server/app/request/body.ts index a8e34412c..3b1bef78e 100644 --- a/src/core/server/app/request/body.ts +++ b/src/core/server/app/request/body.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; /** * validate will strip unknown fields and perform validation against it. It will @@ -7,9 +7,9 @@ import Joi from "joi"; * @param schema the Joi schema to validate against * @param body the body to parse and strip of unknown fields */ -export const validate = (schema: Joi.SchemaLike, body: any) => { +export const validate = (schema: Joi.Schema, body: any) => { // Extract the schema from the request. - const { value, error: err } = Joi.validate(body, schema, { + const { value, error: err } = schema.validate(body, { stripUnknown: true, presence: "required", abortEarly: false, diff --git a/src/core/server/app/request/limiter.ts b/src/core/server/app/request/limiter.ts index 171fede7f..8e1776472 100644 --- a/src/core/server/app/request/limiter.ts +++ b/src/core/server/app/request/limiter.ts @@ -4,7 +4,6 @@ import { Redis } from "ioredis"; import { DateTime } from "luxon"; import ms from "ms"; -import { Omit } from "coral-common/types"; import { Config } from "coral-server/config"; import { RateLimitExceeded } from "coral-server/errors"; import { Request } from "coral-server/types/express"; @@ -41,8 +40,9 @@ export class Limiter { } private key(key: string, resource?: string, operation?: string): string { - return `limiter[${this.prefix}][${resource || this.resource}][${operation || - this.operation}][${key}]`; + return `limiter[${this.prefix}][${resource || this.resource}][${ + operation || this.operation + }][${key}]`; } public async test( diff --git a/src/core/server/config.ts b/src/core/server/config.ts index 0dfd37ff7..c1b421e1c 100644 --- a/src/core/server/config.ts +++ b/src/core/server/config.ts @@ -1,5 +1,5 @@ +import Joi from "@hapi/joi"; import convict from "convict"; -import Joi from "joi"; import { parseConnectionString } from "mongodb-core"; import ms from "ms"; import os from "os"; @@ -13,7 +13,7 @@ import { InternalError } from "./errors"; convict.addFormat({ name: "mongo-uri", validate: (url: string) => { - parseConnectionString(url, err => { + parseConnectionString(url, (err) => { if (err) { throw new InternalError(err, "invalid mongo-uri"); } @@ -51,13 +51,7 @@ convict.addFormat({ convict.addFormat({ name: "ms", validate: (val: number) => { - Joi.assert( - val, - Joi.number() - .positive() - .integer() - .required() - ); + Joi.assert(val, Joi.number().positive().integer().required()); }, coerce: (val: string): number => ms(val), }); diff --git a/src/core/server/cron/notificationDigesting.ts b/src/core/server/cron/notificationDigesting.ts index d1d6aa711..758c6d309 100644 --- a/src/core/server/cron/notificationDigesting.ts +++ b/src/core/server/cron/notificationDigesting.ts @@ -90,23 +90,20 @@ const processNotificationDigesting = ( ); // Group the digests. - const digests = user.digests.reduce( - (acc, entry) => { - const digest = acc.find(d => d.template === entry.template.name); - if (digest) { - digest.contexts.push(entry.template.context); - } else { - acc.push({ - template: entry.template.name, - partial: path.basename(entry.template.name), - contexts: [entry.template.context], - }); - } + const digests = user.digests.reduce((acc, entry) => { + const digest = acc.find((d) => d.template === entry.template.name); + if (digest) { + digest.contexts.push(entry.template.context); + } else { + acc.push({ + template: entry.template.name, + partial: path.basename(entry.template.name), + contexts: [entry.template.context], + }); + } - return acc; - }, - [] as DigestElement[] - ); + return acc; + }, [] as DigestElement[]); // TODO: sort the digest template elements by the digest order. diff --git a/src/core/server/cron/scheduled/job.ts b/src/core/server/cron/scheduled/job.ts index b0fca0a7d..cb422ae19 100644 --- a/src/core/server/cron/scheduled/job.ts +++ b/src/core/server/cron/scheduled/job.ts @@ -1,5 +1,5 @@ import { CronCommand, CronJob } from "cron"; -import uuid from "uuid"; +import { v1 as uuid } from "uuid"; import { createTimer } from "coral-server/helpers"; import logger, { Logger } from "coral-server/logger"; @@ -39,7 +39,7 @@ export class ScheduledJob<T extends {} = {}> { private command(command: ScheduledJobCommand<T>): CronCommand { return async () => { - const log = this.log.child({ scheduledExecutionID: uuid.v1() }, true); + const log = this.log.child({ scheduledExecutionID: uuid() }, true); log.info("now starting scheduled job"); const timer = createTimer(); try { diff --git a/src/core/server/errors/index.ts b/src/core/server/errors/index.ts index 2ba259383..16694c0c1 100644 --- a/src/core/server/errors/index.ts +++ b/src/core/server/errors/index.ts @@ -2,7 +2,7 @@ import { FluentBundle } from "@fluent/bundle/compat"; import { MongoError } from "mongodb"; -import uuid from "uuid"; +import { v1 as uuid } from "uuid"; import { VError } from "verror"; import { ALLOWED_USERNAME_CHANGE_TIMEFRAME_DURATION } from "coral-common/constants"; @@ -169,7 +169,7 @@ export class CoralError extends VError { this.name = new.target.name; // Assign a unique ID to this error. - const id = uuid.v1(); + const id = uuid(); this.status = status; // Capture the context for the error. @@ -307,10 +307,10 @@ export class UsernameAlreadySetError extends CoralError { export class UsernameUpdatedWithinWindowError extends CoralError { constructor(lastUpdate: Date) { - const { scaled, unit } = reduceSeconds( - ALLOWED_USERNAME_CHANGE_TIMEFRAME_DURATION, - [TIME.DAY] - ); + const { + scaled, + unit, + } = reduceSeconds(ALLOWED_USERNAME_CHANGE_TIMEFRAME_DURATION, [TIME.DAY]); super({ code: ERROR_CODES.USERNAME_UPDATED_WITHIN_WINDOW, context: { diff --git a/src/core/server/events/event.ts b/src/core/server/events/event.ts index d1881496d..42c7bf7a5 100644 --- a/src/core/server/events/event.ts +++ b/src/core/server/events/event.ts @@ -1,4 +1,4 @@ -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import logger from "coral-server/logger"; diff --git a/src/core/server/events/listeners/notifier.ts b/src/core/server/events/listeners/notifier.ts index 2c9d431f1..bb5f6ed04 100644 --- a/src/core/server/events/listeners/notifier.ts +++ b/src/core/server/events/listeners/notifier.ts @@ -28,22 +28,19 @@ export class NotifierCoralEventListener * events are the events that this listener handles. These are parsed from the * notification categories. */ - public readonly events = categories.reduce( - (events, category) => { - for (const event of category.events) { - if (!events.includes(event)) { - events.push(event); - } + public readonly events = categories.reduce((events, category) => { + for (const event of category.events) { + if (!events.includes(event)) { + events.push(event); } + } - return events; - }, - [] as CoralEventType[] - ); + return events; + }, [] as CoralEventType[]); public initialize: CoralEventPublisherFactory< NotifierCoralEventListenerPayloads - > = ({ tenant: { id } }) => async input => { + > = ({ tenant: { id } }) => async (input) => { await this.queue.add({ tenantID: id, input }); }; } diff --git a/src/core/server/events/listeners/perspective.ts b/src/core/server/events/listeners/perspective.ts index 30b74a0fc..780a3eba5 100644 --- a/src/core/server/events/listeners/perspective.ts +++ b/src/core/server/events/listeners/perspective.ts @@ -29,7 +29,9 @@ export class PerspectiveCoralEventListener public initialize: CoralEventPublisherFactory< PerspectiveCoralEventListenerPayloads - > = ctx => async ({ data: { newStatus, commentID, commentRevisionID } }) => { + > = (ctx) => async ({ + data: { newStatus, commentID, commentRevisionID }, + }) => { const { tenant: { integrations: { perspective }, @@ -63,7 +65,9 @@ export class PerspectiveCoralEventListener } // Get the target revision. - const revision = comment.revisions.find(r => r.id === commentRevisionID); + const revision = comment.revisions.find( + (r) => r.id === commentRevisionID + ); if (!revision) { return; } diff --git a/src/core/server/events/listeners/slack/slack.ts b/src/core/server/events/listeners/slack/slack.ts index 2c751513c..3fc9e23a0 100644 --- a/src/core/server/events/listeners/slack/slack.ts +++ b/src/core/server/events/listeners/slack/slack.ts @@ -76,7 +76,7 @@ export class SlackCoralEventListener public initialize: CoralEventPublisherFactory< SlackCoralEventListenerPayloads - > = ctx => async payload => { + > = (ctx) => async (payload) => { const { tenant: { id: tenantID, slack }, } = ctx; @@ -87,7 +87,7 @@ export class SlackCoralEventListener // Or there are no slack channels, slack.channels.length === 0 || // Or each channel isn't enabled or configured right. - slack.channels.every(c => !c.enabled || !c.hookURL) + slack.channels.every((c) => !c.enabled || !c.hookURL) ) { // Exit out then. return; diff --git a/src/core/server/events/listeners/webhook.ts b/src/core/server/events/listeners/webhook.ts index fed52ec6f..98e8ff198 100644 --- a/src/core/server/events/listeners/webhook.ts +++ b/src/core/server/events/listeners/webhook.ts @@ -22,7 +22,7 @@ export class WebhookCoralEventListener public initialize: CoralEventPublisherFactory< WebhookCoralEventListenerPayloads - > = ({ id: contextID, tenant }) => async event => { + > = ({ id: contextID, tenant }) => async (event) => { const log = logger.child( { tenantID: tenant.id, @@ -33,7 +33,7 @@ export class WebhookCoralEventListener ); // Based on the incoming event, determine which endpoints we should send. - const endpoints = tenant.webhooks.endpoints.filter(endpoint => { + const endpoints = tenant.webhooks.endpoints.filter((endpoint) => { // If the endpoint is disabled, don't include it. if (!endpoint.enabled) { return false; @@ -72,7 +72,7 @@ export class WebhookCoralEventListener // For each of these endpoints that need a delivery of these notifications, // queue up the job that will send it. await Promise.all( - endpoints.map(endpoint => + endpoints.map((endpoint) => this.queue.add({ tenantID: tenant.id, contextID, diff --git a/src/core/server/events/publisher.ts b/src/core/server/events/publisher.ts index 254fa21d7..a85b2b735 100644 --- a/src/core/server/events/publisher.ts +++ b/src/core/server/events/publisher.ts @@ -89,7 +89,7 @@ export class CoralEventPublisherBroker { const publishers = this.registry.get(payload.type)!; // Begin resolving these publishers. - return Promise.all(publishers.map(publisher => publisher(payload))); + return Promise.all(publishers.map((publisher) => publisher(payload))); }; } diff --git a/src/core/server/graph/context.ts b/src/core/server/graph/context.ts index 07146519a..054391305 100644 --- a/src/core/server/graph/context.ts +++ b/src/core/server/graph/context.ts @@ -1,6 +1,6 @@ import { RedisPubSub } from "graphql-redis-subscriptions"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v1 as uuid } from "uuid"; import { LanguageCode } from "coral-common/helpers/i18n/locales"; import { Config } from "coral-server/config"; @@ -81,7 +81,7 @@ export default class GraphContext { public readonly user?: User; constructor(options: GraphContextOptions) { - this.id = options.id || uuid.v1(); + this.id = options.id || uuid(); this.now = options.now || new Date(); this.lang = options.lang || options.i18n.getDefaultLang(); this.disableCaching = options.disableCaching || false; diff --git a/src/core/server/graph/directives/auth.ts b/src/core/server/graph/directives/auth.ts index 02e9c67d4..162bb96cb 100644 --- a/src/core/server/graph/directives/auth.ts +++ b/src/core/server/graph/directives/auth.ts @@ -81,7 +81,7 @@ const auth: DirectiveResolverFn< (!permit && conditions.length > 0) || // If the permit was specified, and some of the conditions for the user // aren't in the list of permitted conditions, then error. - (permit && conditions.some(condition => !permit.includes(condition))) + (permit && conditions.some((condition) => !permit.includes(condition))) ) { // Compute the resource that the user was attempting to access. const resource = calculateLocationKey(info); diff --git a/src/core/server/graph/directives/rate.ts b/src/core/server/graph/directives/rate.ts index 701fdb61b..a1a5e39de 100644 --- a/src/core/server/graph/directives/rate.ts +++ b/src/core/server/graph/directives/rate.ts @@ -51,15 +51,9 @@ const rate: DirectiveResolverFn< const key = `${tenant.id}:rl:${user.id}:${info.operation.operation}.${resource}`; // Perform the rate limiting check. - const [[, tries]] = await redis - .multi() - .incr(key) - .expire(key, seconds) - .exec(); + const [[, tries]] = await redis.multi().incr(key).expire(key, seconds).exec(); if (tries && tries > max) { - const resetsAt = DateTime.fromJSDate(now) - .plus({ seconds }) - .toJSDate(); + const resetsAt = DateTime.fromJSDate(now).plus({ seconds }).toJSDate(); throw new RateLimitExceeded(key, max, resetsAt, tries); } diff --git a/src/core/server/graph/errors.ts b/src/core/server/graph/errors.ts index 65532995e..ccfaf0510 100644 --- a/src/core/server/graph/errors.ts +++ b/src/core/server/graph/errors.ts @@ -24,7 +24,7 @@ export async function mapFieldsetToErrorCodes<T>( continue; } - if (errorMap[param].some(code => err.code === code)) { + if (errorMap[param].some((code) => err.code === code)) { err.param = param; break; } diff --git a/src/core/server/graph/extensions/ErrorWrappingExtension.ts b/src/core/server/graph/extensions/ErrorWrappingExtension.ts index 531bbca3f..20bcb3bc4 100644 --- a/src/core/server/graph/extensions/ErrorWrappingExtension.ts +++ b/src/core/server/graph/extensions/ErrorWrappingExtension.ts @@ -1,5 +1,5 @@ import { ApolloError } from "apollo-server-core"; -import { GraphQLError } from "graphql"; +import { GraphQLFormattedError } from "graphql"; import { GraphQLExtension, GraphQLResponse } from "graphql-extensions"; import { merge } from "lodash"; @@ -9,10 +9,14 @@ import { InternalError, } from "coral-server/errors"; import GraphContext from "coral-server/graph/context"; +import { getOriginalError } from "./helpers"; -function hoistCoralErrorExtensions(ctx: GraphContext, err: GraphQLError): void { +function hoistCoralErrorExtensions( + ctx: GraphContext, + err: GraphQLFormattedError +): void { // Grab or wrap the originalError so that it's a CoralError. - const originalError = extractOriginalError(err, ctx); + const originalError = getWrappedOriginalError(err, ctx); if (!originalError) { return; } @@ -25,7 +29,7 @@ function hoistCoralErrorExtensions(ctx: GraphContext, err: GraphQLError): void { // Hoist the message from the original error into the message of the base // error. - err.message = extensions.message; + (err as any).message = extensions.message; // Re-hoist the extensions. merge(err.extensions, extensions); @@ -39,8 +43,8 @@ function hoistCoralErrorExtensions(ctx: GraphContext, err: GraphQLError): void { * @param err the error to have their original error extracted from. * @param ctx the Context to extract the environment state. */ -function extractOriginalError( - err: GraphQLError, +function getWrappedOriginalError( + err: GraphQLFormattedError, ctx: GraphContext ): CoralError | undefined { if (err instanceof ApolloError) { @@ -49,23 +53,25 @@ function extractOriginalError( return; } - if (!err.originalError) { + const originalError = getOriginalError(err); + + if (!originalError) { // Only errors that have an originalError need to be hoisted. return; } - if (err.originalError instanceof CoralError) { - return err.originalError; + if (originalError instanceof CoralError) { + return originalError; } if (ctx.config.get("env") !== "production") { return new InternalDevelopmentError( - err.originalError, + originalError, "wrapped internal development error" ); } - return new InternalError(err.originalError, "wrapped internal error"); + return new InternalError(originalError, "wrapped internal error"); } /** @@ -76,8 +82,8 @@ function extractOriginalError( */ export function enrichError( ctx: GraphContext, - err: GraphQLError -): GraphQLError { + err: GraphQLFormattedError +): GraphQLFormattedError { if (err.extensions) { // Delete the exception field from the error extension, we never need to // provide that data. @@ -85,7 +91,7 @@ export function enrichError( delete err.extensions.exception; } - if (err.originalError) { + if (getOriginalError(err)) { // Hoist the extensions onto the error. hoistCoralErrorExtensions(ctx, err); } @@ -104,7 +110,7 @@ export class ErrorWrappingExtension implements GraphQLExtension<GraphContext> { ...o, graphqlResponse: { ...o.graphqlResponse, - errors: o.graphqlResponse.errors.map(err => + errors: o.graphqlResponse.errors.map((err) => enrichError(o.context, err) ), }, diff --git a/src/core/server/graph/extensions/LoggerExtension.ts b/src/core/server/graph/extensions/LoggerExtension.ts index 8c00737e6..098c4ea22 100644 --- a/src/core/server/graph/extensions/LoggerExtension.ts +++ b/src/core/server/graph/extensions/LoggerExtension.ts @@ -1,4 +1,4 @@ -import { DocumentNode, ExecutionArgs, GraphQLError } from "graphql"; +import { DocumentNode, ExecutionArgs, GraphQLFormattedError } from "graphql"; import { EndHandler, GraphQLExtension, @@ -11,7 +11,7 @@ import logger from "coral-server/logger"; import { getOperationMetadata, getPersistedQueryMetadata } from "./helpers"; -export function logError(ctx: GraphContext, err: GraphQLError) { +export function logError(ctx: GraphContext, err: GraphQLFormattedError) { ctx.logger.error({ err }, "graphql query error"); } @@ -102,7 +102,7 @@ export class LoggerExtension implements GraphQLExtension<GraphContext> { context: GraphContext; }): void { if (response.graphqlResponse.errors) { - response.graphqlResponse.errors.forEach(err => + response.graphqlResponse.errors.forEach((err) => logError(response.context, err) ); } diff --git a/src/core/server/graph/extensions/helpers.ts b/src/core/server/graph/extensions/helpers.ts index 66a665ab2..a4bbab082 100644 --- a/src/core/server/graph/extensions/helpers.ts +++ b/src/core/server/graph/extensions/helpers.ts @@ -1,5 +1,6 @@ import { DocumentNode, + GraphQLFormattedError, OperationDefinitionNode, OperationTypeNode, } from "graphql"; @@ -66,3 +67,16 @@ export const getPersistedQueryMetadata = ({ operation, operationName, }); + +/** + * getOriginalError tries to return the original error from a + * formatted GraphQL error. + * + * @param err A GraphQL Formatted Error + */ +export const getOriginalError = (err: GraphQLFormattedError) => { + if ((err as any).originalError) { + return (err as any).originalError as Error; + } + return null; +}; diff --git a/src/core/server/graph/loaders/Auth.ts b/src/core/server/graph/loaders/Auth.ts index 076830306..e7dd7dc2e 100644 --- a/src/core/server/graph/loaders/Auth.ts +++ b/src/core/server/graph/loaders/Auth.ts @@ -11,8 +11,8 @@ export default (ctx: GraphContext) => ({ string, GQLDiscoveredOIDCConfiguration | null >( - issuers => - Promise.all(issuers.map(issuer => discoverOIDCConfiguration(issuer))), + (issuers) => + Promise.all(issuers.map((issuer) => discoverOIDCConfiguration(issuer))), { // Disable caching for the DataLoader if the Context is designed to be // long lived. diff --git a/src/core/server/graph/loaders/Comments.ts b/src/core/server/graph/loaders/Comments.ts index 96da21723..8a9f3e728 100644 --- a/src/core/server/graph/loaders/Comments.ts +++ b/src/core/server/graph/loaders/Comments.ts @@ -68,7 +68,7 @@ const primeCommentsFromConnection = (ctx: Context) => ( ) => { if (!ctx.disableCaching) { // For each of the nodes, prime the comment loader. - connection.nodes.forEach(comment => { + connection.nodes.forEach((comment) => { ctx.loaders.Comments.visible.prime(comment.id, comment); }); } diff --git a/src/core/server/graph/loaders/Sites.ts b/src/core/server/graph/loaders/Sites.ts index 0391f2775..839d1b3ca 100644 --- a/src/core/server/graph/loaders/Sites.ts +++ b/src/core/server/graph/loaders/Sites.ts @@ -12,7 +12,7 @@ import { QueryToSitesArgs } from "coral-server/graph/schema/__generated__/types" export default (ctx: TenantContext) => ({ site: new DataLoader<string, Site | null>( - ids => retrieveManySites(ctx.mongo, ctx.tenant.id, ids), + (ids) => retrieveManySites(ctx.mongo, ctx.tenant.id, ids), { cache: !ctx.disableCaching, } diff --git a/src/core/server/graph/loaders/Stories.ts b/src/core/server/graph/loaders/Stories.ts index fa689d361..dba8307bb 100644 --- a/src/core/server/graph/loaders/Stories.ts +++ b/src/core/server/graph/loaders/Stories.ts @@ -145,7 +145,7 @@ const primeStoriesFromConnection = (ctx: GraphContext) => ( ) => { if (!ctx.disableCaching) { // For each of these nodes, prime the story loader. - connection.nodes.forEach(story => { + connection.nodes.forEach((story) => { ctx.loaders.Stories.story.prime(story.id, story); }); } @@ -186,7 +186,7 @@ export default (ctx: GraphContext) => ({ } ), story: new DataLoader<string, Story | null>( - ids => retrieveManyStories(ctx.mongo, ctx.tenant.id, ids), + (ids) => retrieveManyStories(ctx.mongo, ctx.tenant.id, ids), { // Disable caching for the DataLoader if the Context is designed to be // long lived. diff --git a/src/core/server/graph/loaders/Users.ts b/src/core/server/graph/loaders/Users.ts index 1022cad41..c6bbfd8b2 100644 --- a/src/core/server/graph/loaders/Users.ts +++ b/src/core/server/graph/loaders/Users.ts @@ -88,7 +88,7 @@ const primeUsersFromConnection = (ctx: Context) => ( ) => { if (!ctx.disableCaching) { // For each of the nodes, prime the user loader. - connection.nodes.forEach(user => { + connection.nodes.forEach((user) => { ctx.loaders.Users.user.prime(user.id, user); }); } @@ -98,7 +98,7 @@ const primeUsersFromConnection = (ctx: Context) => ( export default (ctx: Context) => { const user = new DataLoader<string, User | null>( - ids => retrieveManyUsers(ctx.mongo, ctx.tenant.id, ids), + (ids) => retrieveManyUsers(ctx.mongo, ctx.tenant.id, ids), { // Disable caching for the DataLoader if the Context is designed to be // long lived. diff --git a/src/core/server/graph/loaders/util.ts b/src/core/server/graph/loaders/util.ts index 79c9e9bb0..71e11f157 100644 --- a/src/core/server/graph/loaders/util.ts +++ b/src/core/server/graph/loaders/util.ts @@ -27,7 +27,7 @@ export class SingletonResolver<T> { return this.cache; } - const promise = this.resolver().then(result => { + const promise = this.resolver().then((result) => { return result; }); @@ -41,5 +41,6 @@ export class SingletonResolver<T> { export function createManyBatchLoadFn<U, V>( batchLoadFn: (input: U) => Promise<V> ) { - return (inputs: U[]) => Promise.all(inputs.map(input => batchLoadFn(input))); + return (inputs: U[]) => + Promise.all(inputs.map((input) => batchLoadFn(input))); } diff --git a/src/core/server/graph/mutators/Comments.ts b/src/core/server/graph/mutators/Comments.ts index 027232049..d7f853293 100644 --- a/src/core/server/graph/mutators/Comments.ts +++ b/src/core/server/graph/mutators/Comments.ts @@ -168,7 +168,7 @@ export const Comments = (ctx: GraphContext) => ({ GQLTAG.FEATURED, ctx.now ) - .then(comment => + .then((comment) => comment.status !== GQLCOMMENT_STATUS.APPROVED ? approveComment( ctx.mongo, @@ -182,7 +182,7 @@ export const Comments = (ctx: GraphContext) => ({ ) : comment ) - .then(comment => { + .then((comment) => { // Publish that the comment was featured. publishCommentFeatured(ctx.broker, comment); diff --git a/src/core/server/graph/mutators/util.ts b/src/core/server/graph/mutators/util.ts index f8966dfa5..c75345a47 100644 --- a/src/core/server/graph/mutators/util.ts +++ b/src/core/server/graph/mutators/util.ts @@ -1,5 +1,3 @@ -import { Omit } from "coral-common/types"; - /** * validateMaximumLength will limit the value of an optional string to the * specified amount, otherwise will throw an error. diff --git a/src/core/server/graph/resolvers/AuthIntegrations.ts b/src/core/server/graph/resolvers/AuthIntegrations.ts index 6243d072b..01eb07a0f 100644 --- a/src/core/server/graph/resolvers/AuthIntegrations.ts +++ b/src/core/server/graph/resolvers/AuthIntegrations.ts @@ -5,12 +5,10 @@ import { const disabled = { enabled: false }; -export const AuthIntegrations: GQLAuthIntegrationsTypeResolver< - GQLAuthIntegrations -> = { - local: auth => auth.local || disabled, - sso: auth => auth.sso || disabled, - oidc: auth => auth.oidc || disabled, - google: auth => auth.google || disabled, - facebook: auth => auth.facebook || disabled, +export const AuthIntegrations: GQLAuthIntegrationsTypeResolver<GQLAuthIntegrations> = { + local: (auth) => auth.local || disabled, + sso: (auth) => auth.sso || disabled, + oidc: (auth) => auth.oidc || disabled, + google: (auth) => auth.google || disabled, + facebook: (auth) => auth.facebook || disabled, }; diff --git a/src/core/server/graph/resolvers/BanStatus.ts b/src/core/server/graph/resolvers/BanStatus.ts index af0f2834b..61334e8ae 100644 --- a/src/core/server/graph/resolvers/BanStatus.ts +++ b/src/core/server/graph/resolvers/BanStatus.ts @@ -8,5 +8,5 @@ export type BanStatusInput = user.ConsolidatedBanStatus & { export const BanStatus: Required<GQLBanStatusTypeResolver<BanStatusInput>> = { active: ({ active }) => active, history: ({ history, userID }) => - history.map(status => ({ ...status, userID })), + history.map((status) => ({ ...status, userID })), }; diff --git a/src/core/server/graph/resolvers/BanStatusHistory.ts b/src/core/server/graph/resolvers/BanStatusHistory.ts index 11600c3ad..bddaa2acb 100644 --- a/src/core/server/graph/resolvers/BanStatusHistory.ts +++ b/src/core/server/graph/resolvers/BanStatusHistory.ts @@ -1,9 +1,9 @@ import { GQLBanStatusHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; -export const BanStatusHistory: Required< - GQLBanStatusHistoryTypeResolver<user.BanStatusHistory> -> = { +export const BanStatusHistory: Required<GQLBanStatusHistoryTypeResolver< + user.BanStatusHistory +>> = { active: ({ active }) => active, createdBy: ({ createdBy }, input, ctx) => { if (createdBy) { diff --git a/src/core/server/graph/resolvers/CloseCommenting.ts b/src/core/server/graph/resolvers/CloseCommenting.ts index 47096a3da..469f538de 100644 --- a/src/core/server/graph/resolvers/CloseCommenting.ts +++ b/src/core/server/graph/resolvers/CloseCommenting.ts @@ -2,9 +2,7 @@ import { GQLCloseCommentingTypeResolver } from "coral-server/graph/schema/__gene import * as settings from "coral-server/models/settings"; import { translate } from "coral-server/services/i18n"; -export const CloseCommenting: GQLCloseCommentingTypeResolver< - settings.CloseCommenting -> = { +export const CloseCommenting: GQLCloseCommentingTypeResolver<settings.CloseCommenting> = { message: (closeCommenting, input, ctx) => { if (closeCommenting.message) { return closeCommenting.message; diff --git a/src/core/server/graph/resolvers/Comment.ts b/src/core/server/graph/resolvers/Comment.ts index d33bc16b3..4f5a09662 100644 --- a/src/core/server/graph/resolvers/Comment.ts +++ b/src/core/server/graph/resolvers/Comment.ts @@ -44,15 +44,16 @@ export const maybeLoadOnlyID = ( }; export const Comment: GQLCommentTypeResolver<comment.Comment> = { - body: c => (c.revisions.length > 0 ? getLatestRevision(c).body : null), + body: (c) => (c.revisions.length > 0 ? getLatestRevision(c).body : null), // Send the whole comment back when you request revisions. This way, we get to // know the comment ID. The field mapping is handled by the CommentRevision // resolver. - revision: c => + revision: (c) => c.revisions.length > 0 ? { revision: getLatestRevision(c), comment: c } : null, - revisionHistory: c => c.revisions.map(revision => ({ revision, comment: c })), + revisionHistory: (c) => + c.revisions.map((revision) => ({ revision, comment: c })), editing: ({ revisions, createdAt }, input, ctx) => ({ // When there is more than one body history, then the comment has been // edited. @@ -84,7 +85,7 @@ export const Comment: GQLCommentTypeResolver<comment.Comment> = { ); }, // Action Counts are encoded, decode them for use with the GraphQL system. - actionCounts: c => decodeActionCounts(c.actionCounts), + actionCounts: (c) => decodeActionCounts(c.actionCounts), flags: ({ id }, { first, after }, ctx) => ctx.loaders.CommentActions.connection({ first: defaultTo(first, 10), @@ -96,8 +97,8 @@ export const Comment: GQLCommentTypeResolver<comment.Comment> = { }), viewerActionPresence: (c, input, ctx) => ctx.user ? ctx.loaders.Comments.retrieveMyActionPresence.load(c.id) : null, - parentCount: c => (hasAncestors(c) ? c.ancestorIDs.length : 0), - depth: c => (hasAncestors(c) ? c.ancestorIDs.length : 0), + parentCount: (c) => (hasAncestors(c) ? c.ancestorIDs.length : 0), + depth: (c) => (hasAncestors(c) ? c.ancestorIDs.length : 0), rootParent: (c, input, ctx, info) => hasAncestors(c) ? maybeLoadOnlyID(ctx, info, c.ancestorIDs[c.ancestorIDs.length - 1]) diff --git a/src/core/server/graph/resolvers/CommentCreatedPayload.ts b/src/core/server/graph/resolvers/CommentCreatedPayload.ts index 20063cf6e..6bee00ff9 100644 --- a/src/core/server/graph/resolvers/CommentCreatedPayload.ts +++ b/src/core/server/graph/resolvers/CommentCreatedPayload.ts @@ -3,9 +3,7 @@ import { GQLCommentCreatedPayloadTypeResolver } from "coral-server/graph/schema/ import { maybeLoadOnlyID } from "./Comment"; import { CommentCreatedInput } from "./Subscription/commentCreated"; -export const CommentCreatedPayload: GQLCommentCreatedPayloadTypeResolver< - CommentCreatedInput -> = { +export const CommentCreatedPayload: GQLCommentCreatedPayloadTypeResolver<CommentCreatedInput> = { comment: ({ commentID }, args, ctx, info) => maybeLoadOnlyID(ctx, info, commentID), }; diff --git a/src/core/server/graph/resolvers/CommentEnteredModerationQueuePayload.ts b/src/core/server/graph/resolvers/CommentEnteredModerationQueuePayload.ts index 6d141719d..43110a182 100644 --- a/src/core/server/graph/resolvers/CommentEnteredModerationQueuePayload.ts +++ b/src/core/server/graph/resolvers/CommentEnteredModerationQueuePayload.ts @@ -3,9 +3,7 @@ import { GQLCommentEnteredModerationQueuePayloadTypeResolver } from "coral-serve import { maybeLoadOnlyID } from "./Comment"; import { CommentEnteredModerationQueueInput } from "./Subscription/commentEnteredModerationQueue"; -export const CommentEnteredModerationQueuePayload: GQLCommentEnteredModerationQueuePayloadTypeResolver< - CommentEnteredModerationQueueInput -> = { +export const CommentEnteredModerationQueuePayload: GQLCommentEnteredModerationQueuePayloadTypeResolver<CommentEnteredModerationQueueInput> = { comment: ({ commentID }, args, ctx, info) => maybeLoadOnlyID(ctx, info, commentID), }; diff --git a/src/core/server/graph/resolvers/CommentLeftModerationQueuePayload.ts b/src/core/server/graph/resolvers/CommentLeftModerationQueuePayload.ts index 3270de30d..02d5fa50b 100644 --- a/src/core/server/graph/resolvers/CommentLeftModerationQueuePayload.ts +++ b/src/core/server/graph/resolvers/CommentLeftModerationQueuePayload.ts @@ -3,9 +3,7 @@ import { GQLCommentLeftModerationQueuePayloadTypeResolver } from "coral-server/g import { maybeLoadOnlyID } from "./Comment"; import { CommentLeftModerationQueueInput } from "./Subscription/commentLeftModerationQueue"; -export const CommentLeftModerationQueuePayload: GQLCommentLeftModerationQueuePayloadTypeResolver< - CommentLeftModerationQueueInput -> = { +export const CommentLeftModerationQueuePayload: GQLCommentLeftModerationQueuePayloadTypeResolver<CommentLeftModerationQueueInput> = { comment: ({ commentID }, args, ctx, info) => maybeLoadOnlyID(ctx, info, commentID), }; diff --git a/src/core/server/graph/resolvers/CommentModerationAction.ts b/src/core/server/graph/resolvers/CommentModerationAction.ts index 92a3c3fe6..6e6527197 100644 --- a/src/core/server/graph/resolvers/CommentModerationAction.ts +++ b/src/core/server/graph/resolvers/CommentModerationAction.ts @@ -2,9 +2,7 @@ import * as actions from "coral-server/models/action/moderation/comment"; import { GQLCommentModerationActionTypeResolver } from "../schema/__generated__/types"; -export const CommentModerationAction: GQLCommentModerationActionTypeResolver< - actions.CommentModerationAction -> = { +export const CommentModerationAction: GQLCommentModerationActionTypeResolver<actions.CommentModerationAction> = { revision: async (action, input, ctx) => { const comment = await ctx.loaders.Comments.visible.load(action.commentID); if (!comment) { diff --git a/src/core/server/graph/resolvers/CommentReleasedPayload.ts b/src/core/server/graph/resolvers/CommentReleasedPayload.ts index aa5666b6f..0d100c5e9 100644 --- a/src/core/server/graph/resolvers/CommentReleasedPayload.ts +++ b/src/core/server/graph/resolvers/CommentReleasedPayload.ts @@ -3,9 +3,7 @@ import { GQLCommentReleasedPayloadTypeResolver } from "coral-server/graph/schema import { maybeLoadOnlyID } from "./Comment"; import { CommentReleasedInput } from "./Subscription/commentReleased"; -export const CommentReleasedPayload: GQLCommentReleasedPayloadTypeResolver< - CommentReleasedInput -> = { +export const CommentReleasedPayload: GQLCommentReleasedPayloadTypeResolver<CommentReleasedInput> = { comment: ({ commentID }, args, ctx, info) => maybeLoadOnlyID(ctx, info, commentID), }; diff --git a/src/core/server/graph/resolvers/CommentReplyCreatedPayload.ts b/src/core/server/graph/resolvers/CommentReplyCreatedPayload.ts index 2758c800d..eba7f58eb 100644 --- a/src/core/server/graph/resolvers/CommentReplyCreatedPayload.ts +++ b/src/core/server/graph/resolvers/CommentReplyCreatedPayload.ts @@ -3,9 +3,7 @@ import { GQLCommentReplyCreatedPayloadTypeResolver } from "coral-server/graph/sc import { maybeLoadOnlyID } from "./Comment"; import { CommentReplyCreatedInput } from "./Subscription/commentReplyCreated"; -export const CommentReplyCreatedPayload: GQLCommentReplyCreatedPayloadTypeResolver< - CommentReplyCreatedInput -> = { +export const CommentReplyCreatedPayload: GQLCommentReplyCreatedPayloadTypeResolver<CommentReplyCreatedInput> = { comment: ({ commentID }, args, ctx, info) => maybeLoadOnlyID(ctx, info, commentID), }; diff --git a/src/core/server/graph/resolvers/CommentRevision.ts b/src/core/server/graph/resolvers/CommentRevision.ts index 7c01ef6bf..81b54be70 100644 --- a/src/core/server/graph/resolvers/CommentRevision.ts +++ b/src/core/server/graph/resolvers/CommentRevision.ts @@ -7,14 +7,14 @@ export interface WrappedCommentRevision { comment: Comment; } -export const CommentRevision: Required< - GQLCommentRevisionTypeResolver<WrappedCommentRevision> -> = { - id: w => w.revision.id, - comment: w => w.comment, - actionCounts: w => decodeActionCounts(w.revision.actionCounts), - body: w => w.revision.body, +export const CommentRevision: Required<GQLCommentRevisionTypeResolver< + WrappedCommentRevision +>> = { + id: (w) => w.revision.id, + comment: (w) => w.comment, + actionCounts: (w) => decodeActionCounts(w.revision.actionCounts), + body: (w) => w.revision.body, // Defaults to an empty object if not set on the revision. - metadata: w => w.revision.metadata || {}, - createdAt: w => w.revision.createdAt, + metadata: (w) => w.revision.metadata || {}, + createdAt: (w) => w.revision.createdAt, }; diff --git a/src/core/server/graph/resolvers/CommentStatusUpdatedPayload.ts b/src/core/server/graph/resolvers/CommentStatusUpdatedPayload.ts index 60cb92006..321e54e27 100644 --- a/src/core/server/graph/resolvers/CommentStatusUpdatedPayload.ts +++ b/src/core/server/graph/resolvers/CommentStatusUpdatedPayload.ts @@ -3,9 +3,7 @@ import { GQLCommentStatusUpdatedPayloadTypeResolver } from "coral-server/graph/s import { maybeLoadOnlyID } from "./Comment"; import { CommentStatusUpdatedInput } from "./Subscription/commentStatusUpdated"; -export const CommentStatusUpdatedPayload: GQLCommentStatusUpdatedPayloadTypeResolver< - CommentStatusUpdatedInput -> = { +export const CommentStatusUpdatedPayload: GQLCommentStatusUpdatedPayloadTypeResolver<CommentStatusUpdatedInput> = { moderator: ({ moderatorID }, args, ctx) => moderatorID ? ctx.loaders.Users.user.load(moderatorID) : null, comment: ({ commentID }, args, ctx, info) => diff --git a/src/core/server/graph/resolvers/DisableCommenting.ts b/src/core/server/graph/resolvers/DisableCommenting.ts index c8f122942..4e6fae5b7 100644 --- a/src/core/server/graph/resolvers/DisableCommenting.ts +++ b/src/core/server/graph/resolvers/DisableCommenting.ts @@ -2,9 +2,7 @@ import { GQLDisableCommentingTypeResolver } from "coral-server/graph/schema/__ge import * as settings from "coral-server/models/settings"; import { translate } from "coral-server/services/i18n"; -export const DisableCommenting: GQLDisableCommentingTypeResolver< - settings.DisableCommenting -> = { +export const DisableCommenting: GQLDisableCommentingTypeResolver<settings.DisableCommenting> = { message: (disableCommenting, input, ctx) => { if (disableCommenting.message) { return disableCommenting.message; diff --git a/src/core/server/graph/resolvers/FacebookAuthIntegration.ts b/src/core/server/graph/resolvers/FacebookAuthIntegration.ts index a734b2c72..822ed7a79 100644 --- a/src/core/server/graph/resolvers/FacebookAuthIntegration.ts +++ b/src/core/server/graph/resolvers/FacebookAuthIntegration.ts @@ -5,9 +5,7 @@ import { import { reconstructTenantURLResolver } from "./util"; -export const FacebookAuthIntegration: GQLFacebookAuthIntegrationTypeResolver< - GQLFacebookAuthIntegration -> = { +export const FacebookAuthIntegration: GQLFacebookAuthIntegrationTypeResolver<GQLFacebookAuthIntegration> = { callbackURL: reconstructTenantURLResolver("/api/auth/facebook/callback"), redirectURL: reconstructTenantURLResolver("/api/auth/facebook"), }; diff --git a/src/core/server/graph/resolvers/GoogleAuthIntegration.ts b/src/core/server/graph/resolvers/GoogleAuthIntegration.ts index e6936a5df..140cb5353 100644 --- a/src/core/server/graph/resolvers/GoogleAuthIntegration.ts +++ b/src/core/server/graph/resolvers/GoogleAuthIntegration.ts @@ -5,9 +5,7 @@ import { import { reconstructTenantURLResolver } from "./util"; -export const GoogleAuthIntegration: GQLGoogleAuthIntegrationTypeResolver< - GQLGoogleAuthIntegration -> = { +export const GoogleAuthIntegration: GQLGoogleAuthIntegrationTypeResolver<GQLGoogleAuthIntegration> = { callbackURL: reconstructTenantURLResolver("/api/auth/google/callback"), redirectURL: reconstructTenantURLResolver("/api/auth/google"), }; diff --git a/src/core/server/graph/resolvers/LiveConfiguration.ts b/src/core/server/graph/resolvers/LiveConfiguration.ts index 6848a124c..667e173fc 100644 --- a/src/core/server/graph/resolvers/LiveConfiguration.ts +++ b/src/core/server/graph/resolvers/LiveConfiguration.ts @@ -5,9 +5,7 @@ import * as settings from "coral-server/models/settings"; export type LiveConfigurationInput = settings.LiveConfiguration; -export const LiveConfiguration: GQLLiveConfigurationTypeResolver< - LiveConfigurationInput -> = { +export const LiveConfiguration: GQLLiveConfigurationTypeResolver<LiveConfigurationInput> = { configurable: (source, args, ctx) => Boolean(!ctx.config.get("disable_live_updates")), enabled: (source, args, ctx) => { diff --git a/src/core/server/graph/resolvers/ModerationQueue.ts b/src/core/server/graph/resolvers/ModerationQueue.ts index 2b96742d9..bce9c34e5 100644 --- a/src/core/server/graph/resolvers/ModerationQueue.ts +++ b/src/core/server/graph/resolvers/ModerationQueue.ts @@ -15,9 +15,7 @@ export interface ModerationQueueInput { count: number | null; } -export const ModerationQueue: GQLModerationQueueTypeResolver< - ModerationQueueInput -> = { +export const ModerationQueue: GQLModerationQueueTypeResolver<ModerationQueueInput> = { id: ({ selector, connection: { filter } }) => { // NOTE: (wyattjoh) when the queues change shape in the future, investigate adding more dynamicness to this id generation if (filter && filter.storyID) { diff --git a/src/core/server/graph/resolvers/ModerationQueues.ts b/src/core/server/graph/resolvers/ModerationQueues.ts index 1bad2f1ec..79eb4bcf9 100644 --- a/src/core/server/graph/resolvers/ModerationQueues.ts +++ b/src/core/server/graph/resolvers/ModerationQueues.ts @@ -134,9 +134,7 @@ export const moderationQueuesResolver: QueryToModerationQueuesResolver = async ( return sharedModerationInputResolver(source, args, ctx); }; -export const ModerationQueues: GQLModerationQueuesTypeResolver< - ModerationQueuesInput -> = { +export const ModerationQueues: GQLModerationQueuesTypeResolver<ModerationQueuesInput> = { unmoderated: mergeModerationInputFilters( { status: { $in: UNMODERATED_STATUSES }, diff --git a/src/core/server/graph/resolvers/ModeratorNote.ts b/src/core/server/graph/resolvers/ModeratorNote.ts index 344777dda..d45d1c088 100644 --- a/src/core/server/graph/resolvers/ModeratorNote.ts +++ b/src/core/server/graph/resolvers/ModeratorNote.ts @@ -1,9 +1,9 @@ import { GQLModeratorNoteTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; -export const ModeratorNote: Required< - GQLModeratorNoteTypeResolver<user.ModeratorNote> -> = { +export const ModeratorNote: Required<GQLModeratorNoteTypeResolver< + user.ModeratorNote +>> = { createdBy: ({ createdBy }, input, ctx) => { return ctx.loaders.Users.user.load(createdBy); }, diff --git a/src/core/server/graph/resolvers/OIDCAuthIntegration.ts b/src/core/server/graph/resolvers/OIDCAuthIntegration.ts index 1e7bbe0dd..204809da8 100644 --- a/src/core/server/graph/resolvers/OIDCAuthIntegration.ts +++ b/src/core/server/graph/resolvers/OIDCAuthIntegration.ts @@ -5,9 +5,7 @@ import { import { reconstructTenantURLResolver } from "./util"; -export const OIDCAuthIntegration: GQLOIDCAuthIntegrationTypeResolver< - GQLOIDCAuthIntegration -> = { +export const OIDCAuthIntegration: GQLOIDCAuthIntegrationTypeResolver<GQLOIDCAuthIntegration> = { callbackURL: reconstructTenantURLResolver("/api/auth/oidc/callback"), redirectURL: reconstructTenantURLResolver("/api/auth/oidc"), }; diff --git a/src/core/server/graph/resolvers/PremodStatus.ts b/src/core/server/graph/resolvers/PremodStatus.ts index 9131ec6b0..cdb095e0b 100644 --- a/src/core/server/graph/resolvers/PremodStatus.ts +++ b/src/core/server/graph/resolvers/PremodStatus.ts @@ -5,10 +5,10 @@ export type PremodStatusInput = user.ConsolidatedPremodStatus & { userID: string; }; -export const PremodStatus: Required< - GQLPremodStatusTypeResolver<PremodStatusInput> -> = { +export const PremodStatus: Required<GQLPremodStatusTypeResolver< + PremodStatusInput +>> = { active: ({ active }) => active, history: ({ history, userID }) => - history.map(status => ({ ...status, userID })), + history.map((status) => ({ ...status, userID })), }; diff --git a/src/core/server/graph/resolvers/PremodStatusHistory.ts b/src/core/server/graph/resolvers/PremodStatusHistory.ts index 249e90624..3061f22d9 100644 --- a/src/core/server/graph/resolvers/PremodStatusHistory.ts +++ b/src/core/server/graph/resolvers/PremodStatusHistory.ts @@ -1,9 +1,9 @@ import { GQLPremodStatusHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; -export const PremodStatusHistory: Required< - GQLPremodStatusHistoryTypeResolver<user.PremodStatusHistory> -> = { +export const PremodStatusHistory: Required<GQLPremodStatusHistoryTypeResolver< + user.PremodStatusHistory +>> = { active: ({ active }) => active, createdBy: ({ createdBy }, input, ctx) => { if (createdBy) { diff --git a/src/core/server/graph/resolvers/Profile.ts b/src/core/server/graph/resolvers/Profile.ts index b6d9a0eef..886c2237f 100644 --- a/src/core/server/graph/resolvers/Profile.ts +++ b/src/core/server/graph/resolvers/Profile.ts @@ -1,7 +1,7 @@ import { GQLProfileTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; -const resolveType: GQLProfileTypeResolver<user.Profile> = profile => { +const resolveType: GQLProfileTypeResolver<user.Profile> = (profile) => { switch (profile.type) { case "local": return "LocalProfile"; diff --git a/src/core/server/graph/resolvers/Queue.ts b/src/core/server/graph/resolvers/Queue.ts index d6b8b9991..ddbc2ef70 100644 --- a/src/core/server/graph/resolvers/Queue.ts +++ b/src/core/server/graph/resolvers/Queue.ts @@ -8,5 +8,5 @@ export interface QueueInput { } export const Queue: Required<GQLQueueTypeResolver<QueueInput>> = { - counts: t => t.counts(), + counts: (t) => t.counts(), }; diff --git a/src/core/server/graph/resolvers/Queues.ts b/src/core/server/graph/resolvers/Queues.ts index bdb105422..eeaf6d969 100644 --- a/src/core/server/graph/resolvers/Queues.ts +++ b/src/core/server/graph/resolvers/Queues.ts @@ -15,9 +15,9 @@ const get = (fn: (ctx: GraphContext) => QueueInput) => ( ) => fn(ctx); export const Queues: Required<GQLQueuesTypeResolver> = { - mailer: get(ctx => ctx.mailerQueue), - scraper: get(ctx => ctx.scraperQueue), - notifier: get(ctx => ctx.notifierQueue), - webhook: get(ctx => ctx.webhookQueue), - rejector: get(ctx => ctx.rejectorQueue), + mailer: get((ctx) => ctx.mailerQueue), + scraper: get((ctx) => ctx.scraperQueue), + notifier: get((ctx) => ctx.notifierQueue), + webhook: get((ctx) => ctx.webhookQueue), + rejector: get((ctx) => ctx.rejectorQueue), }; diff --git a/src/core/server/graph/resolvers/RecentCommentHistory.ts b/src/core/server/graph/resolvers/RecentCommentHistory.ts index 0aaf4fb78..1d224a84e 100644 --- a/src/core/server/graph/resolvers/RecentCommentHistory.ts +++ b/src/core/server/graph/resolvers/RecentCommentHistory.ts @@ -4,9 +4,9 @@ export interface RecentCommentHistoryInput { userID: string; } -export const RecentCommentHistory: Required< - GQLRecentCommentHistoryTypeResolver<RecentCommentHistoryInput> -> = { +export const RecentCommentHistory: Required<GQLRecentCommentHistoryTypeResolver< + RecentCommentHistoryInput +>> = { statuses: ({ userID }, args, ctx) => ctx.loaders.Comments.authorStatusCounts.load(userID), }; diff --git a/src/core/server/graph/resolvers/SSOAuthIntegration.ts b/src/core/server/graph/resolvers/SSOAuthIntegration.ts index 978f72e03..c6f446968 100644 --- a/src/core/server/graph/resolvers/SSOAuthIntegration.ts +++ b/src/core/server/graph/resolvers/SSOAuthIntegration.ts @@ -4,12 +4,10 @@ import { GQLSSOAuthIntegrationTypeResolver } from "coral-server/graph/schema/__g function getActiveSSOKey(keys: settings.Secret[]) { // Any key that has been rotated cannot be the active key. - return keys.find(key => !key.rotatedAt); + return keys.find((key) => !key.rotatedAt); } -export const SSOAuthIntegration: GQLSSOAuthIntegrationTypeResolver< - settings.SSOAuthIntegration -> = { +export const SSOAuthIntegration: GQLSSOAuthIntegrationTypeResolver<settings.SSOAuthIntegration> = { key: ({ keys }) => { const key = getActiveSSOKey(keys); if (key) { diff --git a/src/core/server/graph/resolvers/SlackConfiguration.ts b/src/core/server/graph/resolvers/SlackConfiguration.ts index a0e48c0eb..0f96ccb0c 100644 --- a/src/core/server/graph/resolvers/SlackConfiguration.ts +++ b/src/core/server/graph/resolvers/SlackConfiguration.ts @@ -3,9 +3,7 @@ import { GQLSlackConfigurationTypeResolver, } from "coral-server/graph/schema/__generated__/types"; -export const SlackConfiguration: GQLSlackConfigurationTypeResolver< - GQLSlackConfiguration -> = { +export const SlackConfiguration: GQLSlackConfigurationTypeResolver<GQLSlackConfiguration> = { // TODO: Remove this when we create a migration to generate slack channels on existing tenants channels: ({ channels = [] }) => channels, }; diff --git a/src/core/server/graph/resolvers/Story.ts b/src/core/server/graph/resolvers/Story.ts index 3b9df834c..4e4c028d0 100644 --- a/src/core/server/graph/resolvers/Story.ts +++ b/src/core/server/graph/resolvers/Story.ts @@ -22,7 +22,7 @@ export const Story: GQLStoryTypeResolver<story.Story> = { : GQLSTORY_STATUS.OPEN, isClosed: (s, input, ctx) => story.isStoryClosed(ctx.tenant, s, ctx.now), closedAt: (s, input, ctx) => story.getStoryClosedAt(ctx.tenant, s) || null, - commentActionCounts: s => decodeActionCounts(s.commentCounts.action), + commentActionCounts: (s) => decodeActionCounts(s.commentCounts.action), commentCounts: (s): CommentCountsInput => s, // Merge tenant settings into the story settings so we can easily inherit the // options if they exist. diff --git a/src/core/server/graph/resolvers/StorySettings.ts b/src/core/server/graph/resolvers/StorySettings.ts index 8e88a641c..024711504 100644 --- a/src/core/server/graph/resolvers/StorySettings.ts +++ b/src/core/server/graph/resolvers/StorySettings.ts @@ -7,14 +7,12 @@ import { GQLStorySettingsTypeResolver, } from "../schema/__generated__/types"; -export const StorySettings: GQLStorySettingsTypeResolver< - story.StorySettings -> = { - live: s => s.live || {}, +export const StorySettings: GQLStorySettingsTypeResolver<story.StorySettings> = { + live: (s) => s.live || {}, moderation: (s, input, ctx) => s.moderation || ctx.tenant.moderation, premodLinksEnable: (s, input, ctx) => s.premodLinksEnable || ctx.tenant.premodLinksEnable, - messageBox: s => { + messageBox: (s) => { if (s.messageBox) { return s.messageBox; } diff --git a/src/core/server/graph/resolvers/Subscription/commentCreated.ts b/src/core/server/graph/resolvers/Subscription/commentCreated.ts index aae4e2a6a..98c32de65 100644 --- a/src/core/server/graph/resolvers/Subscription/commentCreated.ts +++ b/src/core/server/graph/resolvers/Subscription/commentCreated.ts @@ -17,14 +17,15 @@ export type CommentCreatedSubscription = SubscriptionType< CommentCreatedInput >; -export const commentCreated: SubscriptionToCommentCreatedResolver< - CommentCreatedInput -> = createIterator(SUBSCRIPTION_CHANNELS.COMMENT_CREATED, { - filter: (source, { storyID }) => { - if (source.storyID !== storyID) { - return false; - } +export const commentCreated: SubscriptionToCommentCreatedResolver<CommentCreatedInput> = createIterator( + SUBSCRIPTION_CHANNELS.COMMENT_CREATED, + { + filter: (source, { storyID }) => { + if (source.storyID !== storyID) { + return false; + } - return true; - }, -}); + return true; + }, + } +); diff --git a/src/core/server/graph/resolvers/Subscription/commentEnteredModerationQueue.ts b/src/core/server/graph/resolvers/Subscription/commentEnteredModerationQueue.ts index d946eb9e7..2d83646a1 100644 --- a/src/core/server/graph/resolvers/Subscription/commentEnteredModerationQueue.ts +++ b/src/core/server/graph/resolvers/Subscription/commentEnteredModerationQueue.ts @@ -22,22 +22,23 @@ export type CommentEnteredModerationQueueSubscription = SubscriptionType< CommentEnteredModerationQueueInput >; -export const commentEnteredModerationQueue: SubscriptionToCommentEnteredModerationQueueResolver< - CommentEnteredModerationQueueInput -> = createIterator(SUBSCRIPTION_CHANNELS.COMMENT_ENTERED_MODERATION_QUEUE, { - filter: (source, { storyID, queue }) => { - // If we're filtering by storyID, then only send back comments with the - // specific storyID. - if (storyID && source.storyID !== storyID) { - return false; - } +export const commentEnteredModerationQueue: SubscriptionToCommentEnteredModerationQueueResolver<CommentEnteredModerationQueueInput> = createIterator( + SUBSCRIPTION_CHANNELS.COMMENT_ENTERED_MODERATION_QUEUE, + { + filter: (source, { storyID, queue }) => { + // If we're filtering by storyID, then only send back comments with the + // specific storyID. + if (storyID && source.storyID !== storyID) { + return false; + } - // If we're filtering by queue, then only send back comments from the - // specific queue. - if (queue && source.queue !== queue) { - return false; - } + // If we're filtering by queue, then only send back comments from the + // specific queue. + if (queue && source.queue !== queue) { + return false; + } - return true; - }, -}); + return true; + }, + } +); diff --git a/src/core/server/graph/resolvers/Subscription/commentFeatured.ts b/src/core/server/graph/resolvers/Subscription/commentFeatured.ts index 141524bce..e82856409 100644 --- a/src/core/server/graph/resolvers/Subscription/commentFeatured.ts +++ b/src/core/server/graph/resolvers/Subscription/commentFeatured.ts @@ -17,14 +17,15 @@ export type CommentFeaturedSubscription = SubscriptionType< CommentFeaturedInput >; -export const commentFeatured: SubscriptionToCommentFeaturedResolver< - CommentFeaturedInput -> = createIterator(SUBSCRIPTION_CHANNELS.COMMENT_FEATURED, { - filter: (source, { storyID }) => { - if (source.storyID !== storyID) { - return false; - } +export const commentFeatured: SubscriptionToCommentFeaturedResolver<CommentFeaturedInput> = createIterator( + SUBSCRIPTION_CHANNELS.COMMENT_FEATURED, + { + filter: (source, { storyID }) => { + if (source.storyID !== storyID) { + return false; + } - return true; - }, -}); + return true; + }, + } +); diff --git a/src/core/server/graph/resolvers/Subscription/commentLeftModerationQueue.ts b/src/core/server/graph/resolvers/Subscription/commentLeftModerationQueue.ts index a834a0aba..f56654de1 100644 --- a/src/core/server/graph/resolvers/Subscription/commentLeftModerationQueue.ts +++ b/src/core/server/graph/resolvers/Subscription/commentLeftModerationQueue.ts @@ -21,22 +21,23 @@ export type CommentLeftModerationQueueSubscription = SubscriptionType< CommentLeftModerationQueueInput >; -export const commentLeftModerationQueue: SubscriptionToCommentLeftModerationQueueResolver< - CommentLeftModerationQueueInput -> = createIterator(SUBSCRIPTION_CHANNELS.COMMENT_LEFT_MODERATION_QUEUE, { - filter: (source, { storyID, queue }) => { - // If we're filtering by storyID, then only send back comments with the - // specific storyID. - if (storyID && source.storyID !== storyID) { - return false; - } +export const commentLeftModerationQueue: SubscriptionToCommentLeftModerationQueueResolver<CommentLeftModerationQueueInput> = createIterator( + SUBSCRIPTION_CHANNELS.COMMENT_LEFT_MODERATION_QUEUE, + { + filter: (source, { storyID, queue }) => { + // If we're filtering by storyID, then only send back comments with the + // specific storyID. + if (storyID && source.storyID !== storyID) { + return false; + } - // If we're filtering by queue, then only send back comments from the - // specific queue. - if (queue && source.queue !== queue) { - return false; - } + // If we're filtering by queue, then only send back comments from the + // specific queue. + if (queue && source.queue !== queue) { + return false; + } - return true; - }, -}); + return true; + }, + } +); diff --git a/src/core/server/graph/resolvers/Subscription/commentReleased.ts b/src/core/server/graph/resolvers/Subscription/commentReleased.ts index 8649fe584..75b778e31 100644 --- a/src/core/server/graph/resolvers/Subscription/commentReleased.ts +++ b/src/core/server/graph/resolvers/Subscription/commentReleased.ts @@ -17,14 +17,15 @@ export type CommentReleasedSubscription = SubscriptionType< CommentReleasedInput >; -export const commentReleased: SubscriptionToCommentReleasedResolver< - CommentReleasedInput -> = createIterator(SUBSCRIPTION_CHANNELS.COMMENT_RELEASED, { - filter: (source, { storyID }) => { - if (source.storyID !== storyID) { - return false; - } +export const commentReleased: SubscriptionToCommentReleasedResolver<CommentReleasedInput> = createIterator( + SUBSCRIPTION_CHANNELS.COMMENT_RELEASED, + { + filter: (source, { storyID }) => { + if (source.storyID !== storyID) { + return false; + } - return true; - }, -}); + return true; + }, + } +); diff --git a/src/core/server/graph/resolvers/Subscription/commentReplyCreated.ts b/src/core/server/graph/resolvers/Subscription/commentReplyCreated.ts index b4493fe4f..12f0f5e3a 100644 --- a/src/core/server/graph/resolvers/Subscription/commentReplyCreated.ts +++ b/src/core/server/graph/resolvers/Subscription/commentReplyCreated.ts @@ -17,14 +17,15 @@ export type CommentReplyCreatedSubscription = SubscriptionType< CommentReplyCreatedInput >; -export const commentReplyCreated: SubscriptionToCommentReplyCreatedResolver< - CommentReplyCreatedInput -> = createIterator(SUBSCRIPTION_CHANNELS.COMMENT_REPLY_CREATED, { - filter: (source, { ancestorID }) => { - if (!source.ancestorIDs.includes(ancestorID)) { - return false; - } +export const commentReplyCreated: SubscriptionToCommentReplyCreatedResolver<CommentReplyCreatedInput> = createIterator( + SUBSCRIPTION_CHANNELS.COMMENT_REPLY_CREATED, + { + filter: (source, { ancestorID }) => { + if (!source.ancestorIDs.includes(ancestorID)) { + return false; + } - return true; - }, -}); + return true; + }, + } +); diff --git a/src/core/server/graph/resolvers/Subscription/commentStatusUpdated.ts b/src/core/server/graph/resolvers/Subscription/commentStatusUpdated.ts index 9f69d6ac8..562624e29 100644 --- a/src/core/server/graph/resolvers/Subscription/commentStatusUpdated.ts +++ b/src/core/server/graph/resolvers/Subscription/commentStatusUpdated.ts @@ -23,16 +23,17 @@ export type CommentStatusUpdatedSubscription = SubscriptionType< CommentStatusUpdatedInput >; -export const commentStatusUpdated: SubscriptionToCommentStatusUpdatedResolver< - CommentStatusUpdatedInput -> = createIterator(SUBSCRIPTION_CHANNELS.COMMENT_STATUS_UPDATED, { - filter: (source, { id }) => { - // If we're filtering by id, then only send back updates for the specified - // comment. - if (id && source.commentID !== id) { - return false; - } +export const commentStatusUpdated: SubscriptionToCommentStatusUpdatedResolver<CommentStatusUpdatedInput> = createIterator( + SUBSCRIPTION_CHANNELS.COMMENT_STATUS_UPDATED, + { + filter: (source, { id }) => { + // If we're filtering by id, then only send back updates for the specified + // comment. + if (id && source.commentID !== id) { + return false; + } - return true; - }, -}); + return true; + }, + } +); diff --git a/src/core/server/graph/resolvers/Subscription/helpers.ts b/src/core/server/graph/resolvers/Subscription/helpers.ts index 697dcaffd..c3be5f0e2 100644 --- a/src/core/server/graph/resolvers/Subscription/helpers.ts +++ b/src/core/server/graph/resolvers/Subscription/helpers.ts @@ -102,6 +102,6 @@ export function createIterator< createTenantAsyncIterator(channel), createFilterFn(filter) ), - resolve: payload => payload, + resolve: (payload) => payload, }; } diff --git a/src/core/server/graph/resolvers/Subscription/index.ts b/src/core/server/graph/resolvers/Subscription/index.ts index 754a060fc..38891c1c8 100644 --- a/src/core/server/graph/resolvers/Subscription/index.ts +++ b/src/core/server/graph/resolvers/Subscription/index.ts @@ -20,9 +20,7 @@ export const Subscription: GQLSubscriptionTypeResolver = { export { CommentFeaturedInput } from "./commentFeatured"; export { CommentCreatedInput } from "./commentCreated"; -export { - CommentEnteredModerationQueueInput, -} from "./commentEnteredModerationQueue"; +export { CommentEnteredModerationQueueInput } from "./commentEnteredModerationQueue"; export { CommentLeftModerationQueueInput } from "./commentLeftModerationQueue"; export { CommentReleasedInput } from "./commentReleased"; export { CommentReplyCreatedInput } from "./commentReplyCreated"; diff --git a/src/core/server/graph/resolvers/SuspensionStatus.ts b/src/core/server/graph/resolvers/SuspensionStatus.ts index 17b56e436..12dfea420 100644 --- a/src/core/server/graph/resolvers/SuspensionStatus.ts +++ b/src/core/server/graph/resolvers/SuspensionStatus.ts @@ -5,11 +5,11 @@ export type SuspensionStatusInput = user.ConsolidatedSuspensionStatus & { userID: string; }; -export const SuspensionStatus: Required< - GQLSuspensionStatusTypeResolver<SuspensionStatusInput> -> = { +export const SuspensionStatus: Required<GQLSuspensionStatusTypeResolver< + SuspensionStatusInput +>> = { active: ({ active }) => active, until: ({ until }) => until, history: ({ history, userID }) => - history.map(status => ({ ...status, userID })), + history.map((status) => ({ ...status, userID })), }; diff --git a/src/core/server/graph/resolvers/SuspensionStatusHistory.ts b/src/core/server/graph/resolvers/SuspensionStatusHistory.ts index f7f25170d..5f0985543 100644 --- a/src/core/server/graph/resolvers/SuspensionStatusHistory.ts +++ b/src/core/server/graph/resolvers/SuspensionStatusHistory.ts @@ -1,9 +1,9 @@ import { GQLSuspensionStatusHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; -export const SuspensionStatusHistory: Required< - GQLSuspensionStatusHistoryTypeResolver<user.SuspensionStatusHistory> -> = { +export const SuspensionStatusHistory: Required<GQLSuspensionStatusHistoryTypeResolver< + user.SuspensionStatusHistory +>> = { active: ({ from }, input, ctx) => from.start <= ctx.now && from.finish > ctx.now, from: ({ from }) => from, diff --git a/src/core/server/graph/resolvers/UserStatus.ts b/src/core/server/graph/resolvers/UserStatus.ts index 5c616929d..29ebf0fc6 100644 --- a/src/core/server/graph/resolvers/UserStatus.ts +++ b/src/core/server/graph/resolvers/UserStatus.ts @@ -13,9 +13,9 @@ export type UserStatusInput = user.UserStatus & { userID: string; }; -export const UserStatus: Required< - GQLUserStatusTypeResolver<UserStatusInput> -> = { +export const UserStatus: Required<GQLUserStatusTypeResolver< + UserStatusInput +>> = { current: (status, input, ctx) => { const consolidatedStatus = user.consolidateUserStatus(status, ctx.now); const statuses: GQLUSER_STATUS[] = []; diff --git a/src/core/server/graph/resolvers/UsernameHistory.ts b/src/core/server/graph/resolvers/UsernameHistory.ts index 575164a76..c38ace013 100644 --- a/src/core/server/graph/resolvers/UsernameHistory.ts +++ b/src/core/server/graph/resolvers/UsernameHistory.ts @@ -1,9 +1,9 @@ import { GQLUsernameHistoryTypeResolver } from "coral-server/graph/schema/__generated__/types"; import * as user from "coral-server/models/user"; -export const UsernameHistory: Required< - GQLUsernameHistoryTypeResolver<user.UsernameHistory> -> = { +export const UsernameHistory: Required<GQLUsernameHistoryTypeResolver< + user.UsernameHistory +>> = { createdBy: ({ createdBy }, input, ctx) => { if (createdBy) { return ctx.loaders.Users.user.load(createdBy); diff --git a/src/core/server/graph/resolvers/UsernameStatus.ts b/src/core/server/graph/resolvers/UsernameStatus.ts index 5bd335524..fb3f09e32 100644 --- a/src/core/server/graph/resolvers/UsernameStatus.ts +++ b/src/core/server/graph/resolvers/UsernameStatus.ts @@ -5,9 +5,9 @@ export type UsernameStatusInput = user.ConsolidatedUsernameStatus & { userID: string; }; -export const UsernameStatus: Required< - GQLUsernameStatusTypeResolver<UsernameStatusInput> -> = { +export const UsernameStatus: Required<GQLUsernameStatusTypeResolver< + UsernameStatusInput +>> = { history: ({ history, userID }) => - history.map(status => ({ ...status, userID })), + history.map((status) => ({ ...status, userID })), }; diff --git a/src/core/server/graph/resolvers/WebhookEndpoint.ts b/src/core/server/graph/resolvers/WebhookEndpoint.ts index 6b613dcd0..79fa944bf 100644 --- a/src/core/server/graph/resolvers/WebhookEndpoint.ts +++ b/src/core/server/graph/resolvers/WebhookEndpoint.ts @@ -2,9 +2,7 @@ import * as tenant from "coral-server/models/tenant"; import { GQLWebhookEndpointTypeResolver } from "coral-server/graph/schema/__generated__/types"; -export const WebhookEndpoint: GQLWebhookEndpointTypeResolver< - tenant.Endpoint -> = { +export const WebhookEndpoint: GQLWebhookEndpointTypeResolver<tenant.Endpoint> = { signingSecret: ({ signingSecrets }) => signingSecrets[signingSecrets.length - 1], }; diff --git a/src/core/server/graph/scalars/cursor.spec.ts b/src/core/server/graph/scalars/cursor.spec.ts index 6d3b807f2..4b0e48b36 100644 --- a/src/core/server/graph/scalars/cursor.spec.ts +++ b/src/core/server/graph/scalars/cursor.spec.ts @@ -6,86 +6,119 @@ import Cursor from "./cursor"; describe("parseLiteral", () => { it("parses a date from a string", () => { expect( - Cursor.parseLiteral({ - kind: Kind.STRING, - value: "2018-07-16T18:34:26.744Z", - }) + Cursor.parseLiteral( + { + kind: Kind.STRING, + value: "2018-07-16T18:34:26.744Z", + }, + null + ) ).toBeInstanceOf(Date); expect( - Cursor.parseLiteral({ - kind: Kind.STRING, - value: "this-should-fail", - }) + Cursor.parseLiteral( + { + kind: Kind.STRING, + value: "this-should-fail", + }, + null + ) ).toEqual(null); expect( - Cursor.parseLiteral({ - kind: Kind.STRING, - value: "", - }) + Cursor.parseLiteral( + { + kind: Kind.STRING, + value: "", + }, + null + ) ).toEqual(null); }); it("parses a number from a string", () => { expect( - Cursor.parseLiteral({ - kind: Kind.STRING, - value: "20", - }) + Cursor.parseLiteral( + { + kind: Kind.STRING, + value: "20", + }, + null + ) ).toEqual(20); expect( - Cursor.parseLiteral({ - kind: Kind.STRING, - value: "0", - }) + Cursor.parseLiteral( + { + kind: Kind.STRING, + value: "0", + }, + null + ) ).toEqual(0); expect( - Cursor.parseLiteral({ - kind: Kind.STRING, - value: "null", - }) + Cursor.parseLiteral( + { + kind: Kind.STRING, + value: "null", + }, + null + ) ).toEqual(null); expect( - Cursor.parseLiteral({ - kind: Kind.STRING, - value: "0", - }) + Cursor.parseLiteral( + { + kind: Kind.STRING, + value: "0", + }, + null + ) ).toEqual(0); }); it("parses a number from a number", () => { expect( - Cursor.parseLiteral({ - kind: Kind.INT, - value: "20", - }) + Cursor.parseLiteral( + { + kind: Kind.INT, + value: "20", + }, + null + ) ).toEqual(20); expect( - Cursor.parseLiteral({ - kind: Kind.INT, - value: "0", - }) + Cursor.parseLiteral( + { + kind: Kind.INT, + value: "0", + }, + null + ) ).toEqual(0); expect( - Cursor.parseLiteral({ - kind: Kind.INT, - value: "", - }) + Cursor.parseLiteral( + { + kind: Kind.INT, + value: "", + }, + null + ) ).toEqual(null); }); it("does not parse unknown kinds", () => { expect( - Cursor.parseLiteral({ - kind: Kind.FLOAT, - value: "0.0", - }) + Cursor.parseLiteral( + { + kind: Kind.FLOAT, + value: "0.0", + }, + null + ) ).toEqual(null); }); }); diff --git a/src/core/server/graph/scalars/locale.spec.ts b/src/core/server/graph/scalars/locale.spec.ts index 66f8a870a..2f91bb500 100644 --- a/src/core/server/graph/scalars/locale.spec.ts +++ b/src/core/server/graph/scalars/locale.spec.ts @@ -5,27 +5,36 @@ import Locale from "./locale"; describe("parseLiteral", () => { it("parses a valid locale from a string", () => { expect( - Locale.parseLiteral({ - kind: Kind.STRING, - value: "en-US", - }) + Locale.parseLiteral( + { + kind: Kind.STRING, + value: "en-US", + }, + null + ) ).toBe("en-US"); }); it("parses an unsupported locale from a string", () => { expect(() => - Locale.parseLiteral({ - kind: Kind.STRING, - value: "xyz", - }) + Locale.parseLiteral( + { + kind: Kind.STRING, + value: "xyz", + }, + null + ) ).toThrow(); }); it("throws when not a string", () => { expect(() => - Locale.parseLiteral({ - kind: Kind.INT, - value: "4", - }) + Locale.parseLiteral( + { + kind: Kind.INT, + value: "4", + }, + null + ) ).toThrow(); }); }); diff --git a/src/core/server/graph/subscriptions/server.ts b/src/core/server/graph/subscriptions/server.ts index 19ccc1187..5f37fc01a 100644 --- a/src/core/server/graph/subscriptions/server.ts +++ b/src/core/server/graph/subscriptions/server.ts @@ -15,7 +15,7 @@ import { } from "subscriptions-transport-ws"; import { ACCESS_TOKEN_PARAM, CLIENT_ID_PARAM } from "coral-common/constants"; -import { Omit, RequireProperty } from "coral-common/types"; +import { RequireProperty } from "coral-common/types"; import { AppOptions } from "coral-server/app"; import { getHostname } from "coral-server/app/helpers/hostname"; import { @@ -195,7 +195,7 @@ export function formatResponse( if (value.errors && value.errors.length > 0) { return { ...value, - errors: value.errors.map(err => { + errors: value.errors.map((err) => { const enriched = enrichError(context, err); // Log the error out. diff --git a/src/core/server/index.ts b/src/core/server/index.ts index e7f3ff73e..f7cbb81b1 100644 --- a/src/core/server/index.ts +++ b/src/core/server/index.ts @@ -225,7 +225,7 @@ class Server { this.broker.register(new PerspectiveCoralEventListener()); // Setup the metrics collectors. - collectDefaultMetrics({ timeout: 5000 }); + collectDefaultMetrics(); } /** diff --git a/src/core/server/models/action/comment.ts b/src/core/server/models/action/comment.ts index 56ccee8c7..b26a79ec9 100644 --- a/src/core/server/models/action/comment.ts +++ b/src/core/server/models/action/comment.ts @@ -1,9 +1,9 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { camelCase, isEqual, omit, pick, uniqWith } from "lodash"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; -import { Omit, Sub } from "coral-common/types"; +import { Sub } from "coral-common/types"; import { GQLActionPresence, GQLCOMMENT_FLAG_DETECTED_REASON, @@ -135,7 +135,7 @@ export interface CommentAction extends TenantResource { metadata?: Record<string, any>; } -const ActionSchema = [ +const ActionSchema = Joi.compile([ // Flags { actionType: ACTION_TYPE.FLAG, @@ -151,7 +151,7 @@ const ActionSchema = [ { actionType: ACTION_TYPE.REACTION, }, -]; +]); /** * validateAction is used to validate that a specific action conforms to the @@ -160,11 +160,10 @@ const ActionSchema = [ export function validateAction( action: Pick<CommentAction, "actionType" | "reason"> ) { - const { error } = Joi.validate( + const { error } = ActionSchema.validate( // In typescript, this isn't an issue, but when this is transpiled to // javascript, it will contain additional elements. pick(action, ["actionType", "reason"]), - ActionSchema, { presence: "required", abortEarly: false, @@ -210,7 +209,7 @@ export async function createAction( const { metadata, additionalDetails, ...rest } = input; // Create a new ID for the action. - const id = uuid.v4(); + const id = uuid(); // defaults are the properties set by the application when a new action is // created. @@ -274,7 +273,7 @@ export async function createActions( ): Promise<CreateActionResultObject[]> { // TODO: (wyattjoh) replace with a batch write. return Promise.all( - inputs.map(input => createAction(mongo, tenantID, input, now)) + inputs.map((input) => createAction(mongo, tenantID, input, now)) ); } @@ -291,7 +290,7 @@ async function retrieveConnection( } // Return a connection. - return resolveConnection(query, input, action => action.createdAt); + return resolveConnection(query, input, (action) => action.createdAt); } export async function retrieveCommentActionConnection( @@ -355,8 +354,10 @@ export async function retrieveManyUserActionPresence( // For each of the actions returned by the query, group the actions by the // item id. Then compute the action presence for each of the actions. return commentIDs - .map(commentID => actions.filter(action => action.commentID === commentID)) - .map(itemActions => + .map((commentID) => + actions.filter((action) => action.commentID === commentID) + ) + .map((itemActions) => itemActions.reduce( (actionPresence, { actionType }) => ({ ...actionPresence, diff --git a/src/core/server/models/action/moderation/comment.ts b/src/core/server/models/action/moderation/comment.ts index 7f411ed03..93bb39a41 100644 --- a/src/core/server/models/action/moderation/comment.ts +++ b/src/core/server/models/action/moderation/comment.ts @@ -1,7 +1,7 @@ import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; -import { Omit, Sub } from "coral-common/types"; +import { Sub } from "coral-common/types"; import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types"; import { Connection, @@ -65,7 +65,7 @@ export async function createCommentModerationAction( CommentModerationAction, CreateCommentModerationActionInput > = { - id: uuid.v4(), + id: uuid(), tenantID, createdAt: now, }; @@ -134,5 +134,5 @@ async function retrieveConnection( } // Return a connection. - return resolveConnection(query, input, a => a.createdAt); + return resolveConnection(query, input, (a) => a.createdAt); } diff --git a/src/core/server/models/comment/comment.ts b/src/core/server/models/comment/comment.ts index 12f838d90..b64d93764 100644 --- a/src/core/server/models/comment/comment.ts +++ b/src/core/server/models/comment/comment.ts @@ -1,8 +1,8 @@ import { isEmpty } from "lodash"; import { Db } from "mongodb"; -import uuid from "uuid"; +import * as uuid from "uuid"; -import { Omit, Sub } from "coral-common/types"; +import { Sub } from "coral-common/types"; import { dotize } from "coral-common/utils/dotize"; import { CommentNotFoundError } from "coral-server/errors"; import { createTimer } from "coral-server/helpers"; @@ -388,7 +388,7 @@ export async function retrieveManyComments( const comments = await cursor.toArray(); - return ids.map(id => comments.find(comment => comment.id === id) || null); + return ids.map((id) => comments.find((comment) => comment.id === id) || null); } export type CommentConnectionInput = OrderedConnectionInput< @@ -402,7 +402,7 @@ function cursorGetterFactory( switch (input.orderBy) { case GQLCOMMENT_SORT.CREATED_AT_DESC: case GQLCOMMENT_SORT.CREATED_AT_ASC: - return comment => comment.createdAt; + return (comment) => comment.createdAt; case GQLCOMMENT_SORT.REPLIES_DESC: case GQLCOMMENT_SORT.REACTION_DESC: return (_, index) => @@ -961,7 +961,7 @@ export async function retrieveStoryCommentTagCounts( logger.info({ responseTime: timer(), filter: $match }, "counting tags"); // For each of the storyIDs... - return storyIDs.map(storyID => { + return storyIDs.map((storyID) => { // Get the tags associated with this storyID. const tagCounts = tags.filter(({ _id }) => _id.storyID === storyID) || []; @@ -1024,9 +1024,9 @@ export async function retrieveManyRecentStatusCounts( // Iterate over the documents and join up any of the results that are // associated with each user. - return authorIDs.map(authorID => { + return authorIDs.map((authorID) => { // Get all the author's status counts. - const filtered = docs.filter(doc => doc._id.authorID === authorID); + const filtered = docs.filter((doc) => doc._id.authorID === authorID); // Iterate over the docs to increment the status counts. const counts = createEmptyCommentStatusCounts(); diff --git a/src/core/server/models/comment/helpers.ts b/src/core/server/models/comment/helpers.ts index 98ac0d3f6..fb4cc8e6c 100644 --- a/src/core/server/models/comment/helpers.ts +++ b/src/core/server/models/comment/helpers.ts @@ -55,5 +55,5 @@ export function calculateRejectionRate(counts: CommentStatusCounts): number { } export function hasTag(comment: Pick<Comment, "tags">, tag: GQLTAG) { - return comment.tags.some(v => v.type === tag); + return comment.tags.some((v) => v.type === tag); } diff --git a/src/core/server/models/helpers/connection.ts b/src/core/server/models/helpers/connection.ts index 8eacc4953..4812327f7 100644 --- a/src/core/server/models/helpers/connection.ts +++ b/src/core/server/models/helpers/connection.ts @@ -121,7 +121,7 @@ export function nodesToEdges<T>( } export function doesNotContainNull<T>(items: Array<T | null>): items is T[] { - return items.every(item => Boolean(item)); + return items.every((item) => Boolean(item)); } /** @@ -145,7 +145,7 @@ export async function resolveConnection<T>( query.first(input.first + 1); // Get the nodes. - const nodes = await query.exec().then(cursor => cursor.toArray()); + const nodes = await query.exec().then((cursor) => cursor.toArray()); // Convert the nodes to edges (which will include the extra edge we don't need // if there is more results). diff --git a/src/core/server/models/invite.ts b/src/core/server/models/invite.ts index 585556f5a..54aeef75f 100644 --- a/src/core/server/models/invite.ts +++ b/src/core/server/models/invite.ts @@ -1,7 +1,7 @@ import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; -import { Omit, Sub } from "coral-common/types"; +import { Sub } from "coral-common/types"; import { GQLUSER_ROLE } from "coral-server/graph/schema/__generated__/types"; import { TenantResource } from "coral-server/models/tenant"; import { invites as collection } from "coral-server/services/mongodb/collections"; @@ -28,7 +28,7 @@ export async function createInvite( now = new Date() ) { // Create an ID for the Invite. - const id = uuid.v4(); + const id = uuid(); // defaults are the properties set by the application when a new Invite is // created. diff --git a/src/core/server/models/migration/migration.ts b/src/core/server/models/migration/migration.ts index 96caa10d3..cc0b4b082 100644 --- a/src/core/server/models/migration/migration.ts +++ b/src/core/server/models/migration/migration.ts @@ -89,8 +89,6 @@ export async function failMigration(mongo: Db, id: number, now = new Date()) { } export async function retrieveAllMigrationRecords(mongo: Db) { - const cursor = collection(mongo) - .find({}) - .sort({ id: 1 }); + const cursor = collection(mongo).find({}).sort({ id: 1 }); return cursor.toArray(); } diff --git a/src/core/server/models/queries/queries.ts b/src/core/server/models/queries/queries.ts index f780fcdad..a7c4fbe82 100644 --- a/src/core/server/models/queries/queries.ts +++ b/src/core/server/models/queries/queries.ts @@ -27,10 +27,7 @@ export async function primeQueries( const { id } = query; // Add to the bulk operation for MongoDB. - bulk - .find({ id }) - .upsert() - .replaceOne(query); + bulk.find({ id }).upsert().replaceOne(query); } try { @@ -63,5 +60,5 @@ export async function primeQueries( export async function getQueries(mongo: Db, ids: string[]) { const cursor = collection(mongo).find({ id: { $in: ids } }); const queries = await cursor.toArray(); - return ids.map(id => queries.find(query => query.id === id) || null); + return ids.map((id) => queries.find((query) => query.id === id) || null); } diff --git a/src/core/server/models/settings/settings.ts b/src/core/server/models/settings/settings.ts index b4ae22d44..a3302bed2 100644 --- a/src/core/server/models/settings/settings.ts +++ b/src/core/server/models/settings/settings.ts @@ -1,5 +1,3 @@ -import { Omit } from "coral-common/types"; - import { GQLAuth, GQLAuthenticationTargetFilter, diff --git a/src/core/server/models/site/index.ts b/src/core/server/models/site/index.ts index 4f3220d0d..b4d472c16 100644 --- a/src/core/server/models/site/index.ts +++ b/src/core/server/models/site/index.ts @@ -1,8 +1,8 @@ import { identity, isNumber } from "lodash"; import { Db, MongoError } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; -import { FirstDeepPartial, Omit } from "coral-common/types"; +import { FirstDeepPartial } from "coral-common/types"; import { getOrigin } from "coral-server/app/url"; import { DuplicateSiteAllowedOriginError } from "coral-server/errors"; import { @@ -33,7 +33,7 @@ export type CreateSiteInput = Omit<Site, "id" | "commentCounts" | "createdAt">; export type SiteConnectionInput = ConnectionInput<Site>; export function getURLOrigins(urls: ReadonlyArray<string>) { - return urls.map(url => getOrigin(url)).filter(identity) as string[]; + return urls.map((url) => getOrigin(url)).filter(identity) as string[]; } /** @@ -49,7 +49,7 @@ export async function createSite( ): Promise<Readonly<Site>> { const site: Site = { ...input, - id: uuid.v4(), + id: uuid(), commentCounts: createEmptyRelatedCommentCounts(), createdAt: now, }; @@ -92,7 +92,7 @@ export async function retrieveManySites( }); const sites = await cursor.toArray(); - return ids.map(id => sites.find(site => site.id === id) || null); + return ids.map((id) => sites.find((site) => site.id === id) || null); } export async function retrieveSiteByOrigin( diff --git a/src/core/server/models/story/index.ts b/src/core/server/models/story/index.ts index c23ccb8fe..817c7d738 100644 --- a/src/core/server/models/story/index.ts +++ b/src/core/server/models/story/index.ts @@ -1,7 +1,7 @@ import { Db, MongoError } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; -import { DeepPartial, FirstDeepPartial, Omit } from "coral-common/types"; +import { DeepPartial, FirstDeepPartial } from "coral-common/types"; import { dotize } from "coral-common/utils/dotize"; import { DuplicateStoryIDError, @@ -121,7 +121,7 @@ export interface UpsertStoryResult { export async function upsertStory( mongo: Db, tenantID: string, - { id = uuid.v4(), url, siteID }: UpsertStoryInput, + { id = uuid(), url, siteID }: UpsertStoryInput, now = new Date() ): Promise<UpsertStoryResult> { // Create the story, optionally sourcing the id from the input, additionally @@ -319,7 +319,7 @@ export async function retrieveManyStories( const stories = await cursor.toArray(); - return ids.map(id => stories.find(story => story.id === id) || null); + return ids.map((id) => stories.find((story) => story.id === id) || null); } export async function retrieveManyStoriesByURL( @@ -334,7 +334,7 @@ export async function retrieveManyStoriesByURL( const stories = await cursor.toArray(); - return urls.map(url => stories.find(story => story.url === url) || null); + return urls.map((url) => stories.find((story) => story.url === url) || null); } export type UpdateStoryInput = Omit< @@ -507,7 +507,7 @@ async function retrieveConnection( } // Return a connection. - return resolveConnection(query, input, story => story.createdAt); + return resolveConnection(query, input, (story) => story.createdAt); } export async function retrieveActiveStories( diff --git a/src/core/server/models/tenant/helpers.ts b/src/core/server/models/tenant/helpers.ts index 2d850bcb0..8d109884a 100644 --- a/src/core/server/models/tenant/helpers.ts +++ b/src/core/server/models/tenant/helpers.ts @@ -88,5 +88,5 @@ export function getWebhookEndpoint( tenant: Pick<Tenant, "webhooks">, endpointID: string ) { - return tenant.webhooks.endpoints.find(e => e.id === endpointID) || null; + return tenant.webhooks.endpoints.find((e) => e.id === endpointID) || null; } diff --git a/src/core/server/models/tenant/tenant.ts b/src/core/server/models/tenant/tenant.ts index 7fbaa8256..ce4f77c66 100644 --- a/src/core/server/models/tenant/tenant.ts +++ b/src/core/server/models/tenant/tenant.ts @@ -2,12 +2,12 @@ import { Redis } from "ioredis"; import { isEmpty } from "lodash"; import { DateTime } from "luxon"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; import { DEFAULT_SESSION_DURATION } from "coral-common/constants"; import { LanguageCode } from "coral-common/helpers/i18n/locales"; import TIME from "coral-common/time"; -import { DeepPartial, Omit, Sub } from "coral-common/types"; +import { DeepPartial, Sub } from "coral-common/types"; import { isBeforeDate } from "coral-common/utils"; import { dotize } from "coral-common/utils/dotize"; import logger from "coral-server/logger"; @@ -146,7 +146,7 @@ export async function createTenant( const defaults: Sub<Tenant, CreateTenantInput> = { // Create a new ID. - id: uuid.v4(), + id: uuid(), // Default to post moderation. moderation: GQLMODERATION_MODE.POST, @@ -302,7 +302,7 @@ export async function retrieveManyTenants( const tenants = await cursor.toArray(); - return ids.map(id => tenants.find(tenant => tenant.id === id) || null); + return ids.map((id) => tenants.find((tenant) => tenant.id === id) || null); } export async function retrieveManyTenantsByDomain( @@ -318,20 +318,16 @@ export async function retrieveManyTenantsByDomain( const tenants = await cursor.toArray(); return domains.map( - domain => tenants.find(tenant => tenant.domain === domain) || null + (domain) => tenants.find((tenant) => tenant.domain === domain) || null ); } export async function retrieveAllTenants(mongo: Db) { - return collection(mongo) - .find({}) - .toArray(); + return collection(mongo).find({}).toArray(); } export async function countTenants(mongo: Db) { - return collection(mongo) - .find({}) - .count(); + return collection(mongo).find({}).count(); } export type UpdateTenantInput = Omit<DeepPartial<Tenant>, "id" | "domain">; @@ -495,7 +491,7 @@ export async function createTenantAnnouncement( now = new Date() ) { const announcement = { - id: uuid.v4(), + id: uuid(), ...input, createdAt: now, }; @@ -588,9 +584,9 @@ export async function rollTenantWebhookEndpointSecret( // By excluding the last one (the one we just pushed)... .splice(0, endpoint.signingSecrets.length - 1) // And only finding keys that have not been rotated yet. - .filter(s => !s.rotatedAt) + .filter((s) => !s.rotatedAt) // And get their kid's. - .map(s => s.kid); + .map((s) => s.kid); if (secretKIDsToDeprecate.length > 0) { logger.trace( { kids: secretKIDsToDeprecate }, @@ -841,7 +837,7 @@ export async function retrieveLastUsedAtTenantSSOKeys( ...kids ); - return results.map(lastUsedAt => { + return results.map((lastUsedAt) => { if (!lastUsedAt) { return null; } diff --git a/src/core/server/models/user/helpers.spec.ts b/src/core/server/models/user/helpers.spec.ts index 3679e9cf9..8b7922b4a 100644 --- a/src/core/server/models/user/helpers.spec.ts +++ b/src/core/server/models/user/helpers.spec.ts @@ -1,4 +1,4 @@ -import uuid from "uuid/v1"; +import { v1 as uuid } from "uuid"; import { getLocalProfile, hasLocalProfile } from "./helpers"; import { LocalProfile, SSOProfile } from "./user"; diff --git a/src/core/server/models/user/helpers.ts b/src/core/server/models/user/helpers.ts index 734e809ef..52dc35224 100644 --- a/src/core/server/models/user/helpers.ts +++ b/src/core/server/models/user/helpers.ts @@ -27,7 +27,7 @@ export function getUserProfile( return null; } - return user.profiles.find(p => p.type === type) || null; + return user.profiles.find((p) => p.type === type) || null; } export function getSSOProfile(user: Pick<User, "profiles">) { diff --git a/src/core/server/models/user/user.ts b/src/core/server/models/user/user.ts index 11dd4899a..e48ffaa0e 100644 --- a/src/core/server/models/user/user.ts +++ b/src/core/server/models/user/user.ts @@ -1,9 +1,9 @@ import bcrypt from "bcryptjs"; import { DateTime, DurationObject } from "luxon"; import { Db, MongoError } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; -import { DeepPartial, Omit, Sub } from "coral-common/types"; +import { DeepPartial, Sub } from "coral-common/types"; import { dotize } from "coral-common/utils/dotize"; import { ConfirmEmailTokenExpired, @@ -514,7 +514,7 @@ export interface FindOrCreateUserInput { */ async function findOrCreateUserInput( tenantID: string, - { id = uuid.v4(), profile, ...input }: FindOrCreateUserInput, + { id = uuid(), profile, ...input }: FindOrCreateUserInput, now: Date ): Promise<Readonly<User>> { // default are the properties set by the application when a new user is @@ -549,7 +549,7 @@ async function findOrCreateUserInput( if (input.username) { // Add the username history to the user. defaults.status.username.history.push({ - id: uuid.v4(), + id: uuid(), username: input.username, createdBy: id, createdAt: now, @@ -679,7 +679,7 @@ export async function retrieveManyUsers( const users = await cursor.toArray(); - return ids.map(id => users.find(user => user.id === id) || null); + return ids.map((id) => users.find((user) => user.id === id) || null); } export async function retrieveUserWithProfile( @@ -1287,7 +1287,7 @@ export async function createUserToken( ) { // Create the Token that we'll be adding to the User. const token: Readonly<Token> = { - id: uuid.v4(), + id: uuid(), name, createdAt: now, }; @@ -1345,7 +1345,7 @@ export async function deactivateUserToken( } // Check to see if the User had that Token in the first place. - if (!user.tokens.find(t => t.id === id)) { + if (!user.tokens.find((t) => t.id === id)) { throw new TokenNotFoundError(); } @@ -1354,12 +1354,12 @@ export async function deactivateUserToken( // We have to typecast here because we know at this point that the record does // contain the Token. - const token: Token = result.value.tokens.find(t => t.id === id) as Token; + const token: Token = result.value.tokens.find((t) => t.id === id) as Token; // Mutate the user in order to remove the Token from the list of Token's. const updatedUser: Readonly<User> = { ...result.value, - tokens: result.value.tokens.filter(t => t.id !== id), + tokens: result.value.tokens.filter((t) => t.id !== id), }; return { @@ -1397,7 +1397,7 @@ async function retrieveConnection( } // Return a connection. - return resolveConnection(query, input, user => user.createdAt); + return resolveConnection(query, input, (user) => user.createdAt); } /** @@ -1897,7 +1897,7 @@ export async function createOrRetrieveUserPasswordResetID( id: string ): Promise<string> { // Create the ID. - const resetID = uuid.v4(); + const resetID = uuid(); // Associate the resetID with the user. const result = await collection(mongo).findOneAndUpdate( @@ -1952,7 +1952,7 @@ export async function createOrRetrieveUserEmailVerificationID( id: string ): Promise<string> { // Create the ID. - const emailVerificationID = uuid.v4(); + const emailVerificationID = uuid(); // Associate the resetID with the user. const result = await collection(mongo).findOneAndUpdate( @@ -2155,7 +2155,7 @@ export async function ignoreUser( // TODO: extract function if ( user.ignoredUsers && - user.ignoredUsers.some(u => u.id === ignoreUserID) + user.ignoredUsers.some((u) => u.id === ignoreUserID) ) { // TODO: improve error throw new Error("user already ignored"); @@ -2198,7 +2198,7 @@ export async function removeUserIgnore( // TODO: extract function if ( user.ignoredUsers && - user.ignoredUsers.every(u => u.id !== ignoreUserID) + user.ignoredUsers.every((u) => u.id !== ignoreUserID) ) { // TODO: improve error throw new Error("user already not ignored"); @@ -2298,7 +2298,7 @@ export async function insertUserNotificationDigests( now: Date ) { // Form the templates into digests to be sent. - const digests: Digest[] = templates.map(template => ({ + const digests: Digest[] = templates.map((template) => ({ template, createdAt: now, })); diff --git a/src/core/server/queue/index.ts b/src/core/server/queue/index.ts index 83afd1291..04feb428e 100644 --- a/src/core/server/queue/index.ts +++ b/src/core/server/queue/index.ts @@ -22,7 +22,7 @@ const createQueueOptions = (config: Config): Queue.QueueOptions => { // Here, we are reusing the clients based on the requested types. This way, // any time we need a specific client, we get to use one of the ones that // already have been created. - createClient: type => { + createClient: (type) => { switch (type) { case "subscriber": return subscriber; diff --git a/src/core/server/queue/tasks/mailer/content.ts b/src/core/server/queue/tasks/mailer/content.ts index 0560c9687..96078193f 100644 --- a/src/core/server/queue/tasks/mailer/content.ts +++ b/src/core/server/queue/tasks/mailer/content.ts @@ -32,7 +32,9 @@ function render(env: Environment, { name, context }: EmailTemplate) { if (err) { return reject(err); } - + if (html === null) { + throw new Error("unexpected null result"); + } return resolve(html); } ) diff --git a/src/core/server/queue/tasks/mailer/processor.ts b/src/core/server/queue/tasks/mailer/processor.ts index 5a5e49f01..863bac077 100644 --- a/src/core/server/queue/tasks/mailer/processor.ts +++ b/src/core/server/queue/tasks/mailer/processor.ts @@ -1,10 +1,10 @@ import { FluentBundle } from "@fluent/bundle/compat"; import { DOMLocalization } from "@fluent/dom/compat"; +import Joi from "@hapi/joi"; import { Job } from "bull"; import createDOMPurify from "dompurify"; import { minify } from "html-minifier"; import htmlToText from "html-to-text"; -import Joi from "joi"; import { JSDOM } from "jsdom"; import { juiceResources } from "juice"; import { camelCase, isNil } from "lodash"; @@ -131,7 +131,7 @@ function createMessageTranslator(i18n: I18n) { } // Configure the purification. - const purify = createDOMPurify(dom.window); + const purify = createDOMPurify(dom.window as any); // Strip the l10n attributes from the email HTML. purify.sanitize(dom.window.document.documentElement, { @@ -183,15 +183,11 @@ export const createJobProcessor = (options: MailProcessorOptions) => { const translateMessage = createMessageTranslator(i18n); return async (job: Job<MailerData>) => { - const { value: data, error: err } = Joi.validate( - job.data, - MailerDataSchema, - { - stripUnknown: true, - presence: "required", - abortEarly: false, - } - ); + const { value: data, error: err } = MailerDataSchema.validate(job.data, { + stripUnknown: true, + presence: "required", + abortEarly: false, + }); if (err) { logger.error( { diff --git a/src/core/server/queue/tasks/notifier/messages.ts b/src/core/server/queue/tasks/notifier/messages.ts index bb4706227..9ab4de815 100644 --- a/src/core/server/queue/tasks/notifier/messages.ts +++ b/src/core/server/queue/tasks/notifier/messages.ts @@ -46,7 +46,7 @@ export const filterSuperseded = ( // and declares that it supersedes this one, return true so we can filter // this one from the list. supersedesCategories.some( - supersededCategory => supersededCategory === name + (supersededCategory) => supersededCategory === name ) ); @@ -56,7 +56,7 @@ export const handleHandlers = async ( payload: CoralEventPayload ): Promise<CategoryNotification[]> => { const notifications: Array<CategoryNotification | null> = await Promise.all( - categories.map(async category => { + categories.map(async (category) => { const notification = await category.process(ctx, payload); if (!notification) { return null; @@ -68,7 +68,7 @@ export const handleHandlers = async ( // Filter out the categories that don't have notifications. return notifications.filter( - notification => notification !== null + (notification) => notification !== null ) as CategoryNotification[]; }; diff --git a/src/core/server/queue/tasks/webhook/processor.ts b/src/core/server/queue/tasks/webhook/processor.ts index d5667fbfd..d147349d1 100644 --- a/src/core/server/queue/tasks/webhook/processor.ts +++ b/src/core/server/queue/tasks/webhook/processor.ts @@ -78,7 +78,7 @@ export function generateSignatures( return endpoint.signingSecrets .filter(filterActiveSecrets(now)) .map(({ secret }) => generateSignature(secret, body)) - .map(signature => `sha256=${signature}`) + .map((signature) => `sha256=${signature}`) .join(","); } @@ -124,7 +124,7 @@ export function createJobProcessor({ // Create the fetcher that will orchestrate sending the actual webhooks. const fetch = createFetch({ name: "Webhook" }); - return async job => { + return async (job) => { const { tenantID, endpointID, contextID, event } = job.data; const log = logger.child( @@ -257,7 +257,7 @@ export function createJobProcessor({ mongo, tenantID, endpoint.id, - expiredSigningSecrets.map(s => s.kid) + expiredSigningSecrets.map((s) => s.kid) ) .then(() => { log.info( @@ -265,7 +265,7 @@ export function createJobProcessor({ "removed expired secrets from endpoint" ); }) - .catch(err => { + .catch((err) => { log.error( { err }, "an error occurred when trying to remove expired secrets" diff --git a/src/core/server/services/comments/actions.ts b/src/core/server/services/comments/actions.ts index 82f214938..0f38fe18a 100644 --- a/src/core/server/services/comments/actions.ts +++ b/src/core/server/services/comments/actions.ts @@ -1,6 +1,5 @@ import { Db } from "mongodb"; -import { Omit } from "coral-common/types"; import { CommentNotFoundError } from "coral-server/errors"; import { CoralEventPublisherBroker } from "coral-server/events/publisher"; import { diff --git a/src/core/server/services/comments/pipeline/phases/approve.ts b/src/core/server/services/comments/pipeline/phases/approve.ts index dd00802b2..3ba2bda1e 100644 --- a/src/core/server/services/comments/pipeline/phases/approve.ts +++ b/src/core/server/services/comments/pipeline/phases/approve.ts @@ -21,7 +21,7 @@ export const approve: IntermediateModerationPhase = ({ // tags assigned when we are in Q&A mode, so we can // trust this simple tag type check. if ( - tags.some(tag => tag.type === GQLTAG.STAFF || tag.type === GQLTAG.EXPERT) + tags.some((tag) => tag.type === GQLTAG.STAFF || tag.type === GQLTAG.EXPERT) ) { return { status: GQLCOMMENT_STATUS.APPROVED, diff --git a/src/core/server/services/comments/pipeline/phases/purify.ts b/src/core/server/services/comments/pipeline/phases/purify.ts index 74c221f93..b7fce4955 100644 --- a/src/core/server/services/comments/pipeline/phases/purify.ts +++ b/src/core/server/services/comments/pipeline/phases/purify.ts @@ -8,7 +8,7 @@ import { // Initializing JSDOM and DOMPurify const window = new JSDOM("", {}).window; -const DOMPurify = createPurify(window); +const DOMPurify = createPurify(window as any); export const purify: IntermediateModerationPhase = async ({ comment, diff --git a/src/core/server/services/comments/pipeline/phases/storyClosed.spec.ts b/src/core/server/services/comments/pipeline/phases/storyClosed.spec.ts index dbfbd0ae9..8588c805f 100644 --- a/src/core/server/services/comments/pipeline/phases/storyClosed.spec.ts +++ b/src/core/server/services/comments/pipeline/phases/storyClosed.spec.ts @@ -41,9 +41,7 @@ describe("storyClosed", () => { expect( storyClosed({ story: { - closedAt: DateTime.fromJSDate(now) - .plus(60000) - .toJSDate(), + closedAt: DateTime.fromJSDate(now).plus(60000).toJSDate(), } as ModerationPhaseContext["story"], tenant: { closeCommenting: { auto: true }, diff --git a/src/core/server/services/comments/pipeline/phases/tagExpertAnswers.ts b/src/core/server/services/comments/pipeline/phases/tagExpertAnswers.ts index cfb774196..d462a02e8 100644 --- a/src/core/server/services/comments/pipeline/phases/tagExpertAnswers.ts +++ b/src/core/server/services/comments/pipeline/phases/tagExpertAnswers.ts @@ -21,7 +21,7 @@ export const tagExpertAnswers: IntermediateModerationPhase = ({ // And we have experts for this story... story.settings.expertIDs && // And the author is in expert list... - story.settings.expertIDs.some(id => id === author.id) + story.settings.expertIDs.some((id) => id === author.id) ) { // Assign this comment an expert tag! const tags: CommentTag[] = [ diff --git a/src/core/server/services/comments/pipeline/phases/tagUnansweredQuestions.ts b/src/core/server/services/comments/pipeline/phases/tagUnansweredQuestions.ts index f228de008..6db1e7d2b 100644 --- a/src/core/server/services/comments/pipeline/phases/tagUnansweredQuestions.ts +++ b/src/core/server/services/comments/pipeline/phases/tagUnansweredQuestions.ts @@ -28,7 +28,7 @@ export const tagUnansweredQuestions: IntermediateModerationPhase = ({ // not an expert, then this is an UNANSWERED comment. if ( !story.settings.expertIDs || - story.settings.expertIDs.every(id => id !== comment.authorID) + story.settings.expertIDs.every((id) => id !== comment.authorID) ) { return { tags: [ diff --git a/src/core/server/services/comments/pipeline/pipeline.ts b/src/core/server/services/comments/pipeline/pipeline.ts index 2c311a4ef..f1a7db3d7 100644 --- a/src/core/server/services/comments/pipeline/pipeline.ts +++ b/src/core/server/services/comments/pipeline/pipeline.ts @@ -1,7 +1,7 @@ import { Db } from "mongodb"; import striptags from "striptags"; -import { Omit, Promiseable, RequireProperty } from "coral-common/types"; +import { Promiseable, RequireProperty } from "coral-common/types"; import { Config } from "coral-server/config"; import { Logger } from "coral-server/logger"; import { CreateActionInput } from "coral-server/models/action/comment"; @@ -77,7 +77,7 @@ export type IntermediateModerationPhase = ( */ export const compose = ( phases: IntermediateModerationPhase[] -): RootModerationPhase => async context => { +): RootModerationPhase => async (context) => { const final: PhaseResult = { status: GQLCOMMENT_STATUS.NONE, body: context.comment.body, @@ -138,7 +138,7 @@ export const compose = ( final.tags.push( // Only push in tags that we haven't already added. ...tags.filter( - ({ type }) => !final.tags.some(tag => tag.type === type) + ({ type }) => !final.tags.some((tag) => tag.type === type) ) ); } diff --git a/src/core/server/services/i18n/index.ts b/src/core/server/services/i18n/index.ts index 029b2265a..8f657b1ce 100644 --- a/src/core/server/services/i18n/index.ts +++ b/src/core/server/services/i18n/index.ts @@ -12,7 +12,7 @@ import logger from "coral-server/logger"; * @param locale the string that is being tested if it's a `LanguageCode` */ function isLanguageCode(locale: string): locale is LanguageCode { - return LOCALES.some(code => code === locale); + return LOCALES.some((code) => code === locale); } // pathsToLocales is the paths where to find the locales. diff --git a/src/core/server/services/jwt/index.ts b/src/core/server/services/jwt/index.ts index 8bc4085cf..54049924d 100644 --- a/src/core/server/services/jwt/index.ts +++ b/src/core/server/services/jwt/index.ts @@ -1,14 +1,14 @@ +import Joi from "@hapi/joi"; import cookie from "cookie"; import { IncomingMessage } from "http"; import { Redis } from "ioredis"; -import Joi from "joi"; import jwt, { KeyFunction, SignOptions, VerifyOptions } from "jsonwebtoken"; import { DateTime } from "luxon"; import { Bearer, BearerOptions } from "permit"; -import uuid from "uuid/v4"; +import { v4 as uuid } from "uuid"; import { DEFAULT_SESSION_DURATION } from "coral-common/constants"; -import { Omit } from "coral-common/types"; + import { AuthenticationError, JWTRevokedError, diff --git a/src/core/server/services/management/management.ts b/src/core/server/services/management/management.ts index 1d5476776..8325a9e65 100644 --- a/src/core/server/services/management/management.ts +++ b/src/core/server/services/management/management.ts @@ -1,4 +1,4 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { isNull } from "lodash"; import { TokenInvalidError } from "coral-server/errors"; @@ -18,13 +18,13 @@ export interface InstallationToken } const InstallationTokenSchema = StandardClaimsSchema.keys({ - aud: Joi.string().only("installation"), -}).requiredKeys(["iat", "exp", "sub", "aud"]); + aud: Joi.string().valid("installation"), +}).fork(["iat", "exp", "sub", "aud"], (s) => s.required()); export function validateInstallationToken( token: InstallationToken | object ): Error | null { - const { error } = Joi.validate(token, InstallationTokenSchema); + const { error } = InstallationTokenSchema.validate(token); return error || null; } diff --git a/src/core/server/services/metrics/index.ts b/src/core/server/services/metrics/index.ts index 4b701d2f8..84ab27a0b 100644 --- a/src/core/server/services/metrics/index.ts +++ b/src/core/server/services/metrics/index.ts @@ -1,10 +1,10 @@ import { Counter, Histogram } from "prom-client"; export interface Metrics { - executedGraphQueriesTotalCounter: Counter; - graphQLExecutionTimingsHistogram: Histogram; - httpRequestsTotal: Counter; - httpRequestDurationMilliseconds: Histogram; + executedGraphQueriesTotalCounter: Counter<string>; + graphQLExecutionTimingsHistogram: Histogram<string>; + httpRequestsTotal: Counter<string>; + httpRequestDurationMilliseconds: Histogram<string>; } export function createMetrics(): Metrics { diff --git a/src/core/server/services/migrate/manager.ts b/src/core/server/services/migrate/manager.ts index 61c5c9ede..6a0f73057 100644 --- a/src/core/server/services/migrate/manager.ts +++ b/src/core/server/services/migrate/manager.ts @@ -2,7 +2,7 @@ import fs from "fs-extra"; import { Redis } from "ioredis"; import { Db } from "mongodb"; import path from "path"; -import uuid from "uuid"; +import * as uuid from "uuid"; import { createTimer } from "coral-server/helpers"; import logger from "coral-server/logger"; @@ -125,7 +125,7 @@ export default class Manager { } } - return this.migrations.filter(migration => { + return this.migrations.filter((migration) => { // Find the record based on the migration. const record = records.find(({ id }) => migration.id === id); if (record) { diff --git a/src/core/server/services/notifications/categories/featured.ts b/src/core/server/services/notifications/categories/featured.ts index dd59d66bf..a1aefdaa5 100644 --- a/src/core/server/services/notifications/categories/featured.ts +++ b/src/core/server/services/notifications/categories/featured.ts @@ -7,9 +7,7 @@ import { hasPublishedStatus } from "coral-server/models/comment"; import { getStoryTitle, getURLWithCommentID } from "coral-server/models/story"; import { NotificationCategory } from "./category"; -export const featured: NotificationCategory< - CommentFeaturedCoralEventPayload -> = { +export const featured: NotificationCategory<CommentFeaturedCoralEventPayload> = { name: "featured", process: async (ctx, input) => { // Get the comment that was featured. diff --git a/src/core/server/services/notifications/categories/moderation.ts b/src/core/server/services/notifications/categories/moderation.ts index e5a0c6ec1..09cf717a7 100644 --- a/src/core/server/services/notifications/categories/moderation.ts +++ b/src/core/server/services/notifications/categories/moderation.ts @@ -9,9 +9,7 @@ import { GQLCOMMENT_STATUS } from "coral-server/graph/schema/__generated__/types import { NotificationCategory } from "./category"; -export const moderation: NotificationCategory< - CommentStatusUpdatedCoralEventPayload -> = { +export const moderation: NotificationCategory<CommentStatusUpdatedCoralEventPayload> = { name: "moderation", process: async (ctx, input) => { // Check to see if this comment was previously in a moderation status. diff --git a/src/core/server/services/notifications/categories/reply.ts b/src/core/server/services/notifications/categories/reply.ts index e6c595525..fcc52b3e8 100644 --- a/src/core/server/services/notifications/categories/reply.ts +++ b/src/core/server/services/notifications/categories/reply.ts @@ -55,7 +55,7 @@ export const reply: NotificationCategory<Payloads> = { // Check to see if this user is ignoring the user who replied to their // comment. - if (parentAuthor.ignoredUsers.some(user => user.id === author.id)) { + if (parentAuthor.ignoredUsers.some((user) => user.id === author.id)) { return null; } diff --git a/src/core/server/services/notifications/categories/unsubscribe.ts b/src/core/server/services/notifications/categories/unsubscribe.ts index c97d4cb61..14d10d759 100644 --- a/src/core/server/services/notifications/categories/unsubscribe.ts +++ b/src/core/server/services/notifications/categories/unsubscribe.ts @@ -1,8 +1,8 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { isNull } from "lodash"; import { DateTime } from "luxon"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; import { constructTenantURL } from "coral-server/app/url"; import { Config } from "coral-server/config"; @@ -24,13 +24,13 @@ export interface UnsubscribeToken extends Required<StandardClaims> { } const UnsubscribeTokenSchema = StandardClaimsSchema.keys({ - aud: Joi.string().only("unsubscribe"), + aud: Joi.string().valid("unsubscribe"), }); export function validateUnsubscribeToken( token: UnsubscribeToken | object ): Error | null { - const { error } = Joi.validate(token, UnsubscribeTokenSchema, { + const { error } = UnsubscribeTokenSchema.validate(token, { presence: "required", }); return error || null; @@ -61,7 +61,7 @@ export async function generateUnsubscribeURL( // Generate a token. const token: UnsubscribeToken = { - jti: uuid.v4(), + jti: uuid(), iss: tenant.id, sub: id, exp: expiresAt, diff --git a/src/core/server/services/notifications/context.ts b/src/core/server/services/notifications/context.ts index 2e6c3fa4b..13d9eebd7 100644 --- a/src/core/server/services/notifications/context.ts +++ b/src/core/server/services/notifications/context.ts @@ -61,7 +61,7 @@ export default class NotificationContext { public readonly users: DataLoader< string, Readonly<User> | null - > = new DataLoader(userIDs => + > = new DataLoader((userIDs) => retrieveManyUsers(this.mongo, this.tenant.id, userIDs) ); @@ -71,7 +71,7 @@ export default class NotificationContext { public readonly comments: DataLoader< string, Readonly<Comment> | null - > = new DataLoader(commentIDs => + > = new DataLoader((commentIDs) => retrieveManyComments(this.mongo, this.tenant.id, commentIDs) ); @@ -81,7 +81,7 @@ export default class NotificationContext { public readonly stories: DataLoader< string, Readonly<Story> | null - > = new DataLoader(storyIDs => + > = new DataLoader((storyIDs) => retrieveManyStories(this.mongo, this.tenant.id, storyIDs) ); diff --git a/src/core/server/services/redis/index.ts b/src/core/server/services/redis/index.ts index 31daa6122..1f8080eb7 100644 --- a/src/core/server/services/redis/index.ts +++ b/src/core/server/services/redis/index.ts @@ -1,6 +1,5 @@ import RedisClient, { Pipeline, Redis } from "ioredis"; -import { Omit } from "coral-common/types"; import { Config } from "coral-server/config"; import { InternalError } from "coral-server/errors"; import logger from "coral-server/logger"; diff --git a/src/core/server/services/sites/index.ts b/src/core/server/services/sites/index.ts index 14f82f832..72d476494 100644 --- a/src/core/server/services/sites/index.ts +++ b/src/core/server/services/sites/index.ts @@ -1,6 +1,5 @@ import { Db } from "mongodb"; -import { Omit } from "coral-common/types"; import { getOrigin } from "coral-server/app/url"; import { createSite, diff --git a/src/core/server/services/sites/url.ts b/src/core/server/services/sites/url.ts index 082f10797..ab8d5b542 100644 --- a/src/core/server/services/sites/url.ts +++ b/src/core/server/services/sites/url.ts @@ -53,6 +53,6 @@ export function isURLPermitted( // is required with the target url scheme. Return if at least one match is // found within the Tenant domains. return domains - .map(domain => getOrigin(prefixSchemeIfRequired(originSecure, domain))) - .some(origin => origin === targetOrigin); + .map((domain) => getOrigin(prefixSchemeIfRequired(originSecure, domain))) + .some((origin) => origin === targetOrigin); } diff --git a/src/core/server/services/stories/index.ts b/src/core/server/services/stories/index.ts index 7b2a4b9e4..8e0109366 100644 --- a/src/core/server/services/stories/index.ts +++ b/src/core/server/services/stories/index.ts @@ -340,13 +340,13 @@ export async function merge( // Compute the new comment counts from the old stories. const commentCounts = { status: mergeCommentStatusCount( - ...sourceStories.map(s => s.commentCounts.status) + ...sourceStories.map((s) => s.commentCounts.status) ), moderationQueue: mergeCommentModerationQueueCount( - ...sourceStories.map(s => s.commentCounts.moderationQueue) + ...sourceStories.map((s) => s.commentCounts.moderationQueue) ), action: mergeCommentActionCounts( - ...sourceStories.map(s => s.commentCounts.action) + ...sourceStories.map((s) => s.commentCounts.action) ), }; diff --git a/src/core/server/services/stories/scraper/rules/modified.ts b/src/core/server/services/stories/scraper/rules/modified.ts index 663492b4b..ca1d9a469 100644 --- a/src/core/server/services/stories/scraper/rules/modified.ts +++ b/src/core/server/services/stories/scraper/rules/modified.ts @@ -7,6 +7,6 @@ export const modifiedScraper = (): Rules => ({ modified: [ // From: http://ogp.me/#type_article toDate($jsonld("dateModified")), - toDate($ => $('meta[property="article:modified"]').attr("content")), + toDate(($) => $('meta[property="article:modified"]').attr("content")), ], }); diff --git a/src/core/server/services/stories/scraper/rules/published.ts b/src/core/server/services/stories/scraper/rules/published.ts index 31a683626..c2fabff5d 100644 --- a/src/core/server/services/stories/scraper/rules/published.ts +++ b/src/core/server/services/stories/scraper/rules/published.ts @@ -8,19 +8,19 @@ export const publishedScraper = (): Rules => ({ // From: http://ogp.me/#type_article toDate($jsonld("datePublished")), toDate($jsonld("dateCreated")), - toDate($ => $('meta[property*="published_time" i]').attr("content")), - toDate($ => $('meta[property*="release_date" i]').attr("content")), - toDate($ => $('meta[name="date" i]').attr("content")), - toDate($ => $('[itemprop="datepublished" i]').attr("content")), - toDate($ => $('[itemprop*="date" i]').attr("content")), - toDate($ => $('time[itemprop*="date" i]').attr("datetime")), - toDate($ => $("time[datetime]").attr("datetime")), - toDate($ => $("time[datetime][pubdate]").attr("datetime")), - toDate($ => $('meta[name*="dc.date" i]').attr("content")), - toDate($ => $('meta[name*="dc.date.issued" i]').attr("content")), - toDate($ => $('meta[name*="dc.date.created" i]').attr("content")), - toDate($ => $('meta[name*="dcterms.date" i]').attr("content")), - toDate($ => $('[property*="dc:date" i]').attr("content")), - toDate($ => $('[property*="dc:created" i]').attr("content")), + toDate(($) => $('meta[property*="published_time" i]').attr("content")), + toDate(($) => $('meta[property*="release_date" i]').attr("content")), + toDate(($) => $('meta[name="date" i]').attr("content")), + toDate(($) => $('[itemprop="datepublished" i]').attr("content")), + toDate(($) => $('[itemprop*="date" i]').attr("content")), + toDate(($) => $('time[itemprop*="date" i]').attr("datetime")), + toDate(($) => $("time[datetime]").attr("datetime")), + toDate(($) => $("time[datetime][pubdate]").attr("datetime")), + toDate(($) => $('meta[name*="dc.date" i]').attr("content")), + toDate(($) => $('meta[name*="dc.date.issued" i]').attr("content")), + toDate(($) => $('meta[name*="dc.date.created" i]').attr("content")), + toDate(($) => $('meta[name*="dcterms.date" i]').attr("content")), + toDate(($) => $('[property*="dc:date" i]').attr("content")), + toDate(($) => $('[property*="dc:created" i]').attr("content")), ], }); diff --git a/src/core/server/services/stories/scraper/rules/section.ts b/src/core/server/services/stories/scraper/rules/section.ts index fdf6bfac5..4c1915120 100644 --- a/src/core/server/services/stories/scraper/rules/section.ts +++ b/src/core/server/services/stories/scraper/rules/section.ts @@ -7,6 +7,6 @@ export const sectionScraper = (): Rules => ({ section: [ // From: http://ogp.me/#type_article wrap($jsonld("articleSection")), - wrap($ => $('meta[property="article:section"]').attr("content")), + wrap(($) => $('meta[property="article:section"]').attr("content")), ], }); diff --git a/src/core/server/services/tenant/cache/adapter.ts b/src/core/server/services/tenant/cache/adapter.ts index 03edf4b67..1797ff98f 100644 --- a/src/core/server/services/tenant/cache/adapter.ts +++ b/src/core/server/services/tenant/cache/adapter.ts @@ -50,7 +50,7 @@ export class TenantCacheAdapter<T> { if (this.tenantCache.cachingEnabled && !this.unsubscribeFn) { this.unsubscribeFn = this.tenantCache.subscribe( ({ id }) => this.handle(id), - id => this.handle(id) + (id) => this.handle(id) ); } } diff --git a/src/core/server/services/tenant/cache/index.ts b/src/core/server/services/tenant/cache/index.ts index 0ce73e23e..771ac6daf 100644 --- a/src/core/server/services/tenant/cache/index.ts +++ b/src/core/server/services/tenant/cache/index.ts @@ -2,9 +2,8 @@ import DataLoader from "dataloader"; import { EventEmitter } from "events"; import { Redis } from "ioredis"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; -import { Omit } from "coral-common/types"; import { Config } from "coral-server/config"; import logger from "coral-server/logger"; import { @@ -76,7 +75,7 @@ export default class TenantCache { * generated by this application from being handled as external messages * as we should have already processed it. */ - private readonly clientApplicationID = uuid.v4(); + private readonly clientApplicationID = uuid(); private readonly mongo: Db; private readonly emitter = new EventEmitter(); @@ -99,16 +98,16 @@ export default class TenantCache { // Configure the data loaders. this.tenantsByID = new DataLoader( - async ids => { + async (ids) => { logger.debug({ ids: ids.length }, "now loading tenants"); const tenants = await retrieveManyTenants(this.mongo, ids); logger.debug( - { tenants: tenants.filter(t => t !== null).length }, + { tenants: tenants.filter((t) => t !== null).length }, "loaded tenants" ); tenants - .filter(t => t !== null) + .filter((t) => t !== null) .forEach((t: Readonly<Tenant>) => this.tenantCountCache.add(t.id)); return tenants; @@ -119,16 +118,16 @@ export default class TenantCache { ); this.tenantsByDomain = new DataLoader( - async domains => { + async (domains) => { logger.debug({ domains: domains.length }, "now loading tenants"); const tenants = await retrieveManyTenantsByDomain(this.mongo, domains); logger.debug( - { tenants: tenants.filter(t => t !== null).length }, + { tenants: tenants.filter((t) => t !== null).length }, "loaded tenants" ); tenants - .filter(t => t !== null) + .filter((t) => t !== null) .forEach((t: Readonly<Tenant>) => this.tenantCountCache.add(t.id)); return tenants; @@ -182,7 +181,7 @@ export default class TenantCache { this.tenantCountCache.clear(); // Prime the cache with each of these tenants. - tenants.forEach(tenant => { + tenants.forEach((tenant) => { this.tenantsByID.prime(tenant.id, tenant); this.tenantsByDomain.prime(tenant.domain, tenant); this.tenantCountCache.add(tenant.id); diff --git a/src/core/server/services/tenant/sso.ts b/src/core/server/services/tenant/sso.ts index 9bc9a25a8..660df6c0a 100644 --- a/src/core/server/services/tenant/sso.ts +++ b/src/core/server/services/tenant/sso.ts @@ -38,7 +38,7 @@ export async function rotateSSOKey( // Deprecate the old Tenant SSO key if it exists. if (tenant.auth.integrations.sso.keys.length > 0) { // Get the old keys that are not deprecated. - const keysToDeprecate = tenant.auth.integrations.sso.keys.filter(key => { + const keysToDeprecate = tenant.auth.integrations.sso.keys.filter((key) => { return !key.rotatedAt; }); @@ -82,7 +82,7 @@ export async function deactivateSSOKey( kid: string, now: Date ) { - const key = tenant.auth.integrations.sso.keys.find(k => k.kid === kid); + const key = tenant.auth.integrations.sso.keys.find((k) => k.kid === kid); if (!key) { throw new Error("specified kid not found on tenant"); } @@ -112,7 +112,7 @@ export async function deleteSSOKey( tenant: Tenant, kid: string ) { - const key = tenant.auth.integrations.sso.keys.find(k => k.kid === kid); + const key = tenant.auth.integrations.sso.keys.find((k) => k.kid === kid); if (!key) { throw new Error("specified kid not found on tenant"); } diff --git a/src/core/server/services/users/auth/confirm.spec.ts b/src/core/server/services/users/auth/confirm.spec.ts index 65644613d..e8ef86d4e 100644 --- a/src/core/server/services/users/auth/confirm.spec.ts +++ b/src/core/server/services/users/auth/confirm.spec.ts @@ -1,4 +1,4 @@ -import uuid from "uuid/v1"; +import { v1 as uuid } from "uuid"; import { ConfirmToken, isConfirmToken } from "./confirm"; diff --git a/src/core/server/services/users/auth/confirm.ts b/src/core/server/services/users/auth/confirm.ts index 0d1e03078..d2171fc18 100644 --- a/src/core/server/services/users/auth/confirm.ts +++ b/src/core/server/services/users/auth/confirm.ts @@ -1,8 +1,8 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { isNull } from "lodash"; import { DateTime } from "luxon"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; import { constructTenantURL } from "coral-server/app/url"; import { Config } from "coral-server/config"; @@ -44,7 +44,7 @@ export interface ConfirmToken extends Required<StandardClaims> { } const ConfirmTokenSchema = StandardClaimsSchema.keys({ - aud: Joi.string().only("confirm"), + aud: Joi.string().valid("confirm"), email: Joi.string().email(), evid: Joi.string(), }); @@ -52,7 +52,7 @@ const ConfirmTokenSchema = StandardClaimsSchema.keys({ export function validateConfirmToken( token: ConfirmToken | object ): Error | null { - const { error } = Joi.validate(token, ConfirmTokenSchema, { + const { error } = ConfirmTokenSchema.validate(token, { presence: "required", }); return error || null; @@ -91,7 +91,7 @@ export async function generateConfirmURL( // Generate a token with this new reset ID. const confirmToken: ConfirmToken = { - jti: uuid.v4(), + jti: uuid(), iss: tenant.id, sub: id, exp: expiresAt, diff --git a/src/core/server/services/users/auth/invite.ts b/src/core/server/services/users/auth/invite.ts index f820b9857..02deda30f 100644 --- a/src/core/server/services/users/auth/invite.ts +++ b/src/core/server/services/users/auth/invite.ts @@ -1,8 +1,8 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { isNull, uniq } from "lodash"; import { DateTime } from "luxon"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; import { constructTenantURL } from "coral-server/app/url"; import { Config } from "coral-server/config"; @@ -52,12 +52,12 @@ export interface InviteToken extends Required<StandardClaims> { } const InviteTokenSchema = StandardClaimsSchema.keys({ - aud: Joi.string().only("invite"), + aud: Joi.string().valid("invite"), email: Joi.string().email(), }); export function validateInviteToken(token: InviteToken | object): Error | null { - const { error } = Joi.validate(token, InviteTokenSchema, { + const { error } = InviteTokenSchema.validate(token, { presence: "required", }); return error || null; @@ -85,7 +85,7 @@ export async function generateInviteURL( // Generate a token. const inviteToken: InviteToken = { - jti: uuid.v4(), + jti: uuid(), iss: tenant.id, sub: id, exp: Math.round(DateTime.fromJSDate(user.expiresAt).toSeconds()), @@ -255,8 +255,8 @@ export async function invite( }); } - return emails.map(email => { - const result = payloads.find(payload => payload.email === email); + return emails.map((email) => { + const result = payloads.find((payload) => payload.email === email); if (!result) { return null; } @@ -308,7 +308,7 @@ export async function redeem( id: email, type: "local", password, - passwordID: uuid.v4(), + passwordID: uuid(), }; // Create the new user based on the invite. diff --git a/src/core/server/services/users/auth/reset.spec.ts b/src/core/server/services/users/auth/reset.spec.ts index 3838ddb8e..5ef781778 100644 --- a/src/core/server/services/users/auth/reset.spec.ts +++ b/src/core/server/services/users/auth/reset.spec.ts @@ -1,4 +1,4 @@ -import uuid from "uuid/v1"; +import { v1 as uuid } from "uuid"; import { isResetToken, ResetToken } from "./reset"; diff --git a/src/core/server/services/users/auth/reset.ts b/src/core/server/services/users/auth/reset.ts index 9dda8a899..ee231dd12 100644 --- a/src/core/server/services/users/auth/reset.ts +++ b/src/core/server/services/users/auth/reset.ts @@ -1,8 +1,8 @@ -import Joi from "joi"; +import Joi from "@hapi/joi"; import { isNil } from "lodash"; import { DateTime } from "luxon"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; import { LocalProfileNotSetError, @@ -43,12 +43,12 @@ export interface ResetToken extends Required<StandardClaims> { } const ResetTokenSchema = StandardClaimsSchema.keys({ - aud: Joi.string().only("reset"), + aud: Joi.string().valid("reset"), rid: Joi.string(), }); export function isResetToken(token: ResetToken | object): token is ResetToken { - const { error } = Joi.validate(token, ResetTokenSchema, { + const { error } = ResetTokenSchema.validate(token, { presence: "required", }); return isNil(error); @@ -89,7 +89,7 @@ export async function generateResetURL( // Generate a token with this new reset ID. const resetToken: ResetToken = { - jti: uuid.v4(), + jti: uuid(), iss: tenant.id, sub: user.id, exp: expiresAt, diff --git a/src/core/server/services/users/delete.ts b/src/core/server/services/users/delete.ts index d2b3d4d3a..45119a115 100644 --- a/src/core/server/services/users/delete.ts +++ b/src/core/server/services/users/delete.ts @@ -51,7 +51,7 @@ async function deleteUserActionCounts( const cursor = collections .commentActions(mongo) - .find({ tenantID, userID, actionType: "REACTION" }); + .find({ tenantID, userID, actionType: ACTION_TYPE.REACTION }); while (await cursor.hasNext()) { const action = await cursor.next(); if (!action) { diff --git a/src/core/server/services/users/download/token.ts b/src/core/server/services/users/download/token.ts index ee475257b..20e93c7d1 100644 --- a/src/core/server/services/users/download/token.ts +++ b/src/core/server/services/users/download/token.ts @@ -1,9 +1,9 @@ +import Joi from "@hapi/joi"; import { Redis } from "ioredis"; -import Joi from "joi"; import { isNull } from "lodash"; import { DateTime } from "luxon"; import { Db } from "mongodb"; -import uuid from "uuid"; +import { v4 as uuid } from "uuid"; import { constructTenantURL } from "coral-server/app/url"; import { Config } from "coral-server/config"; @@ -25,7 +25,7 @@ interface DownloadToken extends Required<StandardClaims> { } const DownloadTokenSchema = StandardClaimsSchema.keys({ - aud: Joi.string().only("download"), + aud: Joi.string().valid("download"), }); export async function generateDownloadToken( @@ -40,7 +40,7 @@ export async function generateDownloadToken( const expiresAt = Math.round(nowDate.plus({ weeks: 2 }).toSeconds()); const downloadToken: DownloadToken = { - jti: uuid.v4(), + jti: uuid(), iss: tenant.id, sub: userID, exp: expiresAt, @@ -99,7 +99,7 @@ export async function generateAdminDownloadLink( export function validateDownloadToken( token: DownloadToken | object ): Error | null { - const { error } = Joi.validate(token, DownloadTokenSchema, { + const { error } = DownloadTokenSchema.validate(token, { presence: "required", }); return error || null; diff --git a/src/core/server/services/users/users.ts b/src/core/server/services/users/users.ts index ad5f91ec5..d836ec0df 100644 --- a/src/core/server/services/users/users.ts +++ b/src/core/server/services/users/users.ts @@ -532,7 +532,7 @@ export async function deactivateToken( user: User, id: string ) { - if (!user.tokens.find(t => t.id === id)) { + if (!user.tokens.find((t) => t.id === id)) { throw new TokenNotFoundError(); } @@ -1121,7 +1121,7 @@ export async function ignore( } // TODO: extract function - if (user.ignoredUsers && user.ignoredUsers.some(u => u.id === userID)) { + if (user.ignoredUsers && user.ignoredUsers.some((u) => u.id === userID)) { // TODO: improve error throw new Error("user already ignored"); } @@ -1143,7 +1143,7 @@ export async function removeIgnore( throw new UserNotFoundError(userID); } - if (user.ignoredUsers && user.ignoredUsers.every(u => u.id !== userID)) { + if (user.ignoredUsers && user.ignoredUsers.every((u) => u.id !== userID)) { // TODO: improve error throw new Error("user already not ignored"); } @@ -1336,8 +1336,8 @@ export async function link( // Ensure there is no clash between the source and destination user profiles. const profiles = { - destination: (destination.profiles || []).map(p => p.type), - source: (source.profiles || []).map(p => p.type), + destination: (destination.profiles || []).map((p) => p.type), + source: (source.profiles || []).map((p) => p.type), }; // Check for any intersecting profiles. diff --git a/src/core/server/stacks/createComment.ts b/src/core/server/stacks/createComment.ts index 2be7bc567..a6804d6ba 100644 --- a/src/core/server/stacks/createComment.ts +++ b/src/core/server/stacks/createComment.ts @@ -1,7 +1,7 @@ import { Db } from "mongodb"; import { ERROR_TYPES } from "coral-common/errors"; -import { Omit } from "coral-common/types"; + import { Config } from "coral-server/config"; import { CommentNotFoundError, @@ -89,7 +89,7 @@ const markCommentAsAnswered = async ( if ( // If we are the export on this story... - story.settings.expertIDs.some(id => id === author.id) && + story.settings.expertIDs.some((id) => id === author.id) && // And this is the first reply (depth of 1)... comment.ancestorIDs.length === 1 ) { diff --git a/src/core/server/stacks/editComment.ts b/src/core/server/stacks/editComment.ts index 6954e253a..339492680 100644 --- a/src/core/server/stacks/editComment.ts +++ b/src/core/server/stacks/editComment.ts @@ -1,7 +1,6 @@ import { DateTime } from "luxon"; import { Db } from "mongodb"; -import { Omit } from "coral-common/types"; import { Config } from "coral-server/config"; import { CommentNotFoundError, StoryNotFoundError } from "coral-server/errors"; import { CoralEventPublisherBroker } from "coral-server/events/publisher"; diff --git a/src/docs/forms.mdx b/src/docs/forms.mdx index 4588dd9b0..c49e4ff54 100644 --- a/src/docs/forms.mdx +++ b/src/docs/forms.mdx @@ -9,7 +9,7 @@ Let's build some forms! We will use the following compoenents `InputLabel`, `Typ ### Examples -import { Playground, PropsTable } from 'docz' +import { Playground } from 'docz' import { InputLabel, CallOut, ValidationMessage, TextField, InputDescription, Flex, Button, FormField, Typography } from '../core/client/ui/components' ## Simple Form diff --git a/src/index.ts b/src/index.ts index 5aa49e93d..ff4067fea 100644 --- a/src/index.ts +++ b/src/index.ts @@ -24,7 +24,7 @@ dotenv.config(); // Makes the script crash on unhandled rejections instead of silently // ignoring them. In the future, promise rejections that are not handled will // terminate the Node.js process with a non-zero exit code. -process.on("unhandledRejection", err => { +process.on("unhandledRejection", (err) => { throw err; }); diff --git a/src/locales/da/admin.ftl b/src/locales/da/admin.ftl index d9c7460dc..1a27b66e9 100644 --- a/src/locales/da/admin.ftl +++ b/src/locales/da/admin.ftl @@ -558,7 +558,7 @@ community-userStatus-unknown = Ukendt community-userStatus-changeButton = .aria-label = Skift brugerstatus -community-banModal-areYouSure = Er du sikker på, at du vil forbyde <strong>{ $username }</strong>? +community-banModal-areYouSure = Er du sikker på, at du vil forbyde <username></username>? community-banModal-consequence = Når det er forbudt, vil denne bruger ikke længere være i stand til at kommentere, bruge reaktioner eller rapportere kommentarer. community-banModal-cancel = Afbestille diff --git a/src/locales/en-US/admin.ftl b/src/locales/en-US/admin.ftl index 137064dc6..929e76fa3 100644 --- a/src/locales/en-US/admin.ftl +++ b/src/locales/en-US/admin.ftl @@ -908,7 +908,7 @@ community-userStatus-changeButton = community-userStatus-premodUser = Always pre-moderate community-userStatus-removePremod = Remove pre-moderate -community-banModal-areYouSure = Are you sure you want to ban <strong>{ $username }</strong>? +community-banModal-areYouSure = Are you sure you want to ban <username></username>? community-banModal-consequence = Once banned, this user will no longer be able to comment, use reactions, or report comments. diff --git a/src/locales/fr-FR/admin.ftl b/src/locales/fr-FR/admin.ftl index 4deb10bf5..927564f0c 100755 --- a/src/locales/fr-FR/admin.ftl +++ b/src/locales/fr-FR/admin.ftl @@ -657,7 +657,7 @@ community-userStatus-changeButton = community-userStatus-premodUser = Toujours pré-modéré community-userStatus-removePremod = Supprimer la pré-modération -community-banModal-areYouSure = Êtes-vous sûr de vouloir bannir <strong>{ $username }</strong> ? +community-banModal-areYouSure = Êtes-vous sûr de vouloir bannir <username></username>? community-banModal-consequence = Une fois banni, cet utilisateur ne sera plus capable de commenter, de réagir ou de signaler des commentaires. diff --git a/src/locales/pt-BR/admin.ftl b/src/locales/pt-BR/admin.ftl index 1f43340ae..04399bc76 100644 --- a/src/locales/pt-BR/admin.ftl +++ b/src/locales/pt-BR/admin.ftl @@ -860,7 +860,7 @@ community-userStatus-changeButton = community-userStatus-premodUser = Sempre pré-moderado community-userStatus-removePremod = Remover pré-moderação -community-banModal-areYouSure = Você tem certeza que quer banir <strong>{ $username }</strong>? +community-banModal-areYouSure = Você tem certeza que quer banir <username></username>? community-banModal-consequence = Uma vez banido, este usuário não poderá mais comentar, usar   reações ou relatar comentários. diff --git a/src/types/content-security-policy-builder.d.ts b/src/types/content-security-policy-builder.d.ts deleted file mode 100644 index 7326b560b..000000000 --- a/src/types/content-security-policy-builder.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare module "content-security-policy-builder" { - export default function builder({ - directives, - }: { - directives: Record<string, any>; - }): string; -} diff --git a/src/types/express-static-gzip.d.ts b/src/types/express-static-gzip.d.ts deleted file mode 100644 index 2278f9ee0..000000000 --- a/src/types/express-static-gzip.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare module "express-static-gzip" { - export = express_static_gzip; - - function express_static_gzip(rootFolder: any, options: any): any; -} diff --git a/src/types/found-relay.d.ts b/src/types/found-relay.d.ts index be5093fd4..02d8f7d60 100644 --- a/src/types/found-relay.d.ts +++ b/src/types/found-relay.d.ts @@ -1,8 +1,8 @@ declare module "found-relay" { - import { Resolver } from "found"; + import { Resolver as FoundResolver } from "found"; import { Environment } from "relay-runtime"; - export class Resolver implements Resolver { + export class Resolver implements FoundResolver { constructor(relayEnvironment: Environment); - public resolveElements: Resolver["resolveElements"]; + public resolveElements: FoundResolver["resolveElements"]; } } diff --git a/src/types/linkifyjs.d.ts b/src/types/linkifyjs.d.ts deleted file mode 100644 index 01277f164..000000000 --- a/src/types/linkifyjs.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module "linkifyjs/html" { - function linkify(html: string, options?: any): string; - export default linkify; -} diff --git a/src/types/passport-google-oauth2.d.ts b/src/types/passport-google-oauth2.d.ts index fb0ad8af1..8a7318d54 100644 --- a/src/types/passport-google-oauth2.d.ts +++ b/src/types/passport-google-oauth2.d.ts @@ -26,7 +26,7 @@ declare module "passport-google-oauth2" { done: (error: any, user?: any, info?: any) => void ) => void; - export class Strategy extends passport.Strategy { + export class Strategy implements passport.Strategy { constructor( options: StrategyOptionWithRequest, verify: VerifyFunctionWithRequest diff --git a/src/types/react-relay-network-modern.d.ts b/src/types/react-relay-network-modern.d.ts deleted file mode 100644 index cef76b717..000000000 --- a/src/types/react-relay-network-modern.d.ts +++ /dev/null @@ -1,327 +0,0 @@ -/* eslint-disable */ - -// TODO: send a PR to DefinitelyTyped. - -declare module "react-relay-network-modern/es" { - // TODO: missing typescript types. - // import { QueryResponseCache } from 'relay-runtime'; - import { ExecuteFunction } from "relay-runtime"; - - export interface Variables { - [name: string]: any; - } - - export interface FetchOpts { - url?: string; - method: "POST" | "GET"; - headers: { [name: string]: string }; - body: string | FormData; - // Avaliable request modes in fetch options. For details see https://fetch.spec.whatwg.org/#requests - credentials?: "same-origin" | "include" | "omit"; - mode?: "cors" | "websocket" | "navigate" | "no-cors" | "same-origin"; - cache?: - | "default" - | "no-store" - | "reload" - | "no-cache" - | "force-cache" - | "only-if-cached"; - redirect?: "follow" | "error" | "manual"; - [name: string]: any; - } - - export interface ConcreteBatch { - kind: "Batch"; - fragment: any; - id?: string | null; - metadata: { [key: string]: any }; - name: string; - query: any; - text?: string | null; - } - - export interface CacheConfig { - force?: boolean | null; - poll?: number | null; - rerunParamExperimental?: any; - } - - export type FetchResponse = Response; - - export type Uploadable = File | Blob; - export interface UploadableMap { - [key: string]: Uploadable; - } - - export class RelayRequest { - public static lastGenId: number; - public id: string; - public fetchOpts: FetchOpts; - - public operation: ConcreteBatch; - public variables: Variables; - public cacheConfig: CacheConfig; - public uploadables?: UploadableMap | null; - - public getBody(): string | FormData; - public prepareBody(): string | FormData; - public getID(): string; - public getQueryString(): string; - public getVariables(): Variables; - public isMutation(): boolean; - public isFormData(): boolean; - public clone(): RelayRequest; - } - - export class RelayResponse { - public data?: PayloadData | null; - public errors?: any[] | null; - - public ok: any; - public status: number; - public statusText?: string | null; - public headers?: { [name: string]: string } | null; - public url?: string | null; - public text?: string | null; - public json: any; - - public static createFromFetch(res: FetchResponse): Promise<RelayResponse>; - public static createFromGraphQL(res: { - errors?: any; - data?: any; - }): Promise<RelayResponse>; - - public processJsonData(json: any): void; - - public clone(): RelayResponse; - - public toString(): string; - } - - export interface PayloadData { - [key: string]: any; - } - - export type QueryPayload = - | { - data?: PayloadData | null; - errors?: any[]; - rerunVariables?: Variables; - } - | RelayResponse; - - // this is workaround should be class from relay-runtime/network/RelayObservable.js - export type RelayObservable<T> = Promise<T>; - // Note: This should accept Subscribable<T> instead of RelayObservable<T>, - // however Flow cannot yet distinguish it from T. - - export type ObservableFromValue<T> = RelayObservable<T> | Promise<T> | T; - - export type FetchHookFunction = ( - operation: ConcreteBatch, - variables: Variables, - cacheConfig: CacheConfig, - uploadables?: UploadableMap | null - ) => void | ObservableFromValue<QueryPayload>; - - export interface RelayNetworkLayerOpts { - subscribeFn?: SubscribeFunction; - beforeFetch?: FetchHookFunction; - noThrow?: boolean; - } - - export interface Disposable { - dispose(): void; - } - - export type SubscribeFunction = ( - operation: ConcreteBatch, - variables: Variables, - cacheConfig: CacheConfig, - observer: any - ) => RelayObservable<QueryPayload> | Disposable; - - export type Requests = RelayRequest[]; - - export class RelayRequestBatch { - public fetchOpts: Partial<FetchOpts>; - public requests: Requests; - - constructor(requests: Requests); - public setFetchOption(name: string, value: any): void; - public setFetchOptions(opts: Object): void; - public getBody(): string; - public prepareBody(): string; - public getIds(): string[]; - public getID(): string; - public isMutation(): boolean; - public isFormData(): boolean; - public clone(): RelayRequestBatch; - public getVariables(): Variables; - public getQueryString(): string; - } - - export type RelayRequestAny = RelayRequest | RelayRequestBatch; - export type MiddlewareNextFn = ( - req: RelayRequestAny - ) => Promise<RelayResponse>; - export type Middleware = (next: MiddlewareNextFn) => MiddlewareNextFn; - export type MiddlewareRawNextFn = ( - req: RelayRequestAny - ) => Promise<FetchResponse>; - - export interface MiddlewareRaw { - isRawMiddleware: true; - (next: MiddlewareRawNextFn): MiddlewareRawNextFn; - } - - export interface MiddlewareSync { - execute: ( - operation: ConcreteBatch, - variables: Variables, - cacheConfig: CacheConfig, - uploadables?: UploadableMap | null - ) => ObservableFromValue<QueryPayload>; - } - - export class RelayNetworkLayer { - constructor( - middlewares: Array<Middleware | MiddlewareSync | MiddlewareRaw>, - opts?: RelayNetworkLayerOpts - ); - execute: ExecuteFunction; - } - - export interface AuthMiddlewareOpts { - token?: - | string - | Promise<string> - | ((req: RelayRequestAny) => string | Promise<string>); - tokenRefreshPromise?: ( - req: RelayRequestAny, - res: RelayResponse - ) => string | Promise<string>; - allowEmptyToken?: boolean; - prefix?: string; - header?: string; - } - - export const authMiddleware: (opts?: AuthMiddlewareOpts) => Middleware; - - export interface BatchRequestMap { - [reqId: string]: RequestWrapper; - } - - export interface RequestWrapper { - req: RelayRequest; - completeOk: (res: Object) => void; - completeErr: (e: Error) => void; - done: boolean; - duplicates: RequestWrapper[]; - } - - export interface BatchMiddlewareOpts { - batchUrl?: - | string - | Promise<string> - | ((requestMap: BatchRequestMap) => string | Promise<string>); - batchTimeout?: number; - maxBatchSize?: number; - allowMutations?: boolean; - method?: "POST" | "GET"; - headers?: - | Headers - | Promise<Headers> - | ((req: RelayRequestBatch) => Headers | Promise<Headers>); - // Avaliable request modes in fetch options. For details see https://fetch.spec.whatwg.org/#requests - credentials?: FetchOpts["credentials"]; - mode?: FetchOpts["mode"]; - cache?: FetchOpts["cache"]; - redirect?: FetchOpts["redirect"]; - } - - export const batchMiddleware: (opts?: BatchMiddlewareOpts) => Middleware; - - interface CacheMiddlewareOpts { - size?: number; - ttl?: number; - onInit?: (cache: any /* TODO: missing type QueryResponseCache */) => any; - allowMutations?: boolean; - allowFormData?: boolean; - clearOnMutation?: boolean; - } - - export const cacheMiddleware: (opts?: CacheMiddlewareOpts) => Middleware; - - export interface GqlErrorMiddlewareOpts { - logger?: Function; - prefix?: string; - disableServerMiddlewareTip?: boolean; - } - export const errorMiddleware: (opts?: GqlErrorMiddlewareOpts) => Middleware; - - export interface LoggerMiddlewareOpts { - logger?: Function; - } - export const loggerMiddleware: (opts?: LoggerMiddlewareOpts) => Middleware; - - export interface PerfMiddlewareOpts { - logger?: Function; - } - export const performanceMiddleware: (opts?: PerfMiddlewareOpts) => Middleware; - - export interface ProgressOpts { - sizeHeader?: string; - onProgress: (runningTotal: number, totalSize?: number | null) => any; - } - export const progressMiddleware: (opts?: ProgressOpts) => Middleware; - - export type RetryAfterFn = (attempt: number) => number | false; - export type ForceRetryFn = (runNow: Function, delay: number) => any; - export type StatusCheckFn = ( - statusCode: number, - req: RelayRequestAny, - res: RelayResponse - ) => boolean; - - export type AbortFn = (msg?: string) => any; - - export type BeforeRetryCb = (meta: { - forceRetry: Function; - abort: AbortFn; - delay: number; - attempt: number; - lastError: Error | null; - req: RelayRequestAny; - }) => any; - - export interface RetryMiddlewareOpts { - fetchTimeout?: number; - retryDelays?: number[] | RetryAfterFn; - statusCodes?: number[] | false | StatusCheckFn; - logger?: Function | false; - allowMutations?: boolean; - allowFormData?: boolean; - forceRetry?: ForceRetryFn | false; - beforeRetry?: BeforeRetryCb | false; - } - export const retryMiddleware: (opts?: RetryMiddlewareOpts) => Middleware; - - export interface UrlMiddlewareOpts { - url: - | string - | Promise<string> - | ((req: RelayRequest) => string | Promise<string>); - method?: "POST" | "GET"; - headers?: - | Headers - | Promise<Headers> - | ((req: RelayRequest) => Headers | Promise<Headers>); - // Avaliable request modes in fetch options. For details see https://fetch.spec.whatwg.org/#requests - credentials?: FetchOpts["credentials"]; - mode?: FetchOpts["mode"]; - cache?: FetchOpts["cache"]; - redirect?: FetchOpts["redirect"]; - } - export const urlMiddleware: (opts?: UrlMiddlewareOpts) => Middleware; -} diff --git a/tsconfig.json b/tsconfig.json index 48c130889..a19aab5d8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,6 +14,7 @@ "strictNullChecks": true, "noErrorTruncation": true, "resolveJsonModule": true, + "skipLibCheck": true, "lib": ["dom", "es6", "esnext.asynciterable"], "plugins": [ {