├── .gitignore
├── .prettierrc.json
├── LICENSE.md
├── README.md
├── jest.config.js
├── package.json
├── rollup.config.js
├── src
└── index.ts
├── tests
├── common.ts
├── dom-interactions.test.ts
├── extenders.test.ts
├── helpers.test.ts
└── user-interactions.test.ts
├── tsconfig.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .tern-port
3 | dist/
4 | .DS_Store
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true
3 | }
4 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright © 2021 Pablo Berganza
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # svelte-editorjs
2 |
3 | A wrapper for EditorJS in Svelte
4 |
5 | ## Installation
6 |
7 | ```sh
8 | # yarn
9 | yarn add @editorjs/editorjs svelte-editorjs
10 |
11 | # npm
12 | npm i -S @editorjs/editorjs svelte-editorjs
13 | ```
14 |
15 | ## Usage
16 |
17 | To use it import the `createEditor` function from `svelte-editorjs`.
18 |
19 | ```html
20 |
25 |
26 |
27 | ```
28 |
29 | - `editor` is an action to use in your element that will contain the editor. It can also be used as a readable store that contains the following props:
30 | - `instance`: the editor's instance as shown in [their docs](https://editorjs.io/api).
31 | - `save`: a shortcut to `instance.save` that also updates the `data` store.
32 | - `clear`: a shortcut to `instance.clear` that also updates the `data` store.
33 | - `render`: a shortcut to `instance.render`.
34 | - `data` is a writable store containing the data from the editor. It'll only be updated on save. Mutating this store will also mutate the editors content.
35 | - `isReady` is a readable store containing a single boolean indicating if the editor is ready to be used.
36 |
37 | ## Configuration
38 |
39 | The `createEditor` accepts the same properties that [EditorjS accepts as options](https://github.com/codex-team/editor.js/blob/master/types/configs/editor-config.d.ts) except for holderId and holder, since that's determined by the action.
40 |
41 | ## License
42 |
43 | MIT
44 |
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | preset: 'ts-jest',
3 | testEnvironment: 'jsdom',
4 | collectCoverageFrom: ['./src/**'],
5 | };
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-editorjs",
3 | "version": "0.1.0",
4 | "description": "An EditorJS wrapper for Svelte",
5 | "main": "dist/cjs/index.js",
6 | "module": "dist/esm/index.js",
7 | "types": "dist/index.d.ts",
8 | "author": "Pablo Berganza ",
9 | "license": "MIT",
10 | "homepage": "https://github.com/pablo-abc/svelte-editorjs",
11 | "repository": "github:pablo-abc/svelte-editorjs",
12 | "funding": "https://www.buymeacoffee.com/pablo.abc",
13 | "keywords": ["svelte", "WYSWYG", "editor", "editorjs"],
14 | "scripts": {
15 | "prebuild": "rimraf ./dist",
16 | "build": "cross-env NODE_ENV=production rollup -c",
17 | "dev": "rollup -cw",
18 | "prepublishOnly": "yarn build",
19 | "test": "jest",
20 | "test:ci": "jest --ci --coverage"
21 | },
22 | "peerDependencies": {
23 | "@editorjs/editorjs": "^2.19.3",
24 | "svelte": "3.31.0"
25 | },
26 | "files": ["dist"],
27 | "dependencies": {},
28 | "publishConfig": {
29 | "access": "public"
30 | },
31 | "devDependencies": {
32 | "@editorjs/editorjs": "^2.19.3",
33 | "@rollup/plugin-commonjs": "^17.1.0",
34 | "@rollup/plugin-node-resolve": "^11.2.0",
35 | "@rollup/plugin-replace": "^2.4.1",
36 | "@wessberg/rollup-plugin-ts": "^1.3.11",
37 | "cross-env": "^7.0.3",
38 | "prettier": "^2.2.1",
39 | "rimraf": "^3.0.2",
40 | "rollup": "^2.42.4",
41 | "rollup-plugin-terser": "^7.0.2",
42 | "svelte": "3.31.0",
43 | "typescript": "^4.2.3"
44 | },
45 | "exports": {
46 | ".": {
47 | "import": "./dist/esm/index.js",
48 | "require": "./dist/cjs/index.js"
49 | },
50 | "./package.json": "./package.json"
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import typescript from '@wessberg/rollup-plugin-ts';
2 | import commonjs from '@rollup/plugin-commonjs';
3 | import resolve from '@rollup/plugin-node-resolve';
4 | import replace from '@rollup/plugin-replace';
5 | import { terser } from 'rollup-plugin-terser';
6 | import pkg from './package.json';
7 |
8 | const prod = process.env.NODE_ENV === 'production';
9 | const name = pkg.name
10 | .replace(/^(@\S+\/)?(svelte-)?(\S+)/, '$3')
11 | .replace(/^\w/, (m) => m.toUpperCase())
12 | .replace(/-\w/g, (m) => m[1].toUpperCase());
13 |
14 | export default {
15 | input: './src/index.ts',
16 | external: ['svelte'],
17 | output: [
18 | { dir: 'dist/cjs', format: 'cjs', sourcemap: prod, name },
19 | { dir: 'dist/esm', format: 'es', sourcemap: prod },
20 | ],
21 | plugins: [
22 | replace({
23 | preventAssignment: true,
24 | 'process.env.NODE_ENV': JSON.stringify(
25 | prod ? 'production' : 'development'
26 | ),
27 | }),
28 | resolve({ browser: true }),
29 | commonjs(),
30 | typescript(),
31 | prod && terser(),
32 | ],
33 | };
34 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import type EditorJS from '@editorjs/editorjs';
2 | import type { EditorConfig, OutputData } from '@editorjs/editorjs';
3 | import { writable } from 'svelte/store';
4 | import type { Readable, Writable } from 'svelte/store';
5 |
6 | export type EditorStore = {
7 | instance?: EditorJS;
8 | save?: () => void;
9 | render?: (data: OutputData) => void;
10 | clear?: () => void;
11 | };
12 |
13 | export type EditorStoreAction = ((
14 | node: HTMLElement,
15 | parameters?: EditorConfig
16 | ) => {
17 | destroy?: () => void;
18 | }) &
19 | Readable;
20 |
21 | export type EditorResponse = {
22 | editor: EditorStoreAction;
23 | isReady: Readable;
24 | data: Writable;
25 | };
26 |
27 | export type SvelteEditorConfig = Omit;
28 |
29 | export function createEditor(
30 | configuration: SvelteEditorConfig = {}
31 | ): EditorResponse {
32 | const initialData = configuration.data ?? {
33 | time: new Date().getTime(),
34 | blocks: [],
35 | };
36 | let editorInstance: EditorJS | undefined;
37 | const { subscribe: subscribeEditor, set: setEditor } = writable(
38 | {}
39 | );
40 | const { subscribe: subscribeIsReady, set: setIsReady } = writable(
41 | false
42 | );
43 | const {
44 | subscribe: subscribeData,
45 | set: setData,
46 | update: updateData,
47 | } = writable(initialData);
48 |
49 | let newSetData = (data: OutputData) => {
50 | updateData((oldData) => ({ ...oldData, ...data }));
51 | editorInstance?.render(data);
52 | };
53 |
54 | function editor(node: HTMLElement, parameters: SvelteEditorConfig = {}) {
55 | async function setup() {
56 | if (typeof window === 'undefined') return;
57 | const Editor = await import('@editorjs/editorjs');
58 | const instance = new Editor.default({
59 | ...configuration,
60 | ...parameters,
61 | holder: node,
62 | });
63 |
64 | instance.isReady
65 | .then(() => {
66 | editorInstance = instance;
67 | if (parameters.data) setData(parameters.data);
68 |
69 | const save = async () => {
70 | const data = await instance.save();
71 | setData(data);
72 | };
73 |
74 | const clear = async () => {
75 | instance.clear();
76 | updateData((data) => ({
77 | ...data,
78 | time: new Date().getTime(),
79 | blocks: [],
80 | }));
81 | };
82 |
83 | const render = async (data: OutputData) => {
84 | instance.render(data);
85 | };
86 |
87 | setEditor({
88 | instance,
89 | save,
90 | render,
91 | clear,
92 | });
93 | setIsReady(true);
94 | })
95 | .catch(console.error);
96 | }
97 | setup();
98 | return {
99 | destroy() {
100 | editorInstance?.destroy();
101 | },
102 | };
103 | }
104 |
105 | editor.subscribe = subscribeEditor;
106 |
107 | return {
108 | editor,
109 | isReady: { subscribe: subscribeIsReady },
110 | data: { subscribe: subscribeData, set: newSetData, update: updateData },
111 | };
112 | }
113 |
--------------------------------------------------------------------------------
/tests/common.ts:
--------------------------------------------------------------------------------
1 | export function createDOM(): void {
2 | const formElement = document.createElement('form');
3 | formElement.name = 'test-form';
4 | document.body.appendChild(formElement);
5 | }
6 |
7 | export function cleanupDOM(): void {
8 | removeAllChildren(document.body);
9 | }
10 |
11 | export type InputAttributes = {
12 | type?: string;
13 | required?: boolean;
14 | name?: string;
15 | value?: string;
16 | checked?: boolean;
17 | };
18 |
19 | export function createInputElement(attrs: InputAttributes): HTMLInputElement {
20 | const inputElement = document.createElement('input');
21 | if (attrs.name) inputElement.name = attrs.name;
22 | if (attrs.type) inputElement.type = attrs.type;
23 | if (attrs.value) inputElement.value = attrs.value;
24 | if (attrs.checked) inputElement.checked = attrs.checked;
25 | inputElement.required = !!attrs.required;
26 | return inputElement;
27 | }
28 |
29 | export function removeAllChildren(parent: Node): void {
30 | while (parent.firstChild) {
31 | parent.removeChild(parent.firstChild);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/tests/dom-interactions.test.ts:
--------------------------------------------------------------------------------
1 | import '@testing-library/jest-dom/extend-expect';
2 | import { screen, waitFor } from '@testing-library/dom';
3 | import { createForm } from '../src';
4 | import { cleanupDOM, createInputElement, createDOM } from './common';
5 | import { get } from 'svelte/store';
6 |
7 | describe('Form action DOM mutations', () => {
8 | beforeEach(createDOM);
9 |
10 | afterEach(cleanupDOM);
11 |
12 | test('Adds novalidate to form when using a validate function', () => {
13 | const { form } = createForm({
14 | validate: jest.fn(),
15 | onSubmit: jest.fn(),
16 | });
17 | const formElement = screen.getByRole('form') as HTMLFormElement;
18 | expect(formElement).not.toHaveAttribute('novalidate');
19 |
20 | form(formElement);
21 |
22 | expect(formElement).toHaveAttribute('novalidate');
23 | });
24 |
25 | test('Adds data-felte-fieldset to children of fieldset', () => {
26 | const { form } = createForm({
27 | onSubmit: jest.fn(),
28 | });
29 | const formElement = screen.getByRole('form') as HTMLFormElement;
30 | const fieldsetElement = document.createElement('fieldset');
31 | fieldsetElement.name = 'user';
32 | const inputElement = document.createElement('input');
33 | inputElement.name = 'email';
34 | fieldsetElement.appendChild(inputElement);
35 | formElement.appendChild(fieldsetElement);
36 | form(formElement);
37 | expect(inputElement).toHaveAttribute('data-felte-fieldset');
38 | });
39 |
40 | test('Fieldsets can be nested', () => {
41 | const { form } = createForm({ onSubmit: jest.fn() });
42 | const userFieldset = document.createElement('fieldset');
43 | userFieldset.name = 'user';
44 | const profileFieldset = document.createElement('fieldset');
45 | profileFieldset.name = 'profile';
46 | const emailInput = createInputElement({ type: 'email', name: 'email' });
47 | const passwordInput = createInputElement({
48 | type: 'password',
49 | name: 'password',
50 | });
51 | const nameInput = createInputElement({ name: 'name' });
52 | const bioInput = createInputElement({ name: 'bio' });
53 | profileFieldset.append(nameInput, bioInput);
54 | userFieldset.append(emailInput, passwordInput, profileFieldset);
55 | const formElement = screen.getByRole('form') as HTMLFormElement;
56 | formElement.appendChild(userFieldset);
57 | form(formElement);
58 | [emailInput, passwordInput, profileFieldset].forEach((el) => {
59 | expect(el).toHaveAttribute('data-felte-fieldset', 'user');
60 | });
61 | [nameInput, bioInput].forEach((el) => {
62 | expect(el).toHaveAttribute('data-felte-fieldset', 'user.profile');
63 | });
64 | });
65 |
66 | test('Propagates felte-unset-on-remove attribute respecting specificity', () => {
67 | const { form } = createForm({ onSubmit: jest.fn() });
68 | const outerFieldset = document.createElement('fieldset');
69 | outerFieldset.dataset.felteUnsetOnRemove = 'true';
70 | const outerTextInput = createInputElement({ name: 'outerText' });
71 | const outerSecondaryInput = createInputElement({ name: 'outerSecondary' });
72 | outerSecondaryInput.dataset.felteUnsetOnRemove = 'false';
73 | const innerFieldset = document.createElement('fieldset');
74 | const innerTextInput = createInputElement({ name: 'innerText' });
75 | const innerSecondaryinput = createInputElement({ name: 'innerSecondary' });
76 | innerSecondaryinput.dataset.felteUnsetOnRemove = 'false';
77 | innerFieldset.append(innerTextInput, innerSecondaryinput);
78 | outerFieldset.append(outerTextInput, outerSecondaryInput, innerFieldset);
79 | const formElement = screen.getByRole('form') as HTMLFormElement;
80 | formElement.appendChild(outerFieldset);
81 | form(formElement);
82 | [outerFieldset, outerTextInput, innerFieldset, innerTextInput].forEach(
83 | (el) => {
84 | expect(el).toHaveAttribute('data-felte-unset-on-remove', 'true');
85 | }
86 | );
87 | [outerSecondaryInput, innerSecondaryinput].forEach((el) => {
88 | expect(el).toHaveAttribute('data-felte-unset-on-remove', 'false');
89 | });
90 | });
91 |
92 | test('Unsets fields tagged with felte-unset-on-remove', async () => {
93 | const { form, data } = createForm({ onSubmit: jest.fn() });
94 | const outerFieldset = document.createElement('fieldset');
95 | outerFieldset.dataset.felteUnsetOnRemove = 'true';
96 | const outerTextInput = createInputElement({ name: 'outerText' });
97 | const outerSecondaryInput = createInputElement({ name: 'outerSecondary' });
98 | outerSecondaryInput.dataset.felteUnsetOnRemove = 'false';
99 | const innerFieldset = document.createElement('fieldset');
100 | innerFieldset.name = 'inner';
101 | const innerTextInput = createInputElement({ name: 'innerText' });
102 | const innerSecondaryinput = createInputElement({ name: 'innerSecondary' });
103 | innerSecondaryinput.dataset.felteUnsetOnRemove = 'false';
104 | innerFieldset.append(innerTextInput, innerSecondaryinput);
105 | outerFieldset.append(outerTextInput, outerSecondaryInput, innerFieldset);
106 | const formElement = screen.getByRole('form') as HTMLFormElement;
107 | formElement.appendChild(outerFieldset);
108 | form(formElement);
109 | expect(get(data)).toEqual({
110 | outerText: '',
111 | outerSecondary: '',
112 | inner: {
113 | innerText: '',
114 | innerSecondary: '',
115 | },
116 | });
117 | formElement.removeChild(outerFieldset);
118 | await waitFor(() => {
119 | expect(get(data)).toEqual({
120 | outerSecondary: '',
121 | inner: {
122 | innerSecondary: '',
123 | },
124 | });
125 | });
126 | });
127 |
128 | test('Handles fields added after form load', async () => {
129 | const { form, data } = createForm({ onSubmit: jest.fn() });
130 | const outerFieldset = document.createElement('fieldset');
131 | outerFieldset.dataset.felteUnsetOnRemove = 'true';
132 | const outerTextInput = createInputElement({ name: 'outerText' });
133 | const outerSecondaryInput = createInputElement({ name: 'outerSecondary' });
134 | outerSecondaryInput.dataset.felteUnsetOnRemove = 'false';
135 | const innerFieldset = document.createElement('fieldset');
136 | innerFieldset.name = 'inner';
137 | const innerTextInput = createInputElement({ name: 'innerText' });
138 | const innerSecondaryinput = createInputElement({ name: 'innerSecondary' });
139 | innerSecondaryinput.dataset.felteUnsetOnRemove = 'false';
140 | innerFieldset.append(innerTextInput, innerSecondaryinput);
141 | outerFieldset.append(outerTextInput, outerSecondaryInput);
142 | const formElement = screen.getByRole('form') as HTMLFormElement;
143 | formElement.appendChild(outerFieldset);
144 | form(formElement);
145 | expect(get(data)).toEqual({
146 | outerText: '',
147 | outerSecondary: '',
148 | });
149 |
150 | formElement.appendChild(innerFieldset);
151 |
152 | await waitFor(() => {
153 | expect(get(data)).toEqual({
154 | outerText: '',
155 | outerSecondary: '',
156 | inner: {
157 | innerText: '',
158 | innerSecondary: '',
159 | },
160 | });
161 | });
162 | });
163 |
164 | test('Adds and removes event listeners', () => {
165 | const formElement = screen.getByRole('form') as HTMLFormElement;
166 | const { form } = createForm({ onSubmit: jest.fn() });
167 | const addEventListener = jest.fn();
168 | const removeEventListener = jest.fn();
169 | formElement.addEventListener = addEventListener;
170 | formElement.removeEventListener = removeEventListener;
171 | expect(addEventListener).not.toHaveBeenCalled();
172 | expect(removeEventListener).not.toHaveBeenCalled();
173 | const { destroy } = form(formElement);
174 | expect(addEventListener).toHaveBeenCalledTimes(4);
175 | expect(removeEventListener).not.toHaveBeenCalled();
176 | destroy();
177 | expect(removeEventListener).toHaveBeenCalledTimes(4);
178 | });
179 | });
180 |
--------------------------------------------------------------------------------
/tests/extenders.test.ts:
--------------------------------------------------------------------------------
1 | import '@testing-library/jest-dom/extend-expect';
2 | import { screen, waitFor } from '@testing-library/dom';
3 | import { createForm } from '../src';
4 | import { cleanupDOM, createDOM, createInputElement } from './common';
5 | import { get } from 'svelte/store';
6 |
7 | describe('Extenders', () => {
8 | beforeEach(createDOM);
9 |
10 | afterEach(cleanupDOM);
11 |
12 | test('calls extender', async () => {
13 | const formElement = screen.getByRole('form') as HTMLFormElement;
14 | const mockExtenderHandler = {
15 | destroy: jest.fn(),
16 | };
17 | const mockExtender = jest.fn(() => mockExtenderHandler);
18 | const {
19 | form,
20 | data: { set, ...data },
21 | errors,
22 | touched,
23 | } = createForm({
24 | onSubmit: jest.fn(),
25 | extend: mockExtender,
26 | });
27 |
28 | expect(mockExtender).toHaveBeenLastCalledWith(
29 | expect.objectContaining({
30 | data: expect.objectContaining(data),
31 | errors,
32 | touched,
33 | })
34 | );
35 |
36 | expect(mockExtender).toHaveBeenCalledTimes(1);
37 |
38 | form(formElement);
39 |
40 | expect(mockExtender).toHaveBeenLastCalledWith(
41 | expect.objectContaining({
42 | data: expect.objectContaining(data),
43 | errors,
44 | touched,
45 | form: formElement,
46 | controls: expect.arrayContaining([]),
47 | })
48 | );
49 |
50 | expect(mockExtender).toHaveBeenCalledTimes(2);
51 |
52 | const inputElement = createInputElement({
53 | name: 'test',
54 | type: 'text',
55 | });
56 |
57 | formElement.appendChild(inputElement);
58 |
59 | await waitFor(() => {
60 | expect(mockExtender).toHaveBeenLastCalledWith(
61 | expect.objectContaining({
62 | data: expect.objectContaining(data),
63 | errors,
64 | touched,
65 | form: formElement,
66 | controls: expect.arrayContaining([inputElement]),
67 | })
68 | );
69 |
70 | expect(mockExtender).toHaveBeenCalledTimes(3);
71 |
72 | expect(mockExtenderHandler.destroy).toHaveBeenCalledTimes(1);
73 | });
74 |
75 | formElement.removeChild(inputElement);
76 |
77 | await waitFor(() => {
78 | expect(mockExtender).toHaveBeenLastCalledWith(
79 | expect.objectContaining({
80 | data: expect.objectContaining(data),
81 | errors,
82 | touched,
83 | form: formElement,
84 | controls: expect.arrayContaining([]),
85 | })
86 | );
87 |
88 | expect(mockExtender).toHaveBeenCalledTimes(4);
89 |
90 | expect(mockExtenderHandler.destroy).toHaveBeenCalledTimes(2);
91 | });
92 | });
93 |
94 | test('calls multiple extenders', async () => {
95 | const formElement = screen.getByRole('form') as HTMLFormElement;
96 | const mockExtenderHandler = {
97 | destroy: jest.fn(),
98 | };
99 | const mockExtender = jest.fn(() => mockExtenderHandler);
100 | const {
101 | form,
102 | data: { set, ...data },
103 | errors,
104 | touched,
105 | } = createForm({
106 | onSubmit: jest.fn(),
107 | extend: [mockExtender, mockExtender],
108 | });
109 |
110 | expect(mockExtender).toHaveBeenLastCalledWith(
111 | expect.objectContaining({
112 | data: expect.objectContaining(data),
113 | errors,
114 | touched,
115 | })
116 | );
117 |
118 | expect(mockExtender).toHaveBeenCalledTimes(2);
119 |
120 | form(formElement);
121 |
122 | expect(mockExtender).toHaveBeenLastCalledWith(
123 | expect.objectContaining({
124 | data: expect.objectContaining(data),
125 | errors,
126 | touched,
127 | form: formElement,
128 | controls: expect.arrayContaining([]),
129 | })
130 | );
131 |
132 | expect(mockExtender).toHaveBeenCalledTimes(4);
133 |
134 | const inputElement = createInputElement({
135 | name: 'test',
136 | type: 'text',
137 | });
138 |
139 | formElement.appendChild(inputElement);
140 |
141 | await waitFor(() => {
142 | expect(mockExtender).toHaveBeenLastCalledWith(
143 | expect.objectContaining({
144 | data: expect.objectContaining(data),
145 | errors,
146 | touched,
147 | form: formElement,
148 | controls: expect.arrayContaining([inputElement]),
149 | })
150 | );
151 |
152 | expect(mockExtender).toHaveBeenCalledTimes(6);
153 |
154 | expect(mockExtenderHandler.destroy).toHaveBeenCalledTimes(2);
155 | });
156 |
157 | formElement.removeChild(inputElement);
158 |
159 | await waitFor(() => {
160 | expect(mockExtender).toHaveBeenLastCalledWith(
161 | expect.objectContaining({
162 | data: expect.objectContaining(data),
163 | errors,
164 | touched,
165 | form: formElement,
166 | controls: expect.arrayContaining([]),
167 | })
168 | );
169 |
170 | expect(mockExtender).toHaveBeenCalledTimes(8);
171 |
172 | expect(mockExtenderHandler.destroy).toHaveBeenCalledTimes(4);
173 | });
174 | });
175 |
176 | test('calls onSubmitError', async () => {
177 | const formElement = screen.getByRole('form') as HTMLFormElement;
178 | const mockExtenderHandler = {
179 | onSubmitError: jest.fn(),
180 | };
181 | const mockExtender = jest.fn(() => mockExtenderHandler);
182 | const mockErrors = { account: { email: 'Not email' } };
183 |
184 | const { form, data } = createForm({
185 | onSubmit: jest.fn(() => {
186 | throw mockErrors;
187 | }),
188 | onError: () => mockErrors,
189 | extend: mockExtender,
190 | });
191 |
192 | form(formElement);
193 |
194 | formElement.submit();
195 |
196 | await waitFor(() => {
197 | expect(mockExtenderHandler.onSubmitError).toHaveBeenCalledWith(
198 | expect.objectContaining({
199 | data: get(data),
200 | errors: mockErrors,
201 | })
202 | );
203 | });
204 | });
205 |
206 | test('calls onSubmitError on multiple extenders', async () => {
207 | const formElement = screen.getByRole('form') as HTMLFormElement;
208 | const mockExtenderHandler = {
209 | onSubmitError: jest.fn(),
210 | };
211 | const mockExtender = jest.fn(() => mockExtenderHandler);
212 | const validate = jest.fn();
213 | const mockErrors = { account: { email: 'Not email' } };
214 | const onSubmit = jest.fn(() => {
215 | throw mockErrors;
216 | });
217 |
218 | const { form, data } = createForm({
219 | onSubmit,
220 | onError: () => mockErrors,
221 | validate,
222 | extend: [mockExtender, mockExtender],
223 | });
224 |
225 | form(formElement);
226 |
227 | formElement.submit();
228 |
229 | await waitFor(() => {
230 | expect(mockExtenderHandler.onSubmitError).toHaveBeenNthCalledWith(
231 | 1,
232 | expect.objectContaining({
233 | data: get(data),
234 | errors: mockErrors,
235 | })
236 | );
237 | expect(mockExtenderHandler.onSubmitError).toHaveBeenNthCalledWith(
238 | 2,
239 | expect.objectContaining({
240 | data: get(data),
241 | errors: mockErrors,
242 | })
243 | );
244 | expect(mockExtenderHandler.onSubmitError).toHaveBeenCalledTimes(2);
245 | expect(onSubmit).toHaveBeenCalledTimes(1);
246 | });
247 |
248 | validate.mockImplementation(() => mockErrors);
249 |
250 | formElement.submit();
251 |
252 | await waitFor(() => {
253 | expect(mockExtenderHandler.onSubmitError).toHaveBeenNthCalledWith(
254 | 3,
255 | expect.objectContaining({
256 | data: get(data),
257 | errors: mockErrors,
258 | })
259 | );
260 | expect(mockExtenderHandler.onSubmitError).toHaveBeenNthCalledWith(
261 | 4,
262 | expect.objectContaining({
263 | data: get(data),
264 | errors: mockErrors,
265 | })
266 | );
267 | expect(mockExtenderHandler.onSubmitError).toHaveBeenCalledTimes(4);
268 | expect(onSubmit).toHaveBeenCalledTimes(1);
269 | });
270 | });
271 | });
272 |
--------------------------------------------------------------------------------
/tests/helpers.test.ts:
--------------------------------------------------------------------------------
1 | import { waitFor, screen } from '@testing-library/dom';
2 | import userEvent from '@testing-library/user-event';
3 | import { createForm } from '../src';
4 | import { createInputElement, createDOM } from './common';
5 | import { get } from 'svelte/store';
6 |
7 | describe('Helpers', () => {
8 | test('setField should update and touch field', () => {
9 | type Data = {
10 | account: {
11 | email: string;
12 | };
13 | };
14 | const { data, touched, setField } = createForm({
15 | initialValues: {
16 | account: {
17 | email: '',
18 | },
19 | },
20 | onSubmit: jest.fn(),
21 | });
22 |
23 | expect(get(data).account.email).toBe('');
24 | expect(get(touched).account.email).toBe(false);
25 | setField('account.email', 'jacek@soplica.com');
26 | expect(get(data)).toEqual({
27 | account: {
28 | email: 'jacek@soplica.com',
29 | },
30 | });
31 | expect(get(touched)).toEqual({
32 | account: {
33 | email: true,
34 | },
35 | });
36 | });
37 |
38 | test('setField should update without touching field', () => {
39 | type Data = {
40 | account: {
41 | email: string;
42 | };
43 | };
44 | const { data, touched, setField } = createForm({
45 | initialValues: {
46 | account: {
47 | email: '',
48 | },
49 | },
50 | onSubmit: jest.fn(),
51 | });
52 |
53 | expect(get(data).account.email).toBe('');
54 | expect(get(touched).account.email).toBe(false);
55 | setField('account.email', 'jacek@soplica.com', false);
56 | expect(get(data)).toEqual({
57 | account: {
58 | email: 'jacek@soplica.com',
59 | },
60 | });
61 | expect(get(touched)).toEqual({
62 | account: {
63 | email: false,
64 | },
65 | });
66 | });
67 |
68 | test('setTouched should touch field', () => {
69 | type Data = {
70 | account: {
71 | email: string;
72 | };
73 | };
74 | const { touched, setTouched } = createForm({
75 | initialValues: {
76 | account: {
77 | email: '',
78 | },
79 | },
80 | onSubmit: jest.fn(),
81 | });
82 |
83 | expect(get(touched).account.email).toBe(false);
84 | setTouched('account.email');
85 | expect(get(touched)).toEqual({
86 | account: {
87 | email: true,
88 | },
89 | });
90 | });
91 |
92 | test('setError should set a field error when touched', () => {
93 | type Data = {
94 | account: {
95 | email: string;
96 | };
97 | };
98 | const { errors, touched, setError, setTouched } = createForm({
99 | initialValues: {
100 | account: {
101 | email: '',
102 | },
103 | },
104 | onSubmit: jest.fn(),
105 | });
106 |
107 | expect(get(errors)?.account?.email).toBeFalsy();
108 | setError('account.email', 'Not an email');
109 | expect(get(errors)).toEqual({
110 | account: {
111 | email: null,
112 | },
113 | });
114 | setTouched('account.email');
115 | expect(get(touched).account.email).toBe(true);
116 | expect(get(errors)).toEqual({
117 | account: {
118 | email: 'Not an email',
119 | },
120 | });
121 | });
122 |
123 | test('validate should force validation', async () => {
124 | type Data = {
125 | account: {
126 | email: string;
127 | };
128 | };
129 | const mockErrors = { account: { email: 'Not email' } };
130 | const mockValidate = jest.fn(() => mockErrors);
131 | const { errors, touched, validate } = createForm({
132 | initialValues: {
133 | account: {
134 | email: '',
135 | },
136 | },
137 | validate: mockValidate,
138 | onSubmit: jest.fn(),
139 | });
140 |
141 | expect(mockValidate).not.toHaveBeenCalled();
142 | validate();
143 | expect(mockValidate).toHaveBeenCalled();
144 | await waitFor(() => {
145 | expect(get(errors)).toEqual(mockErrors);
146 | expect(get(touched)).toEqual({
147 | account: {
148 | email: true,
149 | },
150 | });
151 | });
152 |
153 | mockValidate.mockImplementation(() => ({} as any));
154 | validate();
155 | expect(mockValidate).toHaveBeenCalledTimes(4);
156 | await waitFor(() => {
157 | expect(get(errors)).toEqual({ account: { email: null } });
158 | expect(get(touched)).toEqual({
159 | account: {
160 | email: true,
161 | },
162 | });
163 | });
164 | });
165 |
166 | test('setting directly to data should touch value', () => {
167 | type Data = {
168 | account: {
169 | email: string;
170 | password: string;
171 | };
172 | };
173 | const { data, touched } = createForm({
174 | initialValues: {
175 | account: {
176 | email: '',
177 | password: '',
178 | },
179 | },
180 | onSubmit: jest.fn(),
181 | });
182 |
183 | expect(get(data).account.email).toBe('');
184 | expect(get(data).account.password).toBe('');
185 |
186 | data.set({
187 | account: { email: 'jacek@soplica.com', password: '' },
188 | });
189 |
190 | expect(get(data).account.email).toBe('jacek@soplica.com');
191 | expect(get(data).account.password).toBe('');
192 |
193 | expect(get(touched)).toEqual({
194 | account: {
195 | email: true,
196 | password: false,
197 | },
198 | });
199 | });
200 |
201 | test('reset should reset form to default values', () => {
202 | createDOM();
203 | const formElement = screen.getByRole('form') as HTMLFormElement;
204 | const accountFieldset = document.createElement('fieldset');
205 | accountFieldset.name = 'account';
206 | const emailInput = createInputElement({
207 | name: 'email',
208 | type: 'text',
209 | value: '',
210 | });
211 | accountFieldset.appendChild(emailInput);
212 | formElement.appendChild(accountFieldset);
213 | type Data = {
214 | account: {
215 | email: string;
216 | };
217 | };
218 | const { data, touched, reset, form } = createForm({
219 | initialValues: {
220 | account: {
221 | email: '',
222 | },
223 | },
224 | onSubmit: jest.fn(),
225 | });
226 |
227 | expect(get(data).account.email).toBe('');
228 |
229 | data.set({
230 | account: { email: 'jacek@soplica.com' },
231 | });
232 |
233 | expect(get(data).account.email).toBe('jacek@soplica.com');
234 |
235 | reset();
236 |
237 | expect(get(data)).toEqual({
238 | account: {
239 | email: '',
240 | },
241 | });
242 |
243 | expect(get(touched)).toEqual({
244 | account: {
245 | email: false,
246 | },
247 | });
248 |
249 | form(formElement);
250 |
251 | expect(get(data)).toEqual({
252 | account: {
253 | email: '',
254 | },
255 | });
256 |
257 | userEvent.type(emailInput, 'jacek@soplica.com');
258 | expect(get(data).account.email).toBe('jacek@soplica.com');
259 |
260 | reset();
261 |
262 | expect(get(data)).toEqual({
263 | account: {
264 | email: '',
265 | },
266 | });
267 |
268 | expect(get(touched)).toEqual({
269 | account: {
270 | email: false,
271 | },
272 | });
273 | });
274 | });
275 |
--------------------------------------------------------------------------------
/tests/user-interactions.test.ts:
--------------------------------------------------------------------------------
1 | import { screen, waitFor } from '@testing-library/dom';
2 | import { cleanupDOM, createInputElement, createDOM } from './common';
3 | import { createForm } from '../src';
4 | import userEvent from '@testing-library/user-event';
5 | import { get } from 'svelte/store';
6 |
7 | function createLoginForm() {
8 | const formElement = screen.getByRole('form') as HTMLFormElement;
9 | const emailInput = createInputElement({ name: 'email', type: 'email' });
10 | const passwordInput = createInputElement({
11 | name: 'password',
12 | type: 'password',
13 | });
14 | const submitInput = createInputElement({ type: 'submit' });
15 | const accountFieldset = document.createElement('fieldset');
16 | accountFieldset.name = 'account';
17 | accountFieldset.append(emailInput, passwordInput);
18 | formElement.append(accountFieldset, submitInput);
19 | return { formElement, emailInput, passwordInput, submitInput };
20 | }
21 |
22 | function createSignupForm() {
23 | const formElement = screen.getByRole('form') as HTMLFormElement;
24 | const emailInput = createInputElement({ name: 'email', type: 'email' });
25 | const passwordInput = createInputElement({
26 | name: 'password',
27 | type: 'password',
28 | });
29 | const showPasswordInput = createInputElement({
30 | name: 'showPassword',
31 | type: 'checkbox',
32 | });
33 | const confirmPasswordInput = createInputElement({
34 | name: 'confirmPassword',
35 | type: 'password',
36 | });
37 | const publicEmailYesRadio = createInputElement({
38 | name: 'publicEmail',
39 | value: 'yes',
40 | type: 'radio',
41 | });
42 | const publicEmailNoRadio = createInputElement({
43 | name: 'publicEmail',
44 | value: 'no',
45 | type: 'radio',
46 | });
47 | const accountFieldset = document.createElement('fieldset');
48 | accountFieldset.name = 'account';
49 | accountFieldset.append(
50 | emailInput,
51 | passwordInput,
52 | showPasswordInput,
53 | publicEmailYesRadio,
54 | publicEmailNoRadio,
55 | confirmPasswordInput
56 | );
57 | formElement.appendChild(accountFieldset);
58 | const profileFieldset = document.createElement('fieldset');
59 | profileFieldset.name = 'profile';
60 | const firstNameInput = createInputElement({ name: 'firstName' });
61 | const lastNameInput = createInputElement({ name: 'lastName' });
62 | const bioInput = createInputElement({ name: 'bio' });
63 | profileFieldset.append(firstNameInput, lastNameInput, bioInput);
64 | formElement.appendChild(profileFieldset);
65 | const pictureInput = createInputElement({
66 | name: 'profile.picture',
67 | type: 'file',
68 | });
69 | formElement.appendChild(pictureInput);
70 | const extraPicsInput = createInputElement({
71 | name: 'extra.pictures',
72 | type: 'file',
73 | });
74 | extraPicsInput.multiple = true;
75 | formElement.appendChild(extraPicsInput);
76 | const submitInput = createInputElement({ type: 'submit' });
77 | const techCheckbox = createInputElement({
78 | type: 'checkbox',
79 | name: 'preferences',
80 | value: 'technology',
81 | });
82 | const filmsCheckbox = createInputElement({
83 | type: 'checkbox',
84 | name: 'preferences',
85 | value: 'films',
86 | });
87 | formElement.append(techCheckbox, filmsCheckbox, submitInput);
88 | return {
89 | formElement,
90 | emailInput,
91 | passwordInput,
92 | confirmPasswordInput,
93 | showPasswordInput,
94 | publicEmailYesRadio,
95 | publicEmailNoRadio,
96 | firstNameInput,
97 | lastNameInput,
98 | bioInput,
99 | pictureInput,
100 | extraPicsInput,
101 | techCheckbox,
102 | filmsCheckbox,
103 | submitInput,
104 | };
105 | }
106 |
107 | describe('User interactions with form', () => {
108 | beforeEach(createDOM);
109 |
110 | afterEach(cleanupDOM);
111 |
112 | test('Sets default data correctly', () => {
113 | const { form, data } = createForm({
114 | onSubmit: jest.fn(),
115 | });
116 | const { formElement } = createSignupForm();
117 | form(formElement);
118 | const $data = get(data);
119 | expect($data).toEqual(
120 | expect.objectContaining({
121 | account: {
122 | email: '',
123 | password: '',
124 | confirmPassword: '',
125 | showPassword: false,
126 | publicEmail: undefined,
127 | },
128 | profile: {
129 | firstName: '',
130 | lastName: '',
131 | bio: '',
132 | picture: undefined,
133 | },
134 | extra: {
135 | pictures: expect.arrayContaining([]),
136 | },
137 | preferences: expect.arrayContaining([]),
138 | })
139 | );
140 | });
141 |
142 | test('Sets custom default data correctly', () => {
143 | const { form, data, isValid } = createForm({
144 | onSubmit: jest.fn(),
145 | });
146 | const {
147 | formElement,
148 | emailInput,
149 | bioInput,
150 | publicEmailYesRadio,
151 | showPasswordInput,
152 | techCheckbox,
153 | } = createSignupForm();
154 | emailInput.value = 'jacek@soplica.com';
155 | const bioTest = 'Litwo! Ojczyzno moja! ty jesteś jak zdrowie';
156 | bioInput.value = bioTest;
157 | publicEmailYesRadio.checked = true;
158 | showPasswordInput.checked = true;
159 | techCheckbox.checked = true;
160 | form(formElement);
161 | const $data = get(data);
162 | expect($data).toEqual(
163 | expect.objectContaining({
164 | account: {
165 | email: 'jacek@soplica.com',
166 | password: '',
167 | confirmPassword: '',
168 | showPassword: true,
169 | publicEmail: 'yes',
170 | },
171 | profile: {
172 | firstName: '',
173 | lastName: '',
174 | bio: bioTest,
175 | picture: undefined,
176 | },
177 | extra: {
178 | pictures: expect.arrayContaining([]),
179 | },
180 | preferences: expect.arrayContaining(['technology']),
181 | })
182 | );
183 | expect(get(isValid)).toBeTruthy();
184 | });
185 |
186 | test('Input and data object get same value', () => {
187 | const { form, data } = createForm({
188 | onSubmit: jest.fn(),
189 | });
190 | const { formElement, emailInput, passwordInput } = createLoginForm();
191 | form(formElement);
192 | userEvent.type(emailInput, 'jacek@soplica.com');
193 | userEvent.type(passwordInput, 'password');
194 | const $data = get(data);
195 | expect($data).toEqual(
196 | expect.objectContaining({
197 | account: {
198 | email: 'jacek@soplica.com',
199 | password: 'password',
200 | },
201 | })
202 | );
203 | });
204 |
205 | test('Calls validation function on submit', async () => {
206 | const validate = jest.fn(() => ({}));
207 | const onSubmit = jest.fn();
208 | const { form, isSubmitting } = createForm({
209 | onSubmit,
210 | validate,
211 | });
212 | const { formElement } = createLoginForm();
213 | form(formElement);
214 | formElement.submit();
215 | expect(validate).toHaveBeenCalled();
216 | await waitFor(() => {
217 | expect(onSubmit).toHaveBeenCalledWith(
218 | expect.objectContaining({
219 | account: {
220 | email: '',
221 | password: '',
222 | },
223 | })
224 | );
225 | expect(get(isSubmitting)).toBeFalsy();
226 | });
227 | });
228 |
229 | test('Calls validation function on submit without calling onSubmit', async () => {
230 | const validate = jest.fn(() => ({ account: { email: 'Not email' } }));
231 | const onSubmit = jest.fn();
232 | const { form, isValid, isSubmitting } = createForm({
233 | onSubmit,
234 | validate,
235 | });
236 | const { formElement } = createLoginForm();
237 | form(formElement);
238 | formElement.submit();
239 | expect(validate).toHaveBeenCalled();
240 | await waitFor(() => expect(onSubmit).not.toHaveBeenCalled());
241 | expect(get(isValid)).toBeFalsy();
242 | expect(get(isSubmitting)).toBeFalsy();
243 | });
244 |
245 | test('Calls validate on input', async () => {
246 | const validate = jest.fn(() => ({}));
247 | const onSubmit = jest.fn();
248 | const { form, errors, isValid } = createForm({
249 | onSubmit,
250 | validate,
251 | });
252 | const { formElement, emailInput } = createLoginForm();
253 | form(formElement);
254 | userEvent.type(emailInput, 'jacek@soplica.com');
255 | get(errors);
256 | await waitFor(() => expect(validate).toHaveBeenCalled());
257 | expect(get(isValid)).toBeTruthy();
258 | });
259 |
260 | test('Handles user events', () => {
261 | const { form, data } = createForm({
262 | onSubmit: jest.fn(),
263 | });
264 | const {
265 | formElement,
266 | emailInput,
267 | passwordInput,
268 | confirmPasswordInput,
269 | showPasswordInput,
270 | publicEmailYesRadio,
271 | firstNameInput,
272 | lastNameInput,
273 | bioInput,
274 | techCheckbox,
275 | pictureInput,
276 | extraPicsInput,
277 | } = createSignupForm();
278 |
279 | form(formElement);
280 |
281 | expect(get(data)).toEqual(
282 | expect.objectContaining({
283 | account: {
284 | email: '',
285 | password: '',
286 | confirmPassword: '',
287 | showPassword: false,
288 | publicEmail: undefined,
289 | },
290 | profile: {
291 | firstName: '',
292 | lastName: '',
293 | bio: '',
294 | picture: undefined,
295 | },
296 | extra: {
297 | pictures: expect.arrayContaining([]),
298 | },
299 | preferences: expect.arrayContaining([]),
300 | })
301 | );
302 |
303 | const mockFile = new File(['test file'], 'test.png', { type: 'image/png' });
304 | userEvent.type(emailInput, 'jacek@soplica.com');
305 | userEvent.type(passwordInput, 'password');
306 | userEvent.type(confirmPasswordInput, 'password');
307 | userEvent.click(showPasswordInput);
308 | userEvent.click(publicEmailYesRadio);
309 | userEvent.type(firstNameInput, 'Jacek');
310 | userEvent.type(lastNameInput, 'Soplica');
311 | const bioTest = 'Litwo! Ojczyzno moja! ty jesteś jak zdrowie';
312 | userEvent.type(bioInput, bioTest);
313 | userEvent.click(techCheckbox);
314 | userEvent.upload(pictureInput, mockFile);
315 | userEvent.upload(extraPicsInput, [mockFile, mockFile]);
316 |
317 | expect(get(data)).toEqual(
318 | expect.objectContaining({
319 | account: {
320 | email: 'jacek@soplica.com',
321 | password: 'password',
322 | confirmPassword: 'password',
323 | showPassword: true,
324 | publicEmail: 'yes',
325 | },
326 | profile: {
327 | firstName: 'Jacek',
328 | lastName: 'Soplica',
329 | bio: bioTest,
330 | picture: mockFile,
331 | },
332 | extra: {
333 | pictures: expect.arrayContaining([mockFile, mockFile]),
334 | },
335 | preferences: expect.arrayContaining(['technology']),
336 | })
337 | );
338 | });
339 |
340 | test('Sets default data with initialValues', () => {
341 | const { data } = createForm({
342 | onSubmit: jest.fn(),
343 | initialValues: {
344 | account: {
345 | email: 'jacek@soplica.com',
346 | password: 'password',
347 | },
348 | },
349 | });
350 | expect(get(data)).toEqual(
351 | expect.objectContaining({
352 | account: {
353 | email: 'jacek@soplica.com',
354 | password: 'password',
355 | },
356 | })
357 | );
358 | });
359 |
360 | test('calls onError', async () => {
361 | const formElement = screen.getByRole('form') as HTMLFormElement;
362 | const onError = jest.fn();
363 | const mockErrors = { account: { email: 'Not email' } };
364 | const onSubmit = jest.fn(() => {
365 | throw mockErrors;
366 | });
367 |
368 | const { form, isSubmitting } = createForm({
369 | onSubmit,
370 | onError,
371 | });
372 |
373 | form(formElement);
374 |
375 | expect(onError).not.toHaveBeenCalled();
376 |
377 | formElement.submit();
378 |
379 | await waitFor(() => {
380 | expect(onSubmit).toHaveBeenCalled();
381 | expect(onError).toHaveBeenCalledWith(mockErrors);
382 | expect(get(isSubmitting)).toBeFalsy();
383 | });
384 | });
385 |
386 | test('use createSubmitHandler to override submit', async () => {
387 | const mockOnSubmit = jest.fn();
388 | const mockValidate = jest.fn();
389 | const mockOnError = jest.fn();
390 | const formElement = screen.getByRole('form') as HTMLFormElement;
391 | const defaultConfig = {
392 | onSubmit: jest.fn(),
393 | validate: jest.fn(),
394 | onError: jest.fn(),
395 | };
396 | const { form, createSubmitHandler, isSubmitting } = createForm(
397 | defaultConfig
398 | );
399 | const altOnSubmit = createSubmitHandler({
400 | onSubmit: mockOnSubmit,
401 | onError: mockOnError,
402 | validate: mockValidate,
403 | });
404 |
405 | form(formElement);
406 |
407 | const submitInput = createInputElement({
408 | type: 'submit',
409 | value: 'Alt Submit',
410 | });
411 |
412 | submitInput.addEventListener('click', altOnSubmit);
413 |
414 | formElement.appendChild(submitInput);
415 |
416 | userEvent.click(submitInput);
417 |
418 | await waitFor(() => {
419 | expect(mockValidate).toHaveBeenCalledTimes(1);
420 | expect(defaultConfig.onSubmit).not.toHaveBeenCalled();
421 | expect(mockOnSubmit).toHaveBeenCalledTimes(1);
422 | expect(defaultConfig.onError).not.toHaveBeenCalled();
423 | expect(mockOnError).not.toHaveBeenCalled();
424 | expect(get(isSubmitting)).toBeFalsy();
425 | });
426 |
427 | const mockErrors = { account: { email: 'Not email' } };
428 | mockOnSubmit.mockImplementationOnce(() => {
429 | throw mockErrors;
430 | });
431 |
432 | userEvent.click(submitInput);
433 |
434 | await waitFor(() => {
435 | expect(mockOnError).toHaveBeenCalled();
436 | expect(mockValidate).toHaveBeenCalledTimes(2);
437 | expect(mockOnSubmit).toHaveBeenCalledTimes(2);
438 | expect(get(isSubmitting)).toBeFalsy();
439 | });
440 | });
441 |
442 | test('calls submit handler without event', async () => {
443 | const { createSubmitHandler, isSubmitting } = createForm({
444 | onSubmit: jest.fn(),
445 | });
446 | const mockOnSubmit = jest.fn();
447 | const altOnSubmit = createSubmitHandler({ onSubmit: mockOnSubmit });
448 | altOnSubmit();
449 | await waitFor(() => {
450 | expect(mockOnSubmit).toHaveBeenCalled();
451 | expect(get(isSubmitting)).toBeFalsy();
452 | });
453 | });
454 | });
455 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "target": "es2017",
5 | "isolatedModules": true,
6 | "strict": true,
7 | "module": "es2020",
8 | "esModuleInterop": true,
9 | "skipLibCheck": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "declaration": true,
12 | "declarationMap": true,
13 | "declarationDir": "./dist"
14 | },
15 | "typedocOptions": {
16 | "entryPoints": ["src/index.ts"],
17 | "out": "docs",
18 | "categoryOrder": ["Main", "Helper", "*"]
19 | },
20 | "include": ["src"]
21 | }
22 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13":
6 | version "7.12.13"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
8 | integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
9 | dependencies:
10 | "@babel/highlight" "^7.12.13"
11 |
12 | "@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.8":
13 | version "7.13.12"
14 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1"
15 | integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==
16 |
17 | "@babel/core@^7.13.10":
18 | version "7.13.10"
19 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559"
20 | integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==
21 | dependencies:
22 | "@babel/code-frame" "^7.12.13"
23 | "@babel/generator" "^7.13.9"
24 | "@babel/helper-compilation-targets" "^7.13.10"
25 | "@babel/helper-module-transforms" "^7.13.0"
26 | "@babel/helpers" "^7.13.10"
27 | "@babel/parser" "^7.13.10"
28 | "@babel/template" "^7.12.13"
29 | "@babel/traverse" "^7.13.0"
30 | "@babel/types" "^7.13.0"
31 | convert-source-map "^1.7.0"
32 | debug "^4.1.0"
33 | gensync "^1.0.0-beta.2"
34 | json5 "^2.1.2"
35 | lodash "^4.17.19"
36 | semver "^6.3.0"
37 | source-map "^0.5.0"
38 |
39 | "@babel/generator@^7.13.0", "@babel/generator@^7.13.9":
40 | version "7.13.9"
41 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39"
42 | integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==
43 | dependencies:
44 | "@babel/types" "^7.13.0"
45 | jsesc "^2.5.1"
46 | source-map "^0.5.0"
47 |
48 | "@babel/helper-annotate-as-pure@^7.12.13":
49 | version "7.12.13"
50 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
51 | integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==
52 | dependencies:
53 | "@babel/types" "^7.12.13"
54 |
55 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13":
56 | version "7.12.13"
57 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc"
58 | integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==
59 | dependencies:
60 | "@babel/helper-explode-assignable-expression" "^7.12.13"
61 | "@babel/types" "^7.12.13"
62 |
63 | "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.8":
64 | version "7.13.10"
65 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c"
66 | integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==
67 | dependencies:
68 | "@babel/compat-data" "^7.13.8"
69 | "@babel/helper-validator-option" "^7.12.17"
70 | browserslist "^4.14.5"
71 | semver "^6.3.0"
72 |
73 | "@babel/helper-create-class-features-plugin@^7.13.0":
74 | version "7.13.11"
75 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz#30d30a005bca2c953f5653fc25091a492177f4f6"
76 | integrity sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==
77 | dependencies:
78 | "@babel/helper-function-name" "^7.12.13"
79 | "@babel/helper-member-expression-to-functions" "^7.13.0"
80 | "@babel/helper-optimise-call-expression" "^7.12.13"
81 | "@babel/helper-replace-supers" "^7.13.0"
82 | "@babel/helper-split-export-declaration" "^7.12.13"
83 |
84 | "@babel/helper-create-regexp-features-plugin@^7.12.13":
85 | version "7.12.17"
86 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7"
87 | integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==
88 | dependencies:
89 | "@babel/helper-annotate-as-pure" "^7.12.13"
90 | regexpu-core "^4.7.1"
91 |
92 | "@babel/helper-define-polyfill-provider@^0.1.5":
93 | version "0.1.5"
94 | resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e"
95 | integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==
96 | dependencies:
97 | "@babel/helper-compilation-targets" "^7.13.0"
98 | "@babel/helper-module-imports" "^7.12.13"
99 | "@babel/helper-plugin-utils" "^7.13.0"
100 | "@babel/traverse" "^7.13.0"
101 | debug "^4.1.1"
102 | lodash.debounce "^4.0.8"
103 | resolve "^1.14.2"
104 | semver "^6.1.2"
105 |
106 | "@babel/helper-explode-assignable-expression@^7.12.13":
107 | version "7.13.0"
108 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f"
109 | integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==
110 | dependencies:
111 | "@babel/types" "^7.13.0"
112 |
113 | "@babel/helper-function-name@^7.12.13":
114 | version "7.12.13"
115 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
116 | integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==
117 | dependencies:
118 | "@babel/helper-get-function-arity" "^7.12.13"
119 | "@babel/template" "^7.12.13"
120 | "@babel/types" "^7.12.13"
121 |
122 | "@babel/helper-get-function-arity@^7.12.13":
123 | version "7.12.13"
124 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
125 | integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==
126 | dependencies:
127 | "@babel/types" "^7.12.13"
128 |
129 | "@babel/helper-hoist-variables@^7.13.0":
130 | version "7.13.0"
131 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8"
132 | integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==
133 | dependencies:
134 | "@babel/traverse" "^7.13.0"
135 | "@babel/types" "^7.13.0"
136 |
137 | "@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12":
138 | version "7.13.12"
139 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72"
140 | integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==
141 | dependencies:
142 | "@babel/types" "^7.13.12"
143 |
144 | "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12":
145 | version "7.13.12"
146 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
147 | integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==
148 | dependencies:
149 | "@babel/types" "^7.13.12"
150 |
151 | "@babel/helper-module-transforms@^7.13.0":
152 | version "7.13.12"
153 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz#600e58350490828d82282631a1422268e982ba96"
154 | integrity sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==
155 | dependencies:
156 | "@babel/helper-module-imports" "^7.13.12"
157 | "@babel/helper-replace-supers" "^7.13.12"
158 | "@babel/helper-simple-access" "^7.13.12"
159 | "@babel/helper-split-export-declaration" "^7.12.13"
160 | "@babel/helper-validator-identifier" "^7.12.11"
161 | "@babel/template" "^7.12.13"
162 | "@babel/traverse" "^7.13.0"
163 | "@babel/types" "^7.13.12"
164 |
165 | "@babel/helper-optimise-call-expression@^7.12.13":
166 | version "7.12.13"
167 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
168 | integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
169 | dependencies:
170 | "@babel/types" "^7.12.13"
171 |
172 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
173 | version "7.13.0"
174 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af"
175 | integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==
176 |
177 | "@babel/helper-remap-async-to-generator@^7.13.0":
178 | version "7.13.0"
179 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209"
180 | integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==
181 | dependencies:
182 | "@babel/helper-annotate-as-pure" "^7.12.13"
183 | "@babel/helper-wrap-function" "^7.13.0"
184 | "@babel/types" "^7.13.0"
185 |
186 | "@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12":
187 | version "7.13.12"
188 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804"
189 | integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==
190 | dependencies:
191 | "@babel/helper-member-expression-to-functions" "^7.13.12"
192 | "@babel/helper-optimise-call-expression" "^7.12.13"
193 | "@babel/traverse" "^7.13.0"
194 | "@babel/types" "^7.13.12"
195 |
196 | "@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12":
197 | version "7.13.12"
198 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
199 | integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
200 | dependencies:
201 | "@babel/types" "^7.13.12"
202 |
203 | "@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
204 | version "7.12.1"
205 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
206 | integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
207 | dependencies:
208 | "@babel/types" "^7.12.1"
209 |
210 | "@babel/helper-split-export-declaration@^7.12.13":
211 | version "7.12.13"
212 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
213 | integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==
214 | dependencies:
215 | "@babel/types" "^7.12.13"
216 |
217 | "@babel/helper-validator-identifier@^7.12.11":
218 | version "7.12.11"
219 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
220 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
221 |
222 | "@babel/helper-validator-option@^7.12.17":
223 | version "7.12.17"
224 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
225 | integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==
226 |
227 | "@babel/helper-wrap-function@^7.13.0":
228 | version "7.13.0"
229 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4"
230 | integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==
231 | dependencies:
232 | "@babel/helper-function-name" "^7.12.13"
233 | "@babel/template" "^7.12.13"
234 | "@babel/traverse" "^7.13.0"
235 | "@babel/types" "^7.13.0"
236 |
237 | "@babel/helpers@^7.13.10":
238 | version "7.13.10"
239 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.10.tgz#fd8e2ba7488533cdeac45cc158e9ebca5e3c7df8"
240 | integrity sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==
241 | dependencies:
242 | "@babel/template" "^7.12.13"
243 | "@babel/traverse" "^7.13.0"
244 | "@babel/types" "^7.13.0"
245 |
246 | "@babel/highlight@^7.12.13":
247 | version "7.13.10"
248 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
249 | integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==
250 | dependencies:
251 | "@babel/helper-validator-identifier" "^7.12.11"
252 | chalk "^2.0.0"
253 | js-tokens "^4.0.0"
254 |
255 | "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10":
256 | version "7.13.12"
257 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.12.tgz#ba320059420774394d3b0c0233ba40e4250b81d1"
258 | integrity sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==
259 |
260 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":
261 | version "7.13.12"
262 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a"
263 | integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==
264 | dependencies:
265 | "@babel/helper-plugin-utils" "^7.13.0"
266 | "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
267 | "@babel/plugin-proposal-optional-chaining" "^7.13.12"
268 |
269 | "@babel/plugin-proposal-async-generator-functions@^7.13.8":
270 | version "7.13.8"
271 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1"
272 | integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==
273 | dependencies:
274 | "@babel/helper-plugin-utils" "^7.13.0"
275 | "@babel/helper-remap-async-to-generator" "^7.13.0"
276 | "@babel/plugin-syntax-async-generators" "^7.8.4"
277 |
278 | "@babel/plugin-proposal-class-properties@^7.13.0":
279 | version "7.13.0"
280 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37"
281 | integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==
282 | dependencies:
283 | "@babel/helper-create-class-features-plugin" "^7.13.0"
284 | "@babel/helper-plugin-utils" "^7.13.0"
285 |
286 | "@babel/plugin-proposal-dynamic-import@^7.13.8":
287 | version "7.13.8"
288 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d"
289 | integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==
290 | dependencies:
291 | "@babel/helper-plugin-utils" "^7.13.0"
292 | "@babel/plugin-syntax-dynamic-import" "^7.8.3"
293 |
294 | "@babel/plugin-proposal-export-namespace-from@^7.12.13":
295 | version "7.12.13"
296 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d"
297 | integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==
298 | dependencies:
299 | "@babel/helper-plugin-utils" "^7.12.13"
300 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
301 |
302 | "@babel/plugin-proposal-json-strings@^7.13.8":
303 | version "7.13.8"
304 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b"
305 | integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==
306 | dependencies:
307 | "@babel/helper-plugin-utils" "^7.13.0"
308 | "@babel/plugin-syntax-json-strings" "^7.8.3"
309 |
310 | "@babel/plugin-proposal-logical-assignment-operators@^7.13.8":
311 | version "7.13.8"
312 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a"
313 | integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==
314 | dependencies:
315 | "@babel/helper-plugin-utils" "^7.13.0"
316 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
317 |
318 | "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8":
319 | version "7.13.8"
320 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3"
321 | integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==
322 | dependencies:
323 | "@babel/helper-plugin-utils" "^7.13.0"
324 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
325 |
326 | "@babel/plugin-proposal-numeric-separator@^7.12.13":
327 | version "7.12.13"
328 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db"
329 | integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==
330 | dependencies:
331 | "@babel/helper-plugin-utils" "^7.12.13"
332 | "@babel/plugin-syntax-numeric-separator" "^7.10.4"
333 |
334 | "@babel/plugin-proposal-object-rest-spread@^7.13.8":
335 | version "7.13.8"
336 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a"
337 | integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==
338 | dependencies:
339 | "@babel/compat-data" "^7.13.8"
340 | "@babel/helper-compilation-targets" "^7.13.8"
341 | "@babel/helper-plugin-utils" "^7.13.0"
342 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
343 | "@babel/plugin-transform-parameters" "^7.13.0"
344 |
345 | "@babel/plugin-proposal-optional-catch-binding@^7.13.8":
346 | version "7.13.8"
347 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107"
348 | integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==
349 | dependencies:
350 | "@babel/helper-plugin-utils" "^7.13.0"
351 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
352 |
353 | "@babel/plugin-proposal-optional-chaining@^7.13.12":
354 | version "7.13.12"
355 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866"
356 | integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==
357 | dependencies:
358 | "@babel/helper-plugin-utils" "^7.13.0"
359 | "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
360 | "@babel/plugin-syntax-optional-chaining" "^7.8.3"
361 |
362 | "@babel/plugin-proposal-private-methods@^7.13.0":
363 | version "7.13.0"
364 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787"
365 | integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==
366 | dependencies:
367 | "@babel/helper-create-class-features-plugin" "^7.13.0"
368 | "@babel/helper-plugin-utils" "^7.13.0"
369 |
370 | "@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
371 | version "7.12.13"
372 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba"
373 | integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==
374 | dependencies:
375 | "@babel/helper-create-regexp-features-plugin" "^7.12.13"
376 | "@babel/helper-plugin-utils" "^7.12.13"
377 |
378 | "@babel/plugin-syntax-async-generators@^7.8.4":
379 | version "7.8.4"
380 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
381 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
382 | dependencies:
383 | "@babel/helper-plugin-utils" "^7.8.0"
384 |
385 | "@babel/plugin-syntax-class-properties@^7.12.13":
386 | version "7.12.13"
387 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
388 | integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
389 | dependencies:
390 | "@babel/helper-plugin-utils" "^7.12.13"
391 |
392 | "@babel/plugin-syntax-dynamic-import@^7.8.3":
393 | version "7.8.3"
394 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
395 | integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
396 | dependencies:
397 | "@babel/helper-plugin-utils" "^7.8.0"
398 |
399 | "@babel/plugin-syntax-export-namespace-from@^7.8.3":
400 | version "7.8.3"
401 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
402 | integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
403 | dependencies:
404 | "@babel/helper-plugin-utils" "^7.8.3"
405 |
406 | "@babel/plugin-syntax-json-strings@^7.8.3":
407 | version "7.8.3"
408 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
409 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
410 | dependencies:
411 | "@babel/helper-plugin-utils" "^7.8.0"
412 |
413 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
414 | version "7.10.4"
415 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
416 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
417 | dependencies:
418 | "@babel/helper-plugin-utils" "^7.10.4"
419 |
420 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
421 | version "7.8.3"
422 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
423 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
424 | dependencies:
425 | "@babel/helper-plugin-utils" "^7.8.0"
426 |
427 | "@babel/plugin-syntax-numeric-separator@^7.10.4":
428 | version "7.10.4"
429 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
430 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
431 | dependencies:
432 | "@babel/helper-plugin-utils" "^7.10.4"
433 |
434 | "@babel/plugin-syntax-object-rest-spread@^7.8.3":
435 | version "7.8.3"
436 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
437 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
438 | dependencies:
439 | "@babel/helper-plugin-utils" "^7.8.0"
440 |
441 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
442 | version "7.8.3"
443 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
444 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
445 | dependencies:
446 | "@babel/helper-plugin-utils" "^7.8.0"
447 |
448 | "@babel/plugin-syntax-optional-chaining@^7.8.3":
449 | version "7.8.3"
450 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
451 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
452 | dependencies:
453 | "@babel/helper-plugin-utils" "^7.8.0"
454 |
455 | "@babel/plugin-syntax-top-level-await@^7.12.13":
456 | version "7.12.13"
457 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"
458 | integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==
459 | dependencies:
460 | "@babel/helper-plugin-utils" "^7.12.13"
461 |
462 | "@babel/plugin-transform-arrow-functions@^7.13.0":
463 | version "7.13.0"
464 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae"
465 | integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==
466 | dependencies:
467 | "@babel/helper-plugin-utils" "^7.13.0"
468 |
469 | "@babel/plugin-transform-async-to-generator@^7.13.0":
470 | version "7.13.0"
471 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f"
472 | integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==
473 | dependencies:
474 | "@babel/helper-module-imports" "^7.12.13"
475 | "@babel/helper-plugin-utils" "^7.13.0"
476 | "@babel/helper-remap-async-to-generator" "^7.13.0"
477 |
478 | "@babel/plugin-transform-block-scoped-functions@^7.12.13":
479 | version "7.12.13"
480 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4"
481 | integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==
482 | dependencies:
483 | "@babel/helper-plugin-utils" "^7.12.13"
484 |
485 | "@babel/plugin-transform-block-scoping@^7.12.13":
486 | version "7.12.13"
487 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61"
488 | integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==
489 | dependencies:
490 | "@babel/helper-plugin-utils" "^7.12.13"
491 |
492 | "@babel/plugin-transform-classes@^7.13.0":
493 | version "7.13.0"
494 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b"
495 | integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==
496 | dependencies:
497 | "@babel/helper-annotate-as-pure" "^7.12.13"
498 | "@babel/helper-function-name" "^7.12.13"
499 | "@babel/helper-optimise-call-expression" "^7.12.13"
500 | "@babel/helper-plugin-utils" "^7.13.0"
501 | "@babel/helper-replace-supers" "^7.13.0"
502 | "@babel/helper-split-export-declaration" "^7.12.13"
503 | globals "^11.1.0"
504 |
505 | "@babel/plugin-transform-computed-properties@^7.13.0":
506 | version "7.13.0"
507 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed"
508 | integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==
509 | dependencies:
510 | "@babel/helper-plugin-utils" "^7.13.0"
511 |
512 | "@babel/plugin-transform-destructuring@^7.13.0":
513 | version "7.13.0"
514 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963"
515 | integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==
516 | dependencies:
517 | "@babel/helper-plugin-utils" "^7.13.0"
518 |
519 | "@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4":
520 | version "7.12.13"
521 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad"
522 | integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==
523 | dependencies:
524 | "@babel/helper-create-regexp-features-plugin" "^7.12.13"
525 | "@babel/helper-plugin-utils" "^7.12.13"
526 |
527 | "@babel/plugin-transform-duplicate-keys@^7.12.13":
528 | version "7.12.13"
529 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de"
530 | integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==
531 | dependencies:
532 | "@babel/helper-plugin-utils" "^7.12.13"
533 |
534 | "@babel/plugin-transform-exponentiation-operator@^7.12.13":
535 | version "7.12.13"
536 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1"
537 | integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==
538 | dependencies:
539 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13"
540 | "@babel/helper-plugin-utils" "^7.12.13"
541 |
542 | "@babel/plugin-transform-for-of@^7.13.0":
543 | version "7.13.0"
544 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062"
545 | integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==
546 | dependencies:
547 | "@babel/helper-plugin-utils" "^7.13.0"
548 |
549 | "@babel/plugin-transform-function-name@^7.12.13":
550 | version "7.12.13"
551 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051"
552 | integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==
553 | dependencies:
554 | "@babel/helper-function-name" "^7.12.13"
555 | "@babel/helper-plugin-utils" "^7.12.13"
556 |
557 | "@babel/plugin-transform-literals@^7.12.13":
558 | version "7.12.13"
559 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9"
560 | integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==
561 | dependencies:
562 | "@babel/helper-plugin-utils" "^7.12.13"
563 |
564 | "@babel/plugin-transform-member-expression-literals@^7.12.13":
565 | version "7.12.13"
566 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40"
567 | integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==
568 | dependencies:
569 | "@babel/helper-plugin-utils" "^7.12.13"
570 |
571 | "@babel/plugin-transform-modules-amd@^7.13.0":
572 | version "7.13.0"
573 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3"
574 | integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==
575 | dependencies:
576 | "@babel/helper-module-transforms" "^7.13.0"
577 | "@babel/helper-plugin-utils" "^7.13.0"
578 | babel-plugin-dynamic-import-node "^2.3.3"
579 |
580 | "@babel/plugin-transform-modules-commonjs@^7.13.8":
581 | version "7.13.8"
582 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b"
583 | integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==
584 | dependencies:
585 | "@babel/helper-module-transforms" "^7.13.0"
586 | "@babel/helper-plugin-utils" "^7.13.0"
587 | "@babel/helper-simple-access" "^7.12.13"
588 | babel-plugin-dynamic-import-node "^2.3.3"
589 |
590 | "@babel/plugin-transform-modules-systemjs@^7.13.8":
591 | version "7.13.8"
592 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3"
593 | integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==
594 | dependencies:
595 | "@babel/helper-hoist-variables" "^7.13.0"
596 | "@babel/helper-module-transforms" "^7.13.0"
597 | "@babel/helper-plugin-utils" "^7.13.0"
598 | "@babel/helper-validator-identifier" "^7.12.11"
599 | babel-plugin-dynamic-import-node "^2.3.3"
600 |
601 | "@babel/plugin-transform-modules-umd@^7.13.0":
602 | version "7.13.0"
603 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b"
604 | integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==
605 | dependencies:
606 | "@babel/helper-module-transforms" "^7.13.0"
607 | "@babel/helper-plugin-utils" "^7.13.0"
608 |
609 | "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13":
610 | version "7.12.13"
611 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9"
612 | integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==
613 | dependencies:
614 | "@babel/helper-create-regexp-features-plugin" "^7.12.13"
615 |
616 | "@babel/plugin-transform-new-target@^7.12.13":
617 | version "7.12.13"
618 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c"
619 | integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==
620 | dependencies:
621 | "@babel/helper-plugin-utils" "^7.12.13"
622 |
623 | "@babel/plugin-transform-object-super@^7.12.13":
624 | version "7.12.13"
625 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7"
626 | integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==
627 | dependencies:
628 | "@babel/helper-plugin-utils" "^7.12.13"
629 | "@babel/helper-replace-supers" "^7.12.13"
630 |
631 | "@babel/plugin-transform-parameters@^7.13.0":
632 | version "7.13.0"
633 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007"
634 | integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==
635 | dependencies:
636 | "@babel/helper-plugin-utils" "^7.13.0"
637 |
638 | "@babel/plugin-transform-property-literals@^7.12.13":
639 | version "7.12.13"
640 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81"
641 | integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==
642 | dependencies:
643 | "@babel/helper-plugin-utils" "^7.12.13"
644 |
645 | "@babel/plugin-transform-regenerator@^7.12.13":
646 | version "7.12.13"
647 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5"
648 | integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==
649 | dependencies:
650 | regenerator-transform "^0.14.2"
651 |
652 | "@babel/plugin-transform-reserved-words@^7.12.13":
653 | version "7.12.13"
654 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695"
655 | integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==
656 | dependencies:
657 | "@babel/helper-plugin-utils" "^7.12.13"
658 |
659 | "@babel/plugin-transform-runtime@^7.13.10":
660 | version "7.13.10"
661 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.10.tgz#a1e40d22e2bf570c591c9c7e5ab42d6bf1e419e1"
662 | integrity sha512-Y5k8ipgfvz5d/76tx7JYbKQTcgFSU6VgJ3kKQv4zGTKr+a9T/KBvfRvGtSFgKDQGt/DBykQixV0vNWKIdzWErA==
663 | dependencies:
664 | "@babel/helper-module-imports" "^7.12.13"
665 | "@babel/helper-plugin-utils" "^7.13.0"
666 | babel-plugin-polyfill-corejs2 "^0.1.4"
667 | babel-plugin-polyfill-corejs3 "^0.1.3"
668 | babel-plugin-polyfill-regenerator "^0.1.2"
669 | semver "^6.3.0"
670 |
671 | "@babel/plugin-transform-shorthand-properties@^7.12.13":
672 | version "7.12.13"
673 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad"
674 | integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==
675 | dependencies:
676 | "@babel/helper-plugin-utils" "^7.12.13"
677 |
678 | "@babel/plugin-transform-spread@^7.13.0":
679 | version "7.13.0"
680 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd"
681 | integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==
682 | dependencies:
683 | "@babel/helper-plugin-utils" "^7.13.0"
684 | "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
685 |
686 | "@babel/plugin-transform-sticky-regex@^7.12.13":
687 | version "7.12.13"
688 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f"
689 | integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==
690 | dependencies:
691 | "@babel/helper-plugin-utils" "^7.12.13"
692 |
693 | "@babel/plugin-transform-template-literals@^7.13.0":
694 | version "7.13.0"
695 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d"
696 | integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==
697 | dependencies:
698 | "@babel/helper-plugin-utils" "^7.13.0"
699 |
700 | "@babel/plugin-transform-typeof-symbol@^7.12.13":
701 | version "7.12.13"
702 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f"
703 | integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==
704 | dependencies:
705 | "@babel/helper-plugin-utils" "^7.12.13"
706 |
707 | "@babel/plugin-transform-unicode-escapes@^7.12.13":
708 | version "7.12.13"
709 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74"
710 | integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==
711 | dependencies:
712 | "@babel/helper-plugin-utils" "^7.12.13"
713 |
714 | "@babel/plugin-transform-unicode-regex@^7.12.13":
715 | version "7.12.13"
716 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac"
717 | integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==
718 | dependencies:
719 | "@babel/helper-create-regexp-features-plugin" "^7.12.13"
720 | "@babel/helper-plugin-utils" "^7.12.13"
721 |
722 | "@babel/preset-env@^7.13.12":
723 | version "7.13.12"
724 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.12.tgz#6dff470478290582ac282fb77780eadf32480237"
725 | integrity sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA==
726 | dependencies:
727 | "@babel/compat-data" "^7.13.12"
728 | "@babel/helper-compilation-targets" "^7.13.10"
729 | "@babel/helper-plugin-utils" "^7.13.0"
730 | "@babel/helper-validator-option" "^7.12.17"
731 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12"
732 | "@babel/plugin-proposal-async-generator-functions" "^7.13.8"
733 | "@babel/plugin-proposal-class-properties" "^7.13.0"
734 | "@babel/plugin-proposal-dynamic-import" "^7.13.8"
735 | "@babel/plugin-proposal-export-namespace-from" "^7.12.13"
736 | "@babel/plugin-proposal-json-strings" "^7.13.8"
737 | "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8"
738 | "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8"
739 | "@babel/plugin-proposal-numeric-separator" "^7.12.13"
740 | "@babel/plugin-proposal-object-rest-spread" "^7.13.8"
741 | "@babel/plugin-proposal-optional-catch-binding" "^7.13.8"
742 | "@babel/plugin-proposal-optional-chaining" "^7.13.12"
743 | "@babel/plugin-proposal-private-methods" "^7.13.0"
744 | "@babel/plugin-proposal-unicode-property-regex" "^7.12.13"
745 | "@babel/plugin-syntax-async-generators" "^7.8.4"
746 | "@babel/plugin-syntax-class-properties" "^7.12.13"
747 | "@babel/plugin-syntax-dynamic-import" "^7.8.3"
748 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
749 | "@babel/plugin-syntax-json-strings" "^7.8.3"
750 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
751 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
752 | "@babel/plugin-syntax-numeric-separator" "^7.10.4"
753 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
754 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
755 | "@babel/plugin-syntax-optional-chaining" "^7.8.3"
756 | "@babel/plugin-syntax-top-level-await" "^7.12.13"
757 | "@babel/plugin-transform-arrow-functions" "^7.13.0"
758 | "@babel/plugin-transform-async-to-generator" "^7.13.0"
759 | "@babel/plugin-transform-block-scoped-functions" "^7.12.13"
760 | "@babel/plugin-transform-block-scoping" "^7.12.13"
761 | "@babel/plugin-transform-classes" "^7.13.0"
762 | "@babel/plugin-transform-computed-properties" "^7.13.0"
763 | "@babel/plugin-transform-destructuring" "^7.13.0"
764 | "@babel/plugin-transform-dotall-regex" "^7.12.13"
765 | "@babel/plugin-transform-duplicate-keys" "^7.12.13"
766 | "@babel/plugin-transform-exponentiation-operator" "^7.12.13"
767 | "@babel/plugin-transform-for-of" "^7.13.0"
768 | "@babel/plugin-transform-function-name" "^7.12.13"
769 | "@babel/plugin-transform-literals" "^7.12.13"
770 | "@babel/plugin-transform-member-expression-literals" "^7.12.13"
771 | "@babel/plugin-transform-modules-amd" "^7.13.0"
772 | "@babel/plugin-transform-modules-commonjs" "^7.13.8"
773 | "@babel/plugin-transform-modules-systemjs" "^7.13.8"
774 | "@babel/plugin-transform-modules-umd" "^7.13.0"
775 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13"
776 | "@babel/plugin-transform-new-target" "^7.12.13"
777 | "@babel/plugin-transform-object-super" "^7.12.13"
778 | "@babel/plugin-transform-parameters" "^7.13.0"
779 | "@babel/plugin-transform-property-literals" "^7.12.13"
780 | "@babel/plugin-transform-regenerator" "^7.12.13"
781 | "@babel/plugin-transform-reserved-words" "^7.12.13"
782 | "@babel/plugin-transform-shorthand-properties" "^7.12.13"
783 | "@babel/plugin-transform-spread" "^7.13.0"
784 | "@babel/plugin-transform-sticky-regex" "^7.12.13"
785 | "@babel/plugin-transform-template-literals" "^7.13.0"
786 | "@babel/plugin-transform-typeof-symbol" "^7.12.13"
787 | "@babel/plugin-transform-unicode-escapes" "^7.12.13"
788 | "@babel/plugin-transform-unicode-regex" "^7.12.13"
789 | "@babel/preset-modules" "^0.1.4"
790 | "@babel/types" "^7.13.12"
791 | babel-plugin-polyfill-corejs2 "^0.1.4"
792 | babel-plugin-polyfill-corejs3 "^0.1.3"
793 | babel-plugin-polyfill-regenerator "^0.1.2"
794 | core-js-compat "^3.9.0"
795 | semver "^6.3.0"
796 |
797 | "@babel/preset-modules@^0.1.4":
798 | version "0.1.4"
799 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
800 | integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
801 | dependencies:
802 | "@babel/helper-plugin-utils" "^7.0.0"
803 | "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
804 | "@babel/plugin-transform-dotall-regex" "^7.4.4"
805 | "@babel/types" "^7.4.4"
806 | esutils "^2.0.2"
807 |
808 | "@babel/runtime@^7.13.10", "@babel/runtime@^7.8.4":
809 | version "7.13.10"
810 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
811 | integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
812 | dependencies:
813 | regenerator-runtime "^0.13.4"
814 |
815 | "@babel/template@^7.12.13":
816 | version "7.12.13"
817 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
818 | integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==
819 | dependencies:
820 | "@babel/code-frame" "^7.12.13"
821 | "@babel/parser" "^7.12.13"
822 | "@babel/types" "^7.12.13"
823 |
824 | "@babel/traverse@^7.13.0":
825 | version "7.13.0"
826 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc"
827 | integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==
828 | dependencies:
829 | "@babel/code-frame" "^7.12.13"
830 | "@babel/generator" "^7.13.0"
831 | "@babel/helper-function-name" "^7.12.13"
832 | "@babel/helper-split-export-declaration" "^7.12.13"
833 | "@babel/parser" "^7.13.0"
834 | "@babel/types" "^7.13.0"
835 | debug "^4.1.0"
836 | globals "^11.1.0"
837 | lodash "^4.17.19"
838 |
839 | "@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.3.0", "@babel/types@^7.4.4":
840 | version "7.13.12"
841 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd"
842 | integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==
843 | dependencies:
844 | "@babel/helper-validator-identifier" "^7.12.11"
845 | lodash "^4.17.19"
846 | to-fast-properties "^2.0.0"
847 |
848 | "@editorjs/editorjs@^2.19.3":
849 | version "2.19.3"
850 | resolved "https://registry.yarnpkg.com/@editorjs/editorjs/-/editorjs-2.19.3.tgz#cb0c804bf06f9953f8a78d6af8c7fa85ca2d804f"
851 | integrity sha512-2IdR164W1csszDZmtCu91q0q7iQ39BBl82bGlNGaXTEiVLr0sySPcmM7v/3DITldEjE+Uovupclba8YAi40KKQ==
852 | dependencies:
853 | codex-notifier "^1.1.2"
854 | codex-tooltip "^1.0.1"
855 |
856 | "@mdn/browser-compat-data@^3.2.1":
857 | version "3.2.1"
858 | resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-3.2.1.tgz#18707a79db035b430d6bab370d00cd14c39e0553"
859 | integrity sha512-rIfqD67k64yP6RfFyZOVSLykDoNfAkeqRrTZnKs13rfa+EAFF/FOYAKTOpKMwMUfTM2/+FGYRGaiFmETnGRjsQ==
860 | dependencies:
861 | extend "3.0.2"
862 |
863 | "@rollup/plugin-commonjs@^17.1.0":
864 | version "17.1.0"
865 | resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d"
866 | integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==
867 | dependencies:
868 | "@rollup/pluginutils" "^3.1.0"
869 | commondir "^1.0.1"
870 | estree-walker "^2.0.1"
871 | glob "^7.1.6"
872 | is-reference "^1.2.1"
873 | magic-string "^0.25.7"
874 | resolve "^1.17.0"
875 |
876 | "@rollup/plugin-node-resolve@^11.2.0":
877 | version "11.2.0"
878 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz#a5ab88c35bb7622d115f44984dee305112b6f714"
879 | integrity sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA==
880 | dependencies:
881 | "@rollup/pluginutils" "^3.1.0"
882 | "@types/resolve" "1.17.1"
883 | builtin-modules "^3.1.0"
884 | deepmerge "^4.2.2"
885 | is-module "^1.0.0"
886 | resolve "^1.19.0"
887 |
888 | "@rollup/plugin-replace@^2.4.1":
889 | version "2.4.1"
890 | resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.1.tgz#c411b5ab72809fb1bfc8b487d8d02eef661460d3"
891 | integrity sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ==
892 | dependencies:
893 | "@rollup/pluginutils" "^3.1.0"
894 | magic-string "^0.25.7"
895 |
896 | "@rollup/pluginutils@^3.1.0":
897 | version "3.1.0"
898 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
899 | integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
900 | dependencies:
901 | "@types/estree" "0.0.39"
902 | estree-walker "^1.0.1"
903 | picomatch "^2.2.2"
904 |
905 | "@rollup/pluginutils@^4.1.0":
906 | version "4.1.0"
907 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.0.tgz#0dcc61c780e39257554feb7f77207dceca13c838"
908 | integrity sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==
909 | dependencies:
910 | estree-walker "^2.0.1"
911 | picomatch "^2.2.2"
912 |
913 | "@types/babel__core@^7.1.14":
914 | version "7.1.14"
915 | resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402"
916 | integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==
917 | dependencies:
918 | "@babel/parser" "^7.1.0"
919 | "@babel/types" "^7.0.0"
920 | "@types/babel__generator" "*"
921 | "@types/babel__template" "*"
922 | "@types/babel__traverse" "*"
923 |
924 | "@types/babel__generator@*":
925 | version "7.6.2"
926 | resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8"
927 | integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==
928 | dependencies:
929 | "@babel/types" "^7.0.0"
930 |
931 | "@types/babel__template@*":
932 | version "7.4.0"
933 | resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be"
934 | integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==
935 | dependencies:
936 | "@babel/parser" "^7.1.0"
937 | "@babel/types" "^7.0.0"
938 |
939 | "@types/babel__traverse@*":
940 | version "7.11.1"
941 | resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639"
942 | integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==
943 | dependencies:
944 | "@babel/types" "^7.3.0"
945 |
946 | "@types/estree@*":
947 | version "0.0.47"
948 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4"
949 | integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==
950 |
951 | "@types/estree@0.0.39":
952 | version "0.0.39"
953 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
954 | integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
955 |
956 | "@types/node@*":
957 | version "14.14.35"
958 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313"
959 | integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==
960 |
961 | "@types/object-path@^0.11.0":
962 | version "0.11.0"
963 | resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.0.tgz#0b744309b2573dc8bf867ef589b6288be998e602"
964 | integrity sha512-/tuN8jDbOXcPk+VzEVZzzAgw1Byz7s/itb2YI10qkSyy6nykJH02DuhfrflxVdAdE7AZ91h5X6Cn0dmVdFw2TQ==
965 |
966 | "@types/resolve@1.17.1":
967 | version "1.17.1"
968 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
969 | integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
970 | dependencies:
971 | "@types/node" "*"
972 |
973 | "@types/semver@^7.3.4":
974 | version "7.3.4"
975 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.4.tgz#43d7168fec6fa0988bb1a513a697b29296721afb"
976 | integrity sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==
977 |
978 | "@types/ua-parser-js@^0.7.35":
979 | version "0.7.35"
980 | resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.35.tgz#cca67a95deb9165e4b1f449471801e6489d3fe93"
981 | integrity sha512-PsPx0RLbo2Un8+ff2buzYJnZjzwhD3jQHPOG2PtVIeOhkRDddMcKU8vJtHpzzfLB95dkUi0qAkfLg2l2Fd0yrQ==
982 |
983 | "@wessberg/browserslist-generator@^1.0.46":
984 | version "1.0.46"
985 | resolved "https://registry.yarnpkg.com/@wessberg/browserslist-generator/-/browserslist-generator-1.0.46.tgz#267bc6c88c6c976c405674253c65d51886b88ae6"
986 | integrity sha512-YRpzCuSlCTR48XdENlZryU+aB9guyTL/bhc9HVhA8P11drRedwhdnqAKM+uGRUF1hxNLWgExdvw+uBY/L5YIDQ==
987 | dependencies:
988 | "@mdn/browser-compat-data" "^3.2.1"
989 | "@types/object-path" "^0.11.0"
990 | "@types/semver" "^7.3.4"
991 | "@types/ua-parser-js" "^0.7.35"
992 | browserslist "4.16.3"
993 | caniuse-lite "^1.0.30001204"
994 | object-path "^0.11.5"
995 | semver "^7.3.5"
996 | ua-parser-js "^0.7.25"
997 |
998 | "@wessberg/rollup-plugin-ts@^1.3.11":
999 | version "1.3.11"
1000 | resolved "https://registry.yarnpkg.com/@wessberg/rollup-plugin-ts/-/rollup-plugin-ts-1.3.11.tgz#ed2f005993b9ff3a19a072b7eef65b207ba6fe01"
1001 | integrity sha512-vdV9oRjQxKInqK7iOrvnEkRjCoMDFqd33r+OQ/U9IlhwlJAzUuP1hGxD5fm7Qdxh9sHCRKYb41zZuU6AwgGZaw==
1002 | dependencies:
1003 | "@babel/core" "^7.13.10"
1004 | "@babel/plugin-proposal-async-generator-functions" "^7.13.8"
1005 | "@babel/plugin-proposal-json-strings" "^7.13.8"
1006 | "@babel/plugin-proposal-object-rest-spread" "^7.13.8"
1007 | "@babel/plugin-proposal-optional-catch-binding" "^7.13.8"
1008 | "@babel/plugin-proposal-unicode-property-regex" "^7.12.13"
1009 | "@babel/plugin-syntax-dynamic-import" "^7.8.3"
1010 | "@babel/plugin-transform-runtime" "^7.13.10"
1011 | "@babel/preset-env" "^7.13.12"
1012 | "@babel/runtime" "^7.13.10"
1013 | "@rollup/pluginutils" "^4.1.0"
1014 | "@types/babel__core" "^7.1.14"
1015 | "@wessberg/browserslist-generator" "^1.0.46"
1016 | "@wessberg/stringutil" "^1.0.19"
1017 | "@wessberg/ts-clone-node" "^0.3.19"
1018 | browserslist "^4.16.3"
1019 | chalk "^4.1.0"
1020 | magic-string "^0.25.7"
1021 | slash "^3.0.0"
1022 | tslib "^2.1.0"
1023 |
1024 | "@wessberg/stringutil@^1.0.19":
1025 | version "1.0.19"
1026 | resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad"
1027 | integrity sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==
1028 |
1029 | "@wessberg/ts-clone-node@^0.3.19":
1030 | version "0.3.19"
1031 | resolved "https://registry.yarnpkg.com/@wessberg/ts-clone-node/-/ts-clone-node-0.3.19.tgz#823ed1fa74e4daa310226332322bfca97e264fe3"
1032 | integrity sha512-BnJcU0ZwHxa5runiEkHzMZ6/ydxz+YYqBHOGQtf3eoxSZu2iWMPPaUfCum0O1/Ey5dqrrptUh+HmyMTzHPfdPA==
1033 |
1034 | ansi-styles@^3.2.1:
1035 | version "3.2.1"
1036 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
1037 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
1038 | dependencies:
1039 | color-convert "^1.9.0"
1040 |
1041 | ansi-styles@^4.1.0:
1042 | version "4.3.0"
1043 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
1044 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
1045 | dependencies:
1046 | color-convert "^2.0.1"
1047 |
1048 | babel-plugin-dynamic-import-node@^2.3.3:
1049 | version "2.3.3"
1050 | resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
1051 | integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
1052 | dependencies:
1053 | object.assign "^4.1.0"
1054 |
1055 | babel-plugin-polyfill-corejs2@^0.1.4:
1056 | version "0.1.10"
1057 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz#a2c5c245f56c0cac3dbddbf0726a46b24f0f81d1"
1058 | integrity sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==
1059 | dependencies:
1060 | "@babel/compat-data" "^7.13.0"
1061 | "@babel/helper-define-polyfill-provider" "^0.1.5"
1062 | semver "^6.1.1"
1063 |
1064 | babel-plugin-polyfill-corejs3@^0.1.3:
1065 | version "0.1.7"
1066 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0"
1067 | integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==
1068 | dependencies:
1069 | "@babel/helper-define-polyfill-provider" "^0.1.5"
1070 | core-js-compat "^3.8.1"
1071 |
1072 | babel-plugin-polyfill-regenerator@^0.1.2:
1073 | version "0.1.6"
1074 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz#0fe06a026fe0faa628ccc8ba3302da0a6ce02f3f"
1075 | integrity sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==
1076 | dependencies:
1077 | "@babel/helper-define-polyfill-provider" "^0.1.5"
1078 |
1079 | balanced-match@^1.0.0:
1080 | version "1.0.0"
1081 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
1082 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
1083 |
1084 | brace-expansion@^1.1.7:
1085 | version "1.1.11"
1086 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
1087 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
1088 | dependencies:
1089 | balanced-match "^1.0.0"
1090 | concat-map "0.0.1"
1091 |
1092 | browserslist@4.16.3, browserslist@^4.14.5, browserslist@^4.16.3:
1093 | version "4.16.3"
1094 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717"
1095 | integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==
1096 | dependencies:
1097 | caniuse-lite "^1.0.30001181"
1098 | colorette "^1.2.1"
1099 | electron-to-chromium "^1.3.649"
1100 | escalade "^3.1.1"
1101 | node-releases "^1.1.70"
1102 |
1103 | buffer-from@^1.0.0:
1104 | version "1.1.1"
1105 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
1106 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
1107 |
1108 | builtin-modules@^3.1.0:
1109 | version "3.2.0"
1110 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887"
1111 | integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==
1112 |
1113 | call-bind@^1.0.0:
1114 | version "1.0.2"
1115 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
1116 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
1117 | dependencies:
1118 | function-bind "^1.1.1"
1119 | get-intrinsic "^1.0.2"
1120 |
1121 | caniuse-lite@^1.0.30001181, caniuse-lite@^1.0.30001204:
1122 | version "1.0.30001204"
1123 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz#256c85709a348ec4d175e847a3b515c66e79f2aa"
1124 | integrity sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==
1125 |
1126 | chalk@^2.0.0:
1127 | version "2.4.2"
1128 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
1129 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
1130 | dependencies:
1131 | ansi-styles "^3.2.1"
1132 | escape-string-regexp "^1.0.5"
1133 | supports-color "^5.3.0"
1134 |
1135 | chalk@^4.1.0:
1136 | version "4.1.0"
1137 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
1138 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
1139 | dependencies:
1140 | ansi-styles "^4.1.0"
1141 | supports-color "^7.1.0"
1142 |
1143 | codex-notifier@^1.1.2:
1144 | version "1.1.2"
1145 | resolved "https://registry.yarnpkg.com/codex-notifier/-/codex-notifier-1.1.2.tgz#a733079185f4c927fa296f1d71eb8753fe080895"
1146 | integrity sha512-DCp6xe/LGueJ1N5sXEwcBc3r3PyVkEEDNWCVigfvywAkeXcZMk9K41a31tkEFBW0Ptlwji6/JlAb49E3Yrxbtg==
1147 |
1148 | codex-tooltip@^1.0.1:
1149 | version "1.0.2"
1150 | resolved "https://registry.yarnpkg.com/codex-tooltip/-/codex-tooltip-1.0.2.tgz#81a9d3e2937658c6e5312106b47b9f094ff7be63"
1151 | integrity sha512-oC+Bu5X/zyhbPydgMSLWKoM/+vkJMqaLWu3Dt/jZgXS3MWK23INwC5DMBrVXZSufAFk0i0SUni38k9rLMyZn/w==
1152 |
1153 | color-convert@^1.9.0:
1154 | version "1.9.3"
1155 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
1156 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
1157 | dependencies:
1158 | color-name "1.1.3"
1159 |
1160 | color-convert@^2.0.1:
1161 | version "2.0.1"
1162 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
1163 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
1164 | dependencies:
1165 | color-name "~1.1.4"
1166 |
1167 | color-name@1.1.3:
1168 | version "1.1.3"
1169 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
1170 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
1171 |
1172 | color-name@~1.1.4:
1173 | version "1.1.4"
1174 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
1175 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
1176 |
1177 | colorette@^1.2.1:
1178 | version "1.2.2"
1179 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
1180 | integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
1181 |
1182 | commander@^2.20.0:
1183 | version "2.20.3"
1184 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
1185 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
1186 |
1187 | commondir@^1.0.1:
1188 | version "1.0.1"
1189 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
1190 | integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
1191 |
1192 | concat-map@0.0.1:
1193 | version "0.0.1"
1194 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
1195 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
1196 |
1197 | convert-source-map@^1.7.0:
1198 | version "1.7.0"
1199 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
1200 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
1201 | dependencies:
1202 | safe-buffer "~5.1.1"
1203 |
1204 | core-js-compat@^3.8.1, core-js-compat@^3.9.0:
1205 | version "3.9.1"
1206 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.1.tgz#4e572acfe90aff69d76d8c37759d21a5c59bb455"
1207 | integrity sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==
1208 | dependencies:
1209 | browserslist "^4.16.3"
1210 | semver "7.0.0"
1211 |
1212 | cross-env@^7.0.3:
1213 | version "7.0.3"
1214 | resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
1215 | integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
1216 | dependencies:
1217 | cross-spawn "^7.0.1"
1218 |
1219 | cross-spawn@^7.0.1:
1220 | version "7.0.3"
1221 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
1222 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
1223 | dependencies:
1224 | path-key "^3.1.0"
1225 | shebang-command "^2.0.0"
1226 | which "^2.0.1"
1227 |
1228 | debug@^4.1.0, debug@^4.1.1:
1229 | version "4.3.1"
1230 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
1231 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
1232 | dependencies:
1233 | ms "2.1.2"
1234 |
1235 | deepmerge@^4.2.2:
1236 | version "4.2.2"
1237 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
1238 | integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
1239 |
1240 | define-properties@^1.1.3:
1241 | version "1.1.3"
1242 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
1243 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
1244 | dependencies:
1245 | object-keys "^1.0.12"
1246 |
1247 | electron-to-chromium@^1.3.649:
1248 | version "1.3.699"
1249 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.699.tgz#854eea9db8bc8109c409a4807bfdb200dd75a2c7"
1250 | integrity sha512-fjt43CPXdPYwD9ybmKbNeLwZBmCVdLY2J5fGZub7/eMPuiqQznOGNXv/wurnpXIlE7ScHnvG9Zi+H4/i6uMKmw==
1251 |
1252 | escalade@^3.1.1:
1253 | version "3.1.1"
1254 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
1255 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
1256 |
1257 | escape-string-regexp@^1.0.5:
1258 | version "1.0.5"
1259 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
1260 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
1261 |
1262 | estree-walker@^1.0.1:
1263 | version "1.0.1"
1264 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
1265 | integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
1266 |
1267 | estree-walker@^2.0.1:
1268 | version "2.0.2"
1269 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
1270 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
1271 |
1272 | esutils@^2.0.2:
1273 | version "2.0.3"
1274 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1275 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1276 |
1277 | extend@3.0.2:
1278 | version "3.0.2"
1279 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
1280 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
1281 |
1282 | fs.realpath@^1.0.0:
1283 | version "1.0.0"
1284 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1285 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
1286 |
1287 | fsevents@~2.3.1:
1288 | version "2.3.2"
1289 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1290 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1291 |
1292 | function-bind@^1.1.1:
1293 | version "1.1.1"
1294 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
1295 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1296 |
1297 | gensync@^1.0.0-beta.2:
1298 | version "1.0.0-beta.2"
1299 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1300 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1301 |
1302 | get-intrinsic@^1.0.2:
1303 | version "1.1.1"
1304 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
1305 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
1306 | dependencies:
1307 | function-bind "^1.1.1"
1308 | has "^1.0.3"
1309 | has-symbols "^1.0.1"
1310 |
1311 | glob@^7.1.3, glob@^7.1.6:
1312 | version "7.1.6"
1313 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
1314 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
1315 | dependencies:
1316 | fs.realpath "^1.0.0"
1317 | inflight "^1.0.4"
1318 | inherits "2"
1319 | minimatch "^3.0.4"
1320 | once "^1.3.0"
1321 | path-is-absolute "^1.0.0"
1322 |
1323 | globals@^11.1.0:
1324 | version "11.12.0"
1325 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1326 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1327 |
1328 | has-flag@^3.0.0:
1329 | version "3.0.0"
1330 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1331 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
1332 |
1333 | has-flag@^4.0.0:
1334 | version "4.0.0"
1335 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1336 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1337 |
1338 | has-symbols@^1.0.1:
1339 | version "1.0.2"
1340 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
1341 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
1342 |
1343 | has@^1.0.3:
1344 | version "1.0.3"
1345 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
1346 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1347 | dependencies:
1348 | function-bind "^1.1.1"
1349 |
1350 | inflight@^1.0.4:
1351 | version "1.0.6"
1352 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1353 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
1354 | dependencies:
1355 | once "^1.3.0"
1356 | wrappy "1"
1357 |
1358 | inherits@2:
1359 | version "2.0.4"
1360 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1361 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1362 |
1363 | is-core-module@^2.2.0:
1364 | version "2.2.0"
1365 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
1366 | integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
1367 | dependencies:
1368 | has "^1.0.3"
1369 |
1370 | is-module@^1.0.0:
1371 | version "1.0.0"
1372 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
1373 | integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
1374 |
1375 | is-reference@^1.2.1:
1376 | version "1.2.1"
1377 | resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7"
1378 | integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==
1379 | dependencies:
1380 | "@types/estree" "*"
1381 |
1382 | isexe@^2.0.0:
1383 | version "2.0.0"
1384 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1385 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
1386 |
1387 | jest-worker@^26.2.1:
1388 | version "26.6.2"
1389 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
1390 | integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
1391 | dependencies:
1392 | "@types/node" "*"
1393 | merge-stream "^2.0.0"
1394 | supports-color "^7.0.0"
1395 |
1396 | js-tokens@^4.0.0:
1397 | version "4.0.0"
1398 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1399 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1400 |
1401 | jsesc@^2.5.1:
1402 | version "2.5.2"
1403 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1404 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1405 |
1406 | jsesc@~0.5.0:
1407 | version "0.5.0"
1408 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
1409 | integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
1410 |
1411 | json5@^2.1.2:
1412 | version "2.2.0"
1413 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
1414 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
1415 | dependencies:
1416 | minimist "^1.2.5"
1417 |
1418 | lodash.debounce@^4.0.8:
1419 | version "4.0.8"
1420 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
1421 | integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
1422 |
1423 | lodash@^4.17.19:
1424 | version "4.17.21"
1425 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1426 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1427 |
1428 | lru-cache@^6.0.0:
1429 | version "6.0.0"
1430 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1431 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1432 | dependencies:
1433 | yallist "^4.0.0"
1434 |
1435 | magic-string@^0.25.7:
1436 | version "0.25.7"
1437 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
1438 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
1439 | dependencies:
1440 | sourcemap-codec "^1.4.4"
1441 |
1442 | merge-stream@^2.0.0:
1443 | version "2.0.0"
1444 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1445 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1446 |
1447 | minimatch@^3.0.4:
1448 | version "3.0.4"
1449 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1450 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1451 | dependencies:
1452 | brace-expansion "^1.1.7"
1453 |
1454 | minimist@^1.2.5:
1455 | version "1.2.5"
1456 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1457 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1458 |
1459 | ms@2.1.2:
1460 | version "2.1.2"
1461 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1462 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1463 |
1464 | node-releases@^1.1.70:
1465 | version "1.1.71"
1466 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb"
1467 | integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==
1468 |
1469 | object-keys@^1.0.12, object-keys@^1.1.1:
1470 | version "1.1.1"
1471 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1472 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1473 |
1474 | object-path@^0.11.5:
1475 | version "0.11.5"
1476 | resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a"
1477 | integrity sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==
1478 |
1479 | object.assign@^4.1.0:
1480 | version "4.1.2"
1481 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
1482 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
1483 | dependencies:
1484 | call-bind "^1.0.0"
1485 | define-properties "^1.1.3"
1486 | has-symbols "^1.0.1"
1487 | object-keys "^1.1.1"
1488 |
1489 | once@^1.3.0:
1490 | version "1.4.0"
1491 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1492 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1493 | dependencies:
1494 | wrappy "1"
1495 |
1496 | path-is-absolute@^1.0.0:
1497 | version "1.0.1"
1498 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1499 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1500 |
1501 | path-key@^3.1.0:
1502 | version "3.1.1"
1503 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1504 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1505 |
1506 | path-parse@^1.0.6:
1507 | version "1.0.6"
1508 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
1509 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
1510 |
1511 | picomatch@^2.2.2:
1512 | version "2.2.2"
1513 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
1514 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
1515 |
1516 | prettier@^2.2.1:
1517 | version "2.2.1"
1518 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
1519 | integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
1520 |
1521 | randombytes@^2.1.0:
1522 | version "2.1.0"
1523 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
1524 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1525 | dependencies:
1526 | safe-buffer "^5.1.0"
1527 |
1528 | regenerate-unicode-properties@^8.2.0:
1529 | version "8.2.0"
1530 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
1531 | integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
1532 | dependencies:
1533 | regenerate "^1.4.0"
1534 |
1535 | regenerate@^1.4.0:
1536 | version "1.4.2"
1537 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
1538 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
1539 |
1540 | regenerator-runtime@^0.13.4:
1541 | version "0.13.7"
1542 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
1543 | integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
1544 |
1545 | regenerator-transform@^0.14.2:
1546 | version "0.14.5"
1547 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
1548 | integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
1549 | dependencies:
1550 | "@babel/runtime" "^7.8.4"
1551 |
1552 | regexpu-core@^4.7.1:
1553 | version "4.7.1"
1554 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
1555 | integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
1556 | dependencies:
1557 | regenerate "^1.4.0"
1558 | regenerate-unicode-properties "^8.2.0"
1559 | regjsgen "^0.5.1"
1560 | regjsparser "^0.6.4"
1561 | unicode-match-property-ecmascript "^1.0.4"
1562 | unicode-match-property-value-ecmascript "^1.2.0"
1563 |
1564 | regjsgen@^0.5.1:
1565 | version "0.5.2"
1566 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
1567 | integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
1568 |
1569 | regjsparser@^0.6.4:
1570 | version "0.6.9"
1571 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6"
1572 | integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==
1573 | dependencies:
1574 | jsesc "~0.5.0"
1575 |
1576 | resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0:
1577 | version "1.20.0"
1578 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
1579 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
1580 | dependencies:
1581 | is-core-module "^2.2.0"
1582 | path-parse "^1.0.6"
1583 |
1584 | rimraf@^3.0.2:
1585 | version "3.0.2"
1586 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1587 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1588 | dependencies:
1589 | glob "^7.1.3"
1590 |
1591 | rollup-plugin-terser@^7.0.2:
1592 | version "7.0.2"
1593 | resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
1594 | integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
1595 | dependencies:
1596 | "@babel/code-frame" "^7.10.4"
1597 | jest-worker "^26.2.1"
1598 | serialize-javascript "^4.0.0"
1599 | terser "^5.0.0"
1600 |
1601 | rollup@^2.42.4:
1602 | version "2.42.4"
1603 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.42.4.tgz#97c910a48bd0db6aaa4271dd48745870cbbbf970"
1604 | integrity sha512-Zqv3EvNfcllBHyyEUM754npqsZw82VIjK34cDQMwrQ1d6aqxzeYu5yFb7smGkPU4C1Bj7HupIMeT6WU7uIdnMw==
1605 | optionalDependencies:
1606 | fsevents "~2.3.1"
1607 |
1608 | safe-buffer@^5.1.0:
1609 | version "5.2.1"
1610 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1611 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1612 |
1613 | safe-buffer@~5.1.1:
1614 | version "5.1.2"
1615 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1616 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1617 |
1618 | semver@7.0.0:
1619 | version "7.0.0"
1620 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
1621 | integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
1622 |
1623 | semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
1624 | version "6.3.0"
1625 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1626 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1627 |
1628 | semver@^7.3.5:
1629 | version "7.3.5"
1630 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
1631 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
1632 | dependencies:
1633 | lru-cache "^6.0.0"
1634 |
1635 | serialize-javascript@^4.0.0:
1636 | version "4.0.0"
1637 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
1638 | integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
1639 | dependencies:
1640 | randombytes "^2.1.0"
1641 |
1642 | shebang-command@^2.0.0:
1643 | version "2.0.0"
1644 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1645 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1646 | dependencies:
1647 | shebang-regex "^3.0.0"
1648 |
1649 | shebang-regex@^3.0.0:
1650 | version "3.0.0"
1651 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1652 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1653 |
1654 | slash@^3.0.0:
1655 | version "3.0.0"
1656 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
1657 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
1658 |
1659 | source-map-support@~0.5.19:
1660 | version "0.5.19"
1661 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
1662 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
1663 | dependencies:
1664 | buffer-from "^1.0.0"
1665 | source-map "^0.6.0"
1666 |
1667 | source-map@^0.5.0:
1668 | version "0.5.7"
1669 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1670 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1671 |
1672 | source-map@^0.6.0:
1673 | version "0.6.1"
1674 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1675 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1676 |
1677 | source-map@~0.7.2:
1678 | version "0.7.3"
1679 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
1680 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
1681 |
1682 | sourcemap-codec@^1.4.4:
1683 | version "1.4.8"
1684 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
1685 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
1686 |
1687 | supports-color@^5.3.0:
1688 | version "5.5.0"
1689 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1690 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1691 | dependencies:
1692 | has-flag "^3.0.0"
1693 |
1694 | supports-color@^7.0.0, supports-color@^7.1.0:
1695 | version "7.2.0"
1696 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1697 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1698 | dependencies:
1699 | has-flag "^4.0.0"
1700 |
1701 | svelte@3.31.0:
1702 | version "3.31.0"
1703 | resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.31.0.tgz#13966e5f55b975bc86675469bb2c58dd0e558d97"
1704 | integrity sha512-r+n8UJkDqoQm1b+3tA3Lh6mHXKpcfOSOuEuIo5gE2W9wQYi64RYX/qE6CZBDDsP/H4M+N426JwY7XGH4xASvGQ==
1705 |
1706 | terser@^5.0.0:
1707 | version "5.6.1"
1708 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c"
1709 | integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==
1710 | dependencies:
1711 | commander "^2.20.0"
1712 | source-map "~0.7.2"
1713 | source-map-support "~0.5.19"
1714 |
1715 | to-fast-properties@^2.0.0:
1716 | version "2.0.0"
1717 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1718 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1719 |
1720 | tslib@^2.1.0:
1721 | version "2.1.0"
1722 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
1723 | integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
1724 |
1725 | typescript@^4.2.3:
1726 | version "4.2.3"
1727 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3"
1728 | integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==
1729 |
1730 | ua-parser-js@^0.7.25:
1731 | version "0.7.25"
1732 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.25.tgz#67689fa263a87a52dabbc251ede89891f59156ce"
1733 | integrity sha512-8NFExdfI24Ny8R3Vc6+uUytP/I7dpqk3JERlvxPWlrtx5YboqCgxAXYKPAifbPLV2zKbgmmPL53ufW7mUC/VOQ==
1734 |
1735 | unicode-canonical-property-names-ecmascript@^1.0.4:
1736 | version "1.0.4"
1737 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
1738 | integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
1739 |
1740 | unicode-match-property-ecmascript@^1.0.4:
1741 | version "1.0.4"
1742 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
1743 | integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
1744 | dependencies:
1745 | unicode-canonical-property-names-ecmascript "^1.0.4"
1746 | unicode-property-aliases-ecmascript "^1.0.4"
1747 |
1748 | unicode-match-property-value-ecmascript@^1.2.0:
1749 | version "1.2.0"
1750 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
1751 | integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
1752 |
1753 | unicode-property-aliases-ecmascript@^1.0.4:
1754 | version "1.1.0"
1755 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
1756 | integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
1757 |
1758 | which@^2.0.1:
1759 | version "2.0.2"
1760 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1761 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1762 | dependencies:
1763 | isexe "^2.0.0"
1764 |
1765 | wrappy@1:
1766 | version "1.0.2"
1767 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1768 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1769 |
1770 | yallist@^4.0.0:
1771 | version "4.0.0"
1772 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1773 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1774 |
--------------------------------------------------------------------------------