@@ -19,25 +19,33 @@
## :bulb: What is usetheform about?
-Usetheform is a React library for composing declarative forms and managing their state. It uses the Context API and React Hooks. I does not depend on any library like redux or others.
+Welcome! 👋 Usetheform is a React library for composing declarative forms and managing their state. It does not depend on any external library like Redux, MobX or others, which makes it to be easily adoptedable without other dependencies.
- [Documentation](https://iusehooks.github.io/usetheform/)
-- [Installation](#Installation)
+- [Features](#fire-features)
+- [Quickstart](#zap-quickstart)
+- [Motivation](#motivation)
- [Code Sandboxes Examples](#code-sandboxes)
+- [Contributing](#contributing)
- [License](#license)
-✅ Zero dependencies
+## :fire: Features
-✅ Only peer dependencies: React >= 16.8.0
+- Easy integration with other libraries. 👉🏻 [Play with React Select/Material UI](https://codesandbox.io/s/materialuireactselect-6ufc2) - [React Dropzone/MaterialUI Dropzone](https://codesandbox.io/s/reactdropzone-materialuidropzone-yjb8w).
+- Support Sync and Async validation at [Form](https://iusehooks.github.io/usetheform/docs-form#validation---sync), [Field](https://iusehooks.github.io/usetheform/docs-input#validation---sync) and [Collection](https://iusehooks.github.io/usetheform/docs-collection#validation---sync) level. 👉🏻 [Play with Sync and Async validation](https://iusehooks.github.io/usetheform/docs-input#validation---sync).
+- Support [Yup](https://codesandbox.io/s/schema-validations-uc1m6?file=/src/FormYUP.jsx), [Zod](https://codesandbox.io/s/schema-validations-uc1m6?file=/src/FormZOD.jsx), [Superstruct](https://codesandbox.io/s/schema-validations-uc1m6?file=/src/FormSuperStruct.jsx), [Joi](https://codesandbox.io/s/schema-validations-uc1m6?file=/src/FormJOI.jsx) or custom. 👉🏻 [Play with YUP - ZOD - Superstruct - Joi validations](https://codesandbox.io/s/schema-validations-uc1m6).
+- Follows HTML standard for validation. 👉🏻 [Play with HTML built-in form validation](https://codesandbox.io/s/built-informvalidation-lp672?file=/src/Info.jsx).
+- Support reducers functions at [Form](https://iusehooks.github.io/usetheform/docs-form#reducers), [Field](https://iusehooks.github.io/usetheform/docs-input#reducers) and [Collection](https://iusehooks.github.io/usetheform/docs-collection#reducers) level. 👉🏻 [Play with Reducers](https://iusehooks.github.io/usetheform/docs-form#reducers).
+- Easy to handle arrays, objects or nested collections. 👉🏻 [Play with nested collections](https://iusehooks.github.io/usetheform/docs-collection#nested-collections).
+- Tiny size with zero dependencies. 👉🏻 [Check size](https://bundlephobia.com/result?p=usetheform).
+- Typescript supported.
-## Installation
+## :zap: Quickstart
```sh
npm install --save usetheform
```
-## :zap: Quickstart
-
```jsx
import React from "react";
import Form, { Input, useValidation } from "usetheform";
@@ -64,6 +72,12 @@ export default function App() {
}
```
+## Motivation
+
+**usetheform** has been built having in mind the necessity of developing a lightweight library able to provide an easy API to build complex forms composed by nested levels (arrays, objects, custom inputs, etc.) with a declarative approach and without the need to include external libraries within your react projects.
+
+It's easy to start using it in your existing project and gives you a full controll over Field, Collection at any level of nesting which makes easy to manipulate the form state based on your needs. Synchronous and asynchronous validations are simple and error messages easy to customize and display. If you find it useful please leave a star 🙏🏻.
+
## Author
- Antonio Pangallo [@antonio_pangall](https://twitter.com/antonio_pangall)
@@ -73,10 +87,18 @@ export default function App() {
- Twitter What's Happening Form Bar: [Sandbox](https://codesandbox.io/s/twitter-bar-form-czx3o)
- Shopping Cart: [Sandbox](https://codesandbox.io/s/shopping-cart-97y5k)
- Examples: Slider, Select, Collections etc..: [Sandbox](https://codesandbox.io/s/formexample2-mmcjs)
-- Various Implementation: [Sandbox](https://codesandbox.io/s/035l4l75ln)
+- Validation using Yup, ZOD, JOI, Superstruct: [Sandbox](https://codesandbox.io/s/schema-validations-uc1m6)
- Wizard: [Sandbox](https://codesandbox.io/s/v680xok7k7)
- FormContext: [Sandbox](https://codesandbox.io/s/formcontext-ukvc5)
-- Material UI - React Select: [Sandbox](https://codesandbox.io/s/materialuireactselect-6ufc2)
+- Material UI - React Select: [Sandbox](https://codesandbox.io/s/materialuireactselect-6ufc2)
+- React Dropzone - Material UI Dropzone: [Sandbox](https://codesandbox.io/s/reactdropzone-materialuidropzone-yjb8w)
+- Various Implementation: [Sandbox](https://codesandbox.io/s/035l4l75ln)
+
+## Contributing
+
+🎉 First off, thanks for taking the time to contribute! 🎉
+
+We would like to encourage everyone to help and support this library by contributing. See the [CONTRIBUTING file](https://github.com/iusehooks/usetheform/blob/master/CONTRIBUTING.md).
## License
diff --git a/__tests__/Collection.spec.js b/__tests__/Collection.spec.js
index 4c2f82f..8f1cab8 100644
--- a/__tests__/Collection.spec.js
+++ b/__tests__/Collection.spec.js
@@ -3,7 +3,10 @@ import { fireEvent, waitFor, cleanup, act } from "@testing-library/react";
import { Input, Collection } from "./../src";
-import { CollectionDynamicCart } from "./helpers/components/CollectionDynamicField";
+import {
+ CollectionDynamicCart,
+ CollectionObjectDynamicField
+} from "./helpers/components/CollectionDynamicField";
import CollectionDynamicAdded from "./helpers/components/CollectionDynamicAdded";
import CollectionValidation, {
CollectionValidationTouched
@@ -582,6 +585,27 @@ describe("Component => Collection", () => {
true
);
});
+ it("should add/remove fields dyncamically from a object Collection", () => {
+ const props = { onInit, onChange };
+ const children = [];
+
+ const { getByTestId } = mountForm({ children, props });
+
+ const addInput = getByTestId("addInput");
+ const removeInput = getByTestId("removeInput");
+ expect(onInit).toHaveBeenCalledWith({}, true);
+ act(() => {
+ fireEvent.click(addInput);
+ });
+
+ expect(onChange).toHaveBeenCalledWith({ dynamic: { 1: "1" } }, true);
+
+ act(() => {
+ fireEvent.click(removeInput);
+ });
+
+ expect(onChange).toHaveBeenCalledWith({}, true);
+ });
it("should run reducer functions on Collection fields removal", () => {
const props = { onSubmit, onChange, onReset };
@@ -653,4 +677,36 @@ describe("Component => Collection", () => {
console.error = originalError;
});
+
+ it("should throw an error if the a prop 'name' is used within an array Collection", () => {
+ const originalError = console.error;
+ console.error = jest.fn();
+ let children = [
+
+
+
+ ];
+ expect(() => mountForm({ children })).toThrowError(
+ /it is not allowed within context a of type \"array\"/i
+ );
+
+ console.error = originalError;
+ });
+
+ it("should throw an error for an invalid 'asyncValidator' prop", () => {
+ const originalError = console.error;
+ console.error = jest.fn();
+ let children = [
+
+
+
+
+
+ ];
+ expect(() => mountForm({ children })).toThrowError(
+ /It must be a function/i
+ );
+
+ console.error = originalError;
+ });
});
diff --git a/__tests__/CollectionArrayIndexHandledManually.spec.js b/__tests__/CollectionArrayIndexHandledManually.spec.js
new file mode 100644
index 0000000..1be1465
--- /dev/null
+++ b/__tests__/CollectionArrayIndexHandledManually.spec.js
@@ -0,0 +1,128 @@
+import React from "react";
+import { fireEvent, cleanup, act } from "@testing-library/react";
+
+import { CollectionArrayIndexHandledManually } from "./helpers/components/CollectionArrayIndexHandledManually";
+
+import Reset from "./helpers/components/Reset";
+import Submit from "./helpers/components/Submit";
+import { mountForm } from "./helpers/utils/mountForm";
+
+const onInit = jest.fn();
+const onChange = jest.fn();
+const onReset = jest.fn();
+const onSubmit = jest.fn();
+
+afterEach(cleanup);
+
+describe("Component => Collection (Array with indexes handled manually)", () => {
+ beforeEach(() => {
+ onInit.mockClear();
+ onChange.mockClear();
+ onReset.mockClear();
+ onSubmit.mockClear();
+ });
+
+ it("should correctly render an array Collection with indexes handled manually", () => {
+ const props = { onInit, onChange, onReset, onSubmit };
+ const myself = { current: null };
+
+ const children = [
+ ,
+ ,
+
+ ];
+ const { getByTestId } = mountForm({ props, children });
+ const addInput = getByTestId("addInput");
+ const addCollection = getByTestId("addCollection");
+ const removeCollection = getByTestId("removeCollection");
+
+ const removeInput = getByTestId("removeInput");
+ const reset = getByTestId("reset");
+ const submit = getByTestId("submit");
+
+ expect(onInit).toHaveBeenCalledWith({}, true);
+
+ for (let i = 1; i <= 10; i++) {
+ act(() => {
+ fireEvent.click(addInput);
+ });
+ }
+
+ let stateExpected = myself.current.getInnerState();
+ expect(onChange).toHaveBeenCalledWith({ indexManual: stateExpected }, true);
+
+ for (let i = 1; i <= 5; i++) {
+ act(() => {
+ fireEvent.click(removeInput);
+ });
+ }
+
+ stateExpected = myself.current.getInnerState();
+ expect(onChange).toHaveBeenCalledWith({ indexManual: stateExpected }, true);
+
+ const newExpected = [];
+ stateExpected[0].forEach(val => {
+ const input = getByTestId(`input_${val}`);
+ const newValue = Math.random() * 10000;
+ newExpected.push(`${newValue}`);
+ act(() => {
+ fireEvent.change(input, { target: { value: `${newValue}` } });
+ });
+ });
+
+ expect(onChange).toHaveBeenCalledWith({ indexManual: [newExpected] }, true);
+
+ act(() => {
+ fireEvent.click(submit);
+ });
+
+ expect(onSubmit).toHaveBeenCalledWith({ indexManual: [newExpected] }, true);
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(onReset).toHaveBeenCalledWith({ indexManual: stateExpected }, true);
+
+ for (let i = 1; i <= 10; i++) {
+ act(() => {
+ fireEvent.click(addCollection);
+ });
+ }
+
+ stateExpected = myself.current.getInnerState();
+ expect(onChange).toHaveBeenCalledWith({ indexManual: stateExpected }, true);
+
+ const newCollectionExpected = [];
+ stateExpected[1].forEach(val => {
+ const input = getByTestId(`text_${val[0]}`);
+ const newValue = Math.random() * 10000;
+ newCollectionExpected.push([`${newValue}`]);
+ act(() => {
+ fireEvent.change(input, { target: { value: `${newValue}` } });
+ });
+ });
+
+ const nextStateExpected = [stateExpected[0], newCollectionExpected];
+ expect(onChange).toHaveBeenCalledWith(
+ { indexManual: nextStateExpected },
+ true
+ );
+
+ stateExpected = myself.current.getInnerState();
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(onReset).toHaveBeenCalledWith({ indexManual: stateExpected }, true);
+
+ for (let i = 1; i <= 5; i++) {
+ act(() => {
+ fireEvent.click(removeCollection);
+ });
+ }
+
+ stateExpected = myself.current.getInnerState();
+ expect(onChange).toHaveBeenCalledWith({ indexManual: stateExpected }, true);
+ });
+});
diff --git a/__tests__/Form.spec.js b/__tests__/Form.spec.js
index dd4ac25..712b782 100644
--- a/__tests__/Form.spec.js
+++ b/__tests__/Form.spec.js
@@ -98,6 +98,60 @@ describe("Component => Form", () => {
expect(onInit).toHaveReturnedWith(initialState);
});
+ it("should onInit Form callback called only once", () => {
+ const props = { onInit, onChange };
+ const { getByTestId } = render();
+ const textField = getByTestId("name");
+
+ expect(onInit).toHaveBeenCalledTimes(1);
+
+ act(() => {
+ fireEvent.change(textField, { target: { value: "Antonio" } });
+ });
+
+ expect(onChange).toHaveBeenCalledTimes(1);
+ expect(onInit).toHaveBeenCalledTimes(1);
+ });
+
+ it("should onReset callback called only once", () => {
+ const props = { onReset, onChange };
+ const { getByTestId } = render();
+ const textField = getByTestId("name");
+ const reset = getByTestId("reset");
+
+ act(() => {
+ fireEvent.change(textField, { target: { value: "Antonio" } });
+ });
+
+ expect(onChange).toHaveBeenCalledTimes(1);
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(onReset).toHaveBeenCalledTimes(1);
+ });
+
+ it("should test 'pristine' value after resetting form", () => {
+ const { getByTestId } = render();
+ const textField = getByTestId("name");
+ const reset = getByTestId("reset");
+
+ expect(() => getByTestId("pristine")).not.toThrow();
+
+ act(() => {
+ fireEvent.change(textField, { target: { value: "Antonio" } });
+ });
+
+ expect(() => getByTestId("pristine")).toThrow();
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("pristine")).not.toThrow();
+ });
+
it("should override a initialized the Form state if Fields contain the value prop", () => {
const initialState = {
text: "foo",
@@ -625,17 +679,42 @@ describe("Component => Form", () => {
user: { name: "foo", lastname: "anything", email: "anything@google.com" }
};
+ const props = { initialState, action: "http://yourapiserver.com/submit" };
+
+ const { getByTestId } = render();
+ const form = getByTestId("form");
+
+ const isNotPrevented = fireEvent.submit(form);
+
+ expect(isNotPrevented).toBe(true);
+ console.error = originalError;
+ });
+
+ it("should `preventDefault` Form submission if action props is present and Async validation is applied at any level", async () => {
+ const originalError = console.error;
+ console.error = jest.fn();
+ const initialState = { username: "BeBo" };
+
const props = {
+ onSubmit,
initialState,
action: "http://yourapiserver.com/submit"
};
- const { getByTestId } = render();
+ const { getByTestId } = render();
+
+ const asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+ const submitbutton = getByTestId("submit");
+ expect(submitbutton.disabled).toBe(false);
+
const form = getByTestId("form");
+ form.submit = jest.fn();
const isNotPrevented = fireEvent.submit(form);
+ expect(isNotPrevented).toBe(false);
+ expect(onSubmit).not.toHaveBeenCalled();
- expect(isNotPrevented).toBe(true);
console.error = originalError;
});
@@ -702,17 +781,37 @@ describe("Component => Form", () => {
console.error = originalError;
});
- it("should button being disabled for an a invalid Form with Async Fields validators functions", async () => {
+ it("should button being enabled for a valid Form with Async Fields validators functions", async () => {
const originalError = console.error;
console.error = jest.fn();
- const initialState = {
- username: "foo"
- };
+ const initialState = { username: "abcde" };
- const props = {
- initialState,
- onSubmit
- };
+ const props = { initialState, onSubmit };
+
+ const { getByTestId } = render();
+
+ const asyncinput = getByTestId("asyncinput");
+ expect(asyncinput.value).toBe(initialState.username);
+
+ const asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+
+ const asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+
+ expect(() => getByTestId("asyncError")).toThrow();
+
+ const submitbutton = getByTestId("submit");
+ expect(submitbutton.disabled).toBe(false);
+
+ console.error = originalError;
+ });
+
+ it("should button being disabled for an a invalid Form with Async Fields validators functions", async () => {
+ const originalError = console.error;
+ console.error = jest.fn();
+ const initialState = { username: "foo" };
+ const props = { initialState, onSubmit };
const { getByTestId } = render();
const form = getByTestId("form");
diff --git a/__tests__/FormAsyncValidation.spec.js b/__tests__/FormAsyncValidation.spec.js
new file mode 100644
index 0000000..9fc05a4
--- /dev/null
+++ b/__tests__/FormAsyncValidation.spec.js
@@ -0,0 +1,217 @@
+import React from "react";
+import {
+ cleanup,
+ fireEvent,
+ act,
+ waitFor,
+ render
+} from "@testing-library/react";
+
+import Reset from "./helpers/components/Reset";
+import Submit from "./helpers/components/Submit";
+import SimpleFormWithAsync from "./helpers/components/SimpleFormWithAsync";
+import { mountForm } from "./helpers/utils/mountForm";
+
+import { Input, Collection } from "./../src";
+
+afterEach(cleanup);
+
+describe("Component => Form (Async validation)", () => {
+ it("should asynchronously validate a Form", async () => {
+ const name = "email";
+ const value = "bebo@test.it";
+ const props = { asyncValidatorFunc: isValidEmail };
+ const children = [
+ ,
+ ,
+
+ ];
+ const { getByTestId } = mountForm({ props, children });
+ const emailInput = getByTestId(name);
+ const reset = getByTestId("reset");
+ const submit = getByTestId("submit");
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value } });
+ fireEvent.click(submit);
+ });
+
+ let asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ const asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+ expect(asyncSuccess.innerHTML).toBe("Success");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value: "bademail#live.it" } });
+ fireEvent.click(submit);
+ });
+
+ asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ const asyncError = await waitFor(() => getByTestId("asyncError"));
+ expect(asyncError).toBeDefined();
+ expect(asyncError.innerHTML).toBe("Mail not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+ });
+
+ it("should asynchronously validate a nested Form with Collection", async () => {
+ const value = "bebo@test.it";
+ const props = { asyncValidatorFunc: isValidEmailNested };
+ const children = [
+
+
+
+
+
+ ,
+ ,
+
+ ];
+ const { getByTestId } = mountForm({ props, children });
+ const emailInput1 = getByTestId("email1");
+ const emailInput2 = getByTestId("email2");
+ const reset = getByTestId("reset");
+ const submit = getByTestId("submit");
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput1, { target: { value } });
+ fireEvent.click(submit);
+ });
+
+ let asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ let asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+ expect(asyncSuccess.innerHTML).toBe("Success");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput2, { target: { value: "bademail#live.it" } });
+ fireEvent.click(submit);
+ });
+
+ asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ const asyncError = await waitFor(() => getByTestId("asyncError"));
+ expect(asyncError).toBeDefined();
+ expect(asyncError.innerHTML).toBe("Some Mails not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput1, { target: { value } });
+ fireEvent.change(emailInput1, { target: { value } });
+ fireEvent.click(submit);
+ });
+
+ asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+ expect(asyncSuccess.innerHTML).toBe("Success");
+ });
+
+ it("should asynchronously validate Form with muliple editing on same field", async () => {
+ const initialState = { username: "1234" };
+
+ const props = { initialState };
+ const { getByTestId } = render();
+ const asyncinput = getByTestId("asyncinput");
+
+ const asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+
+ act(() => {
+ fireEvent.change(asyncinput, { target: { value: "423456" } });
+ asyncinput.focus();
+ asyncinput.blur();
+ });
+
+ act(() => {
+ fireEvent.change(asyncinput, { target: { value: "123" } });
+ asyncinput.focus();
+ asyncinput.blur();
+ });
+
+ const asyncError = await waitFor(() => getByTestId("asyncError"));
+ expect(asyncError).toBeDefined();
+ });
+});
+
+function isValidEmail({ email }) {
+ return new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+ setTimeout(() => {
+ const isValid = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email);
+ if (!isValid) {
+ reject("Mail not Valid");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+}
+
+function isValidEmailNested({ user }) {
+ return new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+ setTimeout(() => {
+ if (!user?.mailList?.length || user?.mailList?.length <= 0) {
+ reject("Mail list empty");
+ }
+ const isValid = user?.mailList?.every?.(email =>
+ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)
+ );
+ if (!isValid) {
+ reject("Some Mails not Valid");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+}
diff --git a/__tests__/FormContextAsyncValidation.spec.js b/__tests__/FormContextAsyncValidation.spec.js
new file mode 100644
index 0000000..457e39a
--- /dev/null
+++ b/__tests__/FormContextAsyncValidation.spec.js
@@ -0,0 +1,184 @@
+import React from "react";
+import { cleanup, fireEvent, act, waitFor } from "@testing-library/react";
+
+import Reset from "./helpers/components/Reset";
+import Submit from "./helpers/components/Submit";
+import { mountFormContext } from "./helpers/utils/mountFormContext";
+
+import { Input, Collection } from "./../src";
+
+afterEach(cleanup);
+
+describe("Component => FormContext (Async validation)", () => {
+ it("should asynchronously validate a FormContext", async () => {
+ const name = "email";
+ const value = "bebo@test.it";
+ const props = { asyncValidatorFunc: isValidEmail };
+ const children = [
+ ,
+ ,
+
+ ];
+ const { getByTestId } = mountFormContext({ props, children });
+ const emailInput = getByTestId(name);
+ const reset = getByTestId("reset");
+ const submit = getByTestId("submit");
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value } });
+ fireEvent.click(submit);
+ });
+
+ let asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ const asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+ expect(asyncSuccess.innerHTML).toBe("Success");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value: "bademail#live.it" } });
+ fireEvent.click(submit);
+ });
+
+ asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ const asyncError = await waitFor(() => getByTestId("asyncError"));
+ expect(asyncError).toBeDefined();
+ expect(asyncError.innerHTML).toBe("Mail not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+ });
+
+ it("should asynchronously validate a nested FormContext with Collection", async () => {
+ const value = "bebo@test.it";
+ const props = { asyncValidatorFunc: isValidEmailNested };
+ const children = [
+
+
+
+
+
+ ,
+ ,
+
+ ];
+ const { getByTestId } = mountFormContext({ props, children });
+ const emailInput1 = getByTestId("email1");
+ const emailInput2 = getByTestId("email2");
+ const reset = getByTestId("reset");
+ const submit = getByTestId("submit");
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput1, { target: { value } });
+ fireEvent.click(submit);
+ });
+
+ let asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ let asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+ expect(asyncSuccess.innerHTML).toBe("Success");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput2, { target: { value: "bademail#live.it" } });
+ fireEvent.click(submit);
+ });
+
+ asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ const asyncError = await waitFor(() => getByTestId("asyncError"));
+ expect(asyncError).toBeDefined();
+ expect(asyncError.innerHTML).toBe("Some Mails not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("asyncStart")).toThrow();
+ expect(() => getByTestId("asyncSuccess")).toThrow();
+ expect(() => getByTestId("asyncError")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput1, { target: { value } });
+ fireEvent.change(emailInput1, { target: { value } });
+ fireEvent.click(submit);
+ });
+
+ asyncStart = await waitFor(() => getByTestId("asyncStart"));
+ expect(asyncStart).toBeDefined();
+ expect(asyncStart.innerHTML).toBe("Checking...");
+
+ asyncSuccess = await waitFor(() => getByTestId("asyncSuccess"));
+ expect(asyncSuccess).toBeDefined();
+ expect(asyncSuccess.innerHTML).toBe("Success");
+ });
+});
+
+function isValidEmail({ email }) {
+ return new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+ setTimeout(() => {
+ const isValid = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email);
+ if (!isValid) {
+ reject("Mail not Valid");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+}
+
+function isValidEmailNested({ user }) {
+ return new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+ setTimeout(() => {
+ if (!user?.mailList?.length || user?.mailList?.length <= 0) {
+ reject("Mail list empty");
+ }
+ const isValid = user?.mailList?.every?.(email =>
+ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)
+ );
+ if (!isValid) {
+ reject("Some Mails not Valid");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+}
diff --git a/__tests__/FormContextSyncValidation.spec.js b/__tests__/FormContextSyncValidation.spec.js
new file mode 100644
index 0000000..deed407
--- /dev/null
+++ b/__tests__/FormContextSyncValidation.spec.js
@@ -0,0 +1,144 @@
+import React from "react";
+import { cleanup, fireEvent, act } from "@testing-library/react";
+
+import Reset from "./helpers/components/Reset";
+import { mountFormContext } from "./helpers/utils/mountFormContext";
+
+import { Input, Collection } from "./../src";
+
+afterEach(cleanup);
+
+describe("Component => FormContext (sync validation)", () => {
+ it("should synchronously validate a FormContext with touched prop false", () => {
+ const name = "email";
+ const value = "bebo@test.it";
+ const props = { validators: [isValidEmail] };
+ const children = [
+ ,
+
+ ];
+ const { getByTestId } = mountFormContext({ props, children });
+ const emailInput = getByTestId(name);
+ const reset = getByTestId("reset");
+
+ let errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail not Valid");
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value } });
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail not Valid");
+ });
+
+ it("should synchronously validate a FormContext with touched prop true", () => {
+ const name = "email";
+ const value = "bebo@test.it";
+ const props = { validators: [isValidEmail], touched: true };
+ const children = [
+ ,
+
+ ];
+ const { getByTestId } = mountFormContext({ props, children });
+ const emailInput = getByTestId(name);
+ const reset = getByTestId("reset");
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ emailInput.focus();
+ emailInput.blur();
+ });
+
+ let errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value } });
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+ });
+
+ it("should synchronously validate a nested FormContext with touched prop true", () => {
+ const value = "bebo@test.it";
+ const props = { validators: [isArrayOfMailValid], touched: true };
+ const children = [
+
+
+
+
+
+ ,
+
+ ];
+ const { getByTestId } = mountFormContext({ props, children });
+ const emailInput1 = getByTestId("email1");
+ const emailInput2 = getByTestId("email2");
+ const reset = getByTestId("reset");
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ emailInput2.focus();
+ emailInput2.blur();
+ });
+
+ let errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail list empty");
+
+ act(() => {
+ emailInput2.focus();
+ fireEvent.change(emailInput2, { target: { value } });
+ emailInput2.blur();
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ emailInput1.focus();
+ fireEvent.change(emailInput1, { target: { value: "invalid@test" } });
+ emailInput1.blur();
+ });
+
+ errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Some Mails not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+ });
+});
+
+function isValidEmail({ email }) {
+ return /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)
+ ? undefined
+ : "Mail not Valid";
+}
+
+function isArrayOfMailValid({ user }) {
+ if (!user?.mailList?.length || user?.mailList?.length <= 0) {
+ return "Mail list empty";
+ }
+
+ return user?.mailList?.every?.(email =>
+ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)
+ )
+ ? undefined
+ : "Some Mails not Valid";
+}
diff --git a/__tests__/FormSyncValidation.spec.js b/__tests__/FormSyncValidation.spec.js
new file mode 100644
index 0000000..6514349
--- /dev/null
+++ b/__tests__/FormSyncValidation.spec.js
@@ -0,0 +1,144 @@
+import React from "react";
+import { cleanup, fireEvent, act } from "@testing-library/react";
+
+import Reset from "./helpers/components/Reset";
+import { mountForm } from "./helpers/utils/mountForm";
+
+import { Input, Collection } from "./../src";
+
+afterEach(cleanup);
+
+describe("Component => Form (sync validation)", () => {
+ it("should synchronously validate a Form with touched prop false", () => {
+ const name = "email";
+ const value = "bebo@test.it";
+ const props = { validators: [isValidEmail] };
+ const children = [
+ ,
+
+ ];
+ const { getByTestId } = mountForm({ props, children });
+ const emailInput = getByTestId(name);
+ const reset = getByTestId("reset");
+
+ let errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail not Valid");
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value } });
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail not Valid");
+ });
+
+ it("should synchronously validate a Form with touched prop true", () => {
+ const name = "email";
+ const value = "bebo@test.it";
+ const props = { validators: [isValidEmail], touched: true };
+ const children = [
+ ,
+
+ ];
+ const { getByTestId } = mountForm({ props, children });
+ const emailInput = getByTestId(name);
+ const reset = getByTestId("reset");
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ emailInput.focus();
+ emailInput.blur();
+ });
+
+ let errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ fireEvent.change(emailInput, { target: { value } });
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+ });
+
+ it("should synchronously validate a nested Form with touched prop true", () => {
+ const value = "bebo@test.it";
+ const props = { validators: [isArrayOfMailValid], touched: true };
+ const children = [
+
+
+
+
+
+ ,
+
+ ];
+ const { getByTestId } = mountForm({ props, children });
+ const emailInput1 = getByTestId("email1");
+ const emailInput2 = getByTestId("email2");
+ const reset = getByTestId("reset");
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ emailInput2.focus();
+ emailInput2.blur();
+ });
+
+ let errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Mail list empty");
+
+ act(() => {
+ emailInput2.focus();
+ fireEvent.change(emailInput2, { target: { value } });
+ emailInput2.blur();
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+
+ act(() => {
+ emailInput1.focus();
+ fireEvent.change(emailInput1, { target: { value: "invalid@test" } });
+ emailInput1.blur();
+ });
+
+ errorLabel = getByTestId("errorLabel");
+ expect(errorLabel.innerHTML).toBe("Some Mails not Valid");
+
+ act(() => {
+ fireEvent.click(reset);
+ });
+
+ expect(() => getByTestId("errorLabel")).toThrow();
+ });
+});
+
+function isValidEmail({ email }) {
+ return /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)
+ ? undefined
+ : "Mail not Valid";
+}
+
+function isArrayOfMailValid({ user }) {
+ if (!user?.mailList?.length || user?.mailList?.length <= 0) {
+ return "Mail list empty";
+ }
+
+ return user?.mailList?.every?.(email =>
+ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)
+ )
+ ? undefined
+ : "Some Mails not Valid";
+}
diff --git a/__tests__/Input.spec.js b/__tests__/Input.spec.js
index feecf06..5124813 100644
--- a/__tests__/Input.spec.js
+++ b/__tests__/Input.spec.js
@@ -700,17 +700,17 @@ describe("Component => Input", () => {
console.error = jest.fn();
let children = [];
expect(() => mountForm({ children })).toThrowError(
- /Input of type => radio, must have a valid prop "value"./i
+ / of type => radio, must have a valid prop "value"./i
);
children = [];
expect(() => mountForm({ children })).toThrowError(
- /Input of type => radio, must have a valid prop "value"./i
+ / of type => radio, must have a valid prop "value"./i
);
children = [];
expect(() => mountForm({ children })).toThrowError(
- /Input of type => radio, must have a valid prop "value"./i
+ / of type => radio, must have a valid prop "value"./i
);
console.error = originalError;
diff --git a/__tests__/helpers/components/CollectionArrayIndexHandledManually.jsx b/__tests__/helpers/components/CollectionArrayIndexHandledManually.jsx
new file mode 100644
index 0000000..274512c
--- /dev/null
+++ b/__tests__/helpers/components/CollectionArrayIndexHandledManually.jsx
@@ -0,0 +1,134 @@
+import React, {
+ useRef,
+ useState,
+ useImperativeHandle,
+ forwardRef
+} from "react";
+import { Input, Collection } from "./../../../src";
+
+export const CollectionArrayIndexHandledManually = forwardRef((props, ref) => {
+ const { name = "indexManual" } = props;
+ const innerState = useRef([]);
+
+ const index = useRef(0);
+ const [inputs, setAdd] = useState([]);
+
+ const indexCollection = useRef(0);
+ const [collections, setCollection] = useState([]);
+
+ const addInput = () => {
+ const myIndex = ++index.current;
+ if (!innerState.current[0]) {
+ innerState.current[0] = [];
+ }
+ setAdd(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ const nextVal = [...prev];
+ const value = `${myIndex}`;
+ const nextInneState = [...innerState.current[0]];
+ nextInneState.splice(pos, 0, value);
+ innerState.current[0] = nextInneState;
+ nextVal.splice(pos, 0, {
+ value,
+ key: value
+ });
+ return nextVal;
+ });
+ };
+
+ const removeInput = () =>
+ setAdd(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ innerState.current[0] = innerState.current[0].filter(
+ (val, index) => index !== pos
+ );
+ if (innerState.current[0].length === 0) {
+ delete innerState.current[0];
+ }
+ return prev.filter((elm, index) => index !== pos);
+ });
+
+ const addCollection = () => {
+ const myIndex = ++indexCollection.current;
+ if (!innerState.current[1]) {
+ innerState.current[1] = [];
+ }
+
+ setCollection(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ const value = `${myIndex}`;
+ const nextVal = [...prev];
+ const nextInneState = [...innerState.current[1]];
+ nextInneState.splice(pos, 0, [value]);
+ innerState.current[1] = nextInneState;
+ nextVal.splice(pos, 0, { value: [value], key: value });
+
+ return nextVal;
+ });
+ };
+
+ const removeCollection = () => {
+ setCollection(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+
+ innerState.current[1] = innerState.current[1].filter(
+ (val, index) => index !== pos
+ );
+ if (innerState.current[1].length === 0) {
+ delete innerState.current[1];
+ }
+
+ return prev.filter((elm, index) => index !== pos);
+ });
+ };
+
+ useImperativeHandle(ref, () => ({
+ getInnerState() {
+ return innerState.current;
+ }
+ }));
+
+ return (
+
+
+
+ {inputs.map((inp, index) => (
+
+ ))}
+
+
+
+
+ {collections.map((coll, index) => (
+
+
+
+ ))}
+
+
+
+
+
+
+
+
+ );
+});
diff --git a/__tests__/helpers/components/CollectionDynamicField.jsx b/__tests__/helpers/components/CollectionDynamicField.jsx
index 1e46080..0ff81bc 100644
--- a/__tests__/helpers/components/CollectionDynamicField.jsx
+++ b/__tests__/helpers/components/CollectionDynamicField.jsx
@@ -49,6 +49,46 @@ export function CollectionDynamicField({ name = "dynamic", reducers }) {
);
}
+export function CollectionObjectDynamicField({ name = "dynamic" }) {
+ const index = useRef(0);
+ const [inputs, setAdd] = useState([]);
+
+ const addInput = () => {
+ index.current++;
+ setAdd(prev => [
+ ...prev,
+
+ ]);
+ };
+
+ const removeInput = () => setAdd(prev => prev.slice(0, -1));
+
+ return (
+
+
+ {" --- Start --- "}
+ Start an array collection of inputs
+ {inputs}
+ End an array collection of inputs
+ {" --- End --- "}
+
+
+
+
+
+ );
+}
+
export function CollectionNestedDynamicField({ name = "dynamicNested" }) {
const index = useRef(0);
const [inputs, setAdd] = useState([]);
diff --git a/__tests__/helpers/components/FormContextWithValidation.jsx b/__tests__/helpers/components/FormContextWithValidation.jsx
new file mode 100644
index 0000000..51f28d7
--- /dev/null
+++ b/__tests__/helpers/components/FormContextWithValidation.jsx
@@ -0,0 +1,40 @@
+import React from "react";
+import {
+ FormContext,
+ useValidation,
+ useAsyncValidation,
+ useForm
+} from "./../../../src";
+
+export const FormContextWithValidation = ({
+ validators,
+ asyncValidatorFunc,
+ children,
+ ...restProp
+}) => {
+ const [status, formValidationProp] = useValidation(validators);
+ const [asyncStatus, asyncValidation] = useAsyncValidation(asyncValidatorFunc);
+
+ return (
+ <>
+
+
+
+ {status.error && }
+ {asyncStatus.status === "asyncStart" && (
+
+ )}
+ {asyncStatus.status === "asyncSuccess" && (
+
+ )}
+ {asyncStatus.status === "asyncError" && (
+
+ )}
+ >
+ );
+};
+
+function Form({ children }) {
+ const { onSubmitForm } = useForm();
+ return ;
+}
diff --git a/__tests__/helpers/components/FormWithValidation.jsx b/__tests__/helpers/components/FormWithValidation.jsx
new file mode 100644
index 0000000..f74b23b
--- /dev/null
+++ b/__tests__/helpers/components/FormWithValidation.jsx
@@ -0,0 +1,30 @@
+import React from "react";
+import { Form, useValidation, useAsyncValidation } from "./../../../src";
+
+export const FormWithValidation = ({
+ validators,
+ asyncValidatorFunc,
+ children,
+ ...restProp
+}) => {
+ const [status, formValidationProp] = useValidation(validators);
+ const [asyncStatus, asyncValidation] = useAsyncValidation(asyncValidatorFunc);
+
+ return (
+ <>
+
+ {status.error && }
+ {asyncStatus.status === "asyncStart" && (
+
+ )}
+ {asyncStatus.status === "asyncSuccess" && (
+
+ )}
+ {asyncStatus.status === "asyncError" && (
+
+ )}
+ >
+ );
+};
diff --git a/__tests__/helpers/components/Reset.jsx b/__tests__/helpers/components/Reset.jsx
index afc1293..518bcf9 100644
--- a/__tests__/helpers/components/Reset.jsx
+++ b/__tests__/helpers/components/Reset.jsx
@@ -1,21 +1,25 @@
import React from "react";
import { useForm, STATUS } from "./../../../src";
-const Reset = () => {
+const Reset = ({ forceEnable }) => {
const { reset, pristine, formStatus } = useForm();
+ const isDisabled = forceEnable
+ ? false
+ : pristine ||
+ formStatus === STATUS.ON_INIT_ASYNC ||
+ formStatus === STATUS.ON_RUN_ASYNC;
return (
-
+ <>
+
+ {pristine && }
+ >
);
};
diff --git a/__tests__/helpers/utils/mountForm.js b/__tests__/helpers/utils/mountForm.js
index e8c5e8d..acb5b4a 100644
--- a/__tests__/helpers/utils/mountForm.js
+++ b/__tests__/helpers/utils/mountForm.js
@@ -1,10 +1,10 @@
import React from "react";
import { render } from "@testing-library/react";
-import { Form } from "./../../../src";
+import { FormWithValidation } from "./../components/FormWithValidation";
export const mountForm = ({ props = {}, children } = {}) =>
render(
-
+ {children}
);
diff --git a/__tests__/helpers/utils/mountFormContext.js b/__tests__/helpers/utils/mountFormContext.js
new file mode 100644
index 0000000..1832233
--- /dev/null
+++ b/__tests__/helpers/utils/mountFormContext.js
@@ -0,0 +1,12 @@
+import React from "react";
+import { render } from "@testing-library/react";
+import { FormContextWithValidation } from "./../components/FormContextWithValidation";
+
+export const mountFormContext = ({ props = {}, children } = {}) =>
+ render(
+
+
+ {children}
+
+
+ );
diff --git a/docs/Collection.mdx b/docs/Collection.mdx
index db3c952..048bcc4 100644
--- a/docs/Collection.mdx
+++ b/docs/Collection.mdx
@@ -6,8 +6,9 @@ menu: Components
import { Playground } from 'docz';
import { Form } from "./helpers/Form";
import { Submit } from "./helpers/Submit";
+import { InputLabel as Input } from "./helpers/InputLabel";
import { CustomInput } from "./helpers/CustomInput"
-import { Collection, useValidation, Input, useAsyncValidation } from './../src';
+import { Collection, useValidation, useAsyncValidation } from './../src';
# Collection
@@ -45,13 +46,8 @@ The async validation messages will be showing only at form submission.
```javascript
const [status, validation] = useValidation([anyValidationFunc])
-
- Collection>
+
+
{status.error && }
```
@@ -77,12 +73,13 @@ Reducers functions specify how the Collection's value change.
@@ -140,28 +153,139 @@ A simple form with the initial state passed straight to the Form's Field.
## Reducers
```javascript
- import Form, { Input } from 'usetheform'
+import Form, { Collection } from 'usetheform';
+import { Item } from './components/Item';
+import { recudeTotalPrice, recudeTotalQuantity } from './components/Item/utils';
+```
+
+
+
+
+#### Detailed Explanation:
+
+```javascript
+export const Item = ({ price, qty }) => {
+ return (
+
+
+
+
+ );
+}
+
+export const recudeTotalPrice = formState => {
+ const { items = [] } = formState;
+ const totalPrice = items.reduce((total, { price = 0, qty = 0 }) => {
+ total += price * qty;
+ return total;
+ }, 0);
+ return { ...formState, totalPrice };
+};
+
+export const recudeTotalQuantity = (formState) => {
+ const { items = [] } = formState;
+ const totalQuantity = items.reduce((total, { qty = 0 }) => {
+ total += qty;
+ return total;
+ }, 0);
+ return { ...formState, totalQuantity };
+};
+```
+
+## Validation - Sync
+
+Validation at Form level:
+
+- **touched=false**: errors messages will be showing on Form initialization and when any Field is edited.
+- **touched=true**: errors messages will be showing when any Field at any level of nesting is touched/visited.
+
+```javascript
+ import Form, { Input, Collection, useValidation } from 'usetheform'
```
{() => {
- const maxNumber10 = (nextState, prevState) => {
- if (nextState.myNumber > 10) {
- nextState.myNumber = 10;
- }
- return nextState;
- };
- const minNumber1 = (nextState, prevState) => {
- if (nextState.myNumber <= 0) {
- nextState.myNumber = 0;
- }
- return nextState;
- };
+ const graterThan10 = ({ values }) => ((values && (values["A"] + values["B"] > 10)) ? undefined : "A+B must be > 10");
+ const [status, validationProps] = useValidation([graterThan10]);
return (
-
)
}
}
+
+## Validation - Async
+
+Async Validation for **Form** is triggered on Sumbit event. The form submission is prevented if the validation fails.
+It means that the onSubmit function passed as prop to the **Form** component will not be invoked.
+
+```javascript
+import { Form, Collection, Input, useAsyncValidation } from 'usetheform';
+```
+
+
+{() => {
+ const [asyncStatus, validationProps] = useAsyncValidation(asyncTestForm);
+ const onSubmit = (state) => alert(JSON.stringify(state));
+ return (
+
+ )
+ }
+}
+
+
+#### Detailed Explanation:
+
+```javascript
+import { useForm } from 'usetheform'
+
+const Submit = () => {
+ const { isValid } = useForm();
+ return (
+
+ );
+};
+
+export const asyncTestForm = ({ values }) =>
+ new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+ setTimeout(() => {
+ if (!values || !values.a || !values.b) {
+ reject("Emtpy values are not allowed ");
+ }
+ if (values.a + values.b >= 5) {
+ reject("The sum must be less than '5'");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+```
diff --git a/docs/FormContext.mdx b/docs/FormContext.mdx
index e7fe685..83bbcda 100644
--- a/docs/FormContext.mdx
+++ b/docs/FormContext.mdx
@@ -5,7 +5,10 @@ menu: Components
import { Playground } from 'docz';
import { FormContext, Form } from "./helpers/FormContext";
-import { Input, useForm } from './../src';
+import { asyncTestForm } from "./helpers/utils/index.js";
+import { Submit } from "./helpers/Submit";
+import { InputLabel as Input } from "./helpers/InputLabel";
+import { useForm, useSelector, Collection, useValidation, useAsyncValidation } from './../src';
# FormContext
@@ -73,6 +76,12 @@ It is a plain object that rappresent the initial state of the form.
An array whose values correspond to different reducing functions.
Reducers functions specify how the Form's state change.
+**`touched`**: boolean
+
+Default value *false*.
+
+If *true* sync validation messages will be showing only when the event onBlur of any forms's field is triggered by the user action at any level of nesting.
+
## Basic usage
```js
@@ -89,32 +98,28 @@ export const Form = ({ children }) => {
{() => {
- const ResetName = () => {
- const { dispatch } = useForm();
- const resetName = () => {
- dispatch(prev => {
- const { name: omitName, ...newState } = prev;
- return newState;
- })
- }
- return (
-
+
+
+## Validation - Sync
+
+Validation at FormContext level:
+
+- **touched=false**: errors messages will be showing on FormContext initialization and when any Field is edited.
+- **touched=true**: errors messages will be showing when any Field at any level of nesting is touched/visited.
+
+```javascript
+ import { FormContext, Input, Collection, useValidation } from 'usetheform'
+```
+
+
+{() => {
+ const graterThan10 = ({ values }) => ((values && (values["A"] + values["B"] > 10)) ? undefined : "A+B must be > 10");
+ const [status, validationProps] = useValidation([graterThan10]);
+ return (
+
+
)
}
}
+
+## Validation - Async
+
+Async Validation for **FormContext** is triggered on Sumbit event. The form submission is prevented if the validation fails.
+It means that the onSubmit function passed as prop to the **FormContext** component will not be invoked.
+
+```javascript
+import { FormContext, Collection, Input, useAsyncValidation } from 'usetheform';
+```
+
+
+{() => {
+ const [asyncStatus, validationProps] = useAsyncValidation(asyncTestForm);
+ const onSubmit = (state) => alert(JSON.stringify(state));
+ return (
+
+
+
+ )
+ }
+}
+
+
+#### Detailed Explanation:
+
+```javascript
+import { useForm } from 'usetheform'
+
+const Submit = () => {
+ const { isValid } = useForm();
+ return (
+
+ Submit
+
+ );
+};
+
+export const asyncTestForm = ({ values }) =>
+ new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+ setTimeout(() => {
+ if (!values || !values.a || !values.b) {
+ reject("Emtpy values are not allowed ");
+ }
+ if (values.a + values.b >= 5) {
+ reject("The sum must be less than '5'");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+```
+
diff --git a/docs/Input.mdx b/docs/Input.mdx
index b34caa6..136b563 100644
--- a/docs/Input.mdx
+++ b/docs/Input.mdx
@@ -6,7 +6,9 @@ menu: Components
import { Playground } from 'docz';
import { Form } from "./helpers/Form";
import { Submit } from "./helpers/Submit";
-import { Input, useValidation, useAsyncValidation } from './../src';
+import { asyncTestInput } from "./helpers/utils/index.js";
+import { InputLabel as Input } from "./helpers/InputLabel";
+import { useValidation, useAsyncValidation } from './../src';
# Input
It renders all the inputs of type listed at: [W3schools Input Types](https://www.w3schools.com/html/html_form_input_types.asp) and accepts as props any html attribute listed at: [Html Input Attributes](https://www.w3schools.com/tags/tag_input.asp).
@@ -64,14 +66,14 @@ const ref = useRef(null)
```javascript
import Form, { Input, Collection } from 'usetheform'
```
-
@@ -84,11 +86,11 @@ const ref = useRef(null)
{() => {
- const maxNumber10 = (nextValue, prevValue) => nextValue > 10 ? prevValue : nextValue;
- const minNumber1 = (nextValue, prevValue) => nextValue <= 0 ? prevValue : nextValue;
+ const prevNumberGreater10 = (nextValue, prevValue) => nextValue > 10 ? prevValue : nextValue;
+ const prevNumberLessThan1 = (nextValue, prevValue) => nextValue <= 0 ? prevValue : nextValue;
return (
)
}
@@ -111,7 +113,7 @@ const ref = useRef(null)
const [status, validation] = useValidation([required, isValidEmail]);
return (
@@ -124,37 +126,16 @@ const ref = useRef(null)
## Validation - Async
```javascript
-import { useAsyncValidation, useForm } from 'usetheform'
-
-const Submit = () => {
- const { isValid } = useForm();
- return (
-
- Submit
-
- );
-};
-
+import { Form, Input } from 'usetheform';
```
{() => {
- const asyncTest = value =>
- new Promise((resolve, reject) => {
- // it could be an API call or any async operation
- setTimeout(() => {
- if (value === "foo") {
- reject("username already in use");
- } else {
- resolve("Success");
- }
- }, 1000);
- });
- const [asyncStatus, asyncValidation] = useAsyncValidation(asyncTest);
+ const [asyncStatus, asyncValidation] = useAsyncValidation(asyncTestInput);
return (
\ No newline at end of file
+
+
+#### Detailed Explanation:
+
+```javascript
+import { useForm } from 'usetheform'
+
+export const asyncTestInput = value =>
+ new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+ setTimeout(() => {
+ if (value === "foo") {
+ reject("username already in use");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+
+export const Submit = () => {
+ const { isValid } = useForm();
+ return (
+
+ Submit
+
+ );
+};
+```
\ No newline at end of file
diff --git a/docs/Select.mdx b/docs/Select.mdx
index 0800d79..a89f7f4 100644
--- a/docs/Select.mdx
+++ b/docs/Select.mdx
@@ -181,7 +181,7 @@ const Submit = () => {
- {asyncStatus.status === undefined && }
+ {asyncStatus.status === undefined && }
{asyncStatus.status === "asyncStart" && }
{asyncStatus.status === "asyncError" && }
{asyncStatus.status === "asyncSuccess" && }
diff --git a/docs/TextArea.mdx b/docs/TextArea.mdx
index f0de41e..8914fed 100644
--- a/docs/TextArea.mdx
+++ b/docs/TextArea.mdx
@@ -139,7 +139,7 @@ const Submit = () => {
return (
-
- {asyncStatus.status === undefined && }
+
+ {asyncStatus.status === undefined && }
{asyncStatus.status === "asyncStart" && }
{asyncStatus.status === "asyncError" && }
{asyncStatus.status === "asyncSuccess" && }
diff --git a/docs/useCollection.mdx b/docs/useCollection.mdx
index 6afa6a7..9c0ab21 100644
--- a/docs/useCollection.mdx
+++ b/docs/useCollection.mdx
@@ -86,7 +86,7 @@ const CustomCollection = props => {
import { useCollection } from "usetheform";
const maxNumber10 = (nextValue, prevValue) => nextValue > 10 ? prevValue : nextValue;
-const minNumber1 = (nextValue, prevValue) => nextValue <= 0 ? prevValue : nextValue;
+const minNumber1 = (nextValue, prevValue) => nextValue <= 1 ? prevValue : nextValue;
const CustomCollection = props => {
const { value, state, updateCollection } = useCollection({
diff --git a/docs/useField.mdx b/docs/useField.mdx
index 1ae10fb..1b376d9 100644
--- a/docs/useField.mdx
+++ b/docs/useField.mdx
@@ -96,7 +96,7 @@ const CustomField = ({ name, initialValue = { a: "2" } }) => {
```javascript
const maxNumber10 = (nextValue, prevValue) => nextValue > 10 ? prevValue : nextValue;
-const minNumber1 = (nextValue, prevValue) => nextValue <= 0 ? prevValue : nextValue;
+const minNumber1 = (nextValue, prevValue) => nextValue <= 1 ? prevValue : nextValue;
const CustomInput = props => {
const fieldInputProps = useField({
diff --git a/docs/useForm.mdx b/docs/useForm.mdx
index 517a299..909e590 100644
--- a/docs/useForm.mdx
+++ b/docs/useForm.mdx
@@ -8,7 +8,8 @@ import { Form } from "./helpers/Form";
import { Submit } from "./helpers/Submit";
import { Reset } from "./helpers/Reset";
import { CounterSubmitAttempts } from "./helpers/CounterSubmitAttempts";
-import { Input, useValidation } from './../src';
+import { InputLabel as Input } from "./helpers/InputLabel";
+import { useValidation } from './../src';
# useForm
`useForm()` is a custom React hook that will return helpers and the current state of the form.
@@ -27,7 +28,7 @@ An object that holds:
- **`pristine`**: a boolean which tells whether the form fields have been modified or not.
- **`submitted`**: a number which counts the number of times the form has been submitted with success.
- **`submitAttempts`**: a number which counts the total number of submission attempts.
- - **`reset`**: a helper function which redset the Form state to an initial State.
+ - **`reset`**: a helper function which resets the Form state to an initial State.
- **`formStatus`**: a string indicating the form status. It can be one of: "ON_CHANGE", "ON_SUBMIT", "ON_RESET", "ON_INIT".
- **`dispatch`**: a function used to update the form state. It accepts object which will be the new state of the form.
```javascript
@@ -38,15 +39,39 @@ An object that holds:
## Basic usage
+```javascript
+ import Form, { Input } from 'usetheform'
+```
+
+
+{() => {
+ const email = value =>
+ !(value && !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value))
+ ? undefined
+ : "Mail not Valid";
+ const required = val => (val && val.trim() !== "" ? undefined : "Required");
+ const [status, validation] = useValidation([required, email]);
+
+ return (
+
+
+ {status.error && }
+
+
+
+
+ )
+ }
+}
+
+
+#### Detailed Explanation:
+
```javascript
const Reset = props => {
const { reset, pristine } = useForm();
return (
-
+
Reset
);
@@ -73,33 +98,4 @@ const CounterSubmitAttempts = props => {
);
}
-```
-
-## Example
-
-```javascript
- import Form, { Input } from 'usetheform'
-```
-
-
-{() => {
- const email = value =>
- !(value && !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value))
- ? undefined
- : "Mail not Valid";
- const required = value => (value && value.trim() !== "" ? undefined : "Required");
- const [status, validation] = useValidation([required, email]);
- return (
-
-
-
- {status.error && }
-
-
-
-
-
- )
- }
-}
-
\ No newline at end of file
+```
\ No newline at end of file
diff --git a/docs/useSelector.mdx b/docs/useSelector.mdx
index e47649e..e214a30 100644
--- a/docs/useSelector.mdx
+++ b/docs/useSelector.mdx
@@ -6,7 +6,7 @@ menu: Hooks
import { Playground } from 'docz';
import { Form } from "./helpers/Form";
import { CounterReader } from "./helpers/CounterReader";
-import { Input } from './../src';
+import { InputLabel as Input } from "./helpers/InputLabel";
# useSelector
`useSelector(selector: Function)` allows to pick a single "Field" from the Form state using a selector function.
@@ -27,7 +27,6 @@ The Counter component will re-render on changes.
```javascript
// BAD 👎
const [counter, setCounter] = useSelector(state => ({ counter1 : state.anyprop, counter2 : state.anyprop }));
-const [counter2, setCounter2] = useSelector(state => state.counter2);
```
```javascript
// OK 👍
@@ -75,7 +74,7 @@ import{ Form, Input } from 'usetheform'
-
+
diff --git a/docs/useValidation.mdx b/docs/useValidation.mdx
index e37408a..7bc830b 100644
--- a/docs/useValidation.mdx
+++ b/docs/useValidation.mdx
@@ -5,7 +5,8 @@ menu: Hooks
import { Playground } from 'docz';
import { Form } from "./helpers/Form";
-import { Input, useValidation } from './../src';
+import { InputLabel as Input } from "./helpers/InputLabel";
+import { useValidation } from './../src';
# useValidation
`useValidation(functions: Array)` provides the validation logic to any Field.
@@ -48,7 +49,7 @@ An array that holds:
const [status, validationAttr] = useValidation([required]);
return (
-
+
{status.error && }
)
diff --git a/examples/helpers/CollectionNestedDynamicField.js b/examples/helpers/CollectionNestedDynamicField.js
new file mode 100644
index 0000000..a6eb410
--- /dev/null
+++ b/examples/helpers/CollectionNestedDynamicField.js
@@ -0,0 +1,87 @@
+/* eslint-disable react/react-in-jsx-scope */
+
+const { Input, Collection } = UseTheForm;
+const { useState, useRef } = React;
+
+window.CollectionNestedDynamicField = function ({ name = "dynamicNested" }) {
+ const index = useRef(0);
+ const [inputs, setAdd] = useState([]);
+
+ const indexCollection = useRef(0);
+ const [collections, setCollection] = useState([]);
+
+ const addInput = () => {
+ index.current++;
+ setAdd(prev => [
+ ...prev,
+
+ ]);
+ };
+
+ const removeInput = () =>
+ setAdd(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+
+ return prev.filter((elm, index) => index !== pos);
+ });
+
+ const addCollection = () => {
+ indexCollection.current++;
+ setCollection(prev => [
+ ...prev,
+
+ {" --- Start --- "}
+
+ {" --- End --- "}
+
+ ]);
+ };
+
+ const removeCollection = () => {
+ setCollection(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ return prev.filter((elm, index) => index !== pos);
+ });
+ };
+
+ return (
+
+
+
+ {" --- Start --- "}
+ Start an array collection of inputs
+ {inputs}
+ End an array collection of inputs
+ {" --- End --- "}
+ {collections}
+
+
+
+
+ Add Input
+
+
+ Remove random Input
+
+
+ Add array Collection
+
+
+ Remove random Collection
+
+
+ );
+};
diff --git a/examples/helpers/CollectionNestedDynamicFieldIndex.js b/examples/helpers/CollectionNestedDynamicFieldIndex.js
new file mode 100644
index 0000000..8d3a33b
--- /dev/null
+++ b/examples/helpers/CollectionNestedDynamicFieldIndex.js
@@ -0,0 +1,99 @@
+/* eslint-disable react/react-in-jsx-scope */
+
+const { Input, Collection } = UseTheForm;
+const { useState, useRef } = React;
+
+window.CollectionNestedDynamicFieldIndex = function ({
+ name = "dynamicNestedIndex"
+}) {
+ const index = useRef(0);
+ const [inputs, setAdd] = useState([]);
+
+ const indexCollection = useRef(0);
+ const [collections, setCollection] = useState([]);
+
+ const addInput = () => {
+ index.current++;
+
+ setAdd(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ const nextVal = [...prev];
+ nextVal.splice(pos, 0, {
+ value: `${index.current}`,
+ key: `${index.current}`
+ });
+ return nextVal;
+ });
+ };
+
+ const removeInput = () =>
+ setAdd(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ return prev.filter((elm, index) => index !== pos);
+ });
+
+ const addCollection = () => {
+ indexCollection.current++;
+
+ setCollection(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ const nextVal = [...prev];
+ nextVal.splice(pos, 0, {
+ value: [`${indexCollection.current}`],
+ key: `${indexCollection.current}`
+ });
+ return nextVal;
+ });
+ };
+
+ const removeCollection = () => {
+ setCollection(prev => {
+ const pos = Math.floor(Math.random() * prev.length);
+ return prev.filter((elm, index) => index !== pos);
+ });
+ };
+
+ return (
+
+
+
+ {inputs.map((inp, index) => (
+
+ ))}
+
+
+
+
+ {collections.map((coll, index) => (
+
+
+
+ ))}
+
+
+
+
+ Add Input
+
+
+ Remove random Input
+
+
+ Add array Collection
+
+
+ Remove random Collection
+
+
+ );
+};
diff --git a/examples/helpers/FormContextWithValidation.js b/examples/helpers/FormContextWithValidation.js
new file mode 100644
index 0000000..2e6eb84
--- /dev/null
+++ b/examples/helpers/FormContextWithValidation.js
@@ -0,0 +1,58 @@
+/* eslint-disable react/react-in-jsx-scope */
+const {
+ FormContext,
+ useValidation,
+ useAsyncValidation,
+ useForm,
+ Input
+} = UseTheForm;
+
+const { Submit } = window;
+
+const validators = [
+ ({ test = "" }) => (test.trim() === "" ? "required" : undefined)
+];
+
+const asyncValidatorFunc = ({ test = "" }) =>
+ new Promise((resolve, reject) => {
+ setTimeout(() => {
+ test.length <= 5 ? reject("error") : resolve("Success");
+ }, 2000);
+ });
+
+window.FormContextWithValidation = function ({ ...restProp }) {
+ const [status, formValidationProp] = useValidation(validators);
+ const [asyncStatus, asyncValidation] = useAsyncValidation(asyncValidatorFunc);
+
+ return (
+
+ console.log(state)}
+ touched
+ {...restProp}
+ {...formValidationProp}
+ {...asyncValidation}
+ >
+
+
+
+
+
+ {status.error && }
+ {asyncStatus.status === "asyncStart" && (
+
+ )}
+ {asyncStatus.status === "asyncSuccess" && (
+
+ )}
+ {asyncStatus.status === "asyncError" && (
+
+ )}
+
+ );
+};
+
+function Form({ children }) {
+ const { onSubmitForm } = useForm();
+ return {children};
+}
diff --git a/examples/helpers/SimpleForm.js b/examples/helpers/SimpleForm.js
index edf561c..be9b651 100644
--- a/examples/helpers/SimpleForm.js
+++ b/examples/helpers/SimpleForm.js
@@ -1,5 +1,13 @@
+/* eslint-disable no-unused-vars */
/* eslint-disable react/react-in-jsx-scope */
-const { Form, Input, useValidation, useField } = UseTheForm;
+const {
+ Form,
+ Input,
+ useValidation,
+ useField,
+ Collection,
+ useAsyncValidation
+} = UseTheForm;
const { useState } = React;
const {
@@ -24,6 +32,24 @@ const CustomField = ({ name, value = { a: "2" } }) => {
);
};
+const asyncTest = value =>
+ new Promise((resolve, reject) => {
+ // it could be an API call or any async operation
+
+ console.log("asyncTest", value.mailList);
+ setTimeout(() => {
+ if (!value && !value.user && !value.user.mailList) {
+ reject("Empty are not allowed");
+ }
+
+ if (!value.user.mailList[0]) {
+ reject("Error values not allowed");
+ } else {
+ resolve("Success");
+ }
+ }, 1000);
+ });
+
window.SimpleForm = () => {
const [input, validationInput] = useValidation([
val => {
@@ -33,26 +59,33 @@ window.SimpleForm = () => {
const [remove, setRemove] = useState(false);
+ const [statusForm, validationFormProp] = useValidation([isArrayOfMailValid]);
+
+ const [asyncStatus, asyncValidation] = useAsyncValidation(asyncTest);
+ console.log("asyncStatus ", asyncStatus);
+
return (
-
console.log(state)}>
-
-
-
-
-
-
-
-
-
-
- {!remove && }
- {!remove && (
-
+ console.log("onSubmit => ", state)}
+ {...asyncValidation}
+ >
+ {statusForm.error && }
+ {asyncStatus.status === "asyncError" && (
+
)}
-
+
+
+
+
+
+
+
+
+ Press to see results
+
setRemove(true)} type="button">
Remove
@@ -60,3 +93,14 @@ window.SimpleForm = () => {
);
};
+function isArrayOfMailValid({ user }) {
+ if (!user || !user.mailList || user.mailList.length <= 0) {
+ return "Mail list empty";
+ }
+
+ return user.mailList.every(email =>
+ /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)
+ )
+ ? undefined
+ : "Some Mails not Valid";
+}
diff --git a/examples/index.html b/examples/index.html
index c9eefbb..1cb697f 100644
--- a/examples/index.html
+++ b/examples/index.html
@@ -21,16 +21,19 @@
+
+
+
+
-
diff --git a/package-lock.json b/package-lock.json
index d616cd9..6ac4d2a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "usetheform",
- "version": "3.3.0",
+ "version": "3.4.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -124,27 +124,6 @@
"@babel/types": "^7.10.4"
}
},
- "@babel/helper-builder-react-jsx": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
- "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-builder-react-jsx-experimental": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.11.tgz",
- "integrity": "sha512-4oGVOekPI8dh9JphkPXC68iIuP6qp/RPbaPmorRmEFbRAHZjSqxPjqHudn18GVDPgCuFM/KdFXc63C17Ygfa9w==",
- "dev": true,
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.12.10",
- "@babel/helper-module-imports": "^7.12.5",
- "@babel/types": "^7.12.11"
- }
- },
"@babel/helper-compilation-targets": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz",
@@ -382,9 +361,9 @@
"dev": true
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz",
- "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==",
+ "version": "7.12.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz",
+ "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -688,9 +667,9 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz",
- "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==",
+ "version": "7.12.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz",
+ "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
@@ -898,26 +877,25 @@
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.11.tgz",
- "integrity": "sha512-5nWOw6mTylaFU72BdZfa0dP1HsGdY3IMExpxn8LBE8dNmkQjB+W+sR+JwIdtbzkPvVuFviT3zyNbSUkuVTVxbw==",
+ "version": "7.12.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz",
+ "integrity": "sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw==",
"dev": true,
"requires": {
- "@babel/helper-builder-react-jsx": "^7.10.4",
- "@babel/helper-builder-react-jsx-experimental": "^7.12.11",
+ "@babel/helper-annotate-as-pure": "^7.12.10",
+ "@babel/helper-module-imports": "^7.12.5",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-jsx": "^7.12.1"
+ "@babel/plugin-syntax-jsx": "^7.12.1",
+ "@babel/types": "^7.12.12"
}
},
"@babel/plugin-transform-react-jsx-development": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.11.tgz",
- "integrity": "sha512-5MvsGschXeXJsbzQGR/BH89ATMzCsM7rx95n+R7/852cGoK2JgMbacDw/A9Pmrfex4tArdMab0L5SBV4SB/Nxg==",
+ "version": "7.12.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz",
+ "integrity": "sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==",
"dev": true,
"requires": {
- "@babel/helper-builder-react-jsx-experimental": "^7.12.11",
- "@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-jsx": "^7.12.1"
+ "@babel/plugin-transform-react-jsx": "^7.12.12"
}
},
"@babel/plugin-transform-react-pure-annotations": {
@@ -1179,9 +1157,9 @@
}
},
"@babel/standalone": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.12.11.tgz",
- "integrity": "sha512-z+iFopDt0/8PUB8D0p7+95wYgXisRX6xi64fXCkpIRbkrA0nCf8t4yBBkSQ5YW/o9jPmmNhmX13OqsirloqdKQ==",
+ "version": "7.12.12",
+ "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.12.12.tgz",
+ "integrity": "sha512-sHuNDN9NvPHsDAmxPD3RpsIeqCoFSW+ySa6+3teInrYe9y0Gn5swLQ2ZE7Zk6L8eBBESZM2ob1l98qWauQfDMA==",
"dev": true
},
"@babel/template": {
@@ -1196,17 +1174,17 @@
}
},
"@babel/traverse": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz",
- "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==",
+ "version": "7.12.12",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz",
+ "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.12.10",
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/parser": "^7.12.10",
- "@babel/types": "^7.12.10",
+ "@babel/code-frame": "^7.12.11",
+ "@babel/generator": "^7.12.11",
+ "@babel/helper-function-name": "^7.12.11",
+ "@babel/helper-split-export-declaration": "^7.12.11",
+ "@babel/parser": "^7.12.11",
+ "@babel/types": "^7.12.12",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.19"
@@ -1230,9 +1208,9 @@
}
},
"@babel/types": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz",
- "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==",
+ "version": "7.12.12",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz",
+ "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.12.11",
@@ -1414,17 +1392,17 @@
},
"dependencies": {
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
},
"@eslint/eslintrc": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz",
- "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
+ "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
@@ -1434,7 +1412,7 @@
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
"js-yaml": "^3.13.1",
- "lodash": "^4.17.19",
+ "lodash": "^4.17.20",
"minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1"
},
@@ -1513,14 +1491,22 @@
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true
+ }
}
},
"camel-case": {
@@ -1542,9 +1528,9 @@
}
},
"@graphql-tools/delegate": {
- "version": "7.0.8",
- "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.8.tgz",
- "integrity": "sha512-pS1wci7ZxzdCITRrMI66UA+6/E0Z1Yczd3QxJBDb4Kp0nTGy1xy7enGa0+i55EmCvKvuwyx+tzXzwA1fNGRJzg==",
+ "version": "7.0.9",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.9.tgz",
+ "integrity": "sha512-nlelOb354cyweV+SpTXkoGZHKgJ1PwPkHWq/0RXM5LllQsR3OrSQKKWMrd1g9dyawEZbadCF3fDJJWSQ4HOg2g==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
@@ -1553,18 +1539,18 @@
"@graphql-tools/utils": "^7.1.6",
"dataloader": "2.0.0",
"is-promise": "4.0.0",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
}
},
"camel-case": {
@@ -1578,33 +1564,33 @@
}
},
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
},
"@graphql-tools/graphql-file-loader": {
- "version": "6.2.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.6.tgz",
- "integrity": "sha512-L+RdYl5C6+X0zdOTUotY0K5zwqvSGpqI/qcZpVvCDenoAcVTyaNLmnd/ViErwedhCaGqAAV0wI1nPtyKFPlMUg==",
+ "version": "6.2.7",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz",
+ "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==",
"dev": true,
"requires": {
- "@graphql-tools/import": "^6.2.5",
+ "@graphql-tools/import": "^6.2.6",
"@graphql-tools/utils": "^7.0.0",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
}
},
"camel-case": {
@@ -1618,21 +1604,21 @@
}
},
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
},
"@graphql-tools/import": {
- "version": "6.2.5",
- "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.5.tgz",
- "integrity": "sha512-ZGXT5tDod7m+LO38fc+o0JzR1LstL0RF35HKEWoUdxRIVaaeYH9VMuan9Gn+9M9RDME3RnzEa9aGzf9ATj8bTA==",
+ "version": "6.2.6",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.6.tgz",
+ "integrity": "sha512-/0H/bDjNK1MnKonk8fMbB7wIYU6QLCwbQOHtSHbFJ4j2qki5CqfAxpF+fGX6KovDtkdigcgRMvSKKi14oiuHPA==",
"dev": true,
"requires": {
"resolve-from": "5.0.0",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
},
"dependencies": {
"resolve-from": {
@@ -1642,9 +1628,9 @@
"dev": true
},
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
@@ -1660,14 +1646,22 @@
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true
+ }
}
},
"camel-case": {
@@ -1706,14 +1700,22 @@
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true
+ }
}
},
"camel-case": {
@@ -1764,25 +1766,25 @@
}
},
"@graphql-tools/merge": {
- "version": "6.2.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.6.tgz",
- "integrity": "sha512-G6x0QlIzFHoJ3dyF9a4gxmBtaEYJ+EoAAGqXHsE/drRr58K1jscQdfKZdF1wZWZgxkgakHqgt1+oFMeQg/O6ug==",
+ "version": "6.2.7",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.7.tgz",
+ "integrity": "sha512-9acgDkkYeAHpuqhOa3E63NZPCX/iWo819Q320sCCMkydF1xgx0qCRYz/V03xPdpQETKRqBG2i2N2csneeEYYig==",
"dev": true,
"requires": {
"@graphql-tools/schema": "^7.0.0",
"@graphql-tools/utils": "^7.0.0",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
}
},
"camel-case": {
@@ -1796,9 +1798,9 @@
}
},
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
@@ -1814,14 +1816,22 @@
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true
+ }
}
},
"camel-case": {
@@ -1843,9 +1853,9 @@
}
},
"@graphql-tools/url-loader": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.7.1.tgz",
- "integrity": "sha512-7NJ1G5diJAuWYZszQf0mNwPipVMOjIIMteNkutdExBq4CgN0V1xa3/iC25CUrI7sZiq+D367zZNONmKf+3bA2Q==",
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.0.tgz",
+ "integrity": "sha512-x4f93UnH7kNr9iHFpJHL6kYWogRFlxMEnXybHS9xNCFd08+ftMO22bUb8esnFsyNrtMMlkLtshDSyNb3LbIMQg==",
"dev": true,
"requires": {
"@graphql-tools/delegate": "^7.0.1",
@@ -1856,26 +1866,26 @@
"eventsource": "1.0.7",
"extract-files": "9.0.0",
"graphql-upload": "^11.0.0",
- "graphql-ws": "3.1.0",
+ "graphql-ws": "4.1.0",
"is-promise": "4.0.0",
"isomorphic-form-data": "2.0.0",
"isomorphic-ws": "4.0.1",
"sse-z": "0.3.0",
"sync-fetch": "0.3.0",
- "tslib": "~2.0.1",
+ "tslib": "~2.1.0",
"valid-url": "1.0.9",
- "ws": "7.4.1"
+ "ws": "7.4.2"
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
}
},
"camel-case": {
@@ -1889,15 +1899,9 @@
}
},
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
- "dev": true
- },
- "ws": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz",
- "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
@@ -1940,27 +1944,35 @@
}
},
"@graphql-tools/wrap": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.4.tgz",
- "integrity": "sha512-txBs0W4k3WR86aEzBYXtKdGeeUXCNdRNxjQA/95T6ywNYoM8pw2mvpoXrWOvzbeaH3zwhbHY7kwii4atrC9irg==",
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz",
+ "integrity": "sha512-KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==",
"dev": true,
"requires": {
"@graphql-tools/delegate": "^7.0.7",
"@graphql-tools/schema": "^7.1.2",
- "@graphql-tools/utils": "^7.1.4",
+ "@graphql-tools/utils": "^7.2.1",
"is-promise": "4.0.0",
"tslib": "~2.0.1"
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "dev": true
+ }
}
},
"camel-case": {
@@ -2045,40 +2057,6 @@
"resolve-from": "^5.0.0"
},
"dependencies": {
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
@@ -2945,28 +2923,28 @@
}
},
"@nodelib/fs.scandir": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
- "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
+ "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
"dev": true,
"requires": {
- "@nodelib/fs.stat": "2.0.3",
+ "@nodelib/fs.stat": "2.0.4",
"run-parallel": "^1.1.9"
}
},
"@nodelib/fs.stat": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
- "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
+ "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
"dev": true
},
"@nodelib/fs.walk": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
- "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
+ "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
"dev": true,
"requires": {
- "@nodelib/fs.scandir": "2.1.3",
+ "@nodelib/fs.scandir": "2.1.4",
"fastq": "^1.6.0"
}
},
@@ -2988,6 +2966,12 @@
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -3079,9 +3063,9 @@
}
},
"@rollup/plugin-node-resolve": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.0.1.tgz",
- "integrity": "sha512-ltlsj/4Bhwwhb+Nb5xCz/6vieuEj2/BAkkqVIKmZwC7pIdl8srmgmglE4S0jFlZa32K4qvdQ6NHdmpRKD/LwoQ==",
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.0.tgz",
+ "integrity": "sha512-ouBBppRdWJKCllDXGzJ7ZIkYbaq+5TmyP0smt1vdJCFfoZhLi31vhpmjLhyo8lreHf4RoeSNllaWrvSqHpHRog==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^3.1.0",
@@ -3123,9 +3107,9 @@
},
"dependencies": {
"@hapi/hoek": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz",
- "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==",
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz",
+ "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==",
"dev": true
}
}
@@ -3177,9 +3161,9 @@
}
},
"@sinonjs/commons": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz",
- "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==",
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz",
+ "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
@@ -3210,9 +3194,9 @@
}
},
"@testing-library/dom": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.0.tgz",
- "integrity": "sha512-0hhuJSmw/zLc6ewR9cVm84TehuTd7tbqBX9pRNSp8znJ9gTmSgesdbiGZtt8R6dL+2rgaPFp9Yjr7IU1HWm49w==",
+ "version": "7.29.4",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.4.tgz",
+ "integrity": "sha512-CtrJRiSYEfbtNGtEsd78mk1n1v2TUbeABlNIcOCJdDfkN5/JTOwQEbbQpoSRxGqzcWPgStMvJ4mNolSuBRv1NA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
@@ -3277,9 +3261,9 @@
}
},
"@testing-library/react": {
- "version": "11.2.2",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.2.tgz",
- "integrity": "sha512-jaxm0hwUjv+hzC+UFEywic7buDC9JQ1q3cDsrWVSDAPmLotfA6E6kUHlYm/zOeGCac6g48DR36tFHxl7Zb+N5A==",
+ "version": "11.2.3",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.3.tgz",
+ "integrity": "sha512-BirBUGPkTW28ULuCwIbYo0y2+0aavHczBT6N9r3LrsswEW3pg25l1wgoE7I8QBIy1upXWkwKpYdWY7NYYP0Bxw==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
@@ -3287,9 +3271,9 @@
}
},
"@testing-library/user-event": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.6.0.tgz",
- "integrity": "sha512-FNEH/HLmOk5GO70I52tKjs7WvGYckeE/SrnLX/ip7z2IGbffyd5zOUM1tZ10vsTphqm+VbDFI0oaXu0wcfQsAQ==",
+ "version": "12.6.2",
+ "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.6.2.tgz",
+ "integrity": "sha512-4OsiTSo2vbQm+eOnm1un8b9i2Re4mn+D7d7ET6HXtzYKY7vPe3O01iYKRmSW9vS5mNrQcCLwvRhVq1gWs5YGKA==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5"
@@ -3328,9 +3312,9 @@
"dev": true
},
"@types/aria-query": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz",
- "integrity": "sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz",
+ "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==",
"dev": true
},
"@types/babel__core": {
@@ -3466,9 +3450,9 @@
"dev": true
},
"@types/http-proxy": {
- "version": "1.17.4",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz",
- "integrity": "sha512-IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==",
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz",
+ "integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -3499,9 +3483,9 @@
}
},
"@types/json-schema": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz",
- "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==",
+ "version": "7.0.7",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
+ "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
"dev": true
},
"@types/json5": {
@@ -3511,9 +3495,9 @@
"dev": true
},
"@types/lodash": {
- "version": "4.14.165",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz",
- "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==",
+ "version": "4.14.168",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz",
+ "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==",
"dev": true
},
"@types/lodash.curry": {
@@ -3556,15 +3540,15 @@
}
},
"@types/node": {
- "version": "14.14.14",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.14.tgz",
- "integrity": "sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ==",
+ "version": "14.14.22",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz",
+ "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==",
"dev": true
},
"@types/node-fetch": {
- "version": "2.5.7",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz",
- "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==",
+ "version": "2.5.8",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz",
+ "integrity": "sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -3603,9 +3587,9 @@
"dev": true
},
"@types/prettier": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz",
- "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==",
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz",
+ "integrity": "sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA==",
"dev": true
},
"@types/prop-types": {
@@ -3641,9 +3625,9 @@
},
"dependencies": {
"csstype": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz",
- "integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz",
+ "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==",
"dev": true
}
}
@@ -3734,9 +3718,9 @@
}
},
"@types/yargs-parser": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
- "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
+ "version": "20.2.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
+ "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
"dev": true
},
"@types/yoga-layout": {
@@ -4138,6 +4122,46 @@
"dev": true,
"requires": {
"string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
}
},
"ansi-colors": {
@@ -4605,39 +4629,12 @@
"dev": true
},
"axios": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
- "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"dev": true,
"requires": {
- "follow-redirects": "1.5.10",
- "is-buffer": "^2.0.2"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "follow-redirects": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
- "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
- "dev": true,
- "requires": {
- "debug": "=3.1.0"
- }
- },
- "is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true
- }
+ "follow-redirects": "^1.10.0"
}
},
"axobject-query": {
@@ -4806,25 +4803,6 @@
"pkg-dir": "^4.1.0"
}
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
"make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -4834,21 +4812,6 @@
"semver": "^6.0.0"
}
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -5026,9 +4989,9 @@
}
},
"babel-plugin-remove-graphql-queries": {
- "version": "2.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.13.0.tgz",
- "integrity": "sha512-6sL3JVKDa3OjXtmBYrr467BnQeUjNI7p2dy+aBwbB8WqChHLJOFh5+lxfzC0z/7hBehqmWpBV7xHfZdIP1lAzQ==",
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.15.0.tgz",
+ "integrity": "sha512-4wzmihZGsAESRZsOHGq7XdNyfpeLEF+tvugt7LkGWYJK/lFbwwgGO1DV7T9m9QktgVG+Fku81MrmjuCCCmSf/A==",
"dev": true
},
"babel-plugin-syntax-jsx": {
@@ -5064,9 +5027,9 @@
}
},
"babel-preset-gatsby": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.9.0.tgz",
- "integrity": "sha512-nYVbydGWnVDnSUX4IPz1QCbwuL1Xfw+25p/rwyDtYntbtLyON3Klrn3jDeZB8EMts2EoTV9OLrP0G36GT0QQog==",
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.9.1.tgz",
+ "integrity": "sha512-J/2e5qn6G0Sn1YF1MGOMfYJrgaKAEUXbr52v06Y24buHdj52HUcftF8/xspSpBADLP/0MHt053AHFOOJvA9BzA==",
"dev": true,
"requires": {
"@babel/plugin-proposal-class-properties": "^7.12.1",
@@ -5081,7 +5044,7 @@
"babel-plugin-dynamic-import-node": "^2.3.3",
"babel-plugin-macros": "^2.8.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
- "gatsby-core-utils": "^1.7.0",
+ "gatsby-core-utils": "^1.7.1",
"gatsby-legacy-polyfills": "^0.4.0"
}
},
@@ -5095,24 +5058,6 @@
"babel-preset-current-node-syntax": "^1.0.0"
}
},
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true,
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
- },
- "dependencies": {
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
- "dev": true
- }
- }
- },
"backo2": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
@@ -5455,44 +5400,12 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -5769,16 +5682,16 @@
}
},
"browserslist": {
- "version": "4.16.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz",
- "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==",
+ "version": "4.16.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz",
+ "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001165",
+ "caniuse-lite": "^1.0.30001173",
"colorette": "^1.2.1",
- "electron-to-chromium": "^1.3.621",
+ "electron-to-chromium": "^1.3.634",
"escalade": "^3.1.1",
- "node-releases": "^1.1.67"
+ "node-releases": "^1.1.69"
}
},
"bs-recipes": {
@@ -5845,9 +5758,9 @@
"dev": true
},
"builtin-modules": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz",
- "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
+ "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==",
"dev": true
},
"builtin-status-codes": {
@@ -6002,13 +5915,13 @@
}
},
"call-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
- "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.0"
+ "get-intrinsic": "^1.0.2"
}
},
"caller-callsite": {
@@ -6095,9 +6008,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001168",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz",
- "integrity": "sha512-P2zmX7swIXKu+GMMR01TWa4csIKELTNnZKc+f1CjebmZJQtTAEXmpQSoKVJVVcvPGAA0TEYTOUp3VehavZSFPQ==",
+ "version": "1.0.30001179",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz",
+ "integrity": "sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA==",
"dev": true
},
"capitalize": {
@@ -6236,7 +6149,25 @@
"lodash.some": "^4.4.0"
},
"dependencies": {
- "dom-serializer": {
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "dev": true
+ },
+ "dom-serializer": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
"integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
@@ -6246,6 +6177,16 @@
"entities": "^1.1.1"
}
},
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
"entities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
@@ -6261,14 +6202,14 @@
"dev": true
},
"chokidar": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
- "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
"dev": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
- "fsevents": "~2.1.2",
+ "fsevents": "~2.3.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@@ -6287,9 +6228,9 @@
}
},
"binary-extensions": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
- "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
"braces": {
@@ -6458,44 +6399,6 @@
"integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==",
"dev": true
},
- "cli-table3": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
- "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
- "dev": true,
- "requires": {
- "colors": "^1.1.2",
- "object-assign": "^4.1.0",
- "string-width": "^2.1.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
- }
- },
"cli-width": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
@@ -6598,29 +6501,23 @@
}
},
"cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
"strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "ansi-regex": "^5.0.0"
}
}
}
@@ -6737,13 +6634,6 @@
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
"dev": true
},
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "dev": true,
- "optional": true
- },
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -6897,6 +6787,69 @@
"yargs": "^13.3.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
"rxjs": {
"version": "6.6.3",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
@@ -6906,6 +6859,26 @@
"tslib": "^1.9.0"
}
},
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
"supports-color": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
@@ -6915,6 +6888,23 @@
"has-flag": "^3.0.0"
}
},
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
@@ -6932,6 +6922,16 @@
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
}
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -7061,21 +7061,22 @@
"dev": true
},
"contentful-management": {
- "version": "5.28.0",
- "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-5.28.0.tgz",
- "integrity": "sha512-o+qihN3zrD6+/BT/e8n26jl/zQvmV6+9S6NY5QDmzM+IaiSeCk6yvPMq74s+IZT9mOS54igl6qFTbeIpdJ9FDA==",
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/contentful-management/-/contentful-management-7.5.2.tgz",
+ "integrity": "sha512-z6Am3IBTqjTqlLx7kE/5ykHX2HOZL/KmPGjmn3UrxRTaiiU62YNSIQGys8jdprkErWNNwxjMNstwGZzj/iC0CQ==",
"dev": true,
"requires": {
- "axios": "^0.19.0",
- "contentful-sdk-core": "^6.4.0",
- "lodash": "^4.17.11",
- "type-fest": "0.15.1"
+ "axios": "^0.21.0",
+ "contentful-sdk-core": "^6.7.0",
+ "fast-copy": "^2.1.0",
+ "lodash.isplainobject": "^4.0.6",
+ "type-fest": "0.20.2"
},
"dependencies": {
"type-fest": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.15.1.tgz",
- "integrity": "sha512-n+UXrN8i5ioo7kqT/nF8xsEzLaqFra7k32SEsSPwvXVGyAcRgV/FUQN/sgfptJTR1oRmmq7z4IXMFSM7im7C9A==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
}
}
@@ -7091,9 +7092,9 @@
},
"dependencies": {
"qs": {
- "version": "6.9.4",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz",
- "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==",
+ "version": "6.9.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
+ "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
"dev": true
}
}
@@ -7187,96 +7188,12 @@
"yargs": "^16.1.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
"mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
- "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
- "dev": true
- },
"yargs": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
@@ -7291,12 +7208,6 @@
"y18n": "^5.0.5",
"yargs-parser": "^20.2.2"
}
- },
- "yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true
}
}
},
@@ -7307,12 +7218,12 @@
"dev": true
},
"core-js-compat": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz",
- "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz",
+ "integrity": "sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==",
"dev": true,
"requires": {
- "browserslist": "^4.15.0",
+ "browserslist": "^4.16.1",
"semver": "7.0.0"
},
"dependencies": {
@@ -7325,9 +7236,9 @@
}
},
"core-js-pure": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.1.tgz",
- "integrity": "sha512-Se+LaxqXlVXGvmexKGPvnUIYC1jwXu1H6Pkyb3uBM5d8/NELMYCHs/4/roD7721NxrTLyv7e5nXd5/QLBO+10g==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.3.tgz",
+ "integrity": "sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA==",
"dev": true
},
"core-util-is": {
@@ -7360,9 +7271,9 @@
},
"dependencies": {
"parse-json": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz",
- "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -7414,9 +7325,9 @@
}
},
"create-gatsby": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-0.2.1.tgz",
- "integrity": "sha512-TYg5jfi97GWCuotU2otZUqNtNBmjIZTHlW1RE49JDK/QujtJ4pur9cp7oFJm9QaOqeiH+oq1/LK7JFzq9B44HA==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/create-gatsby/-/create-gatsby-0.4.0.tgz",
+ "integrity": "sha512-nP8JRnyl6294j4tbbvq+i1afodGpi7Mq/QokFcxrRBO8KAZZS3RQViPVszofAUtnZr9qFyXhqZ4CO0gvKSD3kw==",
"dev": true
},
"create-hash": {
@@ -7578,15 +7489,15 @@
}
},
"css-select": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
- "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
"dev": true,
"requires": {
- "boolbase": "~1.0.0",
- "css-what": "2.1",
- "domutils": "1.5.1",
- "nth-check": "~1.0.1"
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
}
},
"css-select-base-adapter": {
@@ -7624,9 +7535,9 @@
}
},
"css-what": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
- "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
"dev": true
},
"cssesc": {
@@ -8183,12 +8094,6 @@
"repeat-string": "^1.5.4"
}
},
- "detect-indent": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
- "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
- "dev": true
- },
"detect-newline": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz",
@@ -8424,16 +8329,116 @@
"yargs": "^13.3.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
- "yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+ "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
"dev": true,
"requires": {
"cliui": "^5.0.0",
@@ -8447,6 +8452,16 @@
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
}
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -8488,22 +8503,35 @@
"yargs": "^13.3.0"
},
"dependencies": {
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dev": true,
"requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
}
},
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -8515,6 +8543,12 @@
"universalify": "^0.1.0"
}
},
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
"jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
@@ -8525,27 +8559,65 @@
}
},
"locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"dev": true,
"requires": {
- "p-locate": "^4.1.0"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
"p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "p-limit": "^2.2.0"
+ "p-limit": "^2.0.0"
}
},
"path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
"dev": true
},
"yargs": {
@@ -8574,33 +8646,18 @@
"requires": {
"locate-path": "^3.0.0"
}
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
}
}
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -8750,9 +8807,9 @@
}
},
"domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
"dev": true,
"requires": {
"dom-serializer": "0",
@@ -8842,9 +8899,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.628",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.628.tgz",
- "integrity": "sha512-fmhO4YGo/kapy+xL9Eq/cZwDASaTHZu3psIFYo4yc+RY1LzbZr84xjKlDImDrlrmWhOxsrDi98nX097U/xK/cQ==",
+ "version": "1.3.642",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz",
+ "integrity": "sha512-cev+jOrz/Zm1i+Yh334Hed6lQVOkkemk2wRozfMF4MtTR7pxf3r3L5Rbd7uX1zMcEqVJ7alJBnJL7+JffkC6FQ==",
"dev": true
},
"elliptic": {
@@ -8877,9 +8934,9 @@
"dev": true
},
"emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"emojis-list": {
@@ -8970,9 +9027,9 @@
}
},
"engine.io-client": {
- "version": "3.4.4",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz",
- "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.0.tgz",
+ "integrity": "sha512-12wPRfMrugVw/DNyJk34GQ5vIVArEcVMXWugQGGuw2XxUSztFNmJggZmv8IZlLyEdnpO1QB9LkcjeWewO2vxtA==",
"dev": true,
"requires": {
"component-emitter": "~1.3.0",
@@ -8983,7 +9040,7 @@
"indexof": "0.0.1",
"parseqs": "0.0.6",
"parseuri": "0.0.6",
- "ws": "~6.1.0",
+ "ws": "~7.4.2",
"xmlhttprequest-ssl": "~1.5.4",
"yeast": "0.1.2"
},
@@ -9013,9 +9070,9 @@
}
},
"enhanced-resolve": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz",
- "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+ "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.2",
@@ -9113,23 +9170,25 @@
}
},
"es-abstract": {
- "version": "1.18.0-next.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
- "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
+ "version": "1.18.0-next.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz",
+ "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2",
"has": "^1.0.3",
"has-symbols": "^1.0.1",
"is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
+ "is-negative-zero": "^2.0.1",
"is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
+ "object-inspect": "^1.9.0",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
+ "object.assign": "^4.1.2",
+ "string.prototype.trimend": "^1.0.3",
+ "string.prototype.trimstart": "^1.0.3"
}
},
"es-to-primitive": {
@@ -9190,13 +9249,13 @@
}
},
"eslint": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz",
- "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz",
+ "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@eslint/eslintrc": "^0.2.2",
+ "@eslint/eslintrc": "^0.3.0",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -9220,7 +9279,7 @@
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
- "lodash": "^4.17.19",
+ "lodash": "^4.17.20",
"minimatch": "^3.0.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
@@ -9229,7 +9288,7 @@
"semver": "^7.2.1",
"strip-ansi": "^6.0.0",
"strip-json-comments": "^3.1.0",
- "table": "^5.2.3",
+ "table": "^6.0.4",
"text-table": "^0.2.0",
"v8-compile-cache": "^2.0.3"
},
@@ -9249,6 +9308,12 @@
"color-convert": "^2.0.1"
}
},
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
@@ -9328,9 +9393,9 @@
}
},
"flatted": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz",
- "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz",
+ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==",
"dev": true
},
"glob-parent": {
@@ -9363,6 +9428,12 @@
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
},
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
"levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -9408,6 +9479,17 @@
"lru-cache": "^6.0.0"
}
},
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ },
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -9432,6 +9514,32 @@
"has-flag": "^4.0.0"
}
},
+ "table": {
+ "version": "6.0.7",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz",
+ "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==",
+ "dev": true,
+ "requires": {
+ "ajv": "^7.0.2",
+ "lodash": "^4.17.20",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz",
+ "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ }
+ }
+ },
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -9456,9 +9564,9 @@
}
},
"eslint-config-prettier": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz",
- "integrity": "sha512-8Y8lGLVPPZdaNA7JXqnvETVC7IiVRgAP6afQu9gOQRn90YY3otMNh+x7Vr2vMePQntF+5erdSUBqSzCmU/AxaQ==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz",
+ "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==",
"dev": true
},
"eslint-config-react-app": {
@@ -9557,6 +9665,12 @@
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
"dev": true
},
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
"pkg-dir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
@@ -9685,6 +9799,12 @@
"error-ex": "^1.2.0"
}
},
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
"path-type": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
@@ -9761,18 +9881,18 @@
}
},
"eslint-plugin-prettier": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.0.tgz",
- "integrity": "sha512-tMTwO8iUWlSRZIwS9k7/E4vrTsfvsrcM5p1eftyuqWH25nKsz/o6/54I7jwQ/3zobISyC7wMy9ZsFwgTxOcOpQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz",
+ "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
}
},
"eslint-plugin-react": {
- "version": "7.21.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz",
- "integrity": "sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g==",
+ "version": "7.22.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz",
+ "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==",
"dev": true,
"requires": {
"array-includes": "^3.1.1",
@@ -10361,9 +10481,9 @@
"dev": true
},
"fast-copy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.0.tgz",
- "integrity": "sha512-j4VxAVJsu9NHveYrIj0+nJxXe2lOlibKTlyy0jH8DBwcuV6QyXTy0zTqZhmMKo7EYvuaUk/BFj/o6NU6grE5ag==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.1.tgz",
+ "integrity": "sha512-Qod3DdRgFZ8GUIM6ygeoZYpQ0QLW9cf/FS9KhhjlYggcSZXWAemAw8BOCO5LuYCrR3Uj3qXDVTUzOUwG8C7beQ==",
"dev": true
},
"fast-deep-equal": {
@@ -10379,9 +10499,9 @@
"dev": true
},
"fast-glob": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz",
- "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
+ "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
@@ -10477,9 +10597,9 @@
"dev": true
},
"fastq": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz",
- "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz",
+ "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==",
"dev": true,
"requires": {
"reusify": "^1.0.4"
@@ -10565,9 +10685,9 @@
}
},
"file-type": {
- "version": "16.0.1",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.0.1.tgz",
- "integrity": "sha512-rwXqMZiizJd0uXZE52KN2DtPBAV99qz9cUTHHt8pSyaQzgVYrHJGR0qt2p4N/yzHEL/tGrlB/TgawQb4Fnxxyw==",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.2.0.tgz",
+ "integrity": "sha512-1Wwww3mmZCMmLjBfslCluwt2mxH80GsAXYrvPnfQ42G1EGWag336kB1iyCgyn7UXiKY3cJrNykXPrCwA7xb5Ag==",
"dev": true,
"requires": {
"readable-web-to-node-stream": "^3.0.0",
@@ -10638,21 +10758,22 @@
"dev": true
},
"find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"requires": {
- "locate-path": "^3.0.0"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
}
},
"find-versions": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
- "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz",
+ "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==",
"dev": true,
"requires": {
- "semver-regex": "^2.0.0"
+ "semver-regex": "^3.1.2"
}
},
"flat-cache": {
@@ -10699,6 +10820,15 @@
"integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==",
"dev": true
},
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -10816,9 +10946,9 @@
"dev": true
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz",
+ "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==",
"dev": true,
"optional": true
},
@@ -11100,16 +11230,16 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
"dev": true
},
"core-js": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz",
- "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz",
+ "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==",
"dev": true
},
"cross-spawn": {
@@ -11143,17 +11273,17 @@
}
},
"engine.io": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz",
- "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==",
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz",
+ "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==",
"dev": true,
"requires": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
- "cookie": "0.3.1",
+ "cookie": "~0.4.1",
"debug": "~4.1.0",
"engine.io-parser": "~2.2.0",
- "ws": "^7.1.2"
+ "ws": "~7.4.2"
},
"dependencies": {
"debug": {
@@ -11329,16 +11459,6 @@
"pkg-dir": "^4.1.0"
}
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -11351,9 +11471,9 @@
}
},
"gatsby-cli": {
- "version": "2.16.1",
- "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.16.1.tgz",
- "integrity": "sha512-LIuvOCfkGCNkdApb0UpqwyhHhmfn0weEQ2ZVW07/DLbqOJ8bzilzoCZHCBNZUKiSSQwADaInLcr5L2/EbEZzZw==",
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.18.0.tgz",
+ "integrity": "sha512-IkO1ZXCzCbwmepg7iqwFIlhyFhFuTveP2ibyhBS386YY6gSoAvuRLYfHBy5L5z8e0US2W0F1cbe4NguiQS4qdg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
@@ -11365,14 +11485,14 @@
"common-tags": "^1.8.0",
"configstore": "^5.0.1",
"convert-hrtime": "^3.0.0",
- "create-gatsby": "^0.2.1",
+ "create-gatsby": "^0.4.0",
"envinfo": "^7.7.3",
"execa": "^3.4.0",
"fs-exists-cached": "^1.0.0",
"fs-extra": "^8.1.0",
- "gatsby-core-utils": "^1.7.0",
- "gatsby-recipes": "^0.6.0",
- "gatsby-telemetry": "^1.7.0",
+ "gatsby-core-utils": "^1.9.0",
+ "gatsby-recipes": "^0.8.0",
+ "gatsby-telemetry": "^1.9.0",
"hosted-git-info": "^3.0.6",
"is-valid-path": "^0.1.1",
"lodash": "^4.17.20",
@@ -11393,7 +11513,7 @@
"uuid": "3.4.0",
"yargs": "^15.4.1",
"yoga-layout-prebuilt": "^1.9.6",
- "yurnalist": "^1.1.2"
+ "yurnalist": "^2.1.0"
},
"dependencies": {
"cross-spawn": {
@@ -11574,15 +11694,6 @@
"json-buffer": "3.0.0"
}
},
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
"make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -11611,9 +11722,9 @@
}
},
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz",
+ "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==",
"dev": true
},
"mimic-fn": {
@@ -11673,39 +11784,6 @@
"integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
"dev": true
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "dev": true,
- "requires": {
- "better-assert": "~1.0.0"
- }
- },
- "parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "dev": true,
- "requires": {
- "better-assert": "~1.0.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"path-key": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
@@ -11758,16 +11836,16 @@
"dev": true
},
"socket.io": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz",
- "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz",
+ "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==",
"dev": true,
"requires": {
"debug": "~4.1.0",
- "engine.io": "~3.4.0",
+ "engine.io": "~3.5.0",
"has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0",
- "socket.io-client": "2.3.0",
+ "socket.io-client": "2.4.0",
"socket.io-parser": "~3.4.0"
},
"dependencies": {
@@ -11779,7 +11857,54 @@
"requires": {
"ms": "^2.1.1"
}
- }
+ },
+ "socket.io-client": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz",
+ "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==",
+ "dev": true,
+ "requires": {
+ "backo2": "1.0.2",
+ "component-bind": "1.0.0",
+ "component-emitter": "~1.3.0",
+ "debug": "~3.1.0",
+ "engine.io-client": "~3.5.0",
+ "has-binary2": "~1.0.2",
+ "indexof": "0.0.1",
+ "parseqs": "0.0.6",
+ "parseuri": "0.0.6",
+ "socket.io-parser": "~3.3.0",
+ "to-array": "0.1.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "socket.io-parser": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
+ "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "~1.3.0",
+ "debug": "~3.1.0",
+ "isarray": "2.0.1"
+ }
+ }
+ }
+ }
}
},
"socket.io-client": {
@@ -11804,6 +11929,12 @@
"to-array": "0.1.4"
},
"dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "dev": true
+ },
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -11813,10 +11944,82 @@
"ms": "^2.1.1"
}
},
+ "engine.io-client": {
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz",
+ "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==",
+ "dev": true,
+ "requires": {
+ "component-emitter": "~1.3.0",
+ "component-inherit": "0.0.3",
+ "debug": "~3.1.0",
+ "engine.io-parser": "~2.2.0",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "parseqs": "0.0.6",
+ "parseuri": "0.0.6",
+ "ws": "~6.1.0",
+ "xmlhttprequest-ssl": "~1.5.4",
+ "yeast": "0.1.2"
+ },
+ "dependencies": {
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "parseqs": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz",
+ "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==",
+ "dev": true
+ },
+ "parseuri": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz",
+ "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==",
+ "dev": true
+ }
+ }
+ },
+ "parseqs": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+ "dev": true,
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
+ "parseuri": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+ "dev": true,
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
"socket.io-parser": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz",
- "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
+ "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
"dev": true,
"requires": {
"component-emitter": "~1.3.0",
@@ -11846,6 +12049,15 @@
"dev": true
}
}
+ },
+ "ws": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
+ "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
}
}
},
@@ -11860,6 +12072,12 @@
"isarray": "2.0.1"
},
"dependencies": {
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
+ "dev": true
+ },
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -11877,6 +12095,12 @@
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
"dev": true
},
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -11924,19 +12148,13 @@
"requires": {
"isexe": "^2.0.0"
}
- },
- "ws": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz",
- "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==",
- "dev": true
}
}
},
"gatsby-core-utils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.7.0.tgz",
- "integrity": "sha512-DYYkmlgpfkQBuc/vWEkSmp1xh7LGI00HA0AzH2U8AblrqAff3JBezeS3v8thkeuOm7FhlwkZGPNza+PIHYcwKA==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.9.0.tgz",
+ "integrity": "sha512-AWq9E+rBY+fWJrhdOx0rn/LlZ0eCjpqLYlDcUmLZ5NjwLARgkEXNf4JsvDETLtThcNlSOibEMQex8arsYatmkA==",
"dev": true,
"requires": {
"ci-info": "2.0.0",
@@ -11989,9 +12207,9 @@
}
},
"gatsby-link": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-2.8.0.tgz",
- "integrity": "sha512-b+VvvsnIyukn9asDa2U9I8zjq3SL6KX53Ln7KwR0qzNwtK//GSTIifrjREtTLS3xBbwCRKkZ2eVmc5NWeNkiAw==",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-2.10.0.tgz",
+ "integrity": "sha512-IErX4EOJBCMIJ1IhcTRu13kgayRCv+HCZyK9mr0VddgtXFXHvnKLWQvYDZHlBj9PS1KShLHzNCZ9lOEJ+dUIRw==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
@@ -12000,16 +12218,16 @@
}
},
"gatsby-page-utils": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-0.6.0.tgz",
- "integrity": "sha512-DG1uFBdru3Lvvp13HsDIgssbeNaO9ydirEu5OO4s6BiYHnropABEkjFow2FXJ6D451fm4i+KFI1JbVtKOiu8qg==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-0.8.0.tgz",
+ "integrity": "sha512-u93fe4fwoAanDw/jQMbkeCHCQheSs2hTRmBLhe0gjozbxfxtojQRuqFvnoruzuiYSVQ3JZ/x8/arsWB5lxmNWg==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
"bluebird": "^3.7.2",
"chokidar": "^3.4.3",
"fs-exists-cached": "^1.0.0",
- "gatsby-core-utils": "^1.7.0",
+ "gatsby-core-utils": "^1.9.0",
"glob": "^7.1.6",
"lodash": "^4.17.20",
"micromatch": "^4.0.2"
@@ -12096,9 +12314,9 @@
"dev": true
},
"gatsby-plugin-mdx": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.7.0.tgz",
- "integrity": "sha512-lboU9RTrocrZ1U6cEJ/6sRtvxWDiBR6PgrEzhG5JcWvA6WwFz4Qz9M5amNKMN2QafN/pegohN6Wi9mkLczpdlQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.9.0.tgz",
+ "integrity": "sha512-Ne8Q9FOYCRirR9e+zNF5NjaL5x+IOej5w+QifWnSZwY00Ju4pL7msq7cIYlzUwM61V/fg8p5Kh3XLiDqXA7l5g==",
"dev": true,
"requires": {
"@babel/core": "^7.12.3",
@@ -12112,11 +12330,11 @@
"change-case": "^3.1.0",
"core-js": "^3.6.5",
"dataloader": "^1.4.0",
- "debug": "^4.1.1",
+ "debug": "^4.3.1",
"escape-string-regexp": "^1.0.5",
"eval": "^0.1.4",
"fs-extra": "^8.1.0",
- "gatsby-core-utils": "^1.7.0",
+ "gatsby-core-utils": "^1.9.0",
"gray-matter": "^4.0.2",
"json5": "^2.1.3",
"loader-utils": "^1.4.0",
@@ -12140,9 +12358,9 @@
},
"dependencies": {
"core-js": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz",
- "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==",
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz",
+ "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==",
"dev": true
},
"dataloader": {
@@ -12181,9 +12399,9 @@
}
},
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz",
+ "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==",
"dev": true
},
"ms": {
@@ -12204,17 +12422,17 @@
}
},
"gatsby-plugin-page-creator": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.7.1.tgz",
- "integrity": "sha512-rGFbwBy24pk9RX+4ekBdKkzX9Xkc42GD917DsroQ7hPc5fHAFnJ6a1wJPrAH1+frOHovGQFMCBdtrokAD/U1Aw==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.9.0.tgz",
+ "integrity": "sha512-GIZ9rEBeVLdyq82I5dguXm8HI8vaMPL5iKufNMtO7qRz9fXc00TONKCvI89V7jNB3q+dDAcQZbGK8tMSCz/MWg==",
"dev": true,
"requires": {
"@babel/traverse": "^7.12.5",
"@sindresorhus/slugify": "^1.1.0",
"chokidar": "^3.4.2",
"fs-exists-cached": "^1.0.0",
- "gatsby-page-utils": "^0.6.0",
- "gatsby-telemetry": "^1.7.0",
+ "gatsby-page-utils": "^0.8.0",
+ "gatsby-telemetry": "^1.9.0",
"globby": "^11.0.1",
"lodash": "^4.17.20"
},
@@ -12236,9 +12454,9 @@
"dev": true
},
"globby": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz",
- "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==",
+ "version": "11.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz",
+ "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==",
"dev": true,
"requires": {
"array-union": "^2.1.0",
@@ -12280,9 +12498,9 @@
}
},
"gatsby-plugin-typescript": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.9.0.tgz",
- "integrity": "sha512-PoyvCt1E2y0TnGH3KIadPeiPB3691iXPYW5S8o0nKam3PcVo1UXcyTK5CRFUgVpsLsfzFcI+2HJ+TDrANDTWNw==",
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/gatsby-plugin-typescript/-/gatsby-plugin-typescript-2.11.0.tgz",
+ "integrity": "sha512-CZuM3DW5vVBysQf9h775q6iM+Dusx4EKSnhZAsxUBo2CwWlcjTgCysStUe4SLqMS+x/FAx+ZpJxnnHX2LylQlg==",
"dev": true,
"requires": {
"@babel/core": "^7.12.3",
@@ -12291,7 +12509,7 @@
"@babel/plugin-proposal-optional-chaining": "^7.12.1",
"@babel/preset-typescript": "^7.12.1",
"@babel/runtime": "^7.12.5",
- "babel-plugin-remove-graphql-queries": "^2.13.0"
+ "babel-plugin-remove-graphql-queries": "^2.15.0"
}
},
"gatsby-plugin-utils": {
@@ -12304,18 +12522,18 @@
}
},
"gatsby-react-router-scroll": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-3.4.0.tgz",
- "integrity": "sha512-bk+9CIQPVvVwmwqHwXgkmuMVaoaqkl5mT6qnqzEsR+Tg1HuSk+5T42KE8KF6riO3mqI/13Lo6eEy0UGTlUKKdw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-3.6.0.tgz",
+ "integrity": "sha512-KhM3LFED6BlNWQHq2ctJ7Txj+p5wIQsx8mBDvkFFnU5jT7GaUXQRSwoMjoAWt7Dq/Q1TrFXZqgbTYIDZr33tlQ==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5"
}
},
"gatsby-recipes": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.6.0.tgz",
- "integrity": "sha512-YH1BFCbuMNuvfw/3+DbQk5GDVNnz+1eVNdaBtE8Fo/Sa7rAfuezHnGtaa2CASI3V7ZKI3D1U6HnhQNULlfSa7g==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.8.0.tgz",
+ "integrity": "sha512-AkH9up3nbEf9RaSCkEmPxfpCa7d2jtXVq23e27UsprY0H3sTEiydxWTF1f5spxEjfH7yzZKpCoN+MyfZ/ZZGZA==",
"dev": true,
"requires": {
"@babel/core": "^7.12.3",
@@ -12332,23 +12550,23 @@
"@hapi/joi": "^15.1.1",
"better-queue": "^3.8.10",
"chokidar": "^3.4.2",
- "contentful-management": "^5.26.3",
+ "contentful-management": "^7.5.1",
"cors": "^2.8.5",
- "debug": "^4.1.1",
+ "debug": "^4.3.1",
"detect-port": "^1.3.0",
"dotenv": "^8.2.0",
"execa": "^4.0.2",
"express": "^4.17.1",
"express-graphql": "^0.9.0",
"fs-extra": "^8.1.0",
- "gatsby-core-utils": "^1.7.0",
- "gatsby-telemetry": "^1.7.0",
+ "gatsby-core-utils": "^1.9.0",
+ "gatsby-telemetry": "^1.9.0",
"glob": "^7.1.6",
"graphql": "^14.6.0",
"graphql-compose": "^6.3.8",
"graphql-subscriptions": "^1.1.0",
"graphql-type-json": "^0.3.2",
- "hicat": "^0.7.0",
+ "hicat": "^0.8.0",
"is-binary-path": "^2.1.0",
"is-url": "^1.2.4",
"jest-diff": "^25.5.0",
@@ -12379,20 +12597,20 @@
},
"dependencies": {
"@graphql-tools/utils": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.6.tgz",
- "integrity": "sha512-vupjLA3lobKaqFsQJoPqaUhZ525F+SbqhAtZl/mug96EAjjGMi1KpZMqIMP+eyYlVQFgyV1Mej9LALrGU1c9SQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.4.tgz",
+ "integrity": "sha512-EDSb98dTWX8FngvayWejip1DutOl0wGtNbXC7a3CZf5fiJS7bGHQ/8cSlMhe9XaHwpLJCbAk/Ijnp/dYbXk33w==",
"dev": true,
"requires": {
"@ardatan/aggregate-error": "0.0.6",
"camel-case": "4.1.2",
- "tslib": "~2.0.1"
+ "tslib": "~2.1.0"
}
},
"binary-extensions": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
- "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
"camel-case": {
@@ -12414,16 +12632,6 @@
"ms": "2.1.2"
}
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -12453,36 +12661,12 @@
"graceful-fs": "^4.1.6"
}
},
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -12517,9 +12701,9 @@
}
},
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
},
"unist-util-is": {
@@ -12548,19 +12732,13 @@
"@types/unist": "^2.0.0",
"unist-util-is": "^4.0.0"
}
- },
- "ws": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz",
- "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==",
- "dev": true
}
}
},
"gatsby-source-filesystem": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-2.8.0.tgz",
- "integrity": "sha512-wZXwL/B+PvgSAi4Fkrw33yBk6FdDoz6g2mRfS6NxVVQotbA2oNe+jFc+IL0j9/cUMTItP3rW+8V8U9ufASQfAw==",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-2.10.0.tgz",
+ "integrity": "sha512-kf1D25wBe+mXa+c4C0HgI+5bwgEoTUQupP1q7nk4Q1+RC2mHlWSm3X+lNPWVfxg8MKNWrLmrX1GrXorW8cEtEQ==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
@@ -12568,7 +12746,7 @@
"chokidar": "^3.4.3",
"file-type": "^16.0.0",
"fs-extra": "^8.1.0",
- "gatsby-core-utils": "^1.7.0",
+ "gatsby-core-utils": "^1.9.0",
"got": "^9.6.0",
"md5-file": "^5.0.0",
"mime": "^2.4.6",
@@ -12599,17 +12777,17 @@
}
},
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz",
+ "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==",
"dev": true
}
}
},
"gatsby-telemetry": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.7.0.tgz",
- "integrity": "sha512-0hHskxnPV667snd6uSkZ32vKfBsv+9mFe0Pl3A9c9NC4HoKQlfmoluUTZr0nOjWdMMslz08XydzqxNdb6wB+oQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.9.0.tgz",
+ "integrity": "sha512-RWjA7/oG+Z2m/gNhv9/rvOjcKxSNm9n+PaVfTJGcQa5M3BTLwkf9tPSswpo8WAPu2kgnlql3bH12eKB61f5VAw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
@@ -12620,7 +12798,7 @@
"boxen": "^4.2.0",
"configstore": "^5.0.1",
"fs-extra": "^8.1.0",
- "gatsby-core-utils": "^1.7.0",
+ "gatsby-core-utils": "^1.9.0",
"git-up": "^4.0.2",
"is-docker": "^2.1.1",
"lodash": "^4.17.20",
@@ -12694,6 +12872,38 @@
"yargs": "^13.3.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -12705,6 +12915,12 @@
"universalify": "^0.1.0"
}
},
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
"jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
@@ -12714,6 +12930,68 @@
"graceful-fs": "^4.1.6"
}
},
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
@@ -12731,6 +13009,16 @@
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
}
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -12794,9 +13082,9 @@
"dev": true
},
"get-intrinsic": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
- "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz",
+ "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -13096,9 +13384,9 @@
},
"dependencies": {
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
@@ -13158,9 +13446,9 @@
}
},
"graphql-ws": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-3.1.0.tgz",
- "integrity": "sha512-zbex3FSiFz0iRgfkzDNWpOY/sYWoX+iZ5XUhakaDwOh99HSuk8rPt5suuxdXUVzEg5TGQ9rwzNaz/+mTPtS0yg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.1.0.tgz",
+ "integrity": "sha512-DxJP1y2YzCqVLy7DrQN0iuR2l48vMOBWukX2d/J9aN2o5x9un5psIIq/2UFRh91UGARmfvPH86y1p4qbC1dITg==",
"dev": true
},
"gray-matter": {
@@ -13545,27 +13833,19 @@
"dev": true
},
"hicat": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/hicat/-/hicat-0.7.0.tgz",
- "integrity": "sha1-pwTLP1fkn719OMLt16ujj/CzUmM=",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/hicat/-/hicat-0.8.0.tgz",
+ "integrity": "sha512-om8L9O5XwqeSdwl5NtHgrzK3wcF4fT9T4gb/NktoH8EyoZipas/tvUZLV48xT7fQfMYr9qvb0WEutqdf0LWSqA==",
"dev": true,
"requires": {
- "highlight.js": "^8.1.0",
- "minimist": "^0.2.0"
- },
- "dependencies": {
- "minimist": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.1.tgz",
- "integrity": "sha512-GY8fANSrTMfBVfInqJAY41QkOM+upUTytK1jZ0c8+3HdHrJxBJ3rF5i9moClXTE8uUSnUo8cAsCoxDXvSY4DHg==",
- "dev": true
- }
+ "highlight.js": "^10.4.1",
+ "minimist": "^1.2.5"
}
},
"highlight.js": {
- "version": "8.9.1",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-8.9.1.tgz",
- "integrity": "sha1-uKnFSTISqTkvAiK2SclhFJfr+4g=",
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz",
+ "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==",
"dev": true
},
"hmac-drbg": {
@@ -13643,9 +13923,9 @@
}
},
"html-entities": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.3.tgz",
- "integrity": "sha512-/VulV3SYni1taM7a4RMdceqzJWR39gpZHjBwUnsCFKWV/GJkD14CJ5F7eWcZozmHJK0/f/H5U3b3SiPkuvxMgg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
+ "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==",
"dev": true
},
"html-escaper": {
@@ -13750,9 +14030,9 @@
}
},
"http-parser-js": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz",
- "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz",
+ "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==",
"dev": true
},
"http-proxy": {
@@ -13822,18 +14102,18 @@
}
},
"husky": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.6.tgz",
- "integrity": "sha512-o6UjVI8xtlWRL5395iWq9LKDyp/9TE7XMOTvIpEVzW638UcGxTmV5cfel6fsk/jbZSTlvfGVJf2svFtybcIZag==",
+ "version": "4.3.8",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz",
+ "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"ci-info": "^2.0.0",
"compare-versions": "^3.6.0",
"cosmiconfig": "^7.0.0",
- "find-versions": "^3.2.0",
+ "find-versions": "^4.0.0",
"opencollective-postinstall": "^2.0.2",
- "pkg-dir": "^4.2.0",
+ "pkg-dir": "^5.0.0",
"please-upgrade-node": "^3.2.0",
"slash": "^3.0.0",
"which-pm-runs": "^1.0.0"
@@ -13887,12 +14167,12 @@
}
},
"find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"requires": {
- "locate-path": "^5.0.0",
+ "locate-path": "^6.0.0",
"path-exists": "^4.0.0"
}
},
@@ -13903,27 +14183,36 @@
"dev": true
},
"locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dev": true,
"requires": {
- "p-locate": "^4.1.0"
+ "p-locate": "^5.0.0"
}
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
"requires": {
- "p-limit": "^2.2.0"
+ "yocto-queue": "^0.1.0"
}
},
- "parse-json": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz",
- "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==",
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -13932,19 +14221,13 @@
"lines-and-columns": "^1.1.6"
}
},
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
+ "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
"dev": true,
"requires": {
- "find-up": "^4.0.0"
+ "find-up": "^5.0.0"
}
},
"slash": {
@@ -14058,9 +14341,9 @@
}
},
"import-fresh": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz",
- "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
"requires": {
"parent-module": "^1.0.0",
@@ -14248,12 +14531,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
"figures": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
@@ -14269,12 +14546,6 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
"mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
@@ -14309,17 +14580,6 @@
"tslib": "^1.9.0"
}
},
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -14509,15 +14769,6 @@
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
- "is-builtin-module": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.0.0.tgz",
- "integrity": "sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw==",
- "dev": true,
- "requires": {
- "builtin-modules": "^3.0.0"
- }
- },
"is-callable": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
@@ -14638,9 +14889,9 @@
"dev": true
},
"is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"is-generator-fn": {
@@ -15214,16 +15465,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -15261,30 +15502,6 @@
"yargs": "^15.4.1"
}
},
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -16776,9 +16993,9 @@
},
"dependencies": {
"@hapi/hoek": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz",
- "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==",
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz",
+ "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==",
"dev": true
},
"@hapi/topo": {
@@ -16882,12 +17099,6 @@
"psl": "^1.1.28",
"punycode": "^2.1.1"
}
- },
- "ws": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz",
- "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==",
- "dev": true
}
}
},
@@ -17106,16 +17317,6 @@
"lodash": "^4.17.14"
},
"dependencies": {
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -17135,30 +17336,6 @@
"requires": {
"graceful-fs": "^4.1.6"
}
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
}
}
},
@@ -17273,50 +17450,6 @@
"yargs": "16.2.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "axios": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
- "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
- "dev": true,
- "requires": {
- "follow-redirects": "^1.10.0"
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
@@ -17326,61 +17459,12 @@
"ms": "2.1.2"
}
},
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
- "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
- "dev": true
- },
"yargs": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
@@ -17395,23 +17479,16 @@
"y18n": "^5.0.5",
"yargs-parser": "^20.2.2"
}
- },
- "yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true
}
}
},
"locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
+ "p-locate": "^4.1.0"
}
},
"lock": {
@@ -17427,9 +17504,9 @@
"dev": true
},
"lodash-es": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz",
- "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==",
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz",
+ "integrity": "sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA==",
"dev": true
},
"lodash.assignin": {
@@ -17522,6 +17599,12 @@
"integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=",
"dev": true
},
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
+ "dev": true
+ },
"lodash.iteratee": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.iteratee/-/lodash.iteratee-4.7.0.tgz",
@@ -17582,12 +17665,6 @@
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
"dev": true
},
- "lodash.toarray": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
- "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=",
- "dev": true
- },
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@@ -17637,13 +17714,13 @@
}
},
"loud-rejection": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz",
- "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"dev": true,
"requires": {
"currently-unhandled": "^0.4.1",
- "signal-exit": "^3.0.2"
+ "signal-exit": "^3.0.0"
}
},
"lower-case": {
@@ -17780,8 +17857,7 @@
"dependencies": {
"remove-accents": {
"version": "0.4.2",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz",
- "integrity": "sha1-CkPTqq4egNuRngeuJUsoXZ4ce7U=",
+ "bundled": true,
"dev": true
}
}
@@ -18187,18 +18263,18 @@
"dev": true
},
"mime-db": {
- "version": "1.44.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
- "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
+ "version": "1.45.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
+ "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==",
"dev": true
},
"mime-types": {
- "version": "2.1.27",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
- "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+ "version": "2.1.28",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz",
+ "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==",
"dev": true,
"requires": {
- "mime-db": "1.44.0"
+ "mime-db": "1.45.0"
}
},
"mimic-fn": {
@@ -18293,6 +18369,12 @@
"requires": {
"is-plain-obj": "^1.0.0"
}
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
}
}
},
@@ -18598,15 +18680,6 @@
"minimatch": "^3.0.2"
}
},
- "node-emoji": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
- "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
- "dev": true,
- "requires": {
- "lodash.toarray": "^4.4.0"
- }
- },
"node-eta": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz",
@@ -18767,9 +18840,9 @@
"dev": true
},
"node-releases": {
- "version": "1.1.67",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz",
- "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==",
+ "version": "1.1.70",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz",
+ "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==",
"dev": true
},
"node-sass": {
@@ -18863,16 +18936,6 @@
"strip-bom": "^2.0.0"
}
},
- "loud-rejection": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
- "dev": true,
- "requires": {
- "currently-unhandled": "^0.4.1",
- "signal-exit": "^3.0.0"
- }
- },
"map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
@@ -19350,9 +19413,9 @@
}
},
"open": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz",
- "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==",
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.3.1.tgz",
+ "integrity": "sha512-f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A==",
"dev": true,
"requires": {
"is-docker": "^2.0.0",
@@ -19519,12 +19582,12 @@
}
},
"p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
- "p-limit": "^2.0.0"
+ "p-limit": "^2.2.0"
}
},
"p-map": {
@@ -19703,13 +19766,23 @@
"dev": true
},
"parse-path": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.2.tgz",
- "integrity": "sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz",
+ "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==",
"dev": true,
"requires": {
"is-ssh": "^1.3.0",
- "protocols": "^1.4.0"
+ "protocols": "^1.4.0",
+ "qs": "^6.9.4",
+ "query-string": "^6.13.8"
+ },
+ "dependencies": {
+ "qs": {
+ "version": "6.9.6",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
+ "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
+ "dev": true
+ }
}
},
"parse-unit": {
@@ -19792,9 +19865,9 @@
}
},
"tslib": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
- "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
"dev": true
}
}
@@ -19882,9 +19955,9 @@
"dev": true
},
"path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true
},
"path-is-absolute": {
@@ -19937,9 +20010,9 @@
}
},
"peek-readable": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.0.tgz",
- "integrity": "sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.3.tgz",
+ "integrity": "sha512-mpAcysyRJxmICBcBa5IXH7SZPvWkcghm6Fk8RekoS3v+BpbSzlZzuWbMx+GXrlUwESi9qHar4nVEZNMKylIHvg==",
"dev": true
},
"performance-now": {
@@ -20042,6 +20115,12 @@
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
"dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
}
}
},
@@ -20052,6 +20131,42 @@
"dev": true,
"requires": {
"find-up": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
}
},
"please-upgrade-node": {
@@ -20893,9 +21008,9 @@
}
},
"pretty-bytes": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz",
- "integrity": "sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz",
+ "integrity": "sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==",
"dev": true
},
"pretty-error": {
@@ -21146,22 +21261,14 @@
"dev": true
},
"query-string": {
- "version": "6.13.7",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.7.tgz",
- "integrity": "sha512-CsGs8ZYb39zu0WLkeOhe0NMePqgYdAuCqxOYKDR5LVCytDZYMGx3Bb+xypvQvPHVPijRXB0HZNFllCzHRe4gEA==",
+ "version": "6.13.8",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.8.tgz",
+ "integrity": "sha512-jxJzQI2edQPE/NPUOusNjO/ZOGqr1o2OBa/3M00fU76FsLXDVbJDv/p7ng5OdQyorKrkRz1oqfwmbe5MAMePQg==",
"dev": true,
"requires": {
"decode-uri-component": "^0.2.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
- },
- "dependencies": {
- "strict-uri-encode": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
- "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=",
- "dev": true
- }
}
},
"querystring": {
@@ -21296,9 +21403,9 @@
},
"dependencies": {
"csstype": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz",
- "integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz",
+ "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==",
"dev": true
}
}
@@ -21466,6 +21573,12 @@
}
}
},
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@@ -21820,52 +21933,18 @@
"type-fest": "^0.8.1"
},
"dependencies": {
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
}
},
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "parse-json": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz",
- "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -21910,9 +21989,9 @@
}
},
"readable-web-to-node-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz",
- "integrity": "sha512-HNmLb3n0SteGAs8HQlErYPGeO+y7cvL/mVUKtXeUkl0iCZ/2GIgKGrCFHyS7UXFnO8uc9U+0y3pYIzAPsjFfvA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.1.tgz",
+ "integrity": "sha512-4zDC6CvjUyusN7V0QLsXVB7pJCD9+vtrM9bYDRv6uBQ+SKfx36rp5AFNPRgh9auKRul/a1iFZJYXcCbwRL+SaA==",
"dev": true,
"requires": {
"@types/readable-stream": "^2.3.9",
@@ -22079,34 +22158,13 @@
}
},
"regexp.prototype.flags": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
- "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
+ "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
"dev": true,
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
- "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- }
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
}
},
"regexpp": {
@@ -22154,9 +22212,9 @@
"dev": true
},
"regjsparser": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
- "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz",
+ "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==",
"dev": true,
"requires": {
"jsesc": "~0.5.0"
@@ -22570,14 +22628,14 @@
"dev": true
},
"renderkid": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz",
- "integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz",
+ "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==",
"dev": true,
"requires": {
- "css-select": "^1.1.0",
+ "css-select": "^2.0.2",
"dom-converter": "^0.2",
- "htmlparser2": "^3.3.0",
+ "htmlparser2": "^3.10.1",
"lodash": "^4.17.20",
"strip-ansi": "^3.0.0"
}
@@ -22671,6 +22729,12 @@
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"dev": true
},
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
+ },
"require-like": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz",
@@ -22839,12 +22903,21 @@
}
},
"rollup": {
- "version": "2.35.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz",
- "integrity": "sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==",
+ "version": "2.37.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.37.1.tgz",
+ "integrity": "sha512-V3ojEeyGeSdrMSuhP3diBb06P+qV4gKQeanbDv+Qh/BZbhdZ7kHV0xAt8Yjk4GFshq/WjO7R4c7DFM20AwTFVQ==",
"dev": true,
"requires": {
"fsevents": "~2.1.2"
+ },
+ "dependencies": {
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ }
}
},
"rollup-plugin-bundle-size": {
@@ -23192,6 +23265,106 @@
"yargs": "^13.3.2"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
@@ -23209,6 +23382,16 @@
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
}
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -23356,9 +23539,9 @@
}
},
"semver-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
- "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz",
+ "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==",
"dev": true
},
"send": {
@@ -23616,13 +23799,14 @@
"optional": true
},
"side-channel": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz",
- "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dev": true,
"requires": {
- "es-abstract": "^1.18.0-next.0",
- "object-inspect": "^1.8.0"
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
}
},
"signal-exit": {
@@ -23689,6 +23873,14 @@
"ansi-styles": "^3.2.0",
"astral-regex": "^1.0.0",
"is-fullwidth-code-point": "^2.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ }
}
},
"slugify": {
@@ -23957,16 +24149,16 @@
"dev": true
},
"socket.io-client": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.1.tgz",
- "integrity": "sha512-YXmXn3pA8abPOY//JtYxou95Ihvzmg8U6kQyolArkIyLd0pgVhrfor/iMsox8cn07WCOOvvuJ6XKegzIucPutQ==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz",
+ "integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==",
"dev": true,
"requires": {
"backo2": "1.0.2",
"component-bind": "1.0.0",
"component-emitter": "~1.3.0",
"debug": "~3.1.0",
- "engine.io-client": "~3.4.0",
+ "engine.io-client": "~3.5.0",
"has-binary2": "~1.0.2",
"indexof": "0.0.1",
"parseqs": "0.0.6",
@@ -23987,9 +24179,9 @@
}
},
"socket.io-parser": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz",
- "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
+ "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
"dev": true,
"requires": {
"component-emitter": "~1.3.0",
@@ -24015,34 +24207,14 @@
}
},
"sockjs": {
- "version": "0.3.20",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz",
- "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==",
+ "version": "0.3.21",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz",
+ "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==",
"dev": true,
"requires": {
- "faye-websocket": "^0.10.0",
+ "faye-websocket": "^0.11.3",
"uuid": "^3.4.0",
- "websocket-driver": "0.6.5"
- },
- "dependencies": {
- "faye-websocket": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
- "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
- "dev": true,
- "requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
- "websocket-driver": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
- "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=",
- "dev": true,
- "requires": {
- "websocket-extensions": ">=0.1.1"
- }
- }
+ "websocket-driver": "^0.7.4"
}
},
"sockjs-client": {
@@ -24327,9 +24499,9 @@
},
"dependencies": {
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz",
+ "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==",
"dev": true
}
}
@@ -24512,9 +24684,9 @@
"dev": true
},
"strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=",
"dev": true
},
"string-env-interpolation": {
@@ -24564,29 +24736,23 @@
}
},
"string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
"strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "ansi-regex": "^5.0.0"
}
}
}
@@ -24709,14 +24875,14 @@
"dev": true
},
"strtok3": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.4.tgz",
- "integrity": "sha512-rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==",
+ "version": "6.0.8",
+ "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.8.tgz",
+ "integrity": "sha512-QLgv+oiXwXgCgp2PdPPa+Jpp4D9imK9e/0BsyfeFMr6QL6wMVqoVn9+OXQ9I7MZbmUzN6lmitTJ09uwS2OmGcw==",
"dev": true,
"requires": {
"@tokenizer/token": "^0.1.1",
"@types/debug": "^4.1.5",
- "peek-readable": "^3.1.0"
+ "peek-readable": "^3.1.3"
},
"dependencies": {
"@types/debug": {
@@ -24861,32 +25027,35 @@
"util.promisify": "~1.0.0"
},
"dependencies": {
- "css-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
- "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "es-abstract": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
+ "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
"dev": true,
"requires": {
- "boolbase": "^1.0.0",
- "css-what": "^3.2.1",
- "domutils": "^1.7.0",
- "nth-check": "^1.0.2"
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
}
},
- "css-what": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
- "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
- "dev": true
- },
- "domutils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
- "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "util.promisify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
+ "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
"dev": true,
"requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.2",
+ "has-symbols": "^1.0.1",
+ "object.getownpropertydescriptors": "^2.1.0"
}
}
}
@@ -24933,6 +25102,46 @@
"lodash": "^4.17.14",
"slice-ansi": "^2.1.0",
"string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
}
},
"tapable": {
@@ -24942,9 +25151,9 @@
"dev": true
},
"tar": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz",
- "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz",
+ "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==",
"dev": true,
"requires": {
"chownr": "^2.0.0",
@@ -25055,16 +25264,6 @@
"pkg-dir": "^4.1.0"
}
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -25081,15 +25280,6 @@
"supports-color": "^7.0.0"
}
},
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
"make-dir": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
@@ -25099,21 +25289,6 @@
"semver": "^6.0.0"
}
},
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -25382,13 +25557,13 @@
"dev": true
},
"token-types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.0.0.tgz",
- "integrity": "sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.1.1.tgz",
+ "integrity": "sha512-wnQcqlreS6VjthyHO3Y/kpK/emflxDBNhlNUPfh7wE39KnuDdOituXomIbyI79vBtF0Ninpkh72mcuRHo+RG3Q==",
"dev": true,
"requires": {
- "@tokenizer/token": "^0.1.0",
- "ieee754": "^1.1.13"
+ "@tokenizer/token": "^0.1.1",
+ "ieee754": "^1.2.1"
}
},
"tough-cookie": {
@@ -25496,9 +25671,9 @@
"dev": true
},
"tsutils": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
- "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
+ "version": "3.19.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.19.1.tgz",
+ "integrity": "sha512-GEdoBf5XI324lu7ycad7s6laADfnAqCw6wLGI+knxvw9vsIYBaJfYdmeCEG3FMMUiSm3OGgNb+m6utsWf5h9Vw==",
"dev": true,
"requires": {
"tslib": "^1.8.1"
@@ -26088,9 +26263,9 @@
}
},
"uri-js": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
- "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true,
"requires": {
"punycode": "^2.1.0"
@@ -26132,9 +26307,9 @@
},
"dependencies": {
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz",
+ "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==",
"dev": true
},
"schema-utils": {
@@ -26205,36 +26380,16 @@
"dev": true
},
"util.promisify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
- "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz",
+ "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==",
"dev": true,
"requires": {
+ "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.2",
+ "for-each": "^0.3.3",
"has-symbols": "^1.0.1",
- "object.getownpropertydescriptors": "^2.1.0"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
- "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- }
+ "object.getownpropertydescriptors": "^2.1.1"
}
},
"utila": {
@@ -26262,9 +26417,9 @@
"dev": true
},
"v8-to-istanbul": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz",
- "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz",
+ "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.1",
@@ -26502,9 +26657,9 @@
"dev": true
},
"webpack": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz",
- "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==",
+ "version": "4.46.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
+ "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==",
"dev": true,
"requires": {
"@webassemblyjs/ast": "1.9.0",
@@ -26515,7 +26670,7 @@
"ajv": "^6.10.2",
"ajv-keywords": "^3.4.1",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^4.3.0",
+ "enhanced-resolve": "^4.5.0",
"eslint-scope": "^4.0.3",
"json-parse-better-errors": "^1.0.2",
"loader-runner": "^2.4.0",
@@ -26632,6 +26787,12 @@
"worker-farm": "^1.7.0"
}
},
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
"yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -26654,17 +26815,17 @@
},
"dependencies": {
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz",
+ "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==",
"dev": true
}
}
},
"webpack-dev-server": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz",
- "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==",
+ "version": "3.11.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz",
+ "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==",
"dev": true,
"requires": {
"ansi-html": "0.0.7",
@@ -26687,11 +26848,11 @@
"p-retry": "^3.0.1",
"portfinder": "^1.0.26",
"schema-utils": "^1.0.0",
- "selfsigned": "^1.10.7",
+ "selfsigned": "^1.10.8",
"semver": "^6.3.0",
"serve-index": "^1.9.1",
- "sockjs": "0.3.20",
- "sockjs-client": "1.4.0",
+ "sockjs": "^0.3.21",
+ "sockjs-client": "^1.5.0",
"spdy": "^4.0.2",
"strip-ansi": "^3.0.1",
"supports-color": "^6.1.0",
@@ -26702,6 +26863,12 @@
"yargs": "^13.3.2"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
"array-union": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
@@ -26731,6 +26898,28 @@
"upath": "^1.1.1"
}
},
+ "cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
@@ -26755,6 +26944,21 @@
"rimraf": "^2.6.3"
}
},
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
"fsevents": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
@@ -26786,6 +26990,22 @@
}
}
},
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -26801,12 +27021,27 @@
"is-wsl": "^1.1.0"
}
},
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
"p-map": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
"integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
},
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -26834,17 +27069,17 @@
"dev": true
},
"sockjs-client": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
- "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz",
+ "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==",
"dev": true,
"requires": {
- "debug": "^3.2.5",
+ "debug": "^3.2.6",
"eventsource": "^1.0.7",
- "faye-websocket": "~0.11.1",
- "inherits": "^2.0.3",
- "json3": "^3.3.2",
- "url-parse": "^1.4.3"
+ "faye-websocket": "^0.11.3",
+ "inherits": "^2.0.4",
+ "json3": "^3.3.3",
+ "url-parse": "^1.4.7"
},
"dependencies": {
"debug": {
@@ -26858,6 +27093,28 @@
}
}
},
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"supports-color": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
@@ -26867,6 +27124,28 @@
"has-flag": "^3.0.0"
}
},
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"ws": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
@@ -26876,6 +27155,12 @@
"async-limiter": "~1.0.0"
}
},
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
@@ -26893,6 +27178,16 @@
"y18n": "^4.0.0",
"yargs-parser": "^13.1.2"
}
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
}
}
},
@@ -27056,6 +27351,12 @@
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -27084,40 +27385,6 @@
"dev": true,
"requires": {
"string-width": "^4.0.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- }
}
},
"word-wrap": {
@@ -27136,29 +27403,47 @@
}
},
"wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "ansi-regex": "^5.0.0"
}
}
}
@@ -27191,13 +27476,10 @@
}
},
"ws": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
- "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
- "dev": true,
- "requires": {
- "async-limiter": "~1.0.0"
- }
+ "version": "7.4.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz",
+ "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==",
+ "dev": true
},
"x-is-string": {
"version": "0.1.0",
@@ -27254,9 +27536,9 @@
}
},
"xstate": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.15.1.tgz",
- "integrity": "sha512-8dD/GnTwxUuDr/cY42vi+Enu4mpbuUXWISYJ0a9BC+cIFvqufJsepyDLS6lLsznfUP0GS5Yx9m3IQWFhAoGt/A==",
+ "version": "4.16.0",
+ "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.16.0.tgz",
+ "integrity": "sha512-2k/49QYLdzG6Ye1JQWYFuPdU6dnRqHXcuFLxuORiuel04GjApSPct7wp2SOz9RAlNME5EkzclRKw1fHm5yejuA==",
"dev": true
},
"xtend": {
@@ -27266,9 +27548,9 @@
"dev": true
},
"y18n": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
- "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
+ "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
"dev": true
},
"yallist": {
@@ -27347,63 +27629,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -27424,6 +27649,12 @@
"strip-ansi": "^6.0.0"
}
},
+ "y18n": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
+ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
+ "dev": true
+ },
"yargs-parser": {
"version": "18.1.3",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
@@ -27437,14 +27668,10 @@
}
},
"yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true
},
"yeast": {
"version": "0.1.2",
@@ -27458,6 +27685,12 @@
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true
},
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
+ },
"yoga-layout-prebuilt": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.10.0.tgz",
@@ -27468,30 +27701,16 @@
}
},
"yurnalist": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-1.1.2.tgz",
- "integrity": "sha512-y7bsTXqL+YMJQ2De2CBtSftJNLQnB7gWIzzKm10GDyC8Fg4Dsmd2LG5YhT8pudvUiuotic80WVXt/g1femRVQg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-2.1.0.tgz",
+ "integrity": "sha512-PgrBqosQLM3gN2xBFIMDLACRTV9c365VqityKKpSTWpwR+U4LAFR3rSVyEoscWlu3EzX9+Y0I86GXUKxpHFl6w==",
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
"chalk": "^2.4.2",
- "cli-table3": "^0.5.1",
- "debug": "^4.1.1",
- "deep-equal": "^1.1.0",
- "detect-indent": "^6.0.0",
"inquirer": "^7.0.0",
- "invariant": "^2.2.0",
- "is-builtin-module": "^3.0.0",
"is-ci": "^2.0.0",
- "leven": "^3.1.0",
- "loud-rejection": "^2.2.0",
- "node-emoji": "^1.10.0",
- "object-path": "^0.11.2",
"read": "^1.0.7",
- "rimraf": "^3.0.0",
- "semver": "^6.3.0",
- "strip-ansi": "^5.2.0",
- "strip-bom": "^4.0.0"
+ "strip-ansi": "^5.2.0"
},
"dependencies": {
"ansi-regex": {
@@ -27500,27 +27719,6 @@
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
@@ -27529,12 +27727,6 @@
"requires": {
"ansi-regex": "^4.1.0"
}
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
}
}
},
diff --git a/package.json b/package.json
index 32231df..3504a62 100755
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "usetheform",
- "version": "3.3.1",
+ "version": "3.4.0",
"description": "React library for composing declarative forms in React and managing their state.",
"main": "./build/index.js",
"module": "./build/es/index.js",
@@ -69,6 +69,7 @@
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-prettier": "^3.3.0",
"eslint-plugin-react": "^7.21.5",
+ "gatsby": "2.29.1",
"gatsby-link": "^2.8.0",
"gatsby-plugin-sass": "^2.8.0",
"gatsby-react-router-scroll": "^3.4.0",
diff --git a/src/Form.js b/src/Form.js
index da2e5d4..41dfb3b 100755
--- a/src/Form.js
+++ b/src/Form.js
@@ -10,7 +10,14 @@ function Form({
onInit,
onReset,
onSubmit,
+ onValidation,
+ resetSyncErr,
+ validators,
+ asyncValidator,
+ onAsyncValidation,
+ resetAsyncErr,
reducers,
+ touched,
_getInitilaStateForm_, // Private API
_onMultipleForm_, // Private API
name,
@@ -20,10 +27,17 @@ function Form({
}) {
const { onSubmitForm, ...props } = useForm({
initialState,
+ touched,
onChange,
onInit,
onReset,
onSubmit,
+ onValidation,
+ resetSyncErr,
+ validators,
+ asyncValidator,
+ onAsyncValidation,
+ resetAsyncErr,
reducers,
_getInitilaStateForm_,
_onMultipleForm_,
diff --git a/src/FormContext.js b/src/FormContext.js
index 1400e17..da72703 100644
--- a/src/FormContext.js
+++ b/src/FormContext.js
@@ -9,6 +9,13 @@ export const FormContext = memo(function FormContext({
onInit,
onReset,
onSubmit,
+ onValidation,
+ resetSyncErr,
+ validators,
+ asyncValidator,
+ onAsyncValidation,
+ resetAsyncErr,
+ touched,
reducers,
_getInitilaStateForm_, // Private API
_onMultipleForm_, // Private API
@@ -21,6 +28,13 @@ export const FormContext = memo(function FormContext({
onInit,
onReset,
onSubmit,
+ onValidation,
+ resetSyncErr,
+ validators,
+ asyncValidator,
+ onAsyncValidation,
+ resetAsyncErr,
+ touched,
reducers,
_getInitilaStateForm_,
_onMultipleForm_,
diff --git a/src/hooks/commons/useNameProp.js b/src/hooks/commons/useNameProp.js
index 90d7566..56df9e1 100644
--- a/src/hooks/commons/useNameProp.js
+++ b/src/hooks/commons/useNameProp.js
@@ -4,17 +4,17 @@ import { IndexContext } from "./../../hoc/withIndex";
export const useNameProp = (context, name, index) => {
const nameProp = useRef(name);
const uniqueIDFromContext = useContext(IndexContext);
- let uniqueIDarrayContext = uniqueIDFromContext ? uniqueIDFromContext.id : 1;
+ let uniqueIDarrayContext =
+ uniqueIDFromContext !== undefined ? uniqueIDFromContext.id : 1;
const setNameProp = useCallback(index => {
nameProp.current = index;
}, []);
- // if index is missed in a array context
- if (context.type === "array" && nameProp.current === undefined) {
+ if (context.type === "array") {
if (index !== undefined) {
uniqueIDarrayContext = uniqueIDFromContext.getID();
nameProp.current = index;
- } else {
+ } else if (nameProp.current === undefined) {
nameProp.current = context.getIndex(uniqueIDarrayContext);
}
}
diff --git a/src/hooks/useField.js b/src/hooks/useField.js
index db797d3..b9657da 100755
--- a/src/hooks/useField.js
+++ b/src/hooks/useField.js
@@ -5,9 +5,8 @@ import { useValidationFunction } from "./commons/useValidationFunction";
import { useValidationFunctionAsync } from "./commons/useValidationFunctionAsync";
import { fileList } from "./../utils/formUtils";
import { STATUS } from "./../utils/constants";
+import { validateProps } from "./../utils/validateProps";
import { chainReducers } from "./../utils/chainReducers";
-import { isValidValue } from "./../utils/isValidValue";
-import { isValidIndex } from "./../utils/isValidIndex";
import { noop } from "./../utils/noop";
const validatorsDefault = [];
@@ -41,13 +40,11 @@ export function useField(props) {
);
if (process.env.NODE_ENV !== "production") {
- const errMsg = validateProps(
+ validateProps(
+ "",
{ ...props, index: nameProp.current },
context.type
);
- if (errMsg) {
- throw new Error(errMsg);
- }
}
const { state } = context;
@@ -334,7 +331,7 @@ export function useField(props) {
}
if (onSyncBlurState) {
- context.triggerSyncValidation && context.triggerSyncValidation();
+ context?.triggerSyncValidation?.();
}
if (
@@ -436,47 +433,6 @@ function filterProps(allProps) {
}
}
-function validateProps(
- { name, index, value, checked, type, asyncValidator },
- contextType
-) {
- if (type === undefined) {
- return `The prop "type" -> "${type}"" passed to "useField" is not allowed. It must be a string.`;
- }
-
- if (type === "file" && value && value !== "") {
- return `The prop "value" -> "${value}" passed to "useField": ${name} of type: ${type} is not allowed. Input of type "file" does not support any default value.`;
- }
-
- if (
- type === "radio" &&
- (value === undefined ||
- (typeof value === "string" && value.replace(/ /g, "") === ""))
- ) {
- return `Input of type => ${type}, must have a valid prop "value".`;
- }
-
- if (contextType === "array" && !isValidIndex(index)) {
- return `The prop "index": ${index} of type "${typeof index}" passed to a field "${type}" must be either a string or number represent as integers.`;
- }
-
- if (
- typeof asyncValidator !== "undefined" &&
- typeof asyncValidator !== "function"
- ) {
- return `The prop "asyncValidator" -> "${asyncValidator}" passed to "useField": ${name} of type: ${type} is not allowed. It must be a function.`;
- }
-
- if (type !== "checkbox" && type !== "radio" && checked) {
- return `The prop "checked" -> "${checked}" passed to "useField": ${name} of type: ${type} is not allowed. You can use "value" prop instead to set an initial value.`;
- }
-
- if (!isValidValue(name, contextType)) {
- const nameContext = contextType || "";
- return `The prop "name": ${name} of type "${typeof name}" passed to "${type}" it is not allowed within context a of type "${nameContext}".`;
- }
-}
-
function getInitialValue(
type,
state,
diff --git a/src/hooks/useForm.js b/src/hooks/useForm.js
index 06e8914..bd61f90 100755
--- a/src/hooks/useForm.js
+++ b/src/hooks/useForm.js
@@ -1,10 +1,12 @@
-import { useRef, useState, useEffect, useCallback } from "react";
+import { useRef, useState, useEffect, useCallback, useMemo } from "react";
import { useValidators } from "./useValidators";
import { useMapFields } from "./useMapFields";
+import { useValidationFunction } from "./commons/useValidationFunction";
+import { useValidationFunctionAsync } from "./commons/useValidationFunctionAsync";
import { updateState } from "./../utils/updateState";
import { chainReducers } from "./../utils/chainReducers";
import { noop } from "./../utils/noop";
-import { STATUS } from "./../utils/constants";
+import { STATUS, FORM_VALIDATION_LABEL } from "./../utils/constants";
import {
createForm,
isFormValid,
@@ -15,14 +17,22 @@ import {
} from "./../utils/formUtils";
const emptyStateValue = {};
+const validatorsDefault = [];
export function useForm({
initialState,
+ touched,
onChange = noop,
onReset = noop,
onInit = noop,
onSubmit = noop,
- reducers = [],
+ onValidation = noop,
+ resetSyncErr = noop,
+ validators: validatorsFuncs = validatorsDefault,
+ resetAsyncErr = noop,
+ asyncValidator,
+ onAsyncValidation = noop,
+ reducers,
_getInitilaStateForm_, // Private API
_onMultipleForm_, // Private API
name,
@@ -54,8 +64,7 @@ export function useForm({
const memoInitialState = useRef({ ...formState });
const isMounted = useRef(false);
-
- const { current: stillMounted } = useRef(() => isMounted.current);
+ const stillMounted = useCallback(() => isMounted.current, []);
const [validators, addValidators, removeValidators] = useValidators(
undefined,
@@ -63,6 +72,15 @@ export function useForm({
isMounted
);
+ const { validationMsg, validationObj, validationFN } = useValidationFunction(
+ validatorsFuncs
+ );
+
+ const [validationFNAsync] = useValidationFunctionAsync(
+ asyncValidator,
+ onAsyncValidation
+ );
+
const [
validatorsAsync,
addValidatorsAsync,
@@ -72,7 +90,7 @@ export function useForm({
resetValidatorsMap
] = useValidators(undefined, undefined, isMounted, true);
- const { current: applyReducers } = useRef(chainReducers(reducers));
+ const applyReducers = useMemo(() => chainReducers(reducers), []);
const { unRegisterField, mapFields, updateRegisteredField } = useMapFields();
@@ -202,6 +220,7 @@ export function useForm({
}
const submitAttempts = prevAttempts + 1;
+
if (
isValid &&
Object.keys(validatorsAsync.current).length > 0 &&
@@ -227,12 +246,10 @@ export function useForm({
Promise.all(asyncArrayProm)
.then(() => {
- dispatchFormState({ ...stateRef.current, status, isValid: true });
- if (
- typeof action === "string" &&
- typeof target.submit === "function"
- ) {
+ if (typeof action === "string") {
target.submit();
+ } else {
+ dispatchFormState({ ...stateRef.current, status, isValid: true });
}
})
.catch(() => {
@@ -260,6 +277,26 @@ export function useForm({
propagateState(newState, false);
}, []);
+ const isFormTouchedOnce = useRef(false);
+ const lastStateSyncCheck = useRef(null);
+ const triggerSyncValidation = useCallback(
+ (omitArg1, omitArg2, touchedEventField = true) => {
+ if (
+ lastStateSyncCheck.current !== stateRef.current.state &&
+ validationObj.current !== null &&
+ (isFormTouchedOnce.current ||
+ (touched && touchedEventField) ||
+ !touched)
+ ) {
+ isFormTouchedOnce.current = true;
+ lastStateSyncCheck.current = stateRef.current.state;
+ const { isValid, checks } = validationObj.current;
+ onValidation(checks, isValid);
+ }
+ },
+ []
+ );
+
// used to register async validation Actions
const asyncInitValidation = useRef({});
const registerAsyncInitValidation = useCallback((nameProp, asyncFunc) => {
@@ -350,6 +387,20 @@ export function useForm({
useEffect(() => {
isMounted.current = true;
+ // Add its own validators
+ if (validatorsFuncs.length > 0) {
+ addValidators(FORM_VALIDATION_LABEL, validationFN.current);
+ }
+
+ // Add its own async validator func
+ if (typeof asyncValidator === "function") {
+ addValidatorsAsync(
+ FORM_VALIDATION_LABEL,
+ validationFNAsync.current,
+ null
+ );
+ }
+
const pristine =
(isMultipleForm &&
(_getInitilaStateForm_(name) == undefined ||
@@ -375,11 +426,33 @@ export function useForm({
dispatchFormState(stateRef.current);
}, []);
+ useEffect(() => {
+ const formStatus = formState.status;
+ if (formStatus === STATUS.ON_RESET) {
+ isFormTouchedOnce.current = false;
+ lastStateSyncCheck.current = false;
+ resetSyncErr();
+ resetAsyncErr();
+ } else if (
+ formStatus !== STATUS.READY &&
+ formStatus !== STATUS.ON_INIT_ASYNC
+ ) {
+ if (validationObj.current !== null) {
+ triggerSyncValidation(false, true, false);
+ }
+
+ if (validationObj.current !== null && !validationObj.current.isValid) {
+ resetAsyncErr();
+ }
+ }
+ }, [validationMsg.current, formState.status]);
+
return {
...formState, // { isValid, state, status, pristine, isSubmitting }
formState: formState.state, // pass the global form state down
formStatus: formState.status, // pass the global form status down
mapFields: mapFields.current,
+ triggerSyncValidation,
unRegisterField,
updateRegisteredField,
registerAsyncInitValidation,
diff --git a/src/hooks/useObject.js b/src/hooks/useObject.js
index b9ce205..55e61b6 100755
--- a/src/hooks/useObject.js
+++ b/src/hooks/useObject.js
@@ -3,10 +3,9 @@ import { useOwnContext } from "./useOwnContext";
import { useNameProp } from "./commons/useNameProp";
import { useMapFields } from "./useMapFields";
import { useValidators } from "./useValidators";
-import { isValidValue } from "./../utils/isValidValue";
+import { validateProps } from "./../utils/validateProps";
import { updateState } from "./../utils/updateState";
import { chainReducers } from "./../utils/chainReducers";
-import { isValidIndex } from "./../utils/isValidIndex";
import { useValidationFunction } from "./commons/useValidationFunction";
import { useValidationFunctionAsync } from "./commons/useValidationFunctionAsync";
import { STATUS } from "./../utils/constants";
@@ -42,13 +41,11 @@ export function useObject(props) {
);
if (process.env.NODE_ENV !== "production") {
- const errMsg = validateProps(
+ validateProps(
+ " ",
{ ...props, index: nameProp.current },
context.type
);
- if (errMsg) {
- throw new Error(errMsg);
- }
}
const { unRegisterField, mapFields, updateRegisteredField } = useMapFields(
@@ -258,8 +255,8 @@ export function useObject(props) {
const { isValid, checks } = validationObj.current;
onValidation(checks, isValid);
}
- if (propagate && context.triggerSyncValidation) {
- context.triggerSyncValidation();
+ if (propagate) {
+ context?.triggerSyncValidation?.();
}
}
},
@@ -300,7 +297,7 @@ export function useObject(props) {
context.registerIndex(uniqueIDarrayContext, setNameProp);
}
- // Add the its own validators
+ // Add its own validators
if (validatorsFuncs.length > 0) {
context.addValidators(nameProp.current, validationFN.current);
}
@@ -446,31 +443,3 @@ export function useObject(props) {
triggerSyncValidation
};
}
-
-function validateProps(
- { name, type, index, value, asyncValidator },
- contextType
-) {
- if (
- typeof asyncValidator !== "undefined" &&
- typeof asyncValidator !== "function"
- ) {
- return `The prop "asyncValidator" -> "${asyncValidator}" passed to "useField": ${name} of type: ${type} is not allowed. It must be a function`;
- }
-
- if (
- typeof value !== "undefined" &&
- ((type === "array" && value.constructor !== Array) ||
- (type === "object" && typeof value !== "object"))
- ) {
- return `The prop "value": ${value} of type "${type}" passed to "${name} Collection" it is not allowed as initial value.`;
- }
-
- if (contextType === "array" && !isValidIndex(index)) {
- return `The prop "index": ${index} of type "${typeof index}" passed to a Collection "${type}" must be either a string or number represent as integers.`;
- }
-
- if (!isValidValue(name, contextType)) {
- return `The prop "name": ${name} of type "${typeof name}" passed to "${name} Collection" it is not allowed within context a of type "${contextType}".`;
- }
-}
diff --git a/src/hooks/useValidators.js b/src/hooks/useValidators.js
index 46f8e6e..1db9372 100644
--- a/src/hooks/useValidators.js
+++ b/src/hooks/useValidators.js
@@ -48,7 +48,6 @@ export function useValidators(context, nameProp, isMounted, isAsync = false) {
...mergeValidators(path, asyncValidatorsValue)
};
}
-
if (
nameProp !== undefined &&
isMounted.current &&
diff --git a/src/utils/constants.js b/src/utils/constants.js
index 095f6db..5a4369a 100644
--- a/src/utils/constants.js
+++ b/src/utils/constants.js
@@ -11,3 +11,4 @@ export const STATUS = {
};
export const DISPATCHER_LABEL = "__$$USETHEFORM_DISPATCHER$$__";
+export const FORM_VALIDATION_LABEL = "__$$USETHEFORM_VALIDATION$$__";
diff --git a/src/utils/formUtils.js b/src/utils/formUtils.js
index 3dde518..ceca160 100644
--- a/src/utils/formUtils.js
+++ b/src/utils/formUtils.js
@@ -1,4 +1,4 @@
-import { STATUS } from "./constants";
+import { STATUS, FORM_VALIDATION_LABEL } from "./constants";
export const createForm = (state = {}) => ({
state,
@@ -11,6 +11,9 @@ export const createForm = (state = {}) => ({
});
export const getValueByPath = (path, obj, separator = "/") => {
+ if (path === FORM_VALIDATION_LABEL) {
+ return obj;
+ }
const properties = Array.isArray(path) ? path : path.split(separator);
return properties.reduce((prev, curr) => prev && prev[curr], obj);
};
diff --git a/src/utils/validateProps.js b/src/utils/validateProps.js
new file mode 100644
index 0000000..3fa6035
--- /dev/null
+++ b/src/utils/validateProps.js
@@ -0,0 +1,73 @@
+import { isValidValue } from "./isValidValue";
+import { isValidIndex } from "./isValidIndex";
+
+const validationPropsFuncs = [
+ asyncValidatorProp,
+ valueProp,
+ nameProp,
+ contextTypeProp,
+ typeProp
+];
+
+export function validateProps(target, props, contextType) {
+ const errors = validationPropsFuncs
+ .map(fn => fn(target, props, contextType))
+ .filter(Boolean);
+
+ if (errors.length > 0) {
+ throw new Error(errors[0]);
+ }
+}
+
+function asyncValidatorProp(target, { type, asyncValidator }) {
+ if (
+ typeof asyncValidator !== "undefined" &&
+ typeof asyncValidator !== "function"
+ ) {
+ return `The prop "asyncValidator" -> "${asyncValidator}" passed to "${target}" of type: ${type} is not allowed. It must be a function`;
+ }
+}
+
+function valueProp(target, { type, value }) {
+ if (
+ typeof value !== "undefined" &&
+ ((type === "array" && value.constructor !== Array) ||
+ (type === "object" && typeof value !== "object"))
+ ) {
+ return `The prop "value": ${value} of type "${type}" passed to "${target}" it is not allowed as initial value.`;
+ }
+}
+
+function nameProp(target, { name }, contextType) {
+ if (!isValidValue(name, contextType)) {
+ return `The prop "name": ${name} of type "${typeof name}" passed to "${target}" it is not allowed within context a of type "${contextType}".`;
+ }
+}
+
+function contextTypeProp(target, { type, index }, contextType) {
+ if (contextType === "array" && !isValidIndex(index)) {
+ return `The prop "index": ${index} of type "${typeof index}" passed to a ${target} "${type}" must be either a string or number represent as integers.`;
+ }
+}
+
+function typeProp(target, { name, value, checked, type }) {
+ if (typeof type === "undefined") {
+ return `The prop "type" -> "${type}"" passed to "${target}" is not allowed. It must be a string.`;
+ }
+
+ if (type === "file" && value && value !== "") {
+ return `The prop "value" -> "${value}" passed to "${target}": ${name} of type: ${type} is not allowed. Input of type "file" does not support any default value.`;
+ }
+
+ if (
+ type === "radio" &&
+ (value === undefined ||
+ (typeof value === "string" && value.replace(/ /g, "") === ""))
+ ) {
+ return `${target} of type => ${type}, must have a valid prop "value".`;
+ }
+
+ if (type !== "checkbox" && type !== "radio" && checked) {
+ return `The prop "checked" -> "${checked}" passed to "${target}": ${name} of type: ${type} is not allowed. You can use "value" prop instead to set an initial value.`;
+ }
+}