diff --git a/app/client/.eslintrc.js b/app/client/.eslintrc.js
index 4518ef96ce..431c668da0 100644
--- a/app/client/.eslintrc.js
+++ b/app/client/.eslintrc.js
@@ -17,6 +17,7 @@ module.exports = {
rules: {
"@typescript-eslint/explicit-function-return-type": 0,
"@typescript-eslint/no-explicit-any": 0,
+ "react-hooks/rules-of-hooks": "error",
},
settings: {
react: {
diff --git a/app/client/.storybook/config.js b/app/client/.storybook/config.js
index 6f9aaffa6e..eebdba1cd1 100644
--- a/app/client/.storybook/config.js
+++ b/app/client/.storybook/config.js
@@ -1,3 +1,8 @@
+import "normalize.css/normalize.css";
+import "@blueprintjs/icons/lib/css/blueprint-icons.css";
+import "@blueprintjs/core/lib/css/blueprint.css";
+import "../src/index.css";
+
import { configure, addDecorator } from "@storybook/react";
import { withContexts } from "@storybook/addon-contexts/react";
import { contexts } from "./configs/contexts";
diff --git a/app/client/package.json b/app/client/package.json
index 3dca06d325..452a7f9ed0 100644
--- a/app/client/package.json
+++ b/app/client/package.json
@@ -44,18 +44,19 @@
"husky": "^3.0.5",
"jsonpath-plus": "^1.0.0",
"lint-staged": "^9.2.5",
+ "localforage": "^1.7.3",
"lodash": "^4.17.11",
"moment": "^2.24.0",
"moment-timezone": "^0.5.27",
- "monaco-editor": "^0.15.1",
- "monaco-editor-webpack-plugin": "^1.7.0",
+ "monaco-editor": "^0.19.0",
+ "monaco-editor-webpack-plugin": "^1.1.0",
"nanoid": "^2.0.4",
"node-sass": "^4.11.0",
"normalizr": "^3.3.0",
"popper.js": "^1.15.0",
"prettier": "^1.18.2",
"re-reselect": "^3.4.0",
- "react": "^16.7.0",
+ "react": "^16.12.0",
"react-base-table": "^1.9.1",
"react-dnd": "^9.3.4",
"react-dnd-html5-backend": "^9.3.4",
@@ -63,18 +64,18 @@
"react-dom": "^16.7.0",
"react-helmet": "^5.2.1",
"react-monaco-editor": "^0.31.1",
- "react-redux": "^6.0.0",
+ "react-redux": "^7.1.3",
"react-rnd": "^10.1.1",
"react-router": "^5.1.2",
"react-router-dom": "^5.1.2",
- "react-scripts": "^3.1.1",
+ "react-scripts": "^3.3.0",
"react-select": "^3.0.8",
- "react-transition-group": "^4.3.0",
"react-simple-tree-menu": "^1.1.9",
"react-tabs": "^3.0.0",
+ "react-transition-group": "^4.3.0",
"redux": "^4.0.1",
"redux-form": "^8.2.6",
- "redux-saga": "^1.0.0",
+ "redux-saga": "^1.1.3",
"reselect": "^4.0.0",
"shallowequal": "^1.1.0",
"source-map-explorer": "^2.1.1",
@@ -129,6 +130,7 @@
"eslint-config-react": "^1.1.7",
"eslint-plugin-prettier": "^3.1.0",
"eslint-plugin-react": "^7.14.3",
+ "eslint-plugin-react-hooks": "^2.3.0",
"react-docgen-typescript-loader": "^3.6.0",
"react-is": "^16.12.0",
"react-test-renderer": "^16.11.0",
diff --git a/app/client/public/favicon-black.ico b/app/client/public/favicon-black.ico
new file mode 100644
index 0000000000..340bfdd88f
Binary files /dev/null and b/app/client/public/favicon-black.ico differ
diff --git a/app/client/public/favicon-orange.ico b/app/client/public/favicon-orange.ico
new file mode 100644
index 0000000000..47c59c8c3b
Binary files /dev/null and b/app/client/public/favicon-orange.ico differ
diff --git a/app/client/public/index.html b/app/client/public/index.html
index ec593cba40..0edeec0ccd 100755
--- a/app/client/public/index.html
+++ b/app/client/public/index.html
@@ -10,11 +10,7 @@
-
-
-
-
-
+
Appsmith
diff --git a/app/client/public/manifest.json b/app/client/public/manifest.json
index 1f2f141faf..2d12e03717 100755
--- a/app/client/public/manifest.json
+++ b/app/client/public/manifest.json
@@ -1,6 +1,6 @@
{
- "short_name": "React App",
- "name": "Create React App Sample",
+ "short_name": "Appsmith App",
+ "name": "Appsmith Client Web UI",
"icons": [
{
"src": "favicon.ico",
diff --git a/app/client/src/App.test.js b/app/client/src/App.test.js
deleted file mode 100755
index a754b201bf..0000000000
--- a/app/client/src/App.test.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import React from 'react';
-import ReactDOM from 'react-dom';
-import App from './App';
-
-it('renders without crashing', () => {
- const div = document.createElement('div');
- ReactDOM.render(, div);
- ReactDOM.unmountComponentAtNode(div);
-});
diff --git a/app/client/src/App.tsx b/app/client/src/App.tsx
index a67424af96..98307cc975 100755
--- a/app/client/src/App.tsx
+++ b/app/client/src/App.tsx
@@ -1,23 +1,14 @@
-import React, { Component } from "react";
-import { Helmet } from "react-helmet";
+import React from "react";
+import { Redirect } from "react-router-dom";
+import { useSelector } from "store";
+import { APPLICATIONS_URL } from "constants/routes";
import "./App.css";
import "../node_modules/@blueprintjs/core/src/blueprint.scss";
-class App extends Component {
- render() {
- return (
-
- );
- }
-}
+export const App = () => {
+ const currentUser = useSelector(state => state.ui.users.current);
+ return currentUser ? : null;
+};
export default App;
diff --git a/app/client/src/api/OrgApi.ts b/app/client/src/api/OrgApi.ts
new file mode 100644
index 0000000000..5cac5438c0
--- /dev/null
+++ b/app/client/src/api/OrgApi.ts
@@ -0,0 +1,44 @@
+import { AxiosPromise } from "axios";
+import Api from "./Api";
+import { ApiResponse } from "./ApiResponses";
+import { OrgRole, Org } from "constants/orgConstants";
+
+export interface FetchOrgRolesResponse extends ApiResponse {
+ data: OrgRole[];
+}
+
+export interface FetchOrgsResponse extends ApiResponse {
+ data: Org[];
+}
+export interface FetchOrgResponse extends ApiResponse {
+ data: Org;
+}
+
+export interface FetchOrgRequest {
+ orgId: string;
+}
+
+export interface SaveOrgRequest {
+ id: string;
+ name: string;
+ website: string;
+}
+
+class OrgApi extends Api {
+ static rolesURL = "v1/groups";
+ static orgsURL = "v1/organizations";
+ static fetchRoles(): AxiosPromise {
+ return Api.get(OrgApi.rolesURL);
+ }
+ static fetchOrgs(): AxiosPromise {
+ return Api.get(OrgApi.orgsURL);
+ }
+ static fetchOrg(request: FetchOrgRequest): AxiosPromise {
+ return Api.get(OrgApi.orgsURL + "/" + request.orgId);
+ }
+ static saveOrg(request: SaveOrgRequest): AxiosPromise {
+ return Api.put(OrgApi.orgsURL + "/" + request.id, request);
+ }
+}
+
+export default OrgApi;
diff --git a/app/client/src/api/UserApi.tsx b/app/client/src/api/UserApi.tsx
index 5cd9080f1d..a1e5cee86d 100644
--- a/app/client/src/api/UserApi.tsx
+++ b/app/client/src/api/UserApi.tsx
@@ -34,11 +34,28 @@ export interface ResetPasswordVerifyTokenRequest {
token: string;
}
+export interface FetchUserResponse extends ApiResponse {
+ id: string;
+}
+
+export interface FetchUserRequest {
+ id: string;
+}
+
+export interface InviteUserRequest {
+ email: string;
+ groupIds: string[];
+ status?: string;
+}
+
class UserApi extends Api {
+ //TODO(abhinav): make a baseURL, to which the other paths are added.
static createURL = "v1/users";
static forgotPasswordURL = "v1/users/forgotPassword";
static verifyResetPasswordTokenURL = "v1/users/verifyPasswordResetToken";
static resetPasswordURL = "v1/users/resetPassword";
+ static fetchUserURL = "v1/users";
+ static inviteUserURL = "v1/users/invite";
static createUser(
request: CreateUserRequest,
): AxiosPromise {
@@ -62,6 +79,15 @@ class UserApi extends Api {
): AxiosPromise {
return Api.get(UserApi.verifyResetPasswordTokenURL, request);
}
+
+ static fetchUser(request: FetchUserRequest): AxiosPromise {
+ return Api.get(UserApi.fetchUserURL + "/" + request.id);
+ }
+
+ static inviteUser(request: InviteUserRequest): AxiosPromise {
+ request.status = "INVITED";
+ return Api.post(UserApi.inviteUserURL, request);
+ }
}
export default UserApi;
diff --git a/app/client/src/assets/icons/menu/org.svg b/app/client/src/assets/icons/menu/org.svg
new file mode 100644
index 0000000000..fcfd90d8e0
--- /dev/null
+++ b/app/client/src/assets/icons/menu/org.svg
@@ -0,0 +1,3 @@
+
diff --git a/app/client/src/components/designSystems/appsmith/Dropdown.tsx b/app/client/src/components/designSystems/appsmith/Dropdown.tsx
index f2c17de06f..4fe8fea30b 100644
--- a/app/client/src/components/designSystems/appsmith/Dropdown.tsx
+++ b/app/client/src/components/designSystems/appsmith/Dropdown.tsx
@@ -1,5 +1,6 @@
import React from "react";
import Select from "react-select";
+
import { WrappedFieldInputProps } from "redux-form";
import { theme } from "constants/DefaultTheme";
diff --git a/app/client/src/components/designSystems/appsmith/StyledHeader.tsx b/app/client/src/components/designSystems/appsmith/StyledHeader.tsx
index d89cb3a6ce..d5216eb3e4 100644
--- a/app/client/src/components/designSystems/appsmith/StyledHeader.tsx
+++ b/app/client/src/components/designSystems/appsmith/StyledHeader.tsx
@@ -2,7 +2,7 @@ import styled from "styled-components";
export default styled.header`
display: flex;
- width: 100vw;
+ width: 100%;
justify-content: space-around;
align-items: center;
height: ${props => props.theme.headerHeight};
diff --git a/app/client/src/components/editorComponents/Button.tsx b/app/client/src/components/editorComponents/Button.tsx
new file mode 100644
index 0000000000..0f3126e080
--- /dev/null
+++ b/app/client/src/components/editorComponents/Button.tsx
@@ -0,0 +1,102 @@
+import React from "react";
+import { Intent, BlueprintButtonIntentsCSS } from "constants/DefaultTheme";
+import styled, { css } from "styled-components";
+import {
+ AnchorButton as BlueprintAnchorButton,
+ Button as BlueprintButton,
+ Intent as BlueprintIntent,
+ IconName,
+} from "@blueprintjs/core";
+import { Direction, Directions } from "utils/helpers";
+
+const outline = css`
+ &&&&&& {
+ border-width: 1px;
+ border-style: solid;
+ }
+`;
+
+const buttonStyles = css<{
+ outline?: string;
+ intent?: Intent;
+ filled?: string;
+}>`
+ ${BlueprintButtonIntentsCSS}
+ &&&& {
+ padding: ${props =>
+ props.filled || props.outline
+ ? props.theme.spaces[3] + "px " + props.theme.spaces[3] + "px"
+ : 0};
+ background: ${props =>
+ props.filled || props.outline ? "auto" : "transparent"};
+ }
+
+ ${props => (props.outline ? outline : "")}
+`;
+const StyledButton = styled(BlueprintButton)<{
+ outline?: string;
+ intent?: Intent;
+ filled?: string;
+}>`
+ ${buttonStyles}
+`;
+const StyledAnchorButton = styled(BlueprintAnchorButton)<{
+ outline?: string;
+ intent?: Intent;
+ filled?: string;
+}>`
+ ${buttonStyles}
+`;
+
+export type ButtonProps = {
+ outline?: boolean;
+ filled?: boolean;
+ intent?: Intent;
+ text?: string;
+ onClick?: () => void;
+ href?: string;
+ icon?: string;
+ iconAlignment?: Direction;
+};
+
+export const Button = (props: ButtonProps) => {
+ const icon: IconName | undefined =
+ props.icon &&
+ (props.iconAlignment === Directions.LEFT ||
+ props.iconAlignment === undefined)
+ ? (props.icon as IconName)
+ : undefined;
+ const rightIcon: IconName | undefined =
+ props.icon && props.iconAlignment === Directions.RIGHT
+ ? (props.icon as IconName)
+ : undefined;
+
+ const baseProps = {
+ text: props.text,
+ minimal: !props.filled,
+ outline: props.outline ? props.outline.toString() : undefined,
+ filled: props.filled ? props.filled.toString() : undefined,
+ intent: props.intent as BlueprintIntent,
+ large: true,
+ };
+ if (props.href) {
+ return (
+
+ );
+ } else
+ return (
+
+ );
+};
+
+export default Button;
diff --git a/app/client/src/components/editorComponents/FormGroup.tsx b/app/client/src/components/editorComponents/FormGroup.tsx
deleted file mode 100644
index 913ab8b59e..0000000000
--- a/app/client/src/components/editorComponents/FormGroup.tsx
+++ /dev/null
@@ -1,8 +0,0 @@
-import styled from "styled-components";
-import { FormGroup } from "@blueprintjs/core";
-const StyledFormGroup = styled(FormGroup)`
- & {
- width: 100%;
- }
-`;
-export default StyledFormGroup;
diff --git a/app/client/src/components/editorComponents/SelectComponent.tsx b/app/client/src/components/editorComponents/SelectComponent.tsx
new file mode 100644
index 0000000000..2b93c58a0f
--- /dev/null
+++ b/app/client/src/components/editorComponents/SelectComponent.tsx
@@ -0,0 +1,43 @@
+import React from "react";
+import CustomizedDropdown, {
+ CustomizedDropdownProps,
+} from "pages/common/CustomizedDropdown/index";
+
+type SelectComponentProps = {
+ input: {
+ value?: string;
+ onChange?: (value: string) => void;
+ };
+ options?: Array<{ id: string; name: string }>;
+ placeholder?: string;
+};
+
+export const SelectComponent = (props: SelectComponentProps) => {
+ const dropdownProps: CustomizedDropdownProps = {
+ sections: [
+ {
+ isSticky: false,
+ options:
+ props.options &&
+ props.options.map(option => ({
+ content: option.name,
+ onSelect: () =>
+ props.input.onChange && props.input.onChange(option.id),
+ shouldCloseDropdown: true,
+ })),
+ },
+ ],
+ trigger: {
+ text: props.input.value
+ ? props.options &&
+ props.options.filter(option => props.input.value === option.id)[0]
+ .name
+ : props.placeholder,
+ outline: true,
+ },
+ openDirection: "down",
+ };
+ return ;
+};
+
+export default SelectComponent;
diff --git a/app/client/src/components/editorComponents/TagInputComponent.tsx b/app/client/src/components/editorComponents/TagInputComponent.tsx
new file mode 100644
index 0000000000..535f737c78
--- /dev/null
+++ b/app/client/src/components/editorComponents/TagInputComponent.tsx
@@ -0,0 +1,106 @@
+import React, { useState } from "react";
+import styled from "styled-components";
+import { TagInput } from "@blueprintjs/core";
+import {
+ Intent,
+ IntentColors,
+ getColorWithOpacity,
+} from "constants/DefaultTheme";
+const TagInputWrapper = styled.div<{ intent?: Intent }>`
+ &&& {
+ .bp3-tag {
+ color: ${props => props.theme.colors.textDefault};
+ font-size: ${props => props.theme.fontSizes[3]}px;
+ background: ${props =>
+ props.intent
+ ? getColorWithOpacity(IntentColors[props.intent], 0.2)
+ : getColorWithOpacity(IntentColors.none, 0.2)};
+ border: 1px solid
+ ${props =>
+ props.intent ? IntentColors[props.intent] : IntentColors.none};
+ }
+ }
+`;
+type TagInputProps = {
+ /** TagInput Placeholder */
+ placeholder: string;
+ /** TagInput value and onChange handler */
+ input: {
+ value?: string;
+ onChange?: (value: string) => void;
+ };
+ /** TagInput type of individual entries (HTML input types) */
+ type: string;
+ /** A delimiter which decides when to separate string into tags */
+ separator?: string | RegExp | undefined;
+ /** Intent of the tags, which defines their color */
+ intent?: Intent;
+ hasError?: boolean;
+};
+
+/**
+ * TagInputComponent
+ * Takes in a comma separated set of values (input.value prop) to display in tags
+ * On addition or removal of tags, passes the comman separated string to input.onChange prop
+ * @param props : TagInputProps
+ */
+const TagInputComponent = (props: TagInputProps) => {
+ const _values =
+ props.input.value &&
+ props.input.value.length > 0 &&
+ props.input.value.split(",");
+
+ const [values, setValues] = useState(_values || []);
+ const [currentValue, setCurrentValue] = useState("");
+
+ const commitValues = (newValues: string[]) => {
+ setValues(newValues);
+ props.input.onChange &&
+ props.input.onChange(newValues.filter(Boolean).join(","));
+ };
+ const onTagsChange = (values: React.ReactNode[]) => {
+ const _values = values as string[];
+ commitValues(_values);
+ };
+
+ const onKeyDown = (e: any) => {
+ if (e.key === "," || e.key === "Enter" || e.key === " ") {
+ const newValues = [...values, e.target.value];
+ commitValues(newValues);
+ setCurrentValue("");
+ } else if (e.key === "Backspace") {
+ if (e.target.value.length === 0) {
+ const newValues = values.slice(0, -1);
+ commitValues(newValues);
+ }
+ }
+ };
+
+ const handleInputChange = (e: any) => {
+ if ([",", " ", "Enter"].indexOf(e.target.value) === -1) {
+ setCurrentValue(e.target.value);
+ }
+ };
+
+ return (
+
+
+
+ );
+};
+
+export default TagInputComponent;
diff --git a/app/client/src/components/editorComponents/form/FieldError.tsx b/app/client/src/components/editorComponents/form/FieldError.tsx
new file mode 100644
index 0000000000..6405fc16bf
--- /dev/null
+++ b/app/client/src/components/editorComponents/form/FieldError.tsx
@@ -0,0 +1,46 @@
+import React from "react";
+import styled from "styled-components";
+import { IntentColors } from "constants/DefaultTheme";
+// Note: This component is only for the input fields which donot have the
+// popover error tooltip. This is also only for Appsmith components
+// Not to be used in widgets / canvas
+
+const StyledError = styled.span<{ show: boolean }>`
+ text-align: left;
+ color: ${IntentColors.danger};
+ font-size: ${props => props.theme.fontSizes[2]}px;
+ opacity: ${props => (props.show ? 1 : 0)};
+ padding-left: ${props => props.theme.fontSizes[3]}px;
+ position: relative;
+ margin-top: ${props => props.theme.spaces[1]}px;
+ &:before {
+ position: absolute;
+ content: "!";
+ color: white;
+ background: ${IntentColors.danger};
+ height: ${props => props.theme.fontSizes[2]}px;
+ width: ${props => props.theme.fontSizes[2]}px;
+ border-radius: 50%;
+ position: absolute;
+ content: "!";
+ color: white;
+ border-radius: 50%;
+ left: 0;
+ top: 2px;
+ display: flex;
+ font-weight: ${props => props.theme.fontWeights[2]};
+ font-size: ${props => props.theme.fontSizes[1]}px;
+ justify-content: center;
+ align-items: center;
+ }
+`;
+
+type FormFieldErrorProps = {
+ error?: string;
+};
+
+export const FormFieldError = (props: FormFieldErrorProps) => {
+ return {props.error};
+};
+
+export default FormFieldError;
diff --git a/app/client/src/components/editorComponents/form/FormActionButton.tsx b/app/client/src/components/editorComponents/form/FormActionButton.tsx
new file mode 100644
index 0000000000..c4b30095c2
--- /dev/null
+++ b/app/client/src/components/editorComponents/form/FormActionButton.tsx
@@ -0,0 +1,12 @@
+import styled from "styled-components";
+import { Button } from "@blueprintjs/core";
+import { Intent, BlueprintButtonIntentsCSS } from "constants/DefaultTheme";
+
+type FormActionButtonProps = {
+ intent?: Intent;
+ large?: boolean;
+};
+
+export default styled(Button)`
+ ${BlueprintButtonIntentsCSS}
+`;
diff --git a/app/client/src/components/editorComponents/form/FormFooter.tsx b/app/client/src/components/editorComponents/form/FormFooter.tsx
new file mode 100644
index 0000000000..adbc781be3
--- /dev/null
+++ b/app/client/src/components/editorComponents/form/FormFooter.tsx
@@ -0,0 +1,58 @@
+import React from "react";
+import styled from "styled-components";
+import FormActionButton from "components/editorComponents/form/FormActionButton";
+import Divider from "components/editorComponents/Divider";
+
+type FormFooterProps = {
+ onCancel?: () => void;
+ onSubmit?: () => void;
+ divider?: boolean;
+ submitting: boolean;
+ submitText?: string;
+ cancelText?: string;
+ submitOnEnter?: boolean;
+};
+
+const FooterActions = styled.div`
+ margin: 1em;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ & > button {
+ margin-left: 1em;
+ }
+`;
+
+const FormFooterContainer = styled.div`
+ padding: 1em 0;
+`;
+
+export const FormFooter = (props: FormFooterProps) => {
+ return (
+
+ {props.divider && }
+
+ {props.onCancel && (
+
+ )}
+ {props.onSubmit && (
+
+ )}
+
+
+ );
+};
+
+export default FormFooter;
diff --git a/app/client/src/components/editorComponents/form/FormGroup.tsx b/app/client/src/components/editorComponents/form/FormGroup.tsx
new file mode 100644
index 0000000000..6c207f712c
--- /dev/null
+++ b/app/client/src/components/editorComponents/form/FormGroup.tsx
@@ -0,0 +1,11 @@
+import styled from "styled-components";
+import { FormGroup } from "@blueprintjs/core";
+type FormGroupProps = {
+ fill?: boolean;
+};
+const StyledFormGroup = styled(FormGroup)`
+ & {
+ width: ${props => (props.fill ? "100%" : "auto")};
+ }
+`;
+export default StyledFormGroup;
diff --git a/app/client/src/components/editorComponents/form/MessageTag.tsx b/app/client/src/components/editorComponents/form/FormMessage.tsx
similarity index 88%
rename from app/client/src/components/editorComponents/form/MessageTag.tsx
rename to app/client/src/components/editorComponents/form/FormMessage.tsx
index a204a08069..51635cbe25 100644
--- a/app/client/src/components/editorComponents/form/MessageTag.tsx
+++ b/app/client/src/components/editorComponents/form/FormMessage.tsx
@@ -6,7 +6,7 @@ import {
AnchorButton,
Button,
} from "@blueprintjs/core";
-import { Intent, BlueprintIntentsCSS } from "constants/DefaultTheme";
+import { Intent, BlueprintButtonIntentsCSS } from "constants/DefaultTheme";
export type MessageAction = {
url?: string;
@@ -34,7 +34,7 @@ const ActionsContainer = styled.div`
align-items: center;
& .appsmith-message-action-button {
border: none;
- ${BlueprintIntentsCSS}
+ ${BlueprintButtonIntentsCSS}
}
`;
@@ -63,14 +63,14 @@ const ActionButton = (props: MessageAction) => {
return null;
};
-export type MessageTagProps = {
+export type FormMessageProps = {
intent: Intent;
message: string;
title?: string;
actions?: MessageAction[];
};
-export const MessageTag = (props: MessageTagProps) => {
+export const FormMessage = (props: FormMessageProps) => {
const actions =
props.actions &&
props.actions.map(action => );
@@ -83,4 +83,4 @@ export const MessageTag = (props: MessageTagProps) => {
);
};
-export default MessageTag;
+export default FormMessage;
diff --git a/app/client/src/components/editorComponents/form/fields/SelectField.tsx b/app/client/src/components/editorComponents/form/fields/SelectField.tsx
new file mode 100644
index 0000000000..c1367f4665
--- /dev/null
+++ b/app/client/src/components/editorComponents/form/fields/SelectField.tsx
@@ -0,0 +1,43 @@
+import React from "react";
+import {
+ Field,
+ WrappedFieldMetaProps,
+ WrappedFieldInputProps,
+} from "redux-form";
+import FormFieldError from "components/editorComponents/form/FieldError";
+import SelectComponent from "components/editorComponents/SelectComponent";
+
+const renderComponent = (
+ componentProps: SelectFieldProps & {
+ meta: Partial;
+ input: Partial;
+ },
+) => {
+ return (
+
+
+
+
+ );
+};
+
+type SelectFieldProps = {
+ name: string;
+ placeholder?: string;
+ options?: Array<{ id: string; name: string; value?: string }>;
+};
+
+export const SelectField = (props: SelectFieldProps) => {
+ return (
+
+ );
+};
+
+export default SelectField;
diff --git a/app/client/src/components/editorComponents/form/fields/TagListField.tsx b/app/client/src/components/editorComponents/form/fields/TagListField.tsx
new file mode 100644
index 0000000000..106077e249
--- /dev/null
+++ b/app/client/src/components/editorComponents/form/fields/TagListField.tsx
@@ -0,0 +1,44 @@
+import React from "react";
+import {
+ Field,
+ WrappedFieldMetaProps,
+ WrappedFieldInputProps,
+} from "redux-form";
+import TagInputComponent from "components/editorComponents/TagInputComponent";
+import { Intent } from "constants/DefaultTheme";
+import FormFieldError from "components/editorComponents/form/FieldError";
+
+const renderComponent = (
+ componentProps: TagListFieldProps & {
+ meta: Partial;
+ input: Partial;
+ },
+) => {
+ return (
+
+
+
+
+
+ );
+};
+
+type TagListFieldProps = {
+ name: string;
+ placeholder: string;
+ type: string;
+ label: string;
+ intent: Intent;
+};
+
+const TagListField = (props: TagListFieldProps) => {
+ return (
+
+
+
+ );
+};
+
+export default TagListField;
diff --git a/app/client/src/constants/DefaultTheme.tsx b/app/client/src/constants/DefaultTheme.tsx
index 3ea43db3cf..7b84abda74 100644
--- a/app/client/src/constants/DefaultTheme.tsx
+++ b/app/client/src/constants/DefaultTheme.tsx
@@ -1,6 +1,7 @@
import * as styledComponents from "styled-components";
import { Colors, Color } from "./Colors";
import * as FontFamilies from "./Fonts";
+import tinycolor from "tinycolor2";
import _ from "lodash";
export type FontFamily = typeof FontFamilies[keyof typeof FontFamilies];
@@ -16,7 +17,7 @@ const {
export const IntentColors: Record = {
primary: Colors.GREEN,
success: Colors.PURPLE,
- secondary: Colors.GEYSER_LIGHT,
+ secondary: Colors.BLACK_PEARL,
danger: Colors.RED,
none: Colors.GEYSER_LIGHT,
warning: Colors.JAFFA,
@@ -24,24 +25,99 @@ export const IntentColors: Record = {
export type Intent = typeof IntentColors[keyof typeof IntentColors];
-export const BlueprintIntentsCSS = css`
- &.bp3.minimal.bp3-button {
- color: ${IntentColors.none};
- }
- &.bp3.minimal.bp3-intent-primary {
- color: ${IntentColors.primary};
- }
- &.bp3.minimal.bp3-intent-secondary {
+export const darken = (color: Color, intensity: number) => {
+ return new tinycolor(color).darken(intensity).toString();
+};
+
+export const darkenHover = (color: Color) => {
+ return darken(color, 8);
+};
+
+export const darkenActive = (color: Color) => {
+ return darken(color, 16);
+};
+
+const getHoverAndActiveStyles = (color: Color, filled = true) => {
+ return css`
+ background: ${color};
+ border-color: ${filled ? color : "auto"};
+ color: ${filled ? Colors.WHITE : "auto"};
+ &:hover {
+ background: ${darkenHover(color)};
+ border-color: ${darkenHover(color)};
+ box-shadow: none;
+ }
+ &:active {
+ background: ${darkenActive(color)};
+ border-color: ${darkenActive(color)};
+ box-shadow: none;
+ }
+ `;
+};
+
+export const BlueprintButtonIntentsCSS = css`
+ &&&.bp3-button {
+ box-shadow: none;
+ display: flex;
+ border-width: 1px;
+ border-style: solid;
+ outline: none;
+ min-width: 100px;
color: ${IntentColors.secondary};
+ border-color: ${IntentColors.none};
+ & span.bp3-icon {
+ color: ${IntentColors.none};
+ }
+ background: ${Colors.WHITE};
}
- &.bp3.minimal.bp3-intent-danger {
+ &&&.bp3-button.bp3-intent-primary:not(.bp3-minimal) {
+ background: ${IntentColors.primary};
+ ${getHoverAndActiveStyles(IntentColors.primary)}
+ }
+ &&&.bp3-button.bp3-intent-secondary:not(.bp3-minimal) {
+ background: ${IntentColors.secondary};
+ ${getHoverAndActiveStyles(IntentColors.secondary)}
+ }
+ &&&.bp3-button.bp3-intent-danger:not(.bp3-minimal) {
+ background: ${IntentColors.danger};
+ ${getHoverAndActiveStyles(IntentColors.danger)}
+ }
+ &&&.bp3-button.bp3-intent-success:not(.bp3-minimal) {
+ background: ${IntentColors.success};
+ ${getHoverAndActiveStyles(IntentColors.success)}
+ }
+ &&&.bp3-button.bp3-intent-warning:not(.bp3-minimal) {
+ background: ${IntentColors.warning};
+ ${getHoverAndActiveStyles(IntentColors.warning)}
+ }
+
+ &&&.bp3-minimal.bp3-button {
+ color: ${IntentColors.secondary};
+ border: none;
+ border-color: ${IntentColors.none};
+ & span.bp3-icon {
+ color: ${IntentColors.none};
+ }
+ }
+ &&&.bp3-minimal.bp3-intent-primary {
+ color: ${IntentColors.primary};
+ border-color: ${IntentColors.primary};
+ }
+ &&&.bp3-minimal.bp3-intent-secondary {
+ color: ${IntentColors.secondary};
+ border-color: ${IntentColors.secondary};
+ }
+ &&&.bp3-minimal.bp3-intent-danger {
color: ${IntentColors.danger};
+ border-color: ${IntentColors.danger};
}
- &.bp3.minimal.bp3-intent-warning {
+ &&&.bp3-minimal.bp3-intent-warning {
color: ${IntentColors.warning};
+ border-color: ${IntentColors.warning};
}
- &.bp3.minimal.bp3-intent-success {
+ &&&.bp3-minimal.bp3-intent-success {
color: ${IntentColors.success};
+ border-color: ${IntentColors.success};
}
`;
@@ -100,6 +176,7 @@ export type Theme = {
selectHighlightColor: Color;
};
};
+ pageContentWidth: number;
};
export const getColorWithOpacity = (color: Color, opacity: number) => {
@@ -224,6 +301,7 @@ export const theme: Theme = {
selectHighlightColor: Colors.GEYSER_LIGHT,
},
},
+ pageContentWidth: 1224,
};
export { css, createGlobalStyle, keyframes, ThemeProvider };
diff --git a/app/client/src/constants/IconConstants.tsx b/app/client/src/constants/IconConstants.tsx
index 7622d82f16..c15cadf3f6 100644
--- a/app/client/src/constants/IconConstants.tsx
+++ b/app/client/src/constants/IconConstants.tsx
@@ -12,6 +12,7 @@ export const IconWrapper = styled.div`
&:focus {
outline: none;
}
+ display: inline-block;
svg {
width: ${props => props.width || props.theme.fontSizes[7]}px;
height: ${props => props.height || props.theme.fontSizes[7]}px;
diff --git a/app/client/src/constants/ReduxActionConstants.tsx b/app/client/src/constants/ReduxActionConstants.tsx
index d86d133339..b0aafadc62 100644
--- a/app/client/src/constants/ReduxActionConstants.tsx
+++ b/app/client/src/constants/ReduxActionConstants.tsx
@@ -97,11 +97,28 @@ export const ReduxActionTypes: { [key: string]: string } = {
RESET_USER_PASSWORD_SUCCESS: "RESET_USER_PASSWORD_SUCCESS",
FETCH_PLUGINS_REQUEST: "FETCH_PLUGINS_REQUEST",
FETCH_PLUGINS_SUCCESS: "FETCH_PLUGINS_SUCCESS",
+ INVITE_USERS_TO_ORG_INIT: "INVITE_USERS_TO_ORG_INIT",
+ INVITE_USERS_TO_ORG_SUCCESS: "INVITE_USERS_TO_ORG_SUCCESS",
FORGOT_PASSWORD_INIT: "FORGOT_PASSWORD_INIT",
FORGOT_PASSWORD_SUCCESS: "FORGOT_PASSWORD_SUCCESS",
RESET_PASSWORD_VERIFY_TOKEN_SUCCESS: "RESET_PASSWORD_VERIFY_TOKEN_SUCCESS",
RESET_PASSWORD_VERIFY_TOKEN_INIT: "RESET_PASSWORD_VERIFY_TOKEN_INIT",
EXECUTE_PAGE_LOAD_ACTIONS: "EXECUTE_PAGE_LOAD_ACTIONS",
+ SWITCH_ORGANIZATION_INIT: "SWITCH_ORGANIZATION_INIT",
+ SWITCH_ORGANIZATION_SUCCESS: "SWITCH_ORGANIZATION_SUCCESS",
+ LOGOUT_USER_INIT: "LOGOUT_USER_INIT",
+ LOGOUT_USER_SUCCESS: "LOGOUT_USER_SUCCESS",
+ FETCH_ORG_ROLES_INIT: "FETCH_ORG_ROLES_INIT",
+ FETCH_ORG_ROLES_SUCCESS: "FETCH_ORG_ROLES_SUCCESS",
+ FETCH_ORG_INIT: "FETCH_ORG_INIT",
+ FETCH_ORG_SUCCESS: "FETCH_ORG_SUCCESS",
+ FETCH_ORGS_SUCCESS: "FETCH_ORGS_SUCCES",
+ FETCH_ORGS_INIT: "FETCH_ORGS_INIT",
+ SAVE_ORG_INIT: "SAVE_ORG_INIT",
+ FETCH_USER_INIT: "FETCH_USER_INIT",
+ FETCH_USER_SUCCESS: "FETCH_USER_SUCCESS",
+ SET_CURRENT_USER_INIT: "SET_CURRENT_USER_INIT",
+ SET_CURRENT_USER_SUCCESS: "SET_CURRENT_USER_SUCCESS",
};
export type ReduxActionType = typeof ReduxActionTypes[keyof typeof ReduxActionTypes];
@@ -141,8 +158,18 @@ export const ReduxActionErrorTypes: { [key: string]: string } = {
RESET_USER_PASSWORD_ERROR: "RESET_USER_PASSWORD_ERROR",
SAVE_JS_EXECUTION_RECORD: "SAVE_JS_EXECUTION_RECORD",
FETCH_PLUGINS_ERROR: "FETCH_PLUGINS_ERROR",
+ UPDATE_ORG_NAME_ERROR: "UPDATE_ORG_NAME_ERROR",
+ SWITCH_ORGANIZATION_ERROR: "SWITCH_ORGANIZATION_ERROR",
FORGOT_PASSWORD_ERROR: "FORGOT_PASSWORD_ERROR",
RESET_PASSWORD_VERIFY_TOKEN_ERROR: "RESET_PASSWORD_VERIFY_TOKEN_ERROR",
+ LOGOUT_USER_ERROR: "LOGOUT_USER_ERROR",
+ FETCH_ORG_ROLES_ERROR: "FETCH_ORG_ROLES_ERROR",
+ INVITE_USERS_TO_ORG_ERROR: "INVITE_USERS_TO_ORG_ERROR",
+ SAVE_ORG_ERROR: "SAVE_ORG_ERROR",
+ FETCH_ORG_ERROR: "FETCH_ORG_ERROR",
+ FETCH_ORGS_ERROR: "FETCH_ORGS_ERROR",
+ FETCH_USER_ERROR: "FETCH_USER_ERROR",
+ SET_CURRENT_USER_ERROR: "SET_CURRENT_USER_ERROR",
};
export const ReduxFormActionTypes: { [key: string]: string } = {
diff --git a/app/client/src/constants/forms.ts b/app/client/src/constants/forms.ts
index a02d93e9cd..96a06535a8 100644
--- a/app/client/src/constants/forms.ts
+++ b/app/client/src/constants/forms.ts
@@ -1,5 +1,6 @@
export const API_EDITOR_FORM_NAME = "ApiEditorForm";
export const CREATE_APPLICATION_FORM_NAME = "CreateApplicationForm";
+export const INVITE_USERS_TO_ORG_FORM = "InviteUsersToOrgForm";
export const LOGIN_FORM_NAME = "LoginForm";
export const SIGNUP_FORM_NAME = "SignupForm";
export const FORGOT_PASSWORD_FORM_NAME = "ForgotPasswordForm";
diff --git a/app/client/src/constants/messages.ts b/app/client/src/constants/messages.ts
index aa26113f10..d58a61bfcd 100644
--- a/app/client/src/constants/messages.ts
+++ b/app/client/src/constants/messages.ts
@@ -82,3 +82,20 @@ export const ERROR_401 =
export const ERROR_403 =
"Permission Denied. Please contact your admin to gain access.";
export const WIDGET_TYPE_VALIDATION_ERROR = "Value does not match type";
+
+export const INVITE_USERS_VALIDATION_EMAIL_LIST =
+ "Invalid Email address(es) found:";
+export const INVITE_USERS_VALIDATION_ROLE_EMPTY = "Please select a role";
+
+export const INVITE_USERS_EMAIL_LIST_PLACEHOLDER = "Comma separated emails";
+export const INVITE_USERS_ROLE_SELECT_PLACEHOLDER = "Select Role";
+export const INVITE_USERS_ROLE_SELECT_LABEL = "Role";
+export const INVITE_USERS_EMAIL_LIST_LABEL = "User emails";
+export const INVITE_USERS_ADD_EMAIL_LIST_FIELD = "Add more";
+export const INVITE_USERS_SUBMIT_BUTTON_TEXT = "Invite Users";
+export const INVITE_USERS_SUBMIT_ERROR =
+ "We were unable to invite the users, please try again later";
+export const INVITE_USERS_SUBMIT_SUCCESS =
+ "The users have been invited successfully";
+export const INVITE_USERS_VALIDATION_EMAILS_EMPTY =
+ "Please enter the user emails";
diff --git a/app/client/src/constants/orgConstants.ts b/app/client/src/constants/orgConstants.ts
new file mode 100644
index 0000000000..e3c19da361
--- /dev/null
+++ b/app/client/src/constants/orgConstants.ts
@@ -0,0 +1,10 @@
+export type OrgRole = {
+ id: string;
+ name: string;
+};
+
+export type Org = {
+ id: string;
+ name: string;
+ website?: string;
+};
diff --git a/app/client/src/constants/routes.ts b/app/client/src/constants/routes.ts
index 8d906d40cf..fde6c44f1d 100644
--- a/app/client/src/constants/routes.ts
+++ b/app/client/src/constants/routes.ts
@@ -1,5 +1,6 @@
import { MenuIcons } from "icons/MenuIcons";
export const BASE_URL = "/";
+export const ORG_URL = "/org";
export const APPLICATIONS_URL = `/applications`;
export const BUILDER_URL = "/applications/:applicationId/pages/:pageId/edit";
export const USER_AUTH_URL = "/user";
@@ -72,3 +73,6 @@ export const FORGOT_PASSWORD_URL = `${USER_AUTH_URL}/forgotPassword`;
export const RESET_PASSWORD_URL = `${USER_AUTH_URL}/resetPassword`;
export const SIGN_UP_URL = `${USER_AUTH_URL}/signup`;
export const AUTH_LOGIN_URL = `${USER_AUTH_URL}/login`;
+
+export const ORG_INVITE_USERS_PAGE_URL = `${ORG_URL}/invite`;
+export const ORG_SETTINGS_PAGE_URL = `${ORG_URL}/settings`;
diff --git a/app/client/src/constants/userConstants.ts b/app/client/src/constants/userConstants.ts
new file mode 100644
index 0000000000..94db0d382c
--- /dev/null
+++ b/app/client/src/constants/userConstants.ts
@@ -0,0 +1,6 @@
+export type User = {
+ id: string;
+ email: string;
+ currentOrganizationId: string;
+ organizationIds: string[];
+};
diff --git a/app/client/src/icons/MenuIcons.tsx b/app/client/src/icons/MenuIcons.tsx
index 1f56f66637..7d964602d7 100644
--- a/app/client/src/icons/MenuIcons.tsx
+++ b/app/client/src/icons/MenuIcons.tsx
@@ -2,7 +2,7 @@ import React from "react";
import { IconProps, IconWrapper } from "constants/IconConstants";
import { ReactComponent as WidgetsIcon } from "assets/icons/menu/widgets.svg";
import { ReactComponent as ApisIcon } from "assets/icons/menu/api.svg";
-
+import { ReactComponent as OrgIcon } from "assets/icons/menu/org.svg";
/* eslint-disable react/display-name */
export const MenuIcons: {
@@ -18,4 +18,9 @@ export const MenuIcons: {
),
+ ORG_ICON: (props: IconProps) => (
+
+
+
+ ),
};
diff --git a/app/client/src/index.css b/app/client/src/index.css
index 26e815c276..021611dbb4 100755
--- a/app/client/src/index.css
+++ b/app/client/src/index.css
@@ -22,11 +22,18 @@ code {
monospace;
}
+* {
+ outline: none !important;
+}
div.bp3-select-popover .bp3-popover-content {
padding: 0;
}
+span.bp3-popover-target {
+ display: block;
+}
+
div.bp3-popover-arrow {
display:none;
}
diff --git a/app/client/src/index.tsx b/app/client/src/index.tsx
index efbbdf7784..bffe824a58 100755
--- a/app/client/src/index.tsx
+++ b/app/client/src/index.tsx
@@ -5,24 +5,19 @@ import Loader from "pages/common/Loader";
import "./index.css";
import * as serviceWorker from "./serviceWorker";
import { Router, Route, Switch } from "react-router-dom";
-import { createStore, applyMiddleware } from "redux";
import history from "./utils/history";
-import appReducer from "./reducers";
import { ThemeProvider, theme } from "./constants/DefaultTheme";
-import createSagaMiddleware from "redux-saga";
-import { rootSaga } from "./sagas";
import { DndProvider } from "react-dnd";
-// import TouchBackend from "react-dnd-touch-backend";
import HTML5Backend from "react-dnd-html5-backend";
import { appInitializer } from "./utils/AppsmithUtils";
import ProtectedRoute from "./pages/common/ProtectedRoute";
-import { composeWithDevTools } from "redux-devtools-extension/logOnlyInProduction";
-
+import store from "./store";
import {
BASE_URL,
BUILDER_URL,
APP_VIEW_URL,
APPLICATIONS_URL,
+ ORG_URL,
USER_AUTH_URL,
} from "./constants/routes";
@@ -33,16 +28,10 @@ const Editor = lazy(() => import("./pages/Editor"));
const Applications = lazy(() => import("./pages/Applications"));
const PageNotFound = lazy(() => import("./pages/common/PageNotFound"));
const AppViewer = lazy(() => import("./pages/AppViewer"));
+const Organization = lazy(() => import("./pages/organization"));
appInitializer();
-const sagaMiddleware = createSagaMiddleware();
-const store = createStore(
- appReducer,
- composeWithDevTools(applyMiddleware(sagaMiddleware)),
-);
-sagaMiddleware.run(rootSaga);
-
ReactDOM.render(
@@ -50,15 +39,16 @@ ReactDOM.render(
-
+
+
-
-
+
+
diff --git a/app/client/src/pages/Applications/ApplicationsHeader.tsx b/app/client/src/pages/Applications/ApplicationsHeader.tsx
deleted file mode 100644
index 03e2ed141d..0000000000
--- a/app/client/src/pages/Applications/ApplicationsHeader.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import React from "react";
-import styled from "styled-components";
-import StyledHeader from "components/designSystems/appsmith/StyledHeader";
-import {
- Popover,
- Button,
- Position,
- IIconProps,
- PopoverInteractionKind,
-} from "@blueprintjs/core";
-
-const StyledAddButton = styled(Button)`
- &&& {
- background: ${props => props.theme.colors.primary};
- span {
- color: white;
- }
- }
-`;
-
-type ApplicationsHeaderProps = {
- add?: {
- form: JSX.Element;
- title: string;
- };
-};
-
-export const ApplicationsHeader = (props: ApplicationsHeaderProps) => {
- return (
-
- {props.add && (
-
-
- {props.add.form}
-
- )}
-
- );
-};
-
-export default ApplicationsHeader;
diff --git a/app/client/src/pages/Applications/CreateApplicationForm.tsx b/app/client/src/pages/Applications/CreateApplicationForm.tsx
index e776a214dd..4a939055cd 100644
--- a/app/client/src/pages/Applications/CreateApplicationForm.tsx
+++ b/app/client/src/pages/Applications/CreateApplicationForm.tsx
@@ -6,7 +6,7 @@ import {
createApplicationFormSubmitHandler,
} from "./helpers";
import TextField from "components/editorComponents/form/fields/TextField";
-import { FormGroup } from "@blueprintjs/core";
+import FormGroup from "components/editorComponents/form/FormGroup";
export const CreateApplicationForm = (
props: InjectedFormProps,
diff --git a/app/client/src/pages/Applications/index.tsx b/app/client/src/pages/Applications/index.tsx
index a0afcbf5ce..41709f1352 100644
--- a/app/client/src/pages/Applications/index.tsx
+++ b/app/client/src/pages/Applications/index.tsx
@@ -1,5 +1,4 @@
import React, { Component } from "react";
-import { Helmet } from "react-helmet";
import styled from "styled-components";
import { connect } from "react-redux";
import { AppState } from "reducers";
@@ -13,33 +12,15 @@ import {
ReduxActionTypes,
ApplicationPayload,
} from "constants/ReduxActionConstants";
-import { Divider } from "@blueprintjs/core";
-import ApplicationsHeader from "./ApplicationsHeader";
+import PageWrapper from "pages/common/PageWrapper";
import SubHeader from "pages/common/SubHeader";
+import PageSectionDivider from "pages/common/PageSectionDivider";
import { getApplicationPayloads } from "mockComponentProps/ApplicationPayloads";
import ApplicationCard from "./ApplicationCard";
import CreateApplicationForm from "./CreateApplicationForm";
import { CREATE_APPLICATION_FORM_NAME } from "constants/forms";
import { noop } from "utils/AppsmithUtils";
-const ApplicationsPageWrapper = styled.section`
- width: 100vw;
-`;
-const SectionDivider = styled(Divider)`
- margin: ${props => props.theme.spaces[11]}px auto;
- width: 100%;
-`;
-const ApplicationsBody = styled.div`
- width: 1224px;
- min-height: calc(100vh - ${props => props.theme.headerHeight});
- display: flex;
- flex-direction: column;
- justify-content: flex-start;
- align-items: flex-start;
- margin: ${props => props.theme.spaces[12]}px auto;
- background: ${props => props.theme.colors.bodyBG};
-`;
-
const ApplicationCardsWrapper = styled.div`
display: flex;
flex-flow: row wrap;
@@ -65,47 +46,40 @@ class Applications extends Component {
? getApplicationPayloads(4)
: this.props.applicationList;
return (
-
-
-
- Applications | Appsmith
-
-
-
- ,
- title: "Create New App",
- formName: CREATE_APPLICATION_FORM_NAME,
- formSubmitIntent: "primary",
- isAdding:
- this.props.isCreatingApplication ||
- !!this.props.createApplicationError,
- errorAdding: this.props.createApplicationError,
- }}
- search={{
- placeholder: "Search",
- }}
- />
-
-
- {applicationList.map((application: ApplicationPayload) => {
- return (
- application.pageCount > 0 && (
-
- )
- );
- })}
-
-
-
+
+ ,
+ title: "Create New App",
+ formName: CREATE_APPLICATION_FORM_NAME,
+ formSubmitIntent: "primary",
+ isAdding:
+ this.props.isCreatingApplication ||
+ !!this.props.createApplicationError,
+ errorAdding: this.props.createApplicationError,
+ }}
+ search={{
+ placeholder: "Search",
+ }}
+ />
+
+
+ {applicationList.map((application: ApplicationPayload) => {
+ return (
+ application.pageCount > 0 && (
+
+ )
+ );
+ })}
+
+
);
}
}
diff --git a/app/client/src/pages/Editor/EditorHeader.tsx b/app/client/src/pages/Editor/EditorHeader.tsx
index 56307bbae6..c6bb641ffb 100644
--- a/app/client/src/pages/Editor/EditorHeader.tsx
+++ b/app/client/src/pages/Editor/EditorHeader.tsx
@@ -35,13 +35,15 @@ const PreviewPublishSection = styled.div`
`;
const StretchedBreadCrumb = styled(Breadcrumbs)`
- flex-shrink: 1;
- * {
- font-family: ${props => props.theme.fonts[0]};
- font-size: ${props => props.theme.fontSizes[2]}px;
- }
- li:after {
- background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.71 7.29l-4-4a1.003 1.003 0 0 0-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z' fill='rgba(92,112,128,1)'/%3E%3C/svg%3E");
+ && {
+ flex-shrink: 1;
+ * {
+ font-family: ${props => props.theme.fonts[0]};
+ font-size: ${props => props.theme.fontSizes[2]}px;
+ }
+ li:after {
+ background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.71 7.29l-4-4a1.003 1.003 0 0 0-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 0 0 1.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z' fill='rgba(92,112,128,1)'/%3E%3C/svg%3E");
+ }
}
`;
diff --git a/app/client/src/pages/Editor/index.tsx b/app/client/src/pages/Editor/index.tsx
index 39a43df537..67e418b2d1 100644
--- a/app/client/src/pages/Editor/index.tsx
+++ b/app/client/src/pages/Editor/index.tsx
@@ -103,6 +103,7 @@ class Editor extends Component {
Editor | Appsmith
+
{
return (
{submitSucceeded && (
-
)}
- {submitFailed && error && }
+ {submitFailed && error && }
{FORGOT_PASSWORD_PAGE_TITLE}
{FORGOT_PASSWORD_PAGE_SUBTITLE}
diff --git a/app/client/src/pages/UserAuth/Login.tsx b/app/client/src/pages/UserAuth/Login.tsx
index 7c87cb2e26..cdfe1c5e8d 100644
--- a/app/client/src/pages/UserAuth/Login.tsx
+++ b/app/client/src/pages/UserAuth/Login.tsx
@@ -27,8 +27,8 @@ import {
LOGIN_PAGE_INVALID_CREDS_FORGOT_PASSWORD_LINK,
} from "constants/messages";
import Divider from "components/editorComponents/Divider";
-import MessageTag from "components/editorComponents/form/MessageTag";
-import FormGroup from "components/editorComponents/FormGroup";
+import FormMessage from "components/editorComponents/form/FormMessage";
+import FormGroup from "components/editorComponents/form/FormGroup";
import TextField from "components/editorComponents/form/fields/TextField";
import FormButton from "components/editorComponents/FormButton";
import ThirdPartyAuth, { SocialLoginTypes } from "./ThirdPartyAuth";
@@ -85,7 +85,7 @@ export const Login = (props: LoginFormProps) => {
return (
{showError && pristine && (
- {
message = error;
}
- const messageTagProps: MessageTagProps = {
+ const messageTagProps: FormMessageProps = {
intent:
showInvalidMessage || showExpiredMessage || showFailureMessage
? "danger"
@@ -136,7 +136,7 @@ export const ResetPassword = (props: ResetPasswordProps) => {
};
if (showInvalidMessage || showExpiredMessage) {
- return ;
+ return ;
}
if (!isTokenValid && validatingToken) {
@@ -145,7 +145,7 @@ export const ResetPassword = (props: ResetPasswordProps) => {
return (
{(showSuccessMessage || showFailureMessage) && (
-
+
)}
{RESET_PASSWORD_PAGE_TITLE}
diff --git a/app/client/src/pages/UserAuth/SignUp.tsx b/app/client/src/pages/UserAuth/SignUp.tsx
index 4e6f7565a7..88e12ffa39 100644
--- a/app/client/src/pages/UserAuth/SignUp.tsx
+++ b/app/client/src/pages/UserAuth/SignUp.tsx
@@ -32,8 +32,8 @@ import {
SIGNUP_PAGE_SUCCESS,
SIGNUP_PAGE_SUCCESS_LOGIN_BUTTON_TEXT,
} from "constants/messages";
-import MessageTag from "components/editorComponents/form/MessageTag";
-import FormGroup from "components/editorComponents/FormGroup";
+import FormMessage from "components/editorComponents/form/FormMessage";
+import FormGroup from "components/editorComponents/form/FormGroup";
import TextField from "components/editorComponents/form/fields/TextField";
import ThirdPartyAuth, { SocialLoginTypes } from "./ThirdPartyAuth";
import FormButton from "components/editorComponents/FormButton";
@@ -69,7 +69,7 @@ export const SignUp = (props: InjectedFormProps) => {
return (
{submitSucceeded && (
- ) => {
]}
/>
)}
- {submitFailed && error && }
+ {submitFailed && error && }
{SIGNUP_PAGE_TITLE}
{SIGNUP_PAGE_SUBTITLE}
diff --git a/app/client/src/pages/common/CustomizedDropdown/Badge.tsx b/app/client/src/pages/common/CustomizedDropdown/Badge.tsx
new file mode 100644
index 0000000000..69d37402a6
--- /dev/null
+++ b/app/client/src/pages/common/CustomizedDropdown/Badge.tsx
@@ -0,0 +1,51 @@
+import React from "react";
+import styled from "styled-components";
+const BadgeWrapper = styled.div`
+ &&&&& {
+ display: flex;
+ flex-directition: row;
+ justify-content: flex-start;
+ img {
+ flex-basis: 0 1 auto;
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ margin-right: 16px;
+ }
+ div {
+ flex-basis: 1 0 auto;
+ flex-direction: column;
+ justify-content: space-around;
+ align-items: flex-start;
+ & h3,
+ h5 {
+ font-weight: ${props => props.theme.fontWeights[1]};
+ margin: 0;
+ }
+ & h5 {
+ color: ${props => props.theme.colors.paneText};
+ font-size: ${props => props.theme.fontSizes[3]}px;
+ }
+ }
+ }
+`;
+
+type BadgeProps = {
+ imageURL?: string;
+ text: string;
+ subtext?: string;
+};
+
+export const Badge = (props: BadgeProps) => {
+ return (
+
+
+
+
{props.text}
+ {props.subtext}
+
+
+ );
+};
+
+export default Badge;
diff --git a/app/client/src/pages/common/CustomizedDropdown/OrgDropdownData.tsx b/app/client/src/pages/common/CustomizedDropdown/OrgDropdownData.tsx
new file mode 100644
index 0000000000..6e8e61c7b4
--- /dev/null
+++ b/app/client/src/pages/common/CustomizedDropdown/OrgDropdownData.tsx
@@ -0,0 +1,124 @@
+import React from "react";
+import Badge from "./Badge";
+import { Directions } from "utils/helpers";
+import { ReduxActionTypes } from "constants/ReduxActionConstants";
+import { getOnSelectAction, DropdownOnSelectActions } from "./dropdownHelpers";
+import DropdownComponent, { CustomizedDropdownProps } from "./index";
+import { Link } from "react-router-dom";
+import { Org } from "constants/orgConstants";
+import { User } from "constants/userConstants";
+
+const switchdropdown = (orgs: Org[]): CustomizedDropdownProps => ({
+ sections: [
+ {
+ isSticky: true,
+ options: [
+ {
+ content: "Create Organization",
+ onSelect: () => getOnSelectAction(DropdownOnSelectActions.FORM, {}),
+ },
+ ],
+ },
+ {
+ options: orgs.map(org => ({
+ content: org.name,
+ onSelect: () =>
+ getOnSelectAction(DropdownOnSelectActions.DISPATCH, {
+ type: ReduxActionTypes.SWITCH_ORGANIZATION_INIT,
+ payload: {
+ organizationId: org.id,
+ },
+ }),
+ })),
+ },
+ ],
+ trigger: {
+ text: "Switch Organization",
+ },
+ openDirection: Directions.RIGHT,
+ openOnHover: false,
+});
+
+export const options = (
+ orgs: Org[],
+ currentOrg: Org,
+ user: User,
+): CustomizedDropdownProps => ({
+ sections: [
+ {
+ options: [
+ {
+ content: (
+
+ ),
+ active: false,
+ },
+ {
+ content: Organization Settings,
+ },
+ {
+ content: Members,
+ },
+ {
+ content: Usage & Billing,
+ },
+ {
+ content: Support,
+ },
+ {
+ content: ,
+ shouldCloseDropdown: false,
+ },
+ {
+ content: "Switch To Personal Workspace",
+ onSelect: () =>
+ getOnSelectAction(DropdownOnSelectActions.DISPATCH, {
+ type: ReduxActionTypes.SWITCH_ORGANIZATION_INIT,
+ payload: { organizationId: currentOrg.id },
+ }),
+ },
+ ],
+ },
+ {
+ options: [
+ {
+ content: (
+
+ ),
+ active: false,
+ },
+ {
+ content: "Settings",
+ onSelect: () =>
+ getOnSelectAction(
+ DropdownOnSelectActions.REDIRECT,
+ "/org/settings",
+ ),
+ },
+ {
+ content: "Sign Out",
+ onSelect: () =>
+ getOnSelectAction(DropdownOnSelectActions.DISPATCH, {
+ type: ReduxActionTypes.LOGOUT_USER_INIT,
+ }),
+ },
+ ],
+ },
+ ],
+ trigger: {
+ icon: "ORG_ICON",
+ text: currentOrg.name,
+ outline: false,
+ },
+ openDirection: Directions.DOWN,
+});
+
+export default options;
diff --git a/app/client/src/pages/common/CustomizedDropdown/StyledComponents.tsx b/app/client/src/pages/common/CustomizedDropdown/StyledComponents.tsx
new file mode 100644
index 0000000000..4d9d237a3e
--- /dev/null
+++ b/app/client/src/pages/common/CustomizedDropdown/StyledComponents.tsx
@@ -0,0 +1,87 @@
+import styled, { css } from "styled-components";
+import { Intent, IntentColors } from "constants/DefaultTheme";
+
+export const DropdownTrigger = styled.div`
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+ & > div > div {
+ margin-right: 20px;
+ }
+ &&& button {
+ width: 100%;
+ color: inherit;
+ justify-content: space-between;
+ outline: 0;
+ span {
+ color: inherit;
+ }
+ &:hover {
+ background: inherit;
+ }
+ }
+`;
+export const DropdownContent = styled.div`
+ &&& * {
+ font-size: ${props => props.theme.fontSizes[4]}px;
+ }
+`;
+
+export const DropdownContentSection = styled.div<{ stick: boolean }>`
+ position: ${props => (props.stick ? "sticky" : "relative")};
+ background: white;
+ z-index: ${props => (props.stick ? 1 : 0)};
+ padding: 8px 0;
+ &&&&&& button {
+ padding: 0;
+ min-height: 0px;
+ }
+ &:first-of-type {
+ padding: 0 0 0px 0;
+ }
+ &:last-of-type {
+ padding: 0px 0 0 0;
+ }
+ &:not(:last-of-type):after {
+ position: absolute;
+ content: "";
+ left: 0;
+ right: 0;
+ bottom: 0;
+ height: 1px;
+ background: #ccc;
+ }
+`;
+
+export const onHover = css<{ intent?: Intent }>`
+ cursor: pointer;
+ &&&&:hover {
+ & * {
+ color: ${props => props.theme.colors.textOnDarkBG};
+ text-decoration: none;
+ }
+ & a:hover {
+ text-decoration: none;
+ }
+ background: ${props =>
+ props.intent ? IntentColors[props.intent] : IntentColors.primary};
+ color: ${props => props.theme.colors.textOnDarkBG};
+ }
+`;
+
+export const Option = styled.div<{ intent?: Intent; active?: boolean }>`
+ padding: 8px 16px;
+ margin: 4px 0;
+
+ & a {
+ color: ${props => props.theme.colors.textDefault};
+ text-decoration: none;
+ }
+ &:first-of-type,
+ &:last-of-type {
+ margin: 0;
+ }
+ ${props => (props.active ? onHover : ``)};
+`;
diff --git a/app/client/src/pages/common/CustomizedDropdown/dropdownHelpers.tsx b/app/client/src/pages/common/CustomizedDropdown/dropdownHelpers.tsx
new file mode 100644
index 0000000000..a3722a7d31
--- /dev/null
+++ b/app/client/src/pages/common/CustomizedDropdown/dropdownHelpers.tsx
@@ -0,0 +1,58 @@
+import store from "store";
+import { IconNames } from "@blueprintjs/icons";
+import { Direction, Directions } from "utils/helpers";
+import { PopoverPosition } from "@blueprintjs/core";
+
+export const DropdownOnSelectActions: { [id: string]: string } = {
+ REDIRECT: "redirect",
+ DISPATCH: "dispatch",
+};
+
+type DropdownOnSelectActionType = typeof DropdownOnSelectActions[keyof typeof DropdownOnSelectActions];
+
+// TODO(abhinav): Figure out how to enforce payload type.
+export const getOnSelectAction = (
+ type: DropdownOnSelectActionType,
+ payload: any,
+) => {
+ switch (type) {
+ case DropdownOnSelectActions.DISPATCH:
+ store.dispatch(payload);
+ break;
+ default:
+ console.log("No such action registered", type);
+ }
+};
+
+export const getDirectionBased: {
+ [id: string]: (direction: Direction) => string;
+} = {
+ ICON_NAME: (direction: Direction) => {
+ switch (direction) {
+ case Directions.UP:
+ return IconNames.CHEVRON_UP;
+ case Directions.DOWN:
+ return IconNames.CHEVRON_DOWN;
+ case Directions.LEFT:
+ return IconNames.CHEVRON_LEFT;
+ case Directions.RIGHT:
+ return IconNames.CHEVRON_RIGHT;
+ default:
+ return IconNames.CHEVRON_DOWN;
+ }
+ },
+ POPPER_POSITION: (direction: Direction) => {
+ switch (direction) {
+ case Directions.UP:
+ return PopoverPosition.TOP;
+ case Directions.DOWN:
+ return PopoverPosition.BOTTOM;
+ case Directions.LEFT:
+ return PopoverPosition.LEFT_BOTTOM;
+ case Directions.RIGHT:
+ return PopoverPosition.RIGHT_TOP;
+ default:
+ return PopoverPosition.BOTTOM_RIGHT;
+ }
+ },
+};
diff --git a/app/client/src/pages/common/CustomizedDropdown/index.tsx b/app/client/src/pages/common/CustomizedDropdown/index.tsx
new file mode 100644
index 0000000000..3b27c77882
--- /dev/null
+++ b/app/client/src/pages/common/CustomizedDropdown/index.tsx
@@ -0,0 +1,118 @@
+import React, { ReactNode } from "react";
+import { withTheme } from "styled-components";
+import {
+ Popover,
+ IconName,
+ PopoverPosition,
+ Classes,
+ PopoverInteractionKind,
+} from "@blueprintjs/core";
+import { MenuIcons } from "icons/MenuIcons";
+import { Intent } from "constants/DefaultTheme";
+import { Direction, Directions } from "utils/helpers";
+import { getDirectionBased } from "./dropdownHelpers";
+import { Theme } from "constants/DefaultTheme";
+import {
+ Option,
+ DropdownContentSection,
+ DropdownContent,
+ DropdownTrigger,
+} from "./StyledComponents";
+import Button, { ButtonProps } from "components/editorComponents/Button";
+
+export type CustomizedDropdownOptionSection = {
+ isSticky?: boolean;
+ options?: CustomizedDropdownOption[];
+};
+
+export type CustomizedDropdownOption = {
+ content: ReactNode;
+ active?: boolean;
+ onSelect?: () => void;
+ intent?: Intent;
+ shouldCloseDropdown?: boolean;
+};
+
+export type CustomizedDropdownProps = {
+ sections: CustomizedDropdownOptionSection[];
+ trigger: ButtonProps & {
+ content?: ReactNode;
+ };
+ openDirection: Direction;
+ openOnHover?: boolean;
+};
+
+const getContentSection = (section: CustomizedDropdownOptionSection) => {
+ return (
+
+ {section.options &&
+ section.options.map((option, index) => {
+ const shouldClose =
+ option.shouldCloseDropdown === undefined ||
+ option.shouldCloseDropdown;
+ return (
+
+ );
+ })}
+
+ );
+};
+
+export const CustomizedDropdown = (
+ props: CustomizedDropdownProps & { theme: Theme },
+) => {
+ const icon =
+ props.trigger.icon &&
+ MenuIcons[props.trigger.icon]({
+ color: props.theme.colors.info,
+ width: 16,
+ height: 16,
+ });
+ const trigger = (
+
+ {icon && {icon}
}
+ {props.trigger.content || (
+
+ )}
+
+ );
+ const content = props.sections.map((section, index) => (
+
+ {getContentSection(section)}
+
+ ));
+ return (
+
+ {trigger}
+ {content}
+
+ );
+};
+
+export default withTheme(CustomizedDropdown);
diff --git a/app/client/src/pages/common/EditableText.tsx b/app/client/src/pages/common/EditableText.tsx
new file mode 100644
index 0000000000..76a0bb2c4b
--- /dev/null
+++ b/app/client/src/pages/common/EditableText.tsx
@@ -0,0 +1,26 @@
+import React, { useState } from "react";
+import { EditableText as BlueprintEditableText } from "@blueprintjs/core";
+
+type EditableTextProps = {
+ type: "text" | "password" | "email" | "phone" | "date";
+ defaultValue: string;
+ onTextChanged: (value: string) => void;
+};
+
+export const EditableText = (props: EditableTextProps) => {
+ const [isEditing, setIsEditing] = useState(false);
+ const edit = () => setIsEditing(true);
+ return (
+
+
+
+ );
+};
+
+export default EditableText;
diff --git a/app/client/src/pages/common/PageHeader.tsx b/app/client/src/pages/common/PageHeader.tsx
new file mode 100644
index 0000000000..455745b9fc
--- /dev/null
+++ b/app/client/src/pages/common/PageHeader.tsx
@@ -0,0 +1,40 @@
+import React from "react";
+import { connect } from "react-redux";
+import { getCurrentUser } from "selectors/usersSelectors";
+import { getOrgs, getCurrentOrg } from "selectors/organizationSelectors";
+import styled from "styled-components";
+import StyledHeader from "components/designSystems/appsmith/StyledHeader";
+import CustomizedDropdown from "./CustomizedDropdown";
+import DropdownProps from "./CustomizedDropdown/OrgDropdownData";
+import { AppState } from "reducers";
+import { Org } from "constants/orgConstants";
+import { User } from "constants/userConstants";
+
+const StyledPageHeader = styled(StyledHeader)`
+ justify-content: space-between;
+`;
+
+type PageHeaderProps = {
+ orgs?: Org[];
+ currentOrg?: Org;
+ user?: User;
+};
+
+export const PageHeader = (props: PageHeaderProps) => {
+ const { orgs, currentOrg, user } = props;
+ return (
+
+ {orgs && user && currentOrg && (
+
+ )}
+
+ );
+};
+
+const mapStateToProps = (state: AppState) => ({
+ currentOrg: getCurrentOrg(state),
+ user: getCurrentUser(state),
+ orgs: getOrgs(state),
+});
+
+export default connect(mapStateToProps, null)(PageHeader);
diff --git a/app/client/src/pages/common/PageSectionDivider.tsx b/app/client/src/pages/common/PageSectionDivider.tsx
new file mode 100644
index 0000000000..ab8a58f11e
--- /dev/null
+++ b/app/client/src/pages/common/PageSectionDivider.tsx
@@ -0,0 +1,7 @@
+import styled from "styled-components";
+import { Divider } from "@blueprintjs/core";
+
+export default styled(Divider)`
+ margin: ${props => props.theme.spaces[11]}px auto;
+ width: 100%;
+`;
diff --git a/app/client/src/pages/common/PageSectionHeader.tsx b/app/client/src/pages/common/PageSectionHeader.tsx
new file mode 100644
index 0000000000..3c6ac681bb
--- /dev/null
+++ b/app/client/src/pages/common/PageSectionHeader.tsx
@@ -0,0 +1,8 @@
+import styled from "styled-components";
+export default styled.div`
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ width: 100%;
+ align-items: center;
+`;
diff --git a/app/client/src/pages/common/PageWrapper.tsx b/app/client/src/pages/common/PageWrapper.tsx
new file mode 100644
index 0000000000..02fb092fc8
--- /dev/null
+++ b/app/client/src/pages/common/PageWrapper.tsx
@@ -0,0 +1,61 @@
+import React, { ReactNode } from "react";
+import { Helmet } from "react-helmet";
+import styled from "styled-components";
+import PageHeader from "./PageHeader";
+
+const Wrapper = styled.section`
+ && .fade {
+ position: relative;
+ }
+ && .fade-enter {
+ opacity: 0;
+ z-index: 1;
+ }
+
+ && .fade-enter.fade-enter-active {
+ opacity: 1;
+ transition: opacity 150ms ease-in;
+ }
+ .fade-exit {
+ opacity: 1;
+ }
+ .fade-exit-active {
+ display: none;
+ opacity: 0;
+ }
+`;
+
+const PageBody = styled.div`
+ width: ${props => props.theme.pageContentWidth}px;
+ min-height: calc(
+ 100vh - ${props => props.theme.headerHeight + props.theme.spaces[12]}
+ );
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+ align-items: flex-start;
+ margin: ${props => props.theme.spaces[12]}px auto;
+ background: ${props => props.theme.colors.bodyBG};
+ & > * {
+ width: 100%;
+ }
+`;
+
+type PageWrapperProps = {
+ children?: ReactNode;
+ displayName?: string;
+};
+
+export const PageWrapper = (props: PageWrapperProps) => (
+
+
+
+ {`${props.displayName} | Appsmith`}
+
+
+
+ {props.children}
+
+);
+
+export default PageWrapper;
diff --git a/app/client/src/pages/common/ProtectedRoute.tsx b/app/client/src/pages/common/ProtectedRoute.tsx
index bb87aefc4d..f4120bd4f2 100644
--- a/app/client/src/pages/common/ProtectedRoute.tsx
+++ b/app/client/src/pages/common/ProtectedRoute.tsx
@@ -1,5 +1,30 @@
-import * as React from "react";
+import React from "react";
import { Route } from "react-router-dom";
+import { useDispatch } from "react-redux";
+import { useSelector } from "store";
+import { ReduxActionTypes } from "constants/ReduxActionConstants";
+import { hasAuthExpired } from "utils/storage";
+import { User } from "constants/userConstants";
+
+export const checkAuth = (dispatch: any, currentUser?: User) => {
+ return hasAuthExpired().then(hasExpired => {
+ if (!currentUser || hasExpired) {
+ dispatch({
+ type: ReduxActionTypes.SET_CURRENT_USER_INIT,
+ payload: {
+ id: "me",
+ },
+ });
+ }
+ });
+};
+
+export const WrappedComponent = (props: any) => {
+ const dispatch = useDispatch();
+ const currentUser = useSelector(state => state.ui.users.current);
+ checkAuth(dispatch, currentUser);
+ return currentUser ? props.children : null;
+};
const ProtectedRoute = ({
component: Component,
@@ -9,7 +34,16 @@ const ProtectedRoute = ({
component: React.ReactType;
exact?: boolean;
}) => {
- return } />;
+ return (
+ (
+
+
+
+ )}
+ />
+ );
};
export default ProtectedRoute;
diff --git a/app/client/src/pages/organization/InviteUsersForm.tsx b/app/client/src/pages/organization/InviteUsersForm.tsx
new file mode 100644
index 0000000000..6cd04bb185
--- /dev/null
+++ b/app/client/src/pages/organization/InviteUsersForm.tsx
@@ -0,0 +1,246 @@
+import React, { useLayoutEffect } from "react";
+import { connect } from "react-redux";
+import styled from "styled-components";
+import { useHistory } from "react-router-dom";
+import {
+ FieldArray,
+ reduxForm,
+ InjectedFormProps,
+ WrappedFieldArrayProps,
+} from "redux-form";
+import FormMessage from "components/editorComponents/form/FormMessage";
+import { INVITE_USERS_TO_ORG_FORM } from "constants/forms";
+import {
+ INVITE_USERS_VALIDATION_EMAIL_LIST,
+ INVITE_USERS_VALIDATION_ROLE_EMPTY,
+ INVITE_USERS_EMAIL_LIST_LABEL,
+ INVITE_USERS_EMAIL_LIST_PLACEHOLDER,
+ INVITE_USERS_ROLE_SELECT_LABEL,
+ INVITE_USERS_ROLE_SELECT_PLACEHOLDER,
+ INVITE_USERS_ADD_EMAIL_LIST_FIELD,
+ INVITE_USERS_SUBMIT_BUTTON_TEXT,
+ INVITE_USERS_SUBMIT_ERROR,
+ INVITE_USERS_SUBMIT_SUCCESS,
+ INVITE_USERS_VALIDATION_EMAILS_EMPTY,
+} from "constants/messages";
+import {
+ InviteUsersToOrgFormValues,
+ InviteUsersToOrgByRoleValues,
+ inviteUsersToOrgSubmitHandler,
+} from "./helpers";
+import { generateReactKey } from "utils/generators";
+import TagListField from "components/editorComponents/form/fields/TagListField";
+import { FormIcons } from "icons/FormIcons";
+import FormFooter from "components/editorComponents/form/FormFooter";
+import FormActionButton from "components/editorComponents/form/FormActionButton";
+import FormGroup from "components/editorComponents/form/FormGroup";
+import SelectField from "components/editorComponents/form/fields/SelectField";
+import { ReduxActionTypes } from "constants/ReduxActionConstants";
+import { AppState } from "reducers";
+import { getRoles } from "selectors/organizationSelectors";
+import { OrgRole } from "constants/orgConstants";
+import { isEmail } from "utils/formhelpers";
+
+const validate = (values: InviteUsersToOrgFormValues) => {
+ const errors: any = { usersByRole: [] };
+ if (values.usersByRole && values.usersByRole.length) {
+ values.usersByRole.forEach((role, index) => {
+ errors.usersByRole[index] = { id: "", users: "", role: "" };
+ // If we have users entered for a role.
+ if (role.users && role.users.length > 0) {
+ // Split the users CSV string to an array.
+ const _users = role.users.split(",").filter(Boolean);
+ // Check if each entry is an email
+ _users.forEach(user => {
+ if (!isEmail(user)) {
+ if (errors.usersByRole[index].users)
+ errors.usersByRole[index].users += `${user}, `;
+ else errors.usersByRole[index].users = `${user}, `;
+ }
+ });
+ if (
+ errors.usersByRole[index].users &&
+ errors.usersByRole[index].users.length > 0
+ ) {
+ errors.usersByRole[
+ index
+ ].users = `${INVITE_USERS_VALIDATION_EMAIL_LIST} ${errors.usersByRole[
+ index
+ ].users.slice(0, -2)}`;
+ }
+ // Check if role has been specified
+ if (role.role === undefined || role.role?.trim().length === 0) {
+ errors.usersByRole[index].role = INVITE_USERS_VALIDATION_ROLE_EMPTY;
+ }
+ } else {
+ errors.usersByRole[index].users = INVITE_USERS_VALIDATION_EMAILS_EMPTY;
+ }
+ });
+ }
+ return errors;
+};
+
+const StyledForm = styled.form`
+ width: 100%;
+ background: white;
+ padding: ${props => props.theme.spaces[11]}px;
+`;
+
+const StyledInviteFieldGroup = styled.div`
+ && {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: none;
+ justify-content: space-between;
+ align-items: flex-start;
+ & > div:first-of-type {
+ }
+ & > div {
+ min-width: 150px;
+ margin: 0em 1em 1em 0em;
+ }
+ & > div:last-of-type {
+ min-width: 0;
+ display: flex;
+ align-self: center;
+ }
+ }
+`;
+
+const renderInviteUsersByRoleForm = (
+ renderer: WrappedFieldArrayProps & {
+ roles?: OrgRole[];
+ },
+) => {
+ const { fields, roles } = renderer;
+ return (
+
+ {fields.map((field, index) => {
+ return (
+
+
+
+
+ {roles && (
+
+
+
+ )}
+ fields.remove(index)}
+ />
+
+ );
+ })}
+ fields.push({ id: generateReactKey() })}
+ text={INVITE_USERS_ADD_EMAIL_LIST_FIELD}
+ large
+ icon="plus"
+ />
+
+ );
+};
+
+type InviteUsersFormProps = InjectedFormProps<
+ InviteUsersToOrgFormValues,
+ {
+ fetchRoles: () => void;
+ roles?: OrgRole[];
+ }
+> & {
+ fetchRoles: () => void;
+ roles?: OrgRole[];
+};
+
+export const InviteUsersForm = (props: InviteUsersFormProps) => {
+ const {
+ handleSubmit,
+ submitting,
+ submitFailed,
+ submitSucceeded,
+ error,
+ fetchRoles,
+ roles,
+ } = props;
+ const history = useHistory();
+ useLayoutEffect(() => {
+ if (!roles) {
+ fetchRoles();
+ }
+ }, [fetchRoles, roles]);
+ return (
+
+ {submitSucceeded && (
+
+ )}
+ {submitFailed && error && (
+
+ )}
+ {/* Disable submit on "Enter" because TagInputComponent uses it. */}
+
+
+ history.goBack()}
+ submitOnEnter={false}
+ submitText={INVITE_USERS_SUBMIT_BUTTON_TEXT}
+ >
+
+ );
+};
+
+export default connect(
+ (state: AppState) => {
+ return {
+ roles: getRoles(state),
+ };
+ },
+ (dispatch: any) => ({
+ fetchRoles: () => dispatch({ type: ReduxActionTypes.FETCH_ORG_ROLES_INIT }),
+ }),
+)(
+ reduxForm<
+ InviteUsersToOrgFormValues,
+ { fetchRoles: () => void; roles?: OrgRole[] }
+ >({
+ form: INVITE_USERS_TO_ORG_FORM,
+ validate,
+ initialValues: {
+ usersByRole: [
+ {
+ id: generateReactKey(),
+ },
+ ],
+ },
+ })(InviteUsersForm),
+);
diff --git a/app/client/src/pages/organization/create.tsx b/app/client/src/pages/organization/create.tsx
new file mode 100644
index 0000000000..e711bd3bee
--- /dev/null
+++ b/app/client/src/pages/organization/create.tsx
@@ -0,0 +1 @@
+export default "Create Organization";
diff --git a/app/client/src/pages/organization/defaultOrgPage.tsx b/app/client/src/pages/organization/defaultOrgPage.tsx
new file mode 100644
index 0000000000..24fba504c8
--- /dev/null
+++ b/app/client/src/pages/organization/defaultOrgPage.tsx
@@ -0,0 +1,8 @@
+import React from "react";
+import Centered from "components/designSystems/appsmith/CenteredWrapper";
+export const DefaultOrgPage = () => (
+
+ This page is under construction
+
+);
+export default DefaultOrgPage;
diff --git a/app/client/src/pages/organization/helpers.ts b/app/client/src/pages/organization/helpers.ts
new file mode 100644
index 0000000000..faf743bf5a
--- /dev/null
+++ b/app/client/src/pages/organization/helpers.ts
@@ -0,0 +1,32 @@
+import { ReduxActionTypes } from "constants/ReduxActionConstants";
+import { SubmissionError } from "redux-form";
+export type InviteUsersToOrgByRoleValues = {
+ id: string;
+ users?: string;
+ role?: string;
+};
+export type InviteUsersToOrgFormValues = {
+ usersByRole: InviteUsersToOrgByRoleValues[];
+};
+
+export const inviteUsersToOrgSubmitHandler = (
+ values: InviteUsersToOrgFormValues,
+ dispatch: any,
+): Promise => {
+ const data = values.usersByRole.map(value => ({
+ roleId: value.role,
+ emails: value.users ? value.users.split(",") : [],
+ }));
+ return new Promise((resolve, reject) => {
+ dispatch({
+ type: ReduxActionTypes.INVITE_USERS_TO_ORG_INIT,
+ payload: {
+ resolve,
+ reject,
+ data,
+ },
+ });
+ }).catch(error => {
+ throw new SubmissionError(error);
+ });
+};
diff --git a/app/client/src/pages/organization/index.tsx b/app/client/src/pages/organization/index.tsx
new file mode 100644
index 0000000000..95819ba3e6
--- /dev/null
+++ b/app/client/src/pages/organization/index.tsx
@@ -0,0 +1,28 @@
+import React from "react";
+import { Switch, Route, useRouteMatch, useLocation } from "react-router-dom";
+import { TransitionGroup, CSSTransition } from "react-transition-group";
+import PageWrapper from "pages/common/PageWrapper";
+import Users from "pages/users";
+import Settings from "./settings";
+import Invite from "./invite";
+import DefaultOrgPage from "./defaultOrgPage";
+export const Organization = () => {
+ const { path } = useRouteMatch();
+ const location = useLocation();
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default Organization;
diff --git a/app/client/src/pages/organization/invite.tsx b/app/client/src/pages/organization/invite.tsx
new file mode 100644
index 0000000000..4523156e7d
--- /dev/null
+++ b/app/client/src/pages/organization/invite.tsx
@@ -0,0 +1,14 @@
+import React from "react";
+import InviteUsersForm from "./InviteUsersForm";
+
+export const Invite = () => {
+ // const handleInviteUsersSubmit = (values: InviteUsersFormValues) => {};
+ return (
+
+ Invite Users
+
+
+ );
+};
+
+export default Invite;
diff --git a/app/client/src/pages/organization/settings.tsx b/app/client/src/pages/organization/settings.tsx
new file mode 100644
index 0000000000..235efa9aeb
--- /dev/null
+++ b/app/client/src/pages/organization/settings.tsx
@@ -0,0 +1,78 @@
+import React from "react";
+import { connect } from "react-redux";
+import { useHistory } from "react-router-dom";
+import { AppState } from "reducers";
+import { getCurrentOrg } from "selectors/organizationSelectors";
+import { ORG_INVITE_USERS_PAGE_URL } from "constants/routes";
+import EditableText from "pages/common/EditableText";
+import PageSectionDivider from "pages/common/PageSectionDivider";
+import PageSectionHeader from "pages/common/PageSectionHeader";
+import { ReduxActionTypes } from "constants/ReduxActionConstants";
+import Button from "components/editorComponents/Button";
+import { Org } from "constants/orgConstants";
+
+export type PageProps = {
+ org?: Org;
+ changeOrgName: (value: string) => void;
+};
+
+export const OrgSettings = (props: PageProps) => {
+ const changeOrgName = (value: string) => {
+ if (props.org && value.trim().length > 0 && value !== props.org.name) {
+ props.changeOrgName(value);
+ }
+ };
+
+ const history = useHistory();
+
+ return (
+
+
+
+ {props.org && (
+
+ )}
+
+
+
+
+ Organization Users
+
+
+ );
+};
+
+const mapStateToProps = (state: AppState) => ({
+ org: getCurrentOrg(state),
+});
+
+const mapDispatchToProps = (dispatch: any) => ({
+ changeOrgName: (name: string) =>
+ dispatch({
+ type: ReduxActionTypes.UPDATE_ORG_NAME_INIT,
+ payload: {
+ name,
+ },
+ }),
+ deleteOrg: (orgId: string) =>
+ dispatch({
+ type: ReduxActionTypes.DELETE_ORG_INIT,
+ payload: {
+ orgId,
+ },
+ }),
+});
+
+export default connect(mapStateToProps, mapDispatchToProps)(OrgSettings);
diff --git a/app/client/src/pages/users/index.tsx b/app/client/src/pages/users/index.tsx
new file mode 100644
index 0000000000..f071779586
--- /dev/null
+++ b/app/client/src/pages/users/index.tsx
@@ -0,0 +1,3 @@
+export const Users = () => null;
+
+export default Users;
diff --git a/app/client/src/pages/users/list.tsx b/app/client/src/pages/users/list.tsx
new file mode 100644
index 0000000000..0dd0dbd447
--- /dev/null
+++ b/app/client/src/pages/users/list.tsx
@@ -0,0 +1 @@
+export default "list users";
diff --git a/app/client/src/pages/users/view.tsx b/app/client/src/pages/users/view.tsx
new file mode 100644
index 0000000000..1d41523f48
--- /dev/null
+++ b/app/client/src/pages/users/view.tsx
@@ -0,0 +1 @@
+export default "view user";
diff --git a/app/client/src/reducers/index.tsx b/app/client/src/reducers/index.tsx
index a5b4cca5ef..53d0cc50fc 100644
--- a/app/client/src/reducers/index.tsx
+++ b/app/client/src/reducers/index.tsx
@@ -21,6 +21,8 @@ import { ApiPaneReduxState } from "./uiReducers/apiPaneReducer";
import { RoutesParamsReducerState } from "reducers/uiReducers/routesParamsReducer";
import { PluginDataState } from "reducers/entityReducers/pluginsReducer";
import { AuthState } from "reducers/uiReducers/authReducer";
+import { OrgReduxState } from "reducers/uiReducers/orgReducer";
+import { UsersReduxState } from "reducers/uiReducers/usersReducer";
const appReducer = combineReducers({
entities: entityReducer,
@@ -41,6 +43,8 @@ export interface AppState {
apiPane: ApiPaneReduxState;
routesParams: RoutesParamsReducerState;
auth: AuthState;
+ orgs: OrgReduxState;
+ users: UsersReduxState;
};
entities: {
canvasWidgets: CanvasWidgetsReduxState;
diff --git a/app/client/src/reducers/uiReducers/index.tsx b/app/client/src/reducers/uiReducers/index.tsx
index b011f6245c..b03ebfbf32 100644
--- a/app/client/src/reducers/uiReducers/index.tsx
+++ b/app/client/src/reducers/uiReducers/index.tsx
@@ -8,6 +8,8 @@ import { widgetSidebarReducer } from "./widgetSidebarReducer";
import apiPaneReducer from "./apiPaneReducer";
import routesParamsReducer from "reducers/uiReducers/routesParamsReducer";
import authReducer from "./authReducer";
+import orgReducer from "./orgReducer";
+import usersReducer from "./usersReducer";
const uiReducer = combineReducers({
widgetSidebar: widgetSidebarReducer,
@@ -19,5 +21,7 @@ const uiReducer = combineReducers({
apiPane: apiPaneReducer,
routesParams: routesParamsReducer,
auth: authReducer,
+ orgs: orgReducer,
+ users: usersReducer,
});
export default uiReducer;
diff --git a/app/client/src/reducers/uiReducers/orgReducer.ts b/app/client/src/reducers/uiReducers/orgReducer.ts
new file mode 100644
index 0000000000..8c07d36725
--- /dev/null
+++ b/app/client/src/reducers/uiReducers/orgReducer.ts
@@ -0,0 +1,60 @@
+import { createReducer } from "utils/AppsmithUtils";
+import {
+ ReduxAction,
+ ReduxActionTypes,
+ ReduxActionErrorTypes,
+} from "constants/ReduxActionConstants";
+import { OrgRole, Org } from "constants/orgConstants";
+
+const initialState: OrgReduxState = {
+ loadingStates: {
+ fetchingRoles: false,
+ },
+};
+
+const orgReducer = createReducer(initialState, {
+ [ReduxActionTypes.FETCH_ORG_ROLES_INIT]: (state: OrgReduxState) => ({
+ ...state,
+ roles: undefined,
+ loadingStates: {
+ ...state.loadingStates,
+ fetchingRoles: true,
+ },
+ }),
+ [ReduxActionTypes.FETCH_ORG_ROLES_SUCCESS]: (
+ state: OrgReduxState,
+ action: ReduxAction,
+ ) => ({
+ ...state,
+ roles: action.payload,
+ loadingStates: {
+ ...state.loadingStates,
+ fetchingRoles: false,
+ },
+ }),
+ [ReduxActionErrorTypes.FETCH_ORG_ROLES_ERROR]: (state: OrgReduxState) => ({
+ ...state,
+ roles: undefined,
+ loadingStates: {
+ ...state.loadingStates,
+ fetchingRoles: false,
+ },
+ }),
+ [ReduxActionTypes.FETCH_ORGS_SUCCESS]: (
+ state: OrgReduxState,
+ action: ReduxAction,
+ ) => ({
+ ...state,
+ list: action.payload,
+ }),
+});
+
+export interface OrgReduxState {
+ list?: Org[];
+ roles?: OrgRole[];
+ loadingStates: {
+ fetchingRoles: boolean;
+ };
+}
+
+export default orgReducer;
diff --git a/app/client/src/reducers/uiReducers/usersReducer.ts b/app/client/src/reducers/uiReducers/usersReducer.ts
new file mode 100644
index 0000000000..3e75935cfe
--- /dev/null
+++ b/app/client/src/reducers/uiReducers/usersReducer.ts
@@ -0,0 +1,69 @@
+import _ from "lodash";
+import { createReducer } from "utils/AppsmithUtils";
+import {
+ ReduxAction,
+ ReduxActionTypes,
+ ReduxActionErrorTypes,
+} from "constants/ReduxActionConstants";
+
+import { User } from "constants/userConstants";
+
+const initialState: UsersReduxState = {
+ loadingStates: {
+ fetchingUsers: false,
+ fetchingUser: false,
+ },
+ list: [],
+};
+
+const usersReducer = createReducer(initialState, {
+ [ReduxActionTypes.FETCH_USER_INIT]: (state: UsersReduxState) => ({
+ ...state,
+ loadingStates: {
+ ...state.loadingStates,
+ fetchingUser: true,
+ },
+ }),
+ [ReduxActionTypes.FETCH_USER_SUCCESS]: (
+ state: UsersReduxState,
+ action: ReduxAction,
+ ) => {
+ const users = [...state.list];
+ const userIndex = _.findIndex(users, { id: action.payload.id });
+ if (userIndex > -1) {
+ users[userIndex] = action.payload;
+ } else {
+ users.push(action.payload);
+ }
+ return {
+ ...state,
+ loadingStates: {
+ ...state.loadingStates,
+ fetchingUser: false,
+ },
+ list: users,
+ };
+ },
+ [ReduxActionErrorTypes.FETCH_USER_ERROR]: (state: UsersReduxState) => ({
+ ...state,
+ loadingStates: { ...state.loadingStates, fetchingUser: false },
+ }),
+ [ReduxActionTypes.SET_CURRENT_USER_SUCCESS]: (
+ state: UsersReduxState,
+ action: ReduxAction,
+ ) => ({
+ ...state,
+ current: action.payload,
+ }),
+});
+
+export interface UsersReduxState {
+ current?: User;
+ list: User[];
+ loadingStates: {
+ fetchingUser: boolean;
+ fetchingUsers: boolean;
+ };
+}
+
+export default usersReducer;
diff --git a/app/client/src/sagas/OrgSagas.ts b/app/client/src/sagas/OrgSagas.ts
new file mode 100644
index 0000000000..6769880ca5
--- /dev/null
+++ b/app/client/src/sagas/OrgSagas.ts
@@ -0,0 +1,109 @@
+import { call, takeLatest, put, all } from "redux-saga/effects";
+import {
+ ReduxActionTypes,
+ ReduxAction,
+ ReduxActionErrorTypes,
+} from "constants/ReduxActionConstants";
+import { validateResponse } from "sagas/ErrorSagas";
+import OrgApi, {
+ FetchOrgRolesResponse,
+ FetchOrgsResponse,
+ SaveOrgRequest,
+ FetchOrgRequest,
+ FetchOrgResponse,
+} from "api/OrgApi";
+import { ApiResponse } from "api/ApiResponses";
+
+export function* fetchRolesSaga() {
+ try {
+ const response: FetchOrgRolesResponse = yield call(OrgApi.fetchRoles);
+ const isValidResponse = yield validateResponse(response);
+ if (isValidResponse) {
+ yield put({
+ type: ReduxActionTypes.FETCH_ORG_ROLES_SUCCESS,
+ payload: response.data,
+ });
+ }
+ } catch (error) {
+ console.log(error);
+ yield put({
+ type: ReduxActionErrorTypes.FETCH_ORG_ROLES_ERROR,
+ payload: {
+ error,
+ },
+ });
+ }
+}
+
+export function* fetchOrgsSaga() {
+ try {
+ const response: FetchOrgsResponse = yield call(OrgApi.fetchOrgs);
+ const isValidResponse = yield validateResponse(response);
+ if (isValidResponse) {
+ yield put({
+ type: ReduxActionTypes.FETCH_ORGS_SUCCESS,
+ payload: response.data,
+ });
+ }
+ } catch (error) {
+ console.log(error);
+ yield put({
+ type: ReduxActionErrorTypes.FETCH_ORGS_ERROR,
+ payload: {
+ error,
+ },
+ });
+ }
+}
+
+export function* fetchOrgSaga(action: ReduxAction) {
+ try {
+ const request: FetchOrgRequest = action.payload;
+ const response: FetchOrgResponse = yield call(OrgApi.fetchOrg, request);
+ const isValidResponse = yield validateResponse(response);
+ if (isValidResponse) {
+ yield put({
+ type: ReduxActionTypes.FETCH_ORG_SUCCESS,
+ payload: response.data,
+ });
+ }
+ } catch (error) {
+ console.log(error);
+ yield put({
+ type: ReduxActionErrorTypes.FETCH_ORG_ERROR,
+ payload: {
+ error,
+ },
+ });
+ }
+}
+
+export function* saveOrgSaga(action: ReduxAction) {
+ try {
+ const request: SaveOrgRequest = action.payload;
+ const response: ApiResponse = yield call(OrgApi.saveOrg, request);
+ const isValidResponse = yield validateResponse(response);
+ if (isValidResponse) {
+ yield put({
+ type: ReduxActionTypes.SAVE_ORG_SUCCESS,
+ });
+ }
+ } catch (error) {
+ console.log(error);
+ yield put({
+ type: ReduxActionErrorTypes.SAVE_ORG_ERROR,
+ payload: {
+ error,
+ },
+ });
+ }
+}
+
+export default function* orgSagas() {
+ yield all([
+ takeLatest(ReduxActionTypes.FETCH_ORG_ROLES_INIT, fetchRolesSaga),
+ takeLatest(ReduxActionTypes.FETCH_ORG_INIT, fetchOrgSaga),
+ takeLatest(ReduxActionTypes.FETCH_ORGS_INIT, fetchOrgsSaga),
+ takeLatest(ReduxActionTypes.SAVE_ORG_INIT, saveOrgSaga),
+ ]);
+}
diff --git a/app/client/src/sagas/index.tsx b/app/client/src/sagas/index.tsx
index 64c3fac3ed..2dd4f9a840 100644
--- a/app/client/src/sagas/index.tsx
+++ b/app/client/src/sagas/index.tsx
@@ -15,6 +15,7 @@ import watchActionWidgetMapSagas, {
import apiPaneSagas from "./ApiPaneSagas";
import userSagas from "./userSagas";
import pluginSagas from "./PluginSagas";
+import orgSagas from "./OrgSagas";
export function* rootSaga() {
yield all([
@@ -33,5 +34,6 @@ export function* rootSaga() {
spawn(apiPaneSagas),
spawn(userSagas),
spawn(pluginSagas),
+ spawn(orgSagas),
]);
}
diff --git a/app/client/src/sagas/userSagas.tsx b/app/client/src/sagas/userSagas.tsx
index b5c1944650..90776a2335 100644
--- a/app/client/src/sagas/userSagas.tsx
+++ b/app/client/src/sagas/userSagas.tsx
@@ -10,6 +10,8 @@ import UserApi, {
ForgotPasswordRequest,
ResetPasswordRequest,
ResetPasswordVerifyTokenRequest,
+ FetchUserRequest,
+ FetchUserResponse,
} from "api/UserApi";
import { ApiResponse } from "api/ApiResponses";
import {
@@ -18,6 +20,10 @@ import {
callAPI,
} from "./ErrorSagas";
+import { fetchOrgsSaga } from "./OrgSagas";
+
+import { resetAuthExpiration } from "utils/storage";
+
export function* createUserSaga(
action: ReduxAction<{
resolve: any;
@@ -131,6 +137,67 @@ export function* resetPasswordSaga(
});
}
}
+type InviteUserPayload = {
+ email: string;
+ groupIds: string[];
+};
+
+export function* inviteUser(payload: InviteUserPayload, reject: any) {
+ const response: ApiResponse = yield callAPI(UserApi.inviteUser, payload);
+ const isValidResponse = yield validateResponse(response);
+ if (!isValidResponse) {
+ let errorMessage = `${payload.email}: `;
+ errorMessage += getResponseErrorMessage(response);
+ yield call(reject, { _error: errorMessage });
+ }
+ yield;
+}
+
+export function* inviteUsers(
+ action: ReduxAction<{
+ data: Array<{ roleId: string; emails: string[] }>;
+ resolve: any;
+ reject: any;
+ }>,
+) {
+ try {
+ const { data, resolve, reject } = action.payload;
+ const sagasToCall = [];
+ const emailSet: Record = {};
+ data.forEach((groupSet: { roleId: string; emails: string[] }) => {
+ const { emails, roleId } = groupSet;
+ emails.forEach((email: string) => {
+ if (emailSet.hasOwnProperty(email)) {
+ emailSet[email].push(roleId);
+ } else {
+ emailSet[email] = [roleId];
+ }
+ });
+ });
+
+ for (const email in emailSet) {
+ sagasToCall.push(
+ call(inviteUser, { email, groupIds: emailSet[email] }, reject),
+ );
+ }
+ yield all(sagasToCall);
+ yield put({
+ type: ReduxActionTypes.INVITE_USERS_TO_ORG_SUCCESS,
+ payload: {
+ inviteCount: sagasToCall.length,
+ },
+ });
+ yield call(resolve);
+ } catch (error) {
+ console.log(error);
+ yield put({
+ type: ReduxActionErrorTypes.INVITE_USERS_TO_ORG_ERROR,
+ payload: {
+ error,
+ },
+ });
+ }
+}
export function* verifyResetPasswordTokenSaga(
action: ReduxAction<{ token: string; email: string }>,
@@ -155,6 +222,39 @@ export function* verifyResetPasswordTokenSaga(
}
}
+export function* fetchUserSaga(action: ReduxAction) {
+ try {
+ const request: FetchUserRequest = action.payload;
+ const response: FetchUserResponse = yield call(UserApi.fetchUser, request);
+ const isValidResponse = yield validateResponse(response);
+ if (isValidResponse) {
+ yield put({
+ type: ReduxActionTypes.FETCH_USER_SUCCESS,
+ payload: response.data,
+ });
+ return yield response.data;
+ }
+ return yield false;
+ } catch (error) {
+ console.log(error);
+ yield put({
+ type: ReduxActionErrorTypes.FETCH_USER_ERROR,
+ });
+ }
+}
+
+export function* setCurrentUserSaga(action: ReduxAction) {
+ const me = yield call(fetchUserSaga, action);
+ if (me) {
+ resetAuthExpiration();
+ yield put({
+ type: ReduxActionTypes.SET_CURRENT_USER_SUCCESS,
+ payload: me,
+ });
+ yield call(fetchOrgsSaga);
+ }
+}
+
export default function* userSagas() {
yield all([
takeLatest(ReduxActionTypes.CREATE_USER_INIT, createUserSaga),
@@ -164,5 +264,8 @@ export default function* userSagas() {
ReduxActionTypes.RESET_PASSWORD_VERIFY_TOKEN_INIT,
verifyResetPasswordTokenSaga,
),
+ takeLatest(ReduxActionTypes.INVITE_USERS_TO_ORG_INIT, inviteUsers),
+ takeLatest(ReduxActionTypes.FETCH_USER_INIT, fetchUserSaga),
+ takeLatest(ReduxActionTypes.SET_CURRENT_USER_INIT, setCurrentUserSaga),
]);
}
diff --git a/app/client/src/selectors/organizationSelectors.tsx b/app/client/src/selectors/organizationSelectors.tsx
new file mode 100644
index 0000000000..b44089bd96
--- /dev/null
+++ b/app/client/src/selectors/organizationSelectors.tsx
@@ -0,0 +1,22 @@
+import { createSelector } from "reselect";
+import { AppState } from "reducers";
+import { OrgRole, Org } from "constants/orgConstants";
+import _ from "lodash";
+
+export const getOrgs = (state: AppState) => state.ui.orgs.list;
+export const getCurrentUserOrgId = (state: AppState) =>
+ state.ui.users.current?.currentOrganizationId;
+export const getCurrentOrg = createSelector(
+ getOrgs,
+ getCurrentUserOrgId,
+ (orgs?: Org[], id?: string) => {
+ if (orgs && id) {
+ return _.find(orgs, { id: id });
+ }
+ return undefined;
+ },
+);
+
+export const getRoles = (state: AppState): OrgRole[] | undefined => {
+ return state.ui.orgs.roles;
+};
diff --git a/app/client/src/selectors/usersSelectors.tsx b/app/client/src/selectors/usersSelectors.tsx
new file mode 100644
index 0000000000..c8b420ca7c
--- /dev/null
+++ b/app/client/src/selectors/usersSelectors.tsx
@@ -0,0 +1,6 @@
+import { AppState } from "reducers";
+import { User } from "constants/userConstants";
+
+export const getCurrentUser = (state: AppState): User | undefined =>
+ state.ui.users.current;
+export const getUsers = (state: AppState): User[] => state.ui.users.list;
diff --git a/app/client/src/store.ts b/app/client/src/store.ts
new file mode 100644
index 0000000000..511c1df3ea
--- /dev/null
+++ b/app/client/src/store.ts
@@ -0,0 +1,18 @@
+import { createStore, applyMiddleware } from "redux";
+import {
+ useSelector as useReduxSelector,
+ TypedUseSelectorHook,
+} from "react-redux";
+import appReducer, { AppState } from "./reducers";
+import createSagaMiddleware from "redux-saga";
+import { rootSaga } from "./sagas";
+import { composeWithDevTools } from "redux-devtools-extension/logOnlyInProduction";
+
+const sagaMiddleware = createSagaMiddleware();
+export default createStore(
+ appReducer,
+ composeWithDevTools(applyMiddleware(sagaMiddleware)),
+);
+sagaMiddleware.run(rootSaga);
+
+export const useSelector: TypedUseSelectorHook = useReduxSelector;
diff --git a/app/client/src/stories/TagListInput.stories.tsx b/app/client/src/stories/TagListInput.stories.tsx
new file mode 100644
index 0000000000..76e5bc2f88
--- /dev/null
+++ b/app/client/src/stories/TagListInput.stories.tsx
@@ -0,0 +1,42 @@
+import React, { useState } from "react";
+import TagInputComponent from "components/editorComponents/TagInputComponent";
+import { withKnobs, text, select } from "@storybook/addon-knobs";
+import { withDesign } from "storybook-addon-designs";
+import { IntentColors } from "constants/DefaultTheme";
+
+export default {
+ title: "TagListInput",
+ component: TagInputComponent,
+ decorators: [withKnobs, withDesign],
+};
+
+export const withDynamicProps = () =>
+ React.createElement(() => {
+ const [values, setValues] = useState(
+ "abhinav, test@appsmith.com, test2@appsmith.com",
+ );
+
+ return (
+ setValues(value),
+ }}
+ separator={text("Separator (string | RegExp)", ",")}
+ type="email"
+ intent={select("Intent", Object.keys(IntentColors), "success")}
+ />
+ );
+ });
+
+withDynamicProps.story = {
+ name: "Dynamic Props",
+ parameters: {
+ design: {
+ type: "figma",
+ url:
+ "https://www.figma.com/file/dcpKM4JTxsa7rd5MTcyJiT/Untitled?node-id=10%3A2",
+ },
+ },
+};
diff --git a/app/client/src/utils/helpers.tsx b/app/client/src/utils/helpers.tsx
index 51608dadc5..cb2a6909cd 100644
--- a/app/client/src/utils/helpers.tsx
+++ b/app/client/src/utils/helpers.tsx
@@ -25,3 +25,12 @@ export const getAbsolutePixels = (size?: string | null) => {
if (_dex === -1) return 0;
return parseInt(size.slice(0, _dex), 10);
};
+
+export const Directions: { [id: string]: string } = {
+ UP: "up",
+ DOWN: "down",
+ LEFT: "left",
+ RIGHT: "right",
+};
+
+export type Direction = typeof Directions[keyof typeof Directions];
diff --git a/app/client/src/utils/storage.ts b/app/client/src/utils/storage.ts
new file mode 100644
index 0000000000..7c7dc39ba4
--- /dev/null
+++ b/app/client/src/utils/storage.ts
@@ -0,0 +1,27 @@
+import localforage from "localforage";
+import moment from "moment";
+
+const STORAGE_KEYS: { [id: string]: string } = {
+ AUTH_EXPIRATION: "Auth.expiration",
+};
+
+const store = localforage.createInstance({
+ name: "Appsmith",
+});
+
+export const resetAuthExpiration = () => {
+ const expireBy = moment()
+ .add(1, "h")
+ .format();
+ store.setItem(STORAGE_KEYS.AUTH_EXPIRATION, expireBy).catch(error => {
+ console.log("Unable to set expiration time");
+ });
+};
+
+export const hasAuthExpired = async () => {
+ const expireBy: string = await store.getItem(STORAGE_KEYS.AUTH_EXPIRATION);
+ if (expireBy && moment().isAfter(moment(expireBy))) {
+ return true;
+ }
+ return false;
+};
diff --git a/app/client/src/widgets/BaseWidget.tsx b/app/client/src/widgets/BaseWidget.tsx
index aef3180f87..6e1d2dad09 100644
--- a/app/client/src/widgets/BaseWidget.tsx
+++ b/app/client/src/widgets/BaseWidget.tsx
@@ -181,6 +181,8 @@ abstract class BaseWidget<
return {this.getPageView()};
}
+ // TODO(Nikhil): Revisit the inclusion of another library for shallowEqual.
+ // `react-redux` provides shallowEqual natively
shouldComponentUpdate(nextProps: WidgetProps, nextState: WidgetState) {
const isNotEqual =
!shallowequal(nextProps, this.props) ||
diff --git a/app/client/src/widgets/TableWidget.tsx b/app/client/src/widgets/TableWidget.tsx
index 5060c261fa..edca08607c 100644
--- a/app/client/src/widgets/TableWidget.tsx
+++ b/app/client/src/widgets/TableWidget.tsx
@@ -1,11 +1,10 @@
import React from "react";
-import _ from "lodash";
import BaseWidget, { WidgetProps, WidgetState } from "./BaseWidget";
import { WidgetType } from "constants/WidgetConstants";
import { ActionPayload, TableAction } from "constants/ActionConstants";
import { AutoResizer } from "react-base-table";
import "react-base-table/styles.css";
-import { forIn } from "lodash";
+import _, { forIn } from "lodash";
import SelectableTable, {
Column,
} from "components/designSystems/appsmith/TableComponent";
diff --git a/app/client/yarn.lock b/app/client/yarn.lock
index dc71c3c8f8..1b372299d7 100644
--- a/app/client/yarn.lock
+++ b/app/client/yarn.lock
@@ -9,26 +9,6 @@
dependencies:
"@babel/highlight" "^7.0.0"
-"@babel/core@7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.2.tgz#069a776e8d5e9eefff76236bc8845566bd31dd91"
- integrity sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==
- dependencies:
- "@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.6.2"
- "@babel/helpers" "^7.6.2"
- "@babel/parser" "^7.6.2"
- "@babel/template" "^7.6.0"
- "@babel/traverse" "^7.6.2"
- "@babel/types" "^7.6.0"
- convert-source-map "^1.1.0"
- debug "^4.1.0"
- json5 "^2.1.0"
- lodash "^4.17.13"
- resolve "^1.3.2"
- semver "^5.4.1"
- source-map "^0.5.0"
-
"@babel/core@7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.4.tgz#37e864532200cb6b50ee9a4045f5f817840166ab"
@@ -50,14 +30,14 @@
source-map "^0.5.0"
"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.7.4":
- version "7.7.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.5.tgz#ae1323cd035b5160293307f50647e83f8ba62f7e"
- integrity sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9"
+ integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==
dependencies:
"@babel/code-frame" "^7.5.5"
- "@babel/generator" "^7.7.4"
+ "@babel/generator" "^7.7.7"
"@babel/helpers" "^7.7.4"
- "@babel/parser" "^7.7.5"
+ "@babel/parser" "^7.7.7"
"@babel/template" "^7.7.4"
"@babel/traverse" "^7.7.4"
"@babel/types" "^7.7.4"
@@ -69,10 +49,10 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.4.0", "@babel/generator@^7.6.2", "@babel/generator@^7.7.2", "@babel/generator@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369"
- integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==
+"@babel/generator@^7.4.0", "@babel/generator@^7.7.2", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45"
+ integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==
dependencies:
"@babel/types" "^7.7.4"
jsesc "^2.5.1"
@@ -262,7 +242,7 @@
"@babel/traverse" "^7.7.4"
"@babel/types" "^7.7.4"
-"@babel/helpers@^7.6.2", "@babel/helpers@^7.7.4":
+"@babel/helpers@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.4.tgz#62c215b9e6c712dadc15a9a0dcab76c92a940302"
integrity sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==
@@ -280,10 +260,10 @@
esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.6.2", "@babel/parser@^7.7.3", "@babel/parser@^7.7.4", "@babel/parser@^7.7.5":
- version "7.7.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71"
- integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.3", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937"
+ integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==
"@babel/plugin-proposal-async-generator-functions@^7.7.4":
version "7.7.4"
@@ -343,15 +323,7 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-numeric-separator" "^7.7.4"
-"@babel/plugin-proposal-object-rest-spread@7.6.2":
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096"
- integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
-
-"@babel/plugin-proposal-object-rest-spread@7.7.4", "@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.7.4":
+"@babel/plugin-proposal-object-rest-spread@7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz#cc57849894a5c774214178c8ab64f6334ec8af71"
integrity sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==
@@ -359,6 +331,14 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.7.4"
+"@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.7.4", "@babel/plugin-proposal-object-rest-spread@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370"
+ integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.7.4"
+
"@babel/plugin-proposal-optional-catch-binding@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379"
@@ -375,10 +355,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-optional-chaining" "^7.7.4"
-"@babel/plugin-proposal-unicode-property-regex@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb"
- integrity sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==
+"@babel/plugin-proposal-unicode-property-regex@^7.7.4", "@babel/plugin-proposal-unicode-property-regex@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e"
+ integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==
dependencies:
"@babel/helper-create-regexp-features-plugin" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -418,14 +398,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-jsx@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7"
- integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-jsx@^7.7.4":
+"@babel/plugin-syntax-jsx@7.7.4", "@babel/plugin-syntax-jsx@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz#dab2b56a36fb6c3c222a1fbc71f7bf97f327a9ec"
integrity sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==
@@ -446,14 +419,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-syntax-object-rest-spread@7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
- integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4":
+"@babel/plugin-syntax-object-rest-spread@7.7.4", "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46"
integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==
@@ -547,10 +513,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-dotall-regex@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96"
- integrity sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==
+"@babel/plugin-transform-dotall-regex@^7.7.4", "@babel/plugin-transform-dotall-regex@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b"
+ integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==
dependencies:
"@babel/helper-create-regexp-features-plugin" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -665,10 +631,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-replace-supers" "^7.7.4"
-"@babel/plugin-transform-parameters@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz#da4555c97f39b51ac089d31c7380f03bca4075ce"
- integrity sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==
+"@babel/plugin-transform-parameters@^7.7.4", "@babel/plugin-transform-parameters@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007"
+ integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==
dependencies:
"@babel/helper-call-delegate" "^7.7.4"
"@babel/helper-get-function-arity" "^7.7.4"
@@ -713,9 +679,9 @@
"@babel/plugin-syntax-jsx" "^7.7.4"
"@babel/plugin-transform-react-jsx@^7.7.0", "@babel/plugin-transform-react-jsx@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz#d91205717fae4e2f84d020cd3057ec02a10f11da"
- integrity sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw==
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.7.tgz#5cbaa7445b4a09f774029f3cc7bb448ff3122a5d"
+ integrity sha512-SlPjWPbva2+7/ZJbGcoqjl4LsQaLpKEzxW9hcxU7675s24JmdotJOSJ4cgAbV82W3FcZpHIGmRZIlUL8ayMvjw==
dependencies:
"@babel/helper-builder-react-jsx" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -857,18 +823,18 @@
semver "^5.5.0"
"@babel/preset-env@^7.4.5", "@babel/preset-env@^7.7.1":
- version "7.7.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.6.tgz#39ac600427bbb94eec6b27953f1dfa1d64d457b2"
- integrity sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac"
+ integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==
dependencies:
"@babel/helper-module-imports" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-async-generator-functions" "^7.7.4"
"@babel/plugin-proposal-dynamic-import" "^7.7.4"
"@babel/plugin-proposal-json-strings" "^7.7.4"
- "@babel/plugin-proposal-object-rest-spread" "^7.7.4"
+ "@babel/plugin-proposal-object-rest-spread" "^7.7.7"
"@babel/plugin-proposal-optional-catch-binding" "^7.7.4"
- "@babel/plugin-proposal-unicode-property-regex" "^7.7.4"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.7.7"
"@babel/plugin-syntax-async-generators" "^7.7.4"
"@babel/plugin-syntax-dynamic-import" "^7.7.4"
"@babel/plugin-syntax-json-strings" "^7.7.4"
@@ -882,7 +848,7 @@
"@babel/plugin-transform-classes" "^7.7.4"
"@babel/plugin-transform-computed-properties" "^7.7.4"
"@babel/plugin-transform-destructuring" "^7.7.4"
- "@babel/plugin-transform-dotall-regex" "^7.7.4"
+ "@babel/plugin-transform-dotall-regex" "^7.7.7"
"@babel/plugin-transform-duplicate-keys" "^7.7.4"
"@babel/plugin-transform-exponentiation-operator" "^7.7.4"
"@babel/plugin-transform-for-of" "^7.7.4"
@@ -896,7 +862,7 @@
"@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4"
"@babel/plugin-transform-new-target" "^7.7.4"
"@babel/plugin-transform-object-super" "^7.7.4"
- "@babel/plugin-transform-parameters" "^7.7.4"
+ "@babel/plugin-transform-parameters" "^7.7.7"
"@babel/plugin-transform-property-literals" "^7.7.4"
"@babel/plugin-transform-regenerator" "^7.7.5"
"@babel/plugin-transform-reserved-words" "^7.7.4"
@@ -908,7 +874,7 @@
"@babel/plugin-transform-unicode-regex" "^7.7.4"
"@babel/types" "^7.7.4"
browserslist "^4.6.0"
- core-js-compat "^3.4.7"
+ core-js-compat "^3.6.0"
invariant "^2.2.2"
js-levenshtein "^1.1.3"
semver "^5.5.0"
@@ -941,9 +907,9 @@
"@babel/plugin-transform-typescript" "^7.7.4"
"@babel/runtime-corejs3@^7.7.4":
- version "7.7.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.7.6.tgz#5b1044ea11b659d288f77190e19c62da959ed9a3"
- integrity sha512-NrRUehqG0sMSCaP+0XV/vOvvjNl4BQOWq3Qys1Q2KTEm5tGMo9h0dHnIzeKerj0a7SIB8LP5kYg/T1raE3FoKQ==
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.7.7.tgz#78fcbd472daec13abc42678bfc319e58a62235a3"
+ integrity sha512-kr3W3Fw8mB/CTru2M5zIRQZZgC/9zOxNSoJ/tVCzjPt3H1/p5uuGbz6WwmaQy/TLQcW31rUhUUWKY28sXFRelA==
dependencies:
core-js-pure "^3.0.0"
regenerator-runtime "^0.13.2"
@@ -955,14 +921,14 @@
dependencies:
regenerator-runtime "^0.13.2"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4":
- version "7.7.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.6.tgz#d18c511121aff1b4f2cd1d452f1bac9601dd830f"
- integrity sha512-BWAJxpNVa0QlE5gZdWjSxXtemZyZ9RmrmVozxt3NUXeZhVIJ5ANyqmMc0JDrivBZyxUuQvFxlvH4OWWOogGfUw==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.0", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.4":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf"
+ integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==
dependencies:
regenerator-runtime "^0.13.2"
-"@babel/template@^7.4.0", "@babel/template@^7.6.0", "@babel/template@^7.7.4":
+"@babel/template@^7.4.0", "@babel/template@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b"
integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==
@@ -971,7 +937,7 @@
"@babel/parser" "^7.7.4"
"@babel/types" "^7.7.4"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.6.2", "@babel/traverse@^7.7.4":
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558"
integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==
@@ -986,7 +952,7 @@
globals "^11.1.0"
lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.6.0", "@babel/types@^7.7.4":
+"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193"
integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==
@@ -996,9 +962,9 @@
to-fast-properties "^2.0.0"
"@blueprintjs/core@^3.18.1", "@blueprintjs/core@^3.19.0", "@blueprintjs/core@^3.20.0":
- version "3.22.2"
- resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.22.2.tgz#235bc4f5c469c9040398b2325c80e5882b90a916"
- integrity sha512-gROggPOtatxEP/l8Bw4WewEy21qbk66W+zEtVELEt4NtpD/3RntwVkdFfKJWb/bCA7+j29iQcOaBKkClwf7MuQ==
+ version "3.22.3"
+ resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.22.3.tgz#57dc2c072a17db0e52cc5679d8bbc016082b27e7"
+ integrity sha512-IaxkvJyF+4VCvAjMvyHtJ4qUiQNwgPu4zIxLRo1cBsu30gHjYzwe+xDdssBR7yRnXARguM6bkI523w+yJOerCA==
dependencies:
"@blueprintjs/icons" "^3.12.0"
"@types/dom4" "^2.0.1"
@@ -1023,9 +989,9 @@
tslib "~1.9.0"
"@blueprintjs/icons@^3.10.0", "@blueprintjs/icons@^3.12.0":
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.12.0.tgz#cea6a6434d9d469e26d87b055e6b6aa5768135b3"
- integrity sha512-ERIODstzjBzRIHNqAqyXu4gVsdLyvxAZ0Cp7Dr4+d5BdgDbZYzMYf9ll05daQPOBWaFjLh3lhCRhbfk6MXdD7A==
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.13.0.tgz#bff93a9ea5ced03afd2b3a65ddf4bb90bda485e4"
+ integrity sha512-fvXGsAJ66SSjeHv3OeXjLEdKdPJ3wVztjhJQCAd51uebhj3FJ16EDDvO7BqBw5FyVkLkU11KAxSoCFZt7TC9GA==
dependencies:
classnames "^2.2"
tslib "~1.9.0"
@@ -1040,15 +1006,15 @@
tslib "~1.9.0"
"@blueprintjs/timezone@^3.6.0":
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/@blueprintjs/timezone/-/timezone-3.6.0.tgz#73b055c94e656671c85ce61e80d7360ae432cced"
- integrity sha512-OysaslKuksF1j3zgFGU2nE1nd6uIzwSCPHe7HrmhZ2CVqU4GFr5Qqnxh4OHDAW6iVJT8g9FEk5Jf2RjbUnHE5w==
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/@blueprintjs/timezone/-/timezone-3.6.1.tgz#b617ee3d049e23113540fcc2bf7fab000546e3a9"
+ integrity sha512-emCKUP9iEYFOxEMMcm1aQFaePs7mbeiRlH1NOnG3kwZnPxZYK6zUtpe/tP6dyWhBNxjFaDjFJ+f8JbyYGPtktQ==
dependencies:
"@blueprintjs/core" "^3.19.0"
"@blueprintjs/select" "^3.11.0"
classnames "^2.2"
moment "^2.24.0"
- moment-timezone "^0.5.26"
+ moment-timezone "^0.5.27"
tslib "~1.9.0"
"@cnakazawa/watch@^1.0.3":
@@ -1096,107 +1062,107 @@
debug "^3.1.0"
lodash.once "^4.1.1"
-"@emotion/cache@^10.0.17", "@emotion/cache@^10.0.9":
- version "10.0.19"
- resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.19.tgz#d258d94d9c707dcadaf1558def968b86bb87ad71"
- integrity sha512-BoiLlk4vEsGBg2dAqGSJu0vJl/PgVtCYLBFJaEO8RmQzPugXewQCXZJNXTDFaRlfCs0W+quesayav4fvaif5WQ==
+"@emotion/cache@^10.0.27", "@emotion/cache@^10.0.9":
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.27.tgz#7895db204e2c1a991ae33d51262a3a44f6737303"
+ integrity sha512-Zp8BEpbMunFsTcqAK4D7YTm3MvCp1SekflSLJH8lze2fCcSZ/yMkXHo8kb3t1/1Tdd3hAqf3Fb7z9VZ+FMiC9w==
dependencies:
- "@emotion/sheet" "0.9.3"
- "@emotion/stylis" "0.8.4"
- "@emotion/utils" "0.11.2"
- "@emotion/weak-memoize" "0.2.4"
+ "@emotion/sheet" "0.9.4"
+ "@emotion/stylis" "0.8.5"
+ "@emotion/utils" "0.11.3"
+ "@emotion/weak-memoize" "0.2.5"
"@emotion/core@^10.0.14", "@emotion/core@^10.0.9":
- version "10.0.22"
- resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.22.tgz#2ac7bcf9b99a1979ab5b0a876fbf37ab0688b177"
- integrity sha512-7eoP6KQVUyOjAkE6y4fdlxbZRA4ILs7dqkkm6oZUJmihtHv0UBq98VgPirq9T8F9K2gKu0J/au/TpKryKMinaA==
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.27.tgz#7c3f78be681ab2273f3bf11ca3e2edc4a9dd1fdc"
+ integrity sha512-XbD5R36pVbohQMnKfajHv43g8EbN4NHdF6Zh9zg/C0nr0jqwOw3gYnC07Xj3yG43OYSRyrGsoQ5qPwc8ycvLZw==
dependencies:
"@babel/runtime" "^7.5.5"
- "@emotion/cache" "^10.0.17"
- "@emotion/css" "^10.0.22"
- "@emotion/serialize" "^0.11.12"
- "@emotion/sheet" "0.9.3"
- "@emotion/utils" "0.11.2"
+ "@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@^10.0.22", "@emotion/css@^10.0.9":
- version "10.0.22"
- resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.22.tgz#37b1abb6826759fe8ac0af0ac0034d27de6d1793"
- integrity sha512-8phfa5mC/OadBTmGpMpwykIVH0gFCbUoO684LUkyixPq4F1Wwri7fK5Xlm8lURNBrd2TuvTbPUGxFsGxF9UacA==
+"@emotion/css@^10.0.27", "@emotion/css@^10.0.9":
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c"
+ integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==
dependencies:
- "@emotion/serialize" "^0.11.12"
- "@emotion/utils" "0.11.2"
- babel-plugin-emotion "^10.0.22"
+ "@emotion/serialize" "^0.11.15"
+ "@emotion/utils" "0.11.3"
+ babel-plugin-emotion "^10.0.27"
-"@emotion/hash@0.7.3":
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.3.tgz#a166882c81c0c6040975dd30df24fae8549bd96f"
- integrity sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw==
+"@emotion/hash@0.7.4":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.4.tgz#f14932887422c9056b15a8d222a9074a7dfa2831"
+ integrity sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A==
-"@emotion/is-prop-valid@0.8.5", "@emotion/is-prop-valid@^0.8.1":
- version "0.8.5"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.5.tgz#2dda0791f0eafa12b7a0a5b39858405cc7bde983"
- integrity sha512-6ZODuZSFofbxSbcxwsFz+6ioPjb0ISJRRPLZ+WIbjcU2IMU0Io+RGQjjaTgOvNQl007KICBm7zXQaYQEC1r6Bg==
+"@emotion/is-prop-valid@0.8.6", "@emotion/is-prop-valid@^0.8.1":
+ version "0.8.6"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz#4757646f0a58e9dec614c47c838e7147d88c263c"
+ integrity sha512-mnZMho3Sq8BfzkYYRVc8ilQTnc8U02Ytp6J1AwM6taQStZ3AhsEJBX2LzhA/LJirNCwM2VtHL3VFIZ+sNJUgUQ==
dependencies:
- "@emotion/memoize" "0.7.3"
+ "@emotion/memoize" "0.7.4"
-"@emotion/memoize@0.7.3":
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.3.tgz#5b6b1c11d6a6dddf1f2fc996f74cf3b219644d78"
- integrity sha512-2Md9mH6mvo+ygq1trTeVp2uzAKwE2P7In0cRpD/M9Q70aH8L+rxMLbb3JCN2JoSWsV2O+DdFjfbbXoMoLBczow==
+"@emotion/memoize@0.7.4":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
+ integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
-"@emotion/serialize@^0.11.12", "@emotion/serialize@^0.11.14":
- version "0.11.14"
- resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.14.tgz#56a6d8d04d837cc5b0126788b2134c51353c6488"
- integrity sha512-6hTsySIuQTbDbv00AnUO6O6Xafdwo5GswRlMZ5hHqiFx+4pZ7uGWXUQFW46Kc2taGhP89uXMXn/lWQkdyTosPA==
+"@emotion/serialize@^0.11.15":
+ version "0.11.15"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.15.tgz#9a0f5873fb458d87d4f23e034413c12ed60a705a"
+ integrity sha512-YE+qnrmGwyR+XB5j7Bi+0GT1JWsdcjM/d4POu+TXkcnrRs4RFCCsi3d/Ebf+wSStHqAlTT2+dfd+b9N9EO2KBg==
dependencies:
- "@emotion/hash" "0.7.3"
- "@emotion/memoize" "0.7.3"
- "@emotion/unitless" "0.7.4"
- "@emotion/utils" "0.11.2"
+ "@emotion/hash" "0.7.4"
+ "@emotion/memoize" "0.7.4"
+ "@emotion/unitless" "0.7.5"
+ "@emotion/utils" "0.11.3"
csstype "^2.5.7"
-"@emotion/sheet@0.9.3":
- version "0.9.3"
- resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.3.tgz#689f135ecf87d3c650ed0c4f5ddcbe579883564a"
- integrity sha512-c3Q6V7Df7jfwSq5AzQWbXHa5soeE4F5cbqi40xn0CzXxWW9/6Mxq48WJEtqfWzbZtW9odZdnRAkwCQwN12ob4A==
+"@emotion/sheet@0.9.4":
+ version "0.9.4"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5"
+ integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==
-"@emotion/styled-base@^10.0.23":
- version "10.0.24"
- resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.24.tgz#9497efd8902dfeddee89d24b0eeb26b0665bfe8b"
- integrity sha512-AnBImerf0h4dGAJVo0p0VE8KoAns71F28ErGFK474zbNAHX6yqSWQUasb+1jvg/VPwZjCp19+tAr6oOB0pwmLQ==
+"@emotion/styled-base@^10.0.27":
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.27.tgz#d9efa307ae4e938fcc4d0596b40b7e8bc10f7c7c"
+ integrity sha512-ufHM/HhE3nr309hJG9jxuFt71r6aHn7p+bwXduFxcwPFEfBIqvmZUMtZ9YxIsY61PVwK3bp4G1XhaCzy9smVvw==
dependencies:
"@babel/runtime" "^7.5.5"
- "@emotion/is-prop-valid" "0.8.5"
- "@emotion/serialize" "^0.11.14"
- "@emotion/utils" "0.11.2"
+ "@emotion/is-prop-valid" "0.8.6"
+ "@emotion/serialize" "^0.11.15"
+ "@emotion/utils" "0.11.3"
"@emotion/styled@^10.0.14":
- version "10.0.23"
- resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.23.tgz#2f8279bd59b99d82deade76d1046249ddfab7c1b"
- integrity sha512-gNr04eqBQ2iYUx8wFLZDfm3N8/QUOODu/ReDXa693uyQGy2OqA+IhPJk+kA7id8aOfwAsMuvZ0pJImEXXKtaVQ==
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.27.tgz#12cb67e91f7ad7431e1875b1d83a94b814133eaf"
+ integrity sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==
dependencies:
- "@emotion/styled-base" "^10.0.23"
- babel-plugin-emotion "^10.0.23"
+ "@emotion/styled-base" "^10.0.27"
+ babel-plugin-emotion "^10.0.27"
-"@emotion/stylis@0.8.4":
- version "0.8.4"
- resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.4.tgz#6c51afdf1dd0d73666ba09d2eb6c25c220d6fe4c"
- integrity sha512-TLmkCVm8f8gH0oLv+HWKiu7e8xmBIaokhxcEKPh1m8pXiV/akCiq50FvYgOwY42rjejck8nsdQxZlXZ7pmyBUQ==
+"@emotion/stylis@0.8.5":
+ version "0.8.5"
+ resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
+ integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
-"@emotion/unitless@0.7.4", "@emotion/unitless@^0.7.0":
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.4.tgz#a87b4b04e5ae14a88d48ebef15015f6b7d1f5677"
- integrity sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==
+"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.0":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+ integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
-"@emotion/utils@0.11.2":
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.2.tgz#713056bfdffb396b0a14f1c8f18e7b4d0d200183"
- integrity sha512-UHX2XklLl3sIaP6oiMmlVzT0J+2ATTVpf0dHQVyPJHTkOITvXfaSqnRk6mdDhV9pR8T/tHc3cex78IKXssmzrA==
+"@emotion/utils@0.11.3":
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
+ integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==
-"@emotion/weak-memoize@0.2.4":
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz#622a72bebd1e3f48d921563b4b60a762295a81fc"
- integrity sha512-6PYY5DVdAY1ifaQW6XYTnOMihmBVT27elqSjEoodchsGjzYlEsTQMcEhSud99kVawatyTZRTiVkJ/c6lwbQ7nA==
+"@emotion/weak-memoize@0.2.5":
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
+ integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
"@hapi/address@2.x.x":
version "2.1.4"
@@ -1384,47 +1350,47 @@
"@types/yargs" "^13.0.0"
"@mdx-js/loader@^1.1.0":
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.5.1.tgz#d66a00b757345540c1530f750459de39b0fb7b96"
- integrity sha512-g7BGfMdJY5ZnDjUEdGz4cfMs9Je0hGZAItGZ1rCBHtJt6SCKMy5N8qml6FJYo3pxNxWkbOCQbX85F6qsetwlAA==
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.5.3.tgz#0bfec6528a17b618763d2d86a5e0c9d351ac19be"
+ integrity sha512-m3bT9b9xY8wU1sQwHhSuFiIwFm0LP7onDpm2rb3xikHzXNY7yfL1/lV9XF4iecSmd86/4I1L6RKE61Dq1jLqjA==
dependencies:
- "@mdx-js/mdx" "^1.5.1"
- "@mdx-js/react" "^1.5.1"
+ "@mdx-js/mdx" "^1.5.3"
+ "@mdx-js/react" "^1.5.3"
loader-utils "1.2.3"
-"@mdx-js/mdx@^1.1.0", "@mdx-js/mdx@^1.5.1":
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.5.1.tgz#470ce07e01cef4f7b1d5051640e5235d5e75aebb"
- integrity sha512-VNc2U8G6RlAYGmZfFj9dRTXcyWIo7rfxuAJtjupTqdddMx5HeLOmsWBLkZt5K76Nmn/bOg6d7zwR1+5FuvjAtg==
+"@mdx-js/mdx@^1.1.0", "@mdx-js/mdx@^1.5.3":
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.5.3.tgz#d0092d4e177331d4eaa65d60fa1f37e42fb251ea"
+ integrity sha512-XxnOvyCQKri52tgaCXbV5NWnZGqgRsRifa/yJrxwWa6QG3vdFiEi/xokBHBf/62RCKRK4+QmbM4dSl0fgWIRNA==
dependencies:
- "@babel/core" "7.6.2"
- "@babel/plugin-syntax-jsx" "7.2.0"
- "@babel/plugin-syntax-object-rest-spread" "7.2.0"
- "@mdx-js/util" "^1.5.1"
- babel-plugin-apply-mdx-type-prop "^1.5.1"
- babel-plugin-extract-import-names "^1.5.1"
+ "@babel/core" "7.7.4"
+ "@babel/plugin-syntax-jsx" "7.7.4"
+ "@babel/plugin-syntax-object-rest-spread" "7.7.4"
+ "@mdx-js/util" "^1.5.3"
+ babel-plugin-apply-mdx-type-prop "^1.5.3"
+ babel-plugin-extract-import-names "^1.5.3"
camelcase-css "2.0.1"
detab "2.0.2"
hast-util-raw "5.0.1"
lodash.uniq "4.5.0"
mdast-util-to-hast "6.0.2"
- remark-mdx "^1.5.1"
- remark-parse "7.0.1"
+ remark-mdx "^1.5.3"
+ remark-parse "7.0.2"
remark-squeeze-paragraphs "3.0.4"
- style-to-object "0.2.3"
- unified "8.3.2"
+ style-to-object "0.3.0"
+ unified "8.4.2"
unist-builder "1.0.4"
- unist-util-visit "2.0.0"
+ unist-util-visit "2.0.1"
-"@mdx-js/react@^1.0.27", "@mdx-js/react@^1.5.1":
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.5.1.tgz#e0a9dbdc03826198abd82b29dcee91d661faf8a5"
- integrity sha512-eF05YysHqtyXerLId0kPKtxmJ3PE60GJJvx1gOguEQndbs94fUeYTVSfBlnXPPAAzvOmVKrZmktIYsBQlVjpOw==
+"@mdx-js/react@^1.0.27", "@mdx-js/react@^1.5.3":
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.5.3.tgz#e58c458c72b4618f9c8e16d76136e62a6d517515"
+ integrity sha512-5bVLUsZybjmeYL8l4Uh/ysE8vMn0Vb0GKzki/LicaDHJvXr/N4Tjj0gT4tk1OzhcC5nGQAQGIyQMW5pvIjp9XQ==
-"@mdx-js/util@^1.5.1":
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.5.1.tgz#f5f29bde5b09f8da3f4a4b43fa0a34bcf8ffc7cb"
- integrity sha512-8F8E5FPWKP/cHjjI+O6Sh4KLUktk0KKS1xrxqVoBQd14/PBDH+kUgSJVE99p9jSRGh+OjCBmqx0tXN+m32w1tA==
+"@mdx-js/util@^1.5.3":
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.5.3.tgz#49f939313a8561814ef72c231257865aa127ca55"
+ integrity sha512-OXeOtHO+eN50QlIkm4Vj4vqNGtowv4FH9L21WvcbEM0eeZrb7aANiFTN70lBQEXcucxCMRkd/6IA9LxhotZEQw==
"@mrmlnc/readdir-enhanced@^2.2.1":
version "2.2.1"
@@ -1840,7 +1806,7 @@
webpack-dev-middleware "^3.7.0"
webpack-hot-middleware "^2.25.0"
-"@storybook/node-logger@5.2.8", "@storybook/node-logger@^5.2.7":
+"@storybook/node-logger@5.2.8", "@storybook/node-logger@^5.2.8":
version "5.2.8"
resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-5.2.8.tgz#4a3df21d731014d54b9ca53d5b9a72dd350bb075"
integrity sha512-3TK5mx6VWbfJO+WUrqwPhTbTQ4qESTnwJY/02xPzOhvuC6tIG1QOxzi+Rq6rFlwxTpUuWh6iyDYnGIqFFQywkA==
@@ -1852,13 +1818,14 @@
regenerator-runtime "^0.12.1"
"@storybook/preset-create-react-app@^1.3.1":
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/@storybook/preset-create-react-app/-/preset-create-react-app-1.3.2.tgz#b6ca0b36c15336565d8c6ce4477d3ae1f18a42a5"
- integrity sha512-XLL8YWivDVNpv0cGrztEim6/2hVHqpHOc8f7ejbHLzZKttjDTMD+XFH/cOXImWka8V0A3qqT8WbPjExOsoz2CA==
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@storybook/preset-create-react-app/-/preset-create-react-app-1.5.0.tgz#214c023790545a36bb6b551d317a8dacbb7bc1a1"
+ integrity sha512-HkVmduGBPiCdtpq+rNZDzjJXEt7+KxszePDkCvnXfQMKKe+OusvmiuHwNB1A7apB7fGXPysbAgST/1G96sn61Q==
dependencies:
- "@storybook/node-logger" "^5.2.7"
+ "@storybook/node-logger" "^5.2.8"
"@types/webpack" "^4.41.0"
react-docgen-typescript-loader "^3.6.0"
+ semver "7.0.0"
"@storybook/react@^5.2.6":
version "5.2.8"
@@ -2173,9 +2140,9 @@
hoist-non-react-statics "^3.3.0"
"@types/invariant@^2.2.30":
- version "2.2.30"
- resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.30.tgz#20efa342807606ada5483731a8137cb1561e5fe9"
- integrity sha512-98fB+yo7imSD2F7PF7GIpELNgtLNgo5wjivu0W5V4jx+KVVJxo6p/qN4zdzSTBWy4/sN3pPyXwnhRSD28QX+ag==
+ version "2.2.31"
+ resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.31.tgz#4444c03004f215289dbca3856538434317dd28b2"
+ integrity sha512-jMlgg9pIURvy9jgBHCjQp/CyBjYHUwj91etVcDdXkFl2CwTFiQlB+8tcsMeXpXf2PFE5X2pjk4Gm43hQSMHAdA==
"@types/is-function@^1.0.0":
version "1.0.0"
@@ -2203,9 +2170,9 @@
"@types/istanbul-lib-report" "*"
"@types/jest@^24.0.22":
- version "24.0.23"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.23.tgz#046f8e2ade026fe831623e361a36b6fb9a4463e4"
- integrity sha512-L7MBvwfNpe7yVPTXLn32df/EK+AMBFAFvZrRuArGs7npEWnlziUXK+5GMIUTI4NIuwok3XibsjXCs5HxviYXjg==
+ version "24.0.24"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.24.tgz#0f2f523dc77cc1bc6bef34eaf287ede887a73f05"
+ integrity sha512-vgaG968EDPSJPMunEDdZvZgvxYSmeH8wKqBlHSkBt1pV2XlLEVDzsj1ZhLuI4iG4Pv841tES61txSBF0obh4CQ==
dependencies:
jest-diff "^24.3.0"
@@ -2239,14 +2206,14 @@
"@types/node" "*"
"@types/node@*":
- version "12.12.17"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.17.tgz#191b71e7f4c325ee0fb23bc4a996477d92b8c39b"
- integrity sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA==
+ version "12.12.21"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.21.tgz#aa44a6363291c7037111c47e4661ad210aded23f"
+ integrity sha512-8sRGhbpU+ck1n0PGAUgVrWrWdjSW2aqNeyC15W88GRsMpSwzv6RJGlLhE7s2RhVSOdyDmxbqlWSeThq4/7xqlA==
"@types/node@^10.12.18":
- version "10.17.9"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.9.tgz#4f251a1ed77ac7ef09d456247d67fc8173f6b9da"
- integrity sha512-+6VygF9LbG7Gaqeog2G7u1+RUcmo0q1rI+2ZxdIg2fAUngk5Vz9fOCHXdloNUOHEPd1EuuOpL5O0CdgN9Fx5UQ==
+ version "10.17.11"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.11.tgz#46ba035fb917b31c948280dbea22ab8838f386a4"
+ integrity sha512-dNd2pp8qTzzNLAs3O8nH3iU9DG9866KHq9L3ISPB7DOGERZN81nW/5/g/KzMJpCU8jrbCiMRBzV9/sCEdRosig==
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
@@ -2370,9 +2337,9 @@
"@types/react" "*"
"@types/react@*", "@types/react@^16.8.2", "@types/react@^16.9.2":
- version "16.9.16"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.16.tgz#4f12515707148b1f53a8eaa4341dae5dfefb066d"
- integrity sha512-dQ3wlehuBbYlfvRXfF5G+5TbZF3xqgkikK7DWAsQXe2KnzV+kjD4W2ea+ThCrKASZn9h98bjjPzoTYzfRqyBkw==
+ version "16.9.17"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.17.tgz#58f0cc0e9ec2425d1441dd7b623421a867aa253e"
+ integrity sha512-UP27In4fp4sWF5JgyV6pwVPAQM83Fj76JOcg02X5BZcpSu5Wx+fP9RMqc2v0ssBoQIFvD5JdKY41gjJJKmw6Bg==
dependencies:
"@types/prop-types" "*"
csstype "^2.2.0"
@@ -2451,7 +2418,7 @@
"@types/source-list-map" "*"
source-map "^0.6.1"
-"@types/webpack@^4.4.19", "@types/webpack@^4.41.0":
+"@types/webpack@^4.41.0":
version "4.41.0"
resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.0.tgz#b813a044d8b0dec7dfcd7622fdbe327bde06eb9a"
integrity sha512-tWkdf9nO0zFgAY/EumUKwrDUhraHKDqCPhwfFR/R8l0qnPdgb9le0Gzhvb7uzVpouuDGBgiE//ZdY+5jcZy2TA==
@@ -2476,39 +2443,39 @@
"@types/yargs-parser" "*"
"@typescript-eslint/eslint-plugin@^2.0.0", "@typescript-eslint/eslint-plugin@^2.8.0":
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.11.0.tgz#4477c33491ccf0a9a3f4a30ef84978fa0ea0cad2"
- integrity sha512-G2HHA1vpMN0EEbUuWubiCCfd0R3a30BB+UdvnFkxwZIxYEGOrWEXDv8tBFO9f44CWc47Xv9lLM3VSn4ORLI2bA==
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.12.0.tgz#0da7cbca7b24f4c6919e9eb31c704bfb126f90ad"
+ integrity sha512-1t4r9rpLuEwl3hgt90jY18wJHSyb0E3orVL3DaqwmpiSDHmHiSspVsvsFF78BJ/3NNG3qmeso836jpuBWYziAA==
dependencies:
- "@typescript-eslint/experimental-utils" "2.11.0"
+ "@typescript-eslint/experimental-utils" "2.12.0"
eslint-utils "^1.4.3"
functional-red-black-tree "^1.0.1"
regexpp "^3.0.0"
tsutils "^3.17.1"
-"@typescript-eslint/experimental-utils@2.11.0":
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.11.0.tgz#cef18e6b122706c65248a5d8984a9779ed1e52ac"
- integrity sha512-YxcA/y0ZJaCc/fB/MClhcDxHI0nOBB7v2/WxBju2cOTanX7jO9ttQq6Fy4yW9UaY5bPd9xL3cun3lDVqk67sPQ==
+"@typescript-eslint/experimental-utils@2.12.0":
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.12.0.tgz#e0a76ffb6293e058748408a191921e453c31d40d"
+ integrity sha512-jv4gYpw5N5BrWF3ntROvCuLe1IjRenLy5+U57J24NbPGwZFAjhnM45qpq0nDH1y/AZMb3Br25YiNVwyPbz6RkA==
dependencies:
"@types/json-schema" "^7.0.3"
- "@typescript-eslint/typescript-estree" "2.11.0"
+ "@typescript-eslint/typescript-estree" "2.12.0"
eslint-scope "^5.0.0"
"@typescript-eslint/parser@^2.0.0", "@typescript-eslint/parser@^2.8.0":
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.11.0.tgz#cdcc3be73ee31cbef089af5ff97ccaa380ef6e8b"
- integrity sha512-DyGXeqhb3moMioEFZIHIp7oXBBh7dEfPTzGrlyP0Mi9ScCra4SWEGs3kPd18mG7Sy9Wy8z88zmrw5tSGL6r/6A==
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.12.0.tgz#393f1604943a4ca570bb1a45bc8834e9b9158884"
+ integrity sha512-lPdkwpdzxEfjI8TyTzZqPatkrswLSVu4bqUgnB03fHSOwpC7KSerPgJRgIAf11UGNf7HKjJV6oaPZI4AghLU6g==
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
- "@typescript-eslint/experimental-utils" "2.11.0"
- "@typescript-eslint/typescript-estree" "2.11.0"
+ "@typescript-eslint/experimental-utils" "2.12.0"
+ "@typescript-eslint/typescript-estree" "2.12.0"
eslint-visitor-keys "^1.1.0"
-"@typescript-eslint/typescript-estree@2.11.0":
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.11.0.tgz#21ada6504274cd1644855926312c798fc697e9fb"
- integrity sha512-HGY4+d4MagO6cKMcKfIKaTMxcAv7dEVnji2Zi+vi5VV8uWAM631KjAB5GxFcexMYrwKT0EekRiiGK1/Sd7VFGA==
+"@typescript-eslint/typescript-estree@2.12.0":
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.12.0.tgz#bd9e547ccffd17dfab0c3ab0947c80c8e2eb914c"
+ integrity sha512-rGehVfjHEn8Frh9UW02ZZIfJs6SIIxIu/K1bbci8rFfDE/1lQ8krIJy5OXOV3DVnNdDPtoiPOdEANkLMrwXbiQ==
dependencies:
debug "^4.1.1"
eslint-visitor-keys "^1.1.0"
@@ -2526,28 +2493,28 @@
namespace-emitter "^2.0.1"
"@uppy/core@^1.5.1":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@uppy/core/-/core-1.6.0.tgz#de3fec249adbaac499ecf3af5e7a186cb320f2d6"
- integrity sha512-uKiP0HiI6kO1MhBGluJICExB7Pc5zrxNdPBjuJ3h4ZMLmqXqWmlelJ1T2MGZxpfFrBwmBM1jGuatLN+1n6ziyQ==
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@uppy/core/-/core-1.7.0.tgz#11f23758ba443bbe4c08449edd72215aa14bb823"
+ integrity sha512-Ooj9rYQEPa4QNCXkTZEB0dnDTVMZ1ynepf9bDizLveBt0rlM/84CQnqVrecemgapCNo44YiOjnP5a6OU7tuJoQ==
dependencies:
"@uppy/store-default" "^1.2.0"
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
cuid "^2.1.1"
lodash.throttle "^4.1.1"
mime-match "^1.0.2"
namespace-emitter "^2.0.1"
preact "8.2.9"
-"@uppy/dashboard@^1.5.0":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@uppy/dashboard/-/dashboard-1.5.0.tgz#acf38b7cf8ebf0ba59ff81ad5b721fea922b5f2e"
- integrity sha512-6oHwPXk+ubBINV+YlqmjyzHpBUqPKDldjIOIWHhLwJOwz28LzdnCgYNOdaFxdPtg3YwKUzi26hn47Wg6CgzdVA==
+"@uppy/dashboard@^1.5.1":
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/@uppy/dashboard/-/dashboard-1.5.1.tgz#019e73a33e692003cb2470122e8ec55b2be2ced3"
+ integrity sha512-ZrJLM7i66UkUW9247xVftAaU+h5Sm2Razc2eM5sRkYX93Gdews/xdKisNg3m+GB4RdeU09ZR7bnjUPIZy44hRQ==
dependencies:
- "@uppy/informer" "^1.3.2"
- "@uppy/provider-views" "^1.5.0"
- "@uppy/status-bar" "^1.4.0"
- "@uppy/thumbnail-generator" "^1.5.0"
- "@uppy/utils" "^2.1.0"
+ "@uppy/informer" "^1.3.3"
+ "@uppy/provider-views" "^1.5.1"
+ "@uppy/status-bar" "^1.4.1"
+ "@uppy/thumbnail-generator" "^1.5.1"
+ "@uppy/utils" "^2.1.1"
classnames "^2.2.6"
cuid "^2.1.1"
is-shallow-equal "^1.0.1"
@@ -2558,85 +2525,85 @@
preact-css-transition-group "^1.3.0"
resize-observer-polyfill "^1.5.0"
-"@uppy/drag-drop@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@uppy/drag-drop/-/drag-drop-1.4.0.tgz#bdeb50a5b1f95454e9296185955d002b370ad5a0"
- integrity sha512-gmWqZhoDOxdeXZexd3gtsmijhrrP+STi8eq94BsTntQMNij7cdLR98cAZUfVWfZ6J0fdwgH2g9p2K9BpTDCTxQ==
+"@uppy/drag-drop@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@uppy/drag-drop/-/drag-drop-1.4.1.tgz#0bddfb585ac863afecf61d73577a51697b518673"
+ integrity sha512-1kqgFsDLckhd9BUmh1/BYxd69haod9zN+EivXX1qtSS1eVSXSlRP6UW+kbU/rcciEfA+eQ+dAMtsgBDf0g64Vw==
dependencies:
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
"@uppy/file-input@^1.3.1":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@uppy/file-input/-/file-input-1.4.0.tgz#9d7191d8bd1b7a9fdab3fd84622a5c74fbb61611"
- integrity sha512-JbmDnhbIkuzZj/Im3jWTguDUarbbCQHeCXc2Zbhh9AutLQaMxITsdB3KoTRNd0dlkwfLY9b5zOdcqOfa0aJXEg==
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@uppy/file-input/-/file-input-1.4.1.tgz#d4c36df9fd7414cb3e9d5447b17bd97b255dfc8b"
+ integrity sha512-FgoS3Hx7PkXl/p5rjdLuUfodkJnGzHMDdQTrseIW9k7nyww0lkM5YUDlC0nFRDZ4tlGI/5drttG5feEVM30jWQ==
dependencies:
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
"@uppy/google-drive@^1.3.2":
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/@uppy/google-drive/-/google-drive-1.3.3.tgz#d0b2127a14bfd01d7b1153e810220d01a48ab131"
- integrity sha512-7KlhTeOemuJhlTw012BeAfF0/r7yZ8LB7CwrDWMV59T3LjF9ScY7IkBpw2axUhqOPQ35G7YnGRnTHObJV35yeA==
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/@uppy/google-drive/-/google-drive-1.3.4.tgz#4449f958bef2d08dfe4f537dc56d7f7548295618"
+ integrity sha512-PNnAnzIIFFH1HN6m0QMnOGVRSHSStf9Ax1lpgRmrOzKZAc0NaNvoxmLwuXVdYB/Wq6oUWgrK3b5Q8dYGPHD7sA==
dependencies:
"@uppy/companion-client" "^1.4.1"
- "@uppy/provider-views" "^1.5.0"
- "@uppy/utils" "^2.1.0"
+ "@uppy/provider-views" "^1.5.1"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
-"@uppy/informer@^1.3.2":
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/@uppy/informer/-/informer-1.3.2.tgz#5a6326dfeff0f14be2ff436a1d30160308579ee7"
- integrity sha512-4XOdPitL0ZfbVXWFcvUNGkvkkC+5kO0MlZrvNTv7JsnJ8obvzwcsBd/BWBb4zXOAKFFA7NvyWPy5ErCibr4eMg==
+"@uppy/informer@^1.3.3":
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/@uppy/informer/-/informer-1.3.3.tgz#b25094182fdf97a84808c7a0c5e783c6bfd1a091"
+ integrity sha512-LthMkuXdxFo2zAyKZrE28gHY0cwPvlks9lqcvcTCqNV2WIwjLg3TWG9uLlBaSTOrwHxR2/u2M1PpggVBQ2Xh4w==
dependencies:
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
"@uppy/onedrive@^0.1.1":
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/@uppy/onedrive/-/onedrive-0.1.2.tgz#54eaccec279314868a226a73a9ccb6d0c0e3a9dd"
- integrity sha512-tW6E7y3JAnvtcaTkozvXEbMdgECoFIMiGc9ELwdm9/0Yv0rI3h4GKB5c4Jo0YQTUPQwVOeePNmBs6o3hP+WOoA==
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@uppy/onedrive/-/onedrive-0.1.3.tgz#9eb8e775f1c69928778b6af330a48ee95a804847"
+ integrity sha512-CE8IEYZcDH1cqn8vMx9pU6zA9+eFnHevd+VDk2klayCzARHpRdM0ISPM/p0E82go+Q161dqYnSdX8Lgn7+KMUg==
dependencies:
"@uppy/companion-client" "^1.4.1"
- "@uppy/provider-views" "^1.5.0"
- "@uppy/utils" "^2.1.0"
+ "@uppy/provider-views" "^1.5.1"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
-"@uppy/progress-bar@^1.3.2":
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/@uppy/progress-bar/-/progress-bar-1.3.2.tgz#7cf2fcbff76906129bb95710244e725b1dcaa5ad"
- integrity sha512-86Lf9Uzp/wIIV1/VrQoIAbT1rQtBkEauYCpWVRsA2z/NTMr6uzbmVXObGSOVaYO0rskj3eHMsSHe1zNtN4LnZQ==
+"@uppy/progress-bar@^1.3.3":
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/@uppy/progress-bar/-/progress-bar-1.3.3.tgz#d7da18af5dbf88eb464a68f1ba831505fb42baa2"
+ integrity sha512-WcidqCxYTbbMKLkg4ftWJhnVXk96f08vaS/8AUw4zsWW1TA+rEtNdju4MfjM6hpxWUwrSM7qSCeS24sG3CTk8g==
dependencies:
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
-"@uppy/provider-views@^1.5.0":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@uppy/provider-views/-/provider-views-1.5.0.tgz#3ab5a46cf7053daf40e5dac015ea092c20e5f6f2"
- integrity sha512-qjVjfi2XiBTZaflgo7Pv5AHyBTJP2hROgUOpO6oP8XgLbINp3gk6yvBw8ByxNEPVb15FnHFpsNuvIERuBi4AWg==
+"@uppy/provider-views@^1.5.1":
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/@uppy/provider-views/-/provider-views-1.5.1.tgz#027250e157635a32f524070027ac3936f504cdfa"
+ integrity sha512-BOF029qIbQzjYh3spMmVXY5m6ExlH9+6vjDVZy6NPIMS+H2KBcUkyWWdKmAYPKqEbDnlPFBfEr5TwDrUdhzbdg==
dependencies:
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
classnames "^2.2.6"
preact "8.2.9"
"@uppy/react@^1.3.2":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@uppy/react/-/react-1.4.0.tgz#e5a79c8a0f8525842699d54391ca1f4d3b3f72f6"
- integrity sha512-hT3I/DhwDO+YmxMZXA9Q8zFy29Z1v8elTzeqjxk+gGbBN4sk2//P9hbDS+xKaA/05Y5NuutMFVqFkxO8uOcCNg==
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@uppy/react/-/react-1.4.1.tgz#12cba32f885002156ff38a47188d47548bc07bfb"
+ integrity sha512-OLDdAGEOgD/DNZXFzzaOvS/bp4rH5q8GIBT9TI0XOipPEqgeeskxrnH80NuuTOf6JxVs7f4qXGAkXzBiBJ4GzQ==
dependencies:
- "@uppy/dashboard" "^1.5.0"
- "@uppy/drag-drop" "^1.4.0"
- "@uppy/progress-bar" "^1.3.2"
- "@uppy/status-bar" "^1.4.0"
- "@uppy/utils" "^2.1.0"
+ "@uppy/dashboard" "^1.5.1"
+ "@uppy/drag-drop" "^1.4.1"
+ "@uppy/progress-bar" "^1.3.3"
+ "@uppy/status-bar" "^1.4.1"
+ "@uppy/utils" "^2.1.1"
prop-types "^15.6.1"
-"@uppy/status-bar@^1.4.0":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@uppy/status-bar/-/status-bar-1.4.0.tgz#0f8e14be0b177bcb3d83971f55ddec97e82a0b04"
- integrity sha512-NZqvAX21vGm7wZjGCq4vlY67CBGURMB0UUi9QPNJGnS79/3oTxbinRcm3vXzgxYwh38BuE8y4tKrDv/ENLxoUA==
+"@uppy/status-bar@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@uppy/status-bar/-/status-bar-1.4.1.tgz#a3bd3f5a0968c8ffc516afbcf16cbe16161ff855"
+ integrity sha512-3ZoIlzcOGMV0ToQKAoTa6KYr5IpvOmEaN+JPZ/rY1b+dUuC2J0oY0CKSSg9DZRQc+mXpwYffmutIoPV1ZWMo0A==
dependencies:
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
classnames "^2.2.6"
lodash.throttle "^4.1.1"
preact "8.2.9"
@@ -2646,36 +2613,35 @@
resolved "https://registry.yarnpkg.com/@uppy/store-default/-/store-default-1.2.0.tgz#4007b84e6eef24b3f07b0fe5457548386cea77d9"
integrity sha512-mnkxdX4DJMP2nrBklh5MXdn31bAyBSlCcp4+BZanFwv4WiCEpg/ruYzNzaJ1nVyuINJEDj2nx/DWxo+1F6WuWw==
-"@uppy/thumbnail-generator@^1.5.0":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@uppy/thumbnail-generator/-/thumbnail-generator-1.5.0.tgz#5ba83287f6f0c81929f0a3243eb5c91c630c44ae"
- integrity sha512-Fq8St34qh4ubed54xGPROs/C8tZfR1rwc0BajbupJKtcNJ7siVrPwoNra9MOKZ/2Gc9DCCpYGiBNyaMJZoRsNg==
+"@uppy/thumbnail-generator@^1.5.1":
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/@uppy/thumbnail-generator/-/thumbnail-generator-1.5.1.tgz#841f2bc77ca093786ea101c8d8fe2c8f51855d76"
+ integrity sha512-7J7h3WvV4GZYd0j9XlNAFA0uZh+mYq/9h2qOo5XeCS4OkVvJe+UmtVn7xXxi8ch0Bka2EU93m1y/w5bIvBWFAA==
dependencies:
- "@uppy/utils" "^2.1.0"
- exif-js "2.3.0"
+ "@uppy/utils" "^2.1.1"
"@uppy/url@^1.3.2":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@uppy/url/-/url-1.4.0.tgz#0a717abbcb6d17dd5be865af398d17de45989bc9"
- integrity sha512-OTImClRq4ppVqJ1uOXs4HnHFfi5MvggK5pldXCzmylAgU0nSN2NOfzTnJb1SZ5n08DmuXkEckASOIaPDasKJcg==
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@uppy/url/-/url-1.4.1.tgz#042ba95f6393a020f255c314d6eb18bb0e437694"
+ integrity sha512-kcgm5/SsC9TGpr3alEEhcam229AR7CK+brSLtu1JFT2u350TTBZ1yZKEJN8BRbWRaCb20Cy5RL81WR2zwjEGog==
dependencies:
"@uppy/companion-client" "^1.4.1"
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
-"@uppy/utils@^2.1.0":
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/@uppy/utils/-/utils-2.1.0.tgz#2f8c20288906f05310e52c6b681715ec25f2bd68"
- integrity sha512-poNKSxx6g2h17uPi7P+EV0MvIDl15peh7m0RI26c73v47Kln8C1Th94erqMSPEbsmf37/3bz1TjABJUdMhLaDw==
+"@uppy/utils@^2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@uppy/utils/-/utils-2.1.1.tgz#7af185d9b8c6e091db967e4c89dd5922e33b64b7"
+ integrity sha512-Ixz2fno8vZHjeCdSfiJoFnh1eJbF76fbkYyRqQ85fl6whyG5d8iOSc65KJ7CzswuMFm/EGDWj51HsJfSLQkEQw==
dependencies:
lodash.throttle "^4.1.1"
"@uppy/webcam@^1.3.1":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@uppy/webcam/-/webcam-1.4.0.tgz#84b6301fe6add941abd5d6f2dcc4402a80d9e8d8"
- integrity sha512-J60qASJFzEnI+thY7vM/8b7LAvCVWDU9F0P3cvAoF1FOIwnGn4dwxezXJnjjoOmUatZJoTcppW05yKOV0R/QwA==
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@uppy/webcam/-/webcam-1.5.0.tgz#1c2defe9db562ac8b6c048903b0b7ff17fc045a4"
+ integrity sha512-RNWZmevX2AcF3SmpqTvlD5ynLl8w7pP7K7iz5UWLfs8ZtYks/aUneNDkN9opQ4+n+Xh9aencPWkXuZ34PmPEWQ==
dependencies:
- "@uppy/utils" "^2.1.0"
+ "@uppy/utils" "^2.1.1"
preact "8.2.9"
"@webassemblyjs/ast@1.8.5":
@@ -3147,12 +3113,13 @@ array-flatten@^2.1.0:
integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
array-includes@^3.0.3:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.0.tgz#48a929ef4c6bb1fa6dc4a92c9b023a261b0ca404"
- integrity sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
+ integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.17.0-next.0"
+ es-abstract "^1.17.0"
+ is-string "^1.0.5"
array-union@^1.0.1:
version "1.0.2"
@@ -3177,23 +3144,32 @@ array-unique@^0.3.2:
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
array.prototype.flat@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.2.tgz#8f3c71d245ba349b6b64b4078f76f5576f1fd723"
- integrity sha512-VXjh7lAL4KXKF2hY4FnEW9eRW6IhdvFW1sN/JwLbmECbCgACCnBHNyP3lFiYuttr0jxRN9Bsc5+G27dMseSWqQ==
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b"
+ integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.15.0"
- function-bind "^1.1.1"
+ es-abstract "^1.17.0-next.1"
array.prototype.flatmap@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.2.tgz#28d621d351c19a62b84331b01669395ef6cef4c4"
- integrity sha512-ZZtPLE74KNE+0XcPv/vQmcivxN+8FhwOLvt2udHauO0aDEpsXDQrmd5HuJGpgPVyaV8HvkDPWnJ2iaem0oCKtA==
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443"
+ integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.15.0"
+ es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
+array.prototype.map@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec"
+ integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+ es-array-method-boxes-properly "^1.0.0"
+ is-string "^1.0.4"
+
arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -3434,13 +3410,13 @@ babel-plugin-add-react-displayname@^0.0.5:
resolved "https://registry.yarnpkg.com/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5"
integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=
-babel-plugin-apply-mdx-type-prop@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.1.tgz#d6c10f756a428a3724047662503257c74878c721"
- integrity sha512-IFw+JDoWizgor39KsCB+Hqm/77tRSkHMRmKukDA4ul3sygZh33QtoirIpsdWWMPP9XBeOQdxuJUQdVQYrd6iOQ==
+babel-plugin-apply-mdx-type-prop@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.3.tgz#1f460e0fffae70ec999ca17530ddd876d2b677c8"
+ integrity sha512-9G+V0R8Jx56nHdEnWvRmSN//rFXMDiBZynu9JPuu3KVUhZhaJMgx5CTiXcdR2P//c85Q/IuwPbH0vIGrjdSq8A==
dependencies:
"@babel/helper-plugin-utils" "7.0.0"
- "@mdx-js/util" "^1.5.1"
+ "@mdx-js/util" "^1.5.3"
babel-plugin-dynamic-import-node@2.3.0, babel-plugin-dynamic-import-node@^2.3.0:
version "2.3.0"
@@ -3449,15 +3425,15 @@ babel-plugin-dynamic-import-node@2.3.0, babel-plugin-dynamic-import-node@^2.3.0:
dependencies:
object.assign "^4.1.0"
-babel-plugin-emotion@^10.0.14, babel-plugin-emotion@^10.0.22, babel-plugin-emotion@^10.0.23:
- version "10.0.23"
- resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.23.tgz#040d40bf61dcab6d31dd6043d10e180240b8515b"
- integrity sha512-1JiCyXU0t5S2xCbItejCduLGGcKmF3POT0Ujbexog2MI4IlRcIn/kWjkYwCUZlxpON0O5FC635yPl/3slr7cKQ==
+babel-plugin-emotion@^10.0.14, babel-plugin-emotion@^10.0.27:
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.27.tgz#59001cf5de847c1d61f2079cd906a90a00d3184f"
+ integrity sha512-SUNYcT4FqhOqvwv0z1oeYhqgheU8qrceLojuHyX17ngo7WtWqN5I9l3IGHzf21Xraj465CVzF4IvOlAF+3ed0A==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
- "@emotion/hash" "0.7.3"
- "@emotion/memoize" "0.7.3"
- "@emotion/serialize" "^0.11.14"
+ "@emotion/hash" "0.7.4"
+ "@emotion/memoize" "0.7.4"
+ "@emotion/serialize" "^0.11.15"
babel-plugin-macros "^2.0.0"
babel-plugin-syntax-jsx "^6.18.0"
convert-source-map "^1.5.0"
@@ -3465,10 +3441,10 @@ babel-plugin-emotion@^10.0.14, babel-plugin-emotion@^10.0.22, babel-plugin-emoti
find-root "^1.1.0"
source-map "^0.5.7"
-babel-plugin-extract-import-names@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.1.tgz#79fb8550e3e0a9e8654f9461ccade56c9a669a74"
- integrity sha512-08+FQtoth4uUB7jzqEgedg/ZjrFEgwFe3WVPGp7XGP5XAmmAd/SEU/z/ZhSJTeH40IVQLRfh9VJU6hGwUePINA==
+babel-plugin-extract-import-names@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.3.tgz#5c4e099d16bd29fe7d8ca6738a532fb1809d7428"
+ integrity sha512-UPgDHjNb4hr2xYRWO8C8JPX7GO+q3gluKd3pkcmVcd1gn9bdO7/yE5FKnYe1UkCPY7PhEUOpEzHCSuIy3GMpsQ==
dependencies:
"@babel/helper-plugin-utils" "7.0.0"
@@ -3819,6 +3795,13 @@ binary-extensions@^1.0.0:
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+ dependencies:
+ file-uri-to-path "1.0.0"
+
block-stream@*:
version "0.0.9"
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
@@ -4236,9 +4219,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001010, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001015:
- version "1.0.30001015"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz#15a7ddf66aba786a71d99626bc8f2b91c6f0f5f0"
- integrity sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==
+ version "1.0.30001016"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66"
+ integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==
capture-exit@^2.0.0:
version "2.0.0"
@@ -4728,7 +4711,7 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-convert-source-map@1.7.0, convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0:
+convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
@@ -4774,18 +4757,18 @@ copy-to-clipboard@^3.0.8:
dependencies:
toggle-selection "^1.0.6"
-core-js-compat@^3.1.1, core-js-compat@^3.4.7:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.5.0.tgz#5a11a619a9e9dd2dcf1c742b2060bc4a2143e5b6"
- integrity sha512-E7iJB72svRjJTnm9HDvujzNVMCm3ZcDYEedkJ/sDTNsy/0yooCd9Cg7GSzE7b4e0LfIkjijdB1tqg0pGwxWeWg==
+core-js-compat@^3.1.1, core-js-compat@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9"
+ integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==
dependencies:
browserslist "^4.8.2"
- semver "^6.3.0"
+ semver "7.0.0"
core-js-pure@^3.0.0, core-js-pure@^3.0.1:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.5.0.tgz#f63c7f2b245e7d678e73f87ad28505480554d70e"
- integrity sha512-wB0QtKAofWigiISuT1Tej3hKgq932fB//Lf1VoPbiLpTYlHY0nIDhgF+q1na0DAKFHH5wGCirkAknOmDN8ijXA==
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.0.tgz#c86e14d9316659af04dd54266addc9271f6164f8"
+ integrity sha512-+YSSo7UFDFuVvMUr1HVFYArb22pYIKRDISBo6V50kRuS0MsXgsuDWmJYFu6dJsJupr77S486xRnDkr/BWQQonw==
core-js@^1.0.0:
version "1.2.7"
@@ -4798,9 +4781,9 @@ core-js@^2.4.0:
integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==
core-js@^3.0.1, core-js@^3.0.4, core-js@^3.4.1:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.5.0.tgz#66df8e49be4bd775e6f952a9d083b756ad41c1ed"
- integrity sha512-Ifh3kj78gzQ7NAoJXeTu+XwzDld0QRIwjBLRqAMhuLhP3d2Av5wmgE9ycfnvK6NAEjTkQ1sDPeoEZAWO3Hx1Uw==
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.0.tgz#2b854e451de1967d1e29896025cdc13a2518d9ea"
+ integrity sha512-AHPTNKzyB+YwgDWoSOCaid9PUSEF6781vsfiK8qUz62zRR448/XgK2NtCbpiUGizbep8Lrpt0Du19PpGGZvw3Q==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@@ -4989,9 +4972,9 @@ css-loader@3.2.0:
schema-utils "^2.0.0"
css-loader@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.3.0.tgz#65f889807baec3197313965d6cda9899f936734d"
- integrity sha512-x9Y1vvHe5RR+4tzwFdWExPueK00uqFTCw7mZy+9aE/X1SKWOArm5luaOrtJ4d05IpOwJ6S86b/tVcIdhw1Bu4A==
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.0.tgz#9fb263436783117a41d014e45e8eaeba54dd6670"
+ integrity sha512-JornYo4RAXl1Mzt0lOSVPmArzAMV3rGY2VuwtaDc732WTWjdwTaeS19nCGWMcSCf305Q396lhhDAJEWWM0SgPQ==
dependencies:
camelcase "^5.3.1"
cssesc "^3.0.0"
@@ -5183,14 +5166,14 @@ cssstyle@^1.0.0, cssstyle@^1.1.1:
cssom "0.3.x"
csstype@^2.2.0, csstype@^2.5.7, csstype@^2.6.7:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.7.tgz#20b0024c20b6718f4eda3853a1f5a1cce7f5e4a5"
- integrity sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431"
+ integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==
cuid@^2.1.1:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.6.tgz#dc3a20b5a7497d36d32c0bf8a2997524c9c796c4"
- integrity sha512-ZFp7PS6cSYMJNch9fc3tyHdE4T8TDo3Y5qAxb0KSA9mpiYDo7z9ql1CznFuuzxea9STVIDy0tJWm2lYiX2ZU1Q==
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/cuid/-/cuid-2.1.8.tgz#cbb88f954171e0d5747606c0139fb65c5101eac0"
+ integrity sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==
currently-unhandled@^0.4.1:
version "0.4.1"
@@ -5205,9 +5188,9 @@ cyclist@^1.0.1:
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
cypress@^3.7.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-3.7.0.tgz#e2cd71b87b6ce0d4c72c6ea25da1005d75c1f231"
- integrity sha512-o+vfRxqAba8TduelzfZQ4WHmj2yNEjaoO2EuZ8dZ9pJpuW+WGtBGheKIp6zkoQsp8ZgFe8OoHh1i2mY8BDnMAw==
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-3.8.0.tgz#7d4cd08f81f9048ee36760cc9ee3b9014f9e84ab"
+ integrity sha512-gtEbqCgKETRc3pQFMsELRgIBNgiQg7vbOWTrCi7WE7bgOwNCaW9PEX8Jb3UN8z/maIp9WwzoFfeySfelYY7nRA==
dependencies:
"@cypress/listr-verbose-renderer" "0.4.1"
"@cypress/xvfb" "1.2.4"
@@ -5283,7 +5266,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
dependencies:
ms "2.0.0"
-debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
+debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -5331,11 +5314,6 @@ deep-equal@^1.0.1, deep-equal@^1.1.1:
object-keys "^1.1.1"
regexp.prototype.flags "^1.2.0"
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -5450,11 +5428,6 @@ detab@2.0.2, detab@^2.0.0:
dependencies:
repeat-string "^1.5.4"
-detect-libc@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
- integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
detect-newline@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
@@ -5656,9 +5629,9 @@ dot-prop@^4.1.1:
is-obj "^1.0.0"
dotenv-defaults@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-1.0.2.tgz#441cf5f067653fca4bbdce9dd3b803f6f84c585d"
- integrity sha512-iXFvHtXl/hZPiFj++1hBg4lbKwGM+t/GlvELDnRtOFdjXyWP7mubkVr+eZGWG62kdsbulXAef6v/j6kiWc/xGA==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-1.0.3.tgz#434a78209f2cab07f9ec9b86b79ae7e9ca5d818b"
+ integrity sha512-EHeXF8VZA/XhkGJCtRpJCTHC8GkoisPXjdvJMzxgFrlN6lTEW/eksRNsVKnW0BxR1pGZH8IEBO/D0mDkIrC6fA==
dependencies:
dotenv "^6.2.0"
@@ -5768,12 +5741,12 @@ emojis-list@^2.0.0:
integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
emotion-theming@^10.0.14:
- version "10.0.19"
- resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.0.19.tgz#66d13db74fccaefad71ba57c915b306cf2250295"
- integrity sha512-dQRBPLAAQ6eA8JKhkLCIWC8fdjPbiNC1zNTdFF292h9amhZXofcNGUP7axHoHX4XesqQESYwZrXp53OPInMrKw==
+ version "10.0.27"
+ resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.0.27.tgz#1887baaec15199862c89b1b984b79806f2b9ab10"
+ integrity sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==
dependencies:
"@babel/runtime" "^7.5.5"
- "@emotion/weak-memoize" "0.2.4"
+ "@emotion/weak-memoize" "0.2.5"
hoist-non-react-statics "^3.3.0"
encodeurl@~1.0.2:
@@ -5828,38 +5801,40 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.16.0, es-abstract@^1.4.3, es-abstract@^1.5.1:
- version "1.16.3"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.3.tgz#52490d978f96ff9f89ec15b5cf244304a5bca161"
- integrity sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==
+es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1"
+ integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==
dependencies:
es-to-primitive "^1.2.1"
function-bind "^1.1.1"
has "^1.0.3"
has-symbols "^1.0.1"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
- object-inspect "^1.7.0"
- object-keys "^1.1.1"
- string.prototype.trimleft "^2.1.0"
- string.prototype.trimright "^2.1.0"
-
-es-abstract@^1.17.0-next.0:
- version "1.17.0-next.1"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0-next.1.tgz#94acc93e20b05a6e96dacb5ab2f1cb3a81fc2172"
- integrity sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==
- dependencies:
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.1"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
+ 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.0"
- string.prototype.trimright "^2.1.0"
+ string.prototype.trimleft "^2.1.1"
+ string.prototype.trimright "^2.1.1"
+
+es-array-method-boxes-properly@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
+ integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
+
+es-get-iterator@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.0.2.tgz#bc99065aa8c98ce52bc86ab282dedbba4120e0b3"
+ integrity sha512-ZHb4fuNK3HKHEOvDGyHPKf5cSWh/OvAMskeM/+21NMnTuvqFvz8uHatolu+7Kf6b6oK9C+3Uo1T37pSGPWv0MA==
+ dependencies:
+ es-abstract "^1.17.0-next.1"
+ has-symbols "^1.0.1"
+ is-arguments "^1.0.4"
+ is-map "^2.0.0"
+ is-set "^2.0.0"
+ is-string "^1.0.4"
+ isarray "^2.0.5"
es-to-primitive@^1.2.1:
version "1.2.1"
@@ -6024,9 +5999,9 @@ eslint-plugin-jsx-a11y@6.2.3:
jsx-ast-utils "^2.2.1"
eslint-plugin-prettier@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.1.tgz#507b8562410d02a03f0ddc949c616f877852f2ba"
- integrity sha512-A+TZuHZ0KU0cnn56/9mfR7/KjUJ9QNVXUhwvRFSR7PGPe0zQR6PTkmyqg1AtUUEOzTqeRsUwyKFh0oVZKVCrtA==
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba"
+ integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
dependencies:
prettier-linter-helpers "^1.0.0"
@@ -6035,6 +6010,11 @@ eslint-plugin-react-hooks@^1.6.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04"
integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==
+eslint-plugin-react-hooks@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.3.0.tgz#53e073961f1f5ccf8dd19558036c1fac8c29d99a"
+ integrity sha512-gLKCa52G4ee7uXzdLiorca7JIQZPPXRAQDXV83J4bUEeUuc5pIEyZYAZ45Xnxe5IuupxEqHS+hUhSLIimK1EMw==
+
eslint-plugin-react@7.16.0:
version "7.16.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz#9928e4f3e2122ed3ba6a5b56d0303ba3e41d8c09"
@@ -6095,9 +6075,9 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==
eslint@^6.4.0, eslint@^6.6.0:
- version "6.7.2"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.7.2.tgz#c17707ca4ad7b2d8af986a33feba71e18a9fecd1"
- integrity sha512-qMlSWJaCSxDFr8fBPvJM9kJwbazrhNcBU3+DszDW1OlEwKBBRWsJc7NJFelvwQpanHCR14cOLD41x8Eqvo3Nng==
+ version "6.8.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
+ integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
dependencies:
"@babel/code-frame" "^7.0.0"
ajv "^6.10.0"
@@ -6276,11 +6256,6 @@ executable@4.1.1:
dependencies:
pify "^2.2.0"
-exif-js@2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814"
- integrity sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ=
-
exit-hook@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
@@ -6456,9 +6431,9 @@ fast-glob@^3.0.3:
micromatch "^4.0.2"
fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@~2.0.6:
version "2.0.6"
@@ -6591,6 +6566,11 @@ file-system-cache@^1.0.5:
fs-extra "^0.30.0"
ramda "^0.21.0"
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
filesize@3.6.1:
version "3.6.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
@@ -6645,9 +6625,9 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
pkg-dir "^3.0.0"
find-cache-dir@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.1.0.tgz#9935894999debef4cf9f677fdf646d002c4cdecb"
- integrity sha512-zw+EFiNBNPgI2NTrKkDd1xd7q0cs6wr/iWnr/oUkI0yF9K9GqQ+riIt4aiyFaaqpaWbxPrJXHI+QvmNUQbX+0Q==
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874"
+ integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==
dependencies:
commondir "^1.0.1"
make-dir "^3.0.0"
@@ -6880,13 +6860,6 @@ fs-extra@^8.0.1, fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-minipass@^1.2.5:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
- integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
- dependencies:
- minipass "^2.6.0"
-
fs-minipass@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1"
@@ -6915,12 +6888,12 @@ fsevents@2.1.2:
integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
fsevents@^1.2.7:
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
- integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
+ version "1.2.11"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3"
+ integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==
dependencies:
+ bindings "^1.5.0"
nan "^2.12.1"
- node-pre-gyp "^0.12.0"
fstream@^1.0.0, fstream@^1.0.12:
version "1.0.12"
@@ -6932,27 +6905,26 @@ fstream@^1.0.0, fstream@^1.0.12:
mkdirp ">=0.5 0"
rimraf "2"
-function-bind@^1.0.2, function-bind@^1.1.1:
+function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
function.prototype.name@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392"
- integrity sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45"
+ integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==
dependencies:
define-properties "^1.1.3"
- function-bind "^1.1.1"
- functions-have-names "^1.1.1"
- is-callable "^1.1.4"
+ es-abstract "^1.17.0-next.1"
+ functions-have-names "^1.2.0"
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-functions-have-names@^1.1.1:
+functions-have-names@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.0.tgz#83da7583e4ea0c9ac5ff530f73394b033e0bf77d"
integrity sha512-zKXyzksTeaCSw5wIX79iCA40YAa6CJMJgNg9wdkU/ERBrIdPSimPICYiLp65lRbSBqtiHql/HZfS2DyI/AH6tQ==
@@ -7127,13 +7099,11 @@ globals@^12.1.0:
type-fest "^0.8.1"
globalthis@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae"
- integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg==
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9"
+ integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==
dependencies:
- define-properties "^1.1.2"
- function-bind "^1.1.1"
- object-keys "^1.0.12"
+ define-properties "^1.1.3"
globby@8.0.2:
version "8.0.2"
@@ -7174,9 +7144,9 @@ globby@^6.1.0:
pinkie-promise "^2.0.0"
globule@^1.0.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
- integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.0.tgz#41d0e9fb44afd4b80d93a23263714f90b3dec904"
+ integrity sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg==
dependencies:
glob "~7.1.1"
lodash "~4.17.10"
@@ -7304,7 +7274,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.0, has@^1.0.1, has@^1.0.3:
+has@^1.0.0, has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@@ -7634,7 +7604,7 @@ husky@^3.0.5:
run-node "^1.0.0"
slash "^3.0.0"
-iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
+iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -7665,13 +7635,6 @@ iferr@^0.1.5:
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
-ignore-walk@^3.0.1:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
- integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==
- dependencies:
- minimatch "^3.0.4"
-
ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -7687,6 +7650,11 @@ ignore@^5.1.1:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
+immediate@~3.0.5:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
+ integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=
+
immer@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d"
@@ -7795,7 +7763,7 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
+ini@^1.3.4, ini@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -7844,9 +7812,9 @@ inquirer@^6.2.0:
through "^2.3.6"
inquirer@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz#9e2b032dde77da1db5db804758b8fea3a970519a"
- integrity sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.1.tgz#13f7980eedc73c689feff3994b109c4e799c6ebb"
+ integrity sha512-V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw==
dependencies:
ansi-escapes "^4.2.1"
chalk "^2.4.2"
@@ -7857,7 +7825,7 @@ inquirer@^7.0.0:
lodash "^4.17.15"
mute-stream "0.0.8"
run-async "^2.2.0"
- rxjs "^6.4.0"
+ rxjs "^6.5.3"
string-width "^4.1.0"
strip-ansi "^5.1.0"
through "^2.3.6"
@@ -7981,10 +7949,10 @@ is-buffer@^2.0.0, is-buffer@^2.0.2:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
-is-callable@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
- integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
+is-callable@^1.1.4, is-callable@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
+ integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==
is-ci@1.2.1:
version "1.2.1"
@@ -8027,9 +7995,9 @@ is-data-descriptor@^1.0.0:
kind-of "^6.0.0"
is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
- integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
is-decimal@^1.0.0:
version "1.0.3"
@@ -8142,6 +8110,11 @@ is-installed-globally@0.1.0:
global-dirs "^0.1.0"
is-path-inside "^1.0.0"
+is-map@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1"
+ integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==
+
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -8226,12 +8199,12 @@ is-promise@^2.1.0:
resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
+is-regex@^1.0.4, is-regex@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
+ integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
dependencies:
- has "^1.0.1"
+ has "^1.0.3"
is-regexp@^1.0.0:
version "1.0.0"
@@ -8248,6 +8221,11 @@ is-root@2.1.0:
resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c"
integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==
+is-set@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43"
+ integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==
+
is-shallow-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-shallow-equal/-/is-shallow-equal-1.0.1.tgz#c410b51eb1c12ee50cd02891d32d1691a132d73c"
@@ -8263,6 +8241,11 @@ is-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+is-string@^1.0.4, is-string@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
+ integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
+
is-svg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
@@ -8288,9 +8271,9 @@ is-utf8@^0.2.0:
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
is-what@^3.3.1:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.4.0.tgz#a9b3fe0c22f52d49efef977f640da44e65a3f866"
- integrity sha512-oFdBRuSY9PocqPoUUseDXek4I+A1kWGigZGhuG+7GEkp0tRkek11adc0HbTEVsNvtojV7rp0uhf5LWtGvHzoOQ==
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.5.0.tgz#c50b0e8f3021e0b39410c159bea43a5510d99027"
+ integrity sha512-00pwt/Jf7IaRh5m2Dp93Iw8LG2cd3OpDj3NrD1XPNUpAWVxPvBP296p4IiGmIU4Ur0f3f56IoIM+fS2pFYF+tQ==
is-whitespace-character@^1.0.0:
version "1.0.3"
@@ -8327,6 +8310,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
@@ -8407,6 +8395,13 @@ istanbul-reports@^2.2.6:
dependencies:
handlebars "^4.1.2"
+iterate-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.1.tgz#d2003239b4a06c91a3f8092e379f6062b03c268c"
+ integrity sha512-xc6jTbwPOWEdD26y41BpJBqh/w3kuEcsQxTypXD+xYQA2+OZIfemmkm725cnRbm1cHj4SMLUO1+7oIA97e88gg==
+ dependencies:
+ es-get-iterator "^1.0.1"
+
jest-changed-files@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
@@ -9102,6 +9097,13 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lie@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e"
+ integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=
+ dependencies:
+ immediate "~3.0.5"
+
lines-and-columns@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
@@ -9270,6 +9272,13 @@ loader-utils@1.2.3, loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.
emojis-list "^2.0.0"
json5 "^1.0.1"
+localforage@^1.7.3:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/localforage/-/localforage-1.7.3.tgz#0082b3ca9734679e1bd534995bdd3b24cf10f204"
+ integrity sha512-1TulyYfc4udS7ECSBT2vwJksWbkwwTX8BzeUIiq8Y07Riy7bDAAnxDaPU/tWyOVmQAcWJIEIFP9lPfBGqVoPgQ==
+ dependencies:
+ lie "3.1.1"
+
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
@@ -9853,14 +9862,6 @@ minipass-pipeline@^1.2.2:
dependencies:
minipass "^3.0.0"
-minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
- integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
minipass@^3.0.0, minipass@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
@@ -9868,13 +9869,6 @@ minipass@^3.0.0, minipass@^3.1.1:
dependencies:
yallist "^4.0.0"
-minizlib@^1.2.1:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
- integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
- dependencies:
- minipass "^2.9.0"
-
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@@ -9914,7 +9908,7 @@ mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
dependencies:
minimist "0.0.8"
-moment-timezone@^0.5.26, moment-timezone@^0.5.27:
+moment-timezone@^0.5.27:
version "0.5.27"
resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877"
integrity sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==
@@ -9926,17 +9920,17 @@ moment@2.24.0, "moment@>= 2.9.0", moment@>=2.14.0, moment@^2.24.0:
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
-monaco-editor-webpack-plugin@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.7.0.tgz#920cbeecca25f15d70d568a7e11b0ba4daf1ae83"
- integrity sha512-oItymcnlL14Sjd7EF7q+CMhucfwR/2BxsqrXIBrWL6LQplFfAfV+grLEQRmVHeGSBZ/Gk9ptzfueXnWcoEcFuA==
+monaco-editor-webpack-plugin@^1.1.0:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.8.1.tgz#5701bfce16c14c51503a607726d97fd92784af26"
+ integrity sha512-kf97Oyyz7E9BTujAvf7eary40aEB2rrHpaiSdD9p6SOwItk64mU9mGx6+S8Ku9B4RikL9aj/sK/7DinlBYj3AQ==
dependencies:
- "@types/webpack" "^4.4.19"
+ loader-utils "^1.2.3"
-monaco-editor@^0.15.1:
- version "0.15.6"
- resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.15.6.tgz#d63b3b06f86f803464f003b252627c3eb4a09483"
- integrity sha512-JoU9V9k6KqT9R9Tiw1RTU8ohZ+Xnf9DMg6Ktqqw5hILumwmq7xqa/KLXw513uTUsWbhtnHoSJYYR++u3pkyxJg==
+monaco-editor@^0.19.0:
+ version "0.19.0"
+ resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.19.0.tgz#c6e774210f3b292ff739e96f45a1cc78bf5ac2e7"
+ integrity sha512-ida++HI/s9V8ma8yYS9CAS0UJEFwW1gbt9G6oviEdv/aHhFd/kV3sXrINqC63TVdKzOZdKjPRRCOPJJ80zvLbw==
move-concurrently@^1.0.1:
version "1.0.1"
@@ -9999,9 +9993,9 @@ nan@^2.12.1, nan@^2.13.2:
integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
nanoid@^2.0.4:
- version "2.1.7"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.7.tgz#d775e3e7c6470bbaaae3da9a647a80e228e0abf7"
- integrity sha512-fmS3qwDldm4bE01HCIRqNk+f255CNjnAoeV3Zzzv0KemObHKqYgirVaZA9DtKcjogicWjYcHkJs4D5A8CjnuVQ==
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.8.tgz#2dbb0224231b246e3b4c819de7bfea6384dabf08"
+ integrity sha512-g1z+n5s26w0TGKh7gjn7HCqurNKMZWzH08elXzh/gM/csQHd/UqDV6uxMghQYg9IvqRPm1QpeMk50YMofHvEjQ==
nanomatch@^1.2.9:
version "1.2.13"
@@ -10025,15 +10019,6 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-needle@^2.2.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
- integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
-
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
@@ -10159,26 +10144,10 @@ node-notifier@^5.4.2:
shellwords "^0.1.1"
which "^1.3.0"
-node-pre-gyp@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
- integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
- dependencies:
- 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"
-
node-releases@^1.1.29, node-releases@^1.1.40, node-releases@^1.1.42:
- version "1.1.42"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.42.tgz#a999f6a62f8746981f6da90627a8d2fc090bbad7"
- integrity sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==
+ version "1.1.43"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.43.tgz#2c6ca237f88ce11d49631f11190bb01f8d0549f2"
+ integrity sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==
dependencies:
semver "^6.3.0"
@@ -10212,14 +10181,6 @@ node-sass@^4.11.0:
dependencies:
abbrev "1"
-nopt@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
- integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
- dependencies:
- abbrev "1"
- osenv "^0.1.4"
-
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@@ -10272,26 +10233,6 @@ normalizr@^3.3.0:
resolved "https://registry.yarnpkg.com/normalizr/-/normalizr-3.4.1.tgz#cf4f8ac7a4a0dd7fe504b77cbe9dd533cb3e45b5"
integrity sha512-gei+tJucERU8vYN6TFQL2k5YMLX2Yh7nlylKMJC65+Uu/LS3xQCDJc8cies72aHouycKYyVgcnyLRbaJsigXKw==
-npm-bundled@^1.0.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
- integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==
- dependencies:
- npm-normalize-package-bin "^1.0.1"
-
-npm-normalize-package-bin@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
- integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
-
-npm-packlist@^1.1.6:
- version "1.4.7"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848"
- integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==
- dependencies:
- ignore-walk "^3.0.1"
- npm-bundled "^1.0.1"
-
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -10306,7 +10247,7 @@ npm-run-path@^3.0.0:
dependencies:
path-key "^3.0.0"
-"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2, npmlog@^4.1.2:
+"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -10368,9 +10309,9 @@ object-inspect@^1.7.0:
integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
object-is@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
- integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4"
+ integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
@@ -10400,32 +10341,32 @@ object.assign@^4.1.0:
object-keys "^1.0.11"
object.entries@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
- integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b"
+ integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==
dependencies:
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.fromentries@^2.0.0, "object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.1.tgz#050f077855c7af8ae6649f45c80b16ee2d31e704"
- integrity sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
+ integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.15.0"
+ es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
has "^1.0.3"
object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
- integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
+ integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.1"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
object.pick@^1.3.0:
version "1.3.0"
@@ -10435,12 +10376,12 @@ object.pick@^1.3.0:
isobject "^3.0.1"
object.values@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
- integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
+ integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
dependencies:
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"
@@ -10589,7 +10530,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-osenv@0, osenv@^0.1.4:
+osenv@0:
version "0.1.5"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
@@ -11701,9 +11642,9 @@ postcss@7.0.21:
supports-color "^6.1.0"
postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6:
- version "7.0.24"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.24.tgz#972c3c5be431b32e40caefe6c81b5a19117704c2"
- integrity sha512-Xl0XvdNWg+CblAXzNvbSOUvgJXwSjmbAKORqyw9V2AlHrm1js2gFw9y3jibBAhpKZi8b5JzJCVh/FyzPsTtgTA==
+ version "7.0.25"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.25.tgz#dd2a2a753d50b13bed7a2009b4a18ac14d9db21e"
+ integrity sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg==
dependencies:
chalk "^2.4.2"
source-map "^0.6.1"
@@ -11802,13 +11743,15 @@ promise-inflight@^1.0.1:
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
promise.allsettled@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.1.tgz#afe4bfcc13b26e2263a97a7fbbb19b8ca6eb619c"
- integrity sha512-3ST7RS7TY3TYLOIe+OACZFvcWVe1osbgz2x07nTb446pa3t4GUZWidMDzQ4zf9jC2l6mRa1/3X81icFYbi+D/g==
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9"
+ integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==
dependencies:
+ array.prototype.map "^1.0.1"
define-properties "^1.1.3"
- es-abstract "^1.13.0"
+ es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
+ iterate-value "^1.0.0"
promise.prototype.finally@^3.1.0:
version "3.1.2"
@@ -12030,16 +11973,6 @@ raw-loader@^2.0.0:
loader-utils "^1.1.0"
schema-utils "^1.0.0"
-rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
re-reselect@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/re-reselect/-/re-reselect-3.4.0.tgz#0f2303f3c84394f57f0cd31fea08a1ca4840a7cd"
@@ -12290,7 +12223,7 @@ react-input-autosize@^2.2.2:
dependencies:
prop-types "^15.5.8"
-react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.2, react-is@^16.8.4, react-is@^16.8.6:
+react-is@^16.12.0, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0:
version "16.12.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
@@ -12341,17 +12274,17 @@ react-popper@^1.3.6, react-popper@^1.3.7:
typed-styles "^0.0.7"
warning "^4.0.2"
-react-redux@^6.0.0:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.1.tgz#0d423e2c1cb10ada87293d47e7de7c329623ba4d"
- integrity sha512-T52I52Kxhbqy/6TEfBv85rQSDz6+Y28V/pf52vDWs1YRXG19mcFOGfHnY2HsNFHyhP+ST34Aih98fvt6tqwVcQ==
+react-redux@^7.1.3:
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.1.3.tgz#717a3d7bbe3a1b2d535c94885ce04cdc5a33fc79"
+ integrity sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w==
dependencies:
- "@babel/runtime" "^7.3.1"
+ "@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.8.2"
+ react-is "^16.9.0"
react-rnd@^10.1.1:
version "10.1.3"
@@ -12391,7 +12324,7 @@ react-router@5.1.2, react-router@^5.1.2:
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
-react-scripts@^3.1.1:
+react-scripts@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.3.0.tgz#f26a21f208f20bd04770f43e50b5bbc151920c2a"
integrity sha512-hzPc6bxCc9GnsspWqk494c2Gpd0dRbk/C8q76BNQIENi9GMwoxFljOEcZoZcpFpJgQ45alxFR6QaLt+51qie7g==
@@ -12473,9 +12406,9 @@ react-side-effect@^1.1.0:
shallowequal "^1.0.1"
react-simple-tree-menu@^1.1.9:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/react-simple-tree-menu/-/react-simple-tree-menu-1.1.9.tgz#0a3364e34cdbd40469b93a327e2b4371b8dbc76d"
- integrity sha512-CFUHDiIYBOanuRDyUHZxIH/lBXecAo/uTQM8ZsSn31uDFn98tD6vPztTYZZIFe2wpW+50ydO680lm5oUfFJU1A==
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/react-simple-tree-menu/-/react-simple-tree-menu-1.1.12.tgz#ea6f0f95071f5065bc8894b02a19e2745f589844"
+ integrity sha512-uvT/kLdzW4xWsQMic3CJ8YI6Ir3N/rUAF/2hR5evgGTd8HkdPdQqQAKI/AnVlY9u/dx9uPA7FTNDFbUYUuSWBg==
dependencies:
classnames "^2.2.6"
fast-memoize "^2.5.1"
@@ -12504,9 +12437,9 @@ react-syntax-highlighter@^8.0.1:
refractor "^2.4.1"
react-tabs@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/react-tabs/-/react-tabs-3.0.0.tgz#60311a17c755eb6aa9b3310123e67db421605127"
- integrity sha512-z90cDIb+5V7MzjXFHq1VLxYiMH7dDQWan7mXSw6BWQtw+9pYAnq/fEDvsPaXNyevYitvLetdW87C61uu27JVMA==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/react-tabs/-/react-tabs-3.1.0.tgz#ecc50f034c1d6da2606fab9293055bbc861b382e"
+ integrity sha512-9RKc77HCPsjQDVPyZEw37g3JPtg26oSQ9o4mtaVXjJuLedDX5+TQcE+MRNKR+4aO3GMAY4YslCePGG1//MQ3Jg==
dependencies:
classnames "^2.2.0"
prop-types "^15.5.0"
@@ -12562,7 +12495,7 @@ react-window@^1.8.2:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
-react@^16.7.0, react@^16.8.3:
+react@^16.12.0, react@^16.8.3:
version "16.12.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83"
integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==
@@ -12759,7 +12692,7 @@ redux-form@^8.2.6:
optionalDependencies:
immutable "3.8.2"
-redux-saga@^1.0.0:
+redux-saga@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.1.3.tgz#9f3e6aebd3c994bbc0f6901a625f9a42b51d1112"
integrity sha512-RkSn/z0mwaSa5/xH/hQLo8gNf4tlvT18qXDNvedihLcfzh+jMchDgaariQoehCpgRltEm4zHKJyINEz6aqswTw==
@@ -12831,11 +12764,12 @@ regex-parser@2.2.10:
integrity sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==
regexp.prototype.flags@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
- integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
+ integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
dependencies:
- define-properties "^1.1.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
regexpp@^2.0.1:
version "2.0.1"
@@ -12865,9 +12799,9 @@ regjsgen@^0.5.0:
integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
regjsparser@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
- integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96"
+ integrity sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==
dependencies:
jsesc "~0.5.0"
@@ -12876,24 +12810,24 @@ relateurl@0.2.x, relateurl@^0.2.7:
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
-remark-mdx@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.5.1.tgz#df176c69b0d22fca890812cb828a100d5c14ae60"
- integrity sha512-emKP/F1VV/k7iKGOfSChTIGocKHXbiDtdn4icefpJUedxLXlNYXe+jiSDSqlBhkv/mmN4poDTTHvFEIV6vpd4w==
+remark-mdx@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.5.3.tgz#adeb26ce7a7b13f3dbed29ac690d7856315e7ac7"
+ integrity sha512-7WqfwdyER3k0gNiikzw9y+AQskAm6PX2qEF97vhuZ9y8/MatVKoWGCPX4VCYAN0qlM1X6ty761rbMWMy5OmgyA==
dependencies:
- "@babel/core" "7.6.2"
+ "@babel/core" "7.7.4"
"@babel/helper-plugin-utils" "7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "7.6.2"
- "@babel/plugin-syntax-jsx" "7.2.0"
- "@mdx-js/util" "^1.5.1"
+ "@babel/plugin-proposal-object-rest-spread" "7.7.4"
+ "@babel/plugin-syntax-jsx" "7.7.4"
+ "@mdx-js/util" "^1.5.3"
is-alphabetical "1.0.3"
- remark-parse "7.0.1"
- unified "8.3.2"
+ remark-parse "7.0.2"
+ unified "8.4.2"
-remark-parse@7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.1.tgz#0c13d67e0d7b82c2ad2d8b6604ec5fae6c333c2b"
- integrity sha512-WOZLa545jYXtSy+txza6ACudKWByQac4S2DmGk+tAGO/3XnVTOxwyCIxB7nTcLlk8Aayhcuf3cV1WV6U6L7/DQ==
+remark-parse@7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.2.tgz#41e7170d9c1d96c3d32cf1109600a9ed50dba7cf"
+ integrity sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==
dependencies:
collapse-white-space "^1.0.2"
is-alphabetical "^1.0.0"
@@ -13096,9 +13030,9 @@ resolve@1.12.2:
path-parse "^1.0.6"
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
- integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff"
+ integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==
dependencies:
path-parse "^1.0.6"
@@ -13164,7 +13098,7 @@ rgba-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
-rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -13229,7 +13163,7 @@ rxjs@^5.0.0-beta.11:
dependencies:
symbol-observable "1.0.1"
-rxjs@^6.3.3, rxjs@^6.4.0:
+rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3:
version "6.5.3"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a"
integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==
@@ -13379,7 +13313,7 @@ semver-compare@^1.0.0:
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -13389,6 +13323,11 @@ semver@6.3.0, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
semver@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -13927,9 +13866,9 @@ stream-http@^2.7.2:
xtend "^4.0.0"
stream-shift@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
- integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
stream-to-observable@^0.1.0:
version "0.1.0"
@@ -13998,46 +13937,43 @@ string-width@^4.1.0, string-width@^4.2.0:
strip-ansi "^6.0.0"
"string.prototype.matchall@^4.0.0 || ^3.0.1":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.0.tgz#47191e37b67dca43131706bc9c4550df31b2c471"
- integrity sha512-/cSuf1qsUaPicdvXcVZJ98fM9FmvkXvw7PKSM5pTtlj4R9VLQc7B51fOZBMsGfv9UXhUhdpxSrEsGe2ObsR2cw==
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.1.tgz#f10fdfa8d1fee12e149fddda14f211b6bb3527da"
+ integrity sha512-vIObm+BWuKKJovfh2/PPCAmePTDdubrgCkhQnbP0oAwD7Jj8IyIM57Hu7Ma7oDdg4oVdh5S1Rd8RviBIPZ8Pfg==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.15.0"
- function-bind "^1.1.1"
- has-symbols "^1.0.0"
+ es-abstract "^1.17.0-next.1"
+ has-symbols "^1.0.1"
regexp.prototype.flags "^1.2.0"
string.prototype.padend@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0"
- integrity sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3"
+ integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.4.3"
- function-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
string.prototype.padstart@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz#5bcfad39f4649bb2d031292e19bcf0b510d4b242"
- integrity sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz#b47c087540d0710be5a49375751a0a627bd4ff90"
+ integrity sha512-envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.4.3"
- function-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
-string.prototype.trimleft@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634"
- integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==
+string.prototype.trimleft@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74"
+ integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==
dependencies:
define-properties "^1.1.3"
function-bind "^1.1.1"
-string.prototype.trimright@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58"
- integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==
+string.prototype.trimright@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9"
+ integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==
dependencies:
define-properties "^1.1.3"
function-bind "^1.1.1"
@@ -14135,11 +14071,6 @@ strip-json-comments@^3.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
style-loader@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz#1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82"
@@ -14156,7 +14087,14 @@ style-loader@^0.23.1:
loader-utils "^1.1.0"
schema-utils "^1.0.0"
-style-to-object@0.2.3, style-to-object@^0.2.1:
+style-to-object@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46"
+ integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==
+ dependencies:
+ inline-style-parser "0.1.1"
+
+style-to-object@^0.2.1:
version "0.2.3"
resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.2.3.tgz#afcf42bc03846b1e311880c55632a26ad2780bcb"
integrity sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==
@@ -14267,12 +14205,12 @@ symbol-tree@^3.2.2:
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
symbol.prototype.description@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.1.tgz#e44e5db04d977932d1a261570bf65312773406d0"
- integrity sha512-smeS1BCkN6lcz1XveFK+cfvfBmNJ6dcPi6lgOnLUU8Po8SmV+rtmYGObbNOisW9RHWMyUfsgMA+eTQg+b3v9Vg==
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.2.tgz#f325e1e6ad534b3b29c9c3ca73c136c9ce03c5e2"
+ integrity sha512-2CW5SU4/Ki1cYOOHcL2cXK4rxSg5hCU1TwZ7X4euKhV9VnfqKslh7T6/UyKkubA8cq2tOmsOv7m3ZUmQslBRuw==
dependencies:
- es-abstract "^1.16.0"
- has-symbols "^1.0.0"
+ es-abstract "^1.17.0-next.1"
+ has-symbols "^1.0.1"
table@^5.2.3:
version "5.4.6"
@@ -14298,19 +14236,6 @@ tar@^2.0.0:
fstream "^1.0.12"
inherits "2"
-tar@^4:
- version "4.4.13"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
- integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
- dependencies:
- chownr "^1.1.1"
- fs-minipass "^1.2.5"
- minipass "^2.8.6"
- minizlib "^1.2.1"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.3"
-
telejson@^3.0.2:
version "3.3.0"
resolved "https://registry.yarnpkg.com/telejson/-/telejson-3.3.0.tgz#6d814f3c0d254d5c4770085aad063e266b56ad03"
@@ -14353,7 +14278,7 @@ terser-webpack-plugin@2.2.1:
terser "^4.3.9"
webpack-sources "^1.4.3"
-terser-webpack-plugin@^1.2.4, terser-webpack-plugin@^1.4.1:
+terser-webpack-plugin@^1.2.4, terser-webpack-plugin@^1.4.1, terser-webpack-plugin@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==
@@ -14369,9 +14294,9 @@ terser-webpack-plugin@^1.2.4, terser-webpack-plugin@^1.4.1:
worker-farm "^1.7.0"
terser@^4.1.2, terser@^4.3.9:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.2.tgz#448fffad0245f4c8a277ce89788b458bfd7706e8"
- integrity sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.3.tgz#401abc52b88869cf904412503b1eb7da093ae2f0"
+ integrity sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==
dependencies:
commander "^2.20.0"
source-map "~0.6.1"
@@ -14708,14 +14633,14 @@ typescript-tuple@^2.2.1:
typescript-compare "^0.0.2"
typescript@^3.6.3:
- version "3.7.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.3.tgz#b36840668a16458a7025b9eabfad11b66ab85c69"
- integrity sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==
+ version "3.7.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.4.tgz#1743a5ec5fef6a1fa9f3e4708e33c81c73876c19"
+ integrity sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==
ua-parser-js@^0.7.18:
- version "0.7.20"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098"
- integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==
+ version "0.7.21"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777"
+ integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==
uglify-js@3.4.x:
version "3.4.10"
@@ -14769,10 +14694,10 @@ unicode-property-aliases-ecmascript@^1.0.4:
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
-unified@8.3.2:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/unified/-/unified-8.3.2.tgz#aed69d0e577d6ef27268431c63a10faef60e63ab"
- integrity sha512-NDtUAXcd4c+mKppCbsZHzmhkKEQuhveZNBrFYmNgMIMk2K9bc8hmG3mLEGVtRmSNodobwyMePAnvIGVWZfPdzQ==
+unified@8.4.2:
+ version "8.4.2"
+ resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1"
+ integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==
dependencies:
bail "^1.0.0"
extend "^3.0.0"
@@ -14877,10 +14802,10 @@ unist-util-visit-parents@^3.0.0:
"@types/unist" "^2.0.0"
unist-util-is "^4.0.0"
-unist-util-visit@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.0.tgz#1fdae5ea88251651bfe49b7e84390d664fc227c5"
- integrity sha512-kiTpWKsF54u/78L/UU/i7lxrnqGiEWBgqCpaIZBYP0gwUC+Akq0Ajm4U8JiNIoQNfAioBdsyarnOcTEAb9mLeQ==
+unist-util-visit@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.1.tgz#b4e1c1cb414250c6b3cb386b8e461d79312108ae"
+ integrity sha512-bEDa5S/O8WRDeI1mLaMoKuFFi89AjF+UAoMNxO+bbVdo06q+53Vhq4iiv1PenL6Rx1ZxIpXIzqZoc5HD2I1oMA==
dependencies:
"@types/unist" "^2.0.0"
unist-util-is "^4.0.0"
@@ -15247,7 +15172,7 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@4.41.2, webpack@^4.33.0, webpack@^4.38.0:
+webpack@4.41.2:
version "4.41.2"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e"
integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==
@@ -15276,6 +15201,35 @@ webpack@4.41.2, webpack@^4.33.0, webpack@^4.38.0:
watchpack "^1.6.0"
webpack-sources "^1.4.1"
+webpack@^4.33.0, webpack@^4.38.0:
+ version "4.41.4"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.4.tgz#4bec4125224bdf50efa8be6226c19047599cd034"
+ integrity sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==
+ dependencies:
+ "@webassemblyjs/ast" "1.8.5"
+ "@webassemblyjs/helper-module-context" "1.8.5"
+ "@webassemblyjs/wasm-edit" "1.8.5"
+ "@webassemblyjs/wasm-parser" "1.8.5"
+ acorn "^6.2.1"
+ ajv "^6.10.2"
+ ajv-keywords "^3.4.1"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^4.1.0"
+ eslint-scope "^4.0.3"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^2.4.0"
+ loader-utils "^1.2.3"
+ memory-fs "^0.4.1"
+ micromatch "^3.1.10"
+ mkdirp "^0.5.1"
+ neo-async "^2.6.1"
+ node-libs-browser "^2.2.1"
+ schema-utils "^1.0.0"
+ tapable "^1.1.3"
+ terser-webpack-plugin "^1.4.3"
+ watchpack "^1.6.0"
+ webpack-sources "^1.4.1"
+
websocket-driver@>=0.5.1:
version "0.7.3"
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
@@ -15634,7 +15588,7 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
+yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==