├── .block
└── remote.json
├── .eslintrc.js
├── .gitignore
├── LICENSE.md
├── README.md
├── block.json
├── frontend
├── container.js
├── index.js
├── monaco.js
├── useDebounced.js
└── useRenderSignal.js
├── media
└── block.gif
├── package-lock.json
└── package.json
/.block/remote.json:
--------------------------------------------------------------------------------
1 | {
2 | "blockId": "blk05FfJLc1EJbajl",
3 | "baseId": "appPxWqSVFAEZxKVD"
4 | }
5 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | browser: true,
4 | es6: true,
5 | },
6 | extends: ['eslint:recommended', 'plugin:react/recommended'],
7 | globals: {
8 | Atomics: 'readonly',
9 | SharedArrayBuffer: 'readonly',
10 | },
11 | parserOptions: {
12 | ecmaFeatures: {
13 | jsx: true,
14 | },
15 | ecmaVersion: 2018,
16 | sourceType: 'module',
17 | },
18 | plugins: ['react', 'react-hooks'],
19 | rules: {
20 | 'react/prop-types': 0,
21 | 'react-hooks/rules-of-hooks': 'error',
22 | 'react-hooks/exhaustive-deps': 'warn',
23 | },
24 | settings: {
25 | react: {
26 | version: 'detect',
27 | },
28 | },
29 | };
30 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /.airtableblocksrc.json
3 | /build
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Airtable
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
6 | associated documentation files (the "Software"), to deal in the Software without restriction,
7 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
8 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all copies or substantial
12 | portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
15 | NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
17 | OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JSON editor app
2 |
3 | When the user selects a cell with a text field type in grid view, this app displays a text editor
4 | allowing them to modify the cell value and alerts them of syntax errors.
5 |
6 | The code shows:
7 |
8 | - How to use the Cursor API to detect when a user has selected a record in grid view and how to
9 | get the selected record.
10 | - How to dynamically load a third-party JavaScript library like
11 | [Monaco](https://github.com/Microsoft/monaco-editor).
12 |
13 | ## See the app running
14 |
15 | 
16 |
--------------------------------------------------------------------------------
/block.json:
--------------------------------------------------------------------------------
1 | {
2 | "frontendEntry": "./frontend/index.js"
3 | }
4 |
--------------------------------------------------------------------------------
/frontend/container.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {Box} from '@airtable/blocks/ui';
3 |
4 | // Container element which takes up the full viewport and centers its children.
5 | export default function Container({children, style}) {
6 | return (
7 |
19 | {children}
20 |
21 | );
22 | }
23 |
--------------------------------------------------------------------------------
/frontend/index.js:
--------------------------------------------------------------------------------
1 | import React, {useState, useEffect} from 'react';
2 | import {cursor} from '@airtable/blocks';
3 | import {FieldType, ViewType} from '@airtable/blocks/models';
4 | import {
5 | colors,
6 | colorUtils,
7 | initializeBlock,
8 | useBase,
9 | useRecordById,
10 | useLoadable,
11 | useViewport,
12 | useWatchable,
13 | Box,
14 | Icon,
15 | Loader,
16 | Text,
17 | Tooltip,
18 | } from '@airtable/blocks/ui';
19 | import Container from './container';
20 | import Monaco from './monaco';
21 | import useDebounced from './useDebounced';
22 | import useRenderSignal from './useRenderSignal';
23 |
24 | /**
25 | * Duration in milliseconds to wait before reacting to changes in the editor's
26 | * value.
27 | *
28 | * When the user modifies the content by issuing keystrokes directly into the
29 | * editor component, the new value should be persisted in the base. The request
30 | * to save the content should not be made immediately following every keystroke
31 | * because keystrokes are expected to be entered in rapid succession. Making
32 | * "save" requests immediately would promote an undesirable "replay" effect.
33 | * The following sequence of events demonstrates this behavior:
34 | *
35 | * 1. User types "a"
36 | * 2. Editor value updates to "a", component issues request to update record
37 | * value to "a"
38 | * 3. User types "b"
39 | * 4. Editor value updates to "ab", component issues request to update record
40 | * value to "ab"
41 | * 5. First request completes, record value updates to "a", the editor
42 | * component detects a change (from "ab" to "a"), and the editor changes the
43 | * content to "a" and resets the position of the cursor
44 | * 6. Second request completes, record value updates to "ab", the editor
45 | * component detects a change (from "a" to "ab"), and the editor changes the
46 | * content to "ab" and resets the position of the cursor
47 | *
48 | * By debouncing the "change" event from the editor, this race condition can be
49 | * largely avoided.
50 | *
51 | * In addition, debouncing is a beneficial optimization because as keys are
52 | * being pressed, the editor's value is expected to temporarily describe
53 | * invalid JSON which is not appropriate to save to the base.
54 | */
55 | const changeDelay = 500;
56 | const supportedFields = [FieldType.MULTILINE_TEXT, FieldType.SINGLE_LINE_TEXT, FieldType.RICH_TEXT];
57 | const isFieldSupported = field => supportedFields.includes(field.type);
58 |
59 | function JsonEditorApp() {
60 | // Caches the currently selected record and field in state. If the user
61 | // selects a record and an editor appears, and then the user de-selects the
62 | // record (but does not select another), the editor will remain. This is
63 | // useful when, for example, the user resizes the apps pane.
64 | const [selectedRecordId, setSelectedRecordId] = useState(null);
65 | const [selectedFieldId, setSelectedFieldId] = useState(null);
66 |
67 | // `cursor.selectedRecordIds` and `selectedFieldIds` aren't loaded by
68 | // default, so we need to load them explicitly with the `useLoadable` hook.
69 | // The rest of the code in the component will not run until they are
70 | // loaded.
71 | useLoadable(cursor);
72 |
73 | // Update the `selectedRecordId` and `selectedFieldId` state when the
74 | // selected record or field change.
75 | useWatchable(cursor, ['selectedRecordIds', 'selectedFieldIds'], () => {
76 | // If the update was triggered by a record being de-selected, the
77 | // current `selectedRecordId` will be retained. This is what enables
78 | // the caching described above.
79 | if (cursor.selectedRecordIds.length > 0) {
80 | // There might be multiple selected records. We'll use the first
81 | // one.
82 | setSelectedRecordId(cursor.selectedRecordIds[0]);
83 | }
84 | if (cursor.selectedFieldIds.length > 0) {
85 | // There might be multiple selected fields. We'll use the first
86 | // one.
87 | setSelectedFieldId(cursor.selectedFieldIds[0]);
88 | }
89 | });
90 |
91 | // This watch deletes the cached `selectedRecordId` and `selectedFieldId`
92 | // when the user moves to a new table or view. This prevents the following
93 | // scenario: User selects a record, and the editor appears. User switches
94 | // to a different table, and the editor disappears. The user switches back
95 | // to the original table. Weirdly, the previously viewed editor reappears,
96 | // even though no record is selected.
97 | useWatchable(cursor, ['activeTableId', 'activeViewId'], () => {
98 | setSelectedRecordId(null);
99 | setSelectedFieldId(null);
100 | });
101 |
102 | const base = useBase();
103 | const table = base.getTableByIdIfExists(cursor.activeTableId);
104 |
105 | // `table` is briefly null when switching to a newly created table.
106 | if (!table) {
107 | return null;
108 | }
109 |
110 | return (
111 |
116 | );
117 | }
118 |
119 | /**
120 | * Shows a JSON editor or a message about what the user should do to open an
121 | * editor.
122 | */
123 | function EditorGuard({table, selectedRecordId, selectedFieldId}) {
124 | const [isLoading, setIsLoading] = useState(true);
125 | const [errors, setErrors] = useState([]);
126 | // We use getFieldByIdIfExists because the field might be deleted.
127 | const selectedField = selectedFieldId ? table.getFieldByIdIfExists(selectedFieldId) : null;
128 | const [renderSignal, forceRender] = useRenderSignal();
129 | const viewport = useViewport();
130 |
131 | // Triggers a re-render if the record changes. The cell value might have
132 | // changed, or the record might have been deleted.
133 | const selectedRecord = useRecordById(table, selectedRecordId ? selectedRecordId : '', {
134 | fields: [selectedField],
135 | });
136 | const onChange = useDebounced(
137 | value => {
138 | // Ignore change events triggered by explicitly setting the
139 | // component's `value` (e.g. when navigating between cells or when
140 | // the selected record is updated from the table.
141 | if (value === selectedRecord.getCellValueAsString(selectedField)) {
142 | return;
143 | }
144 |
145 | table.updateRecordAsync(selectedRecord, {[selectedField.id]: value});
146 | },
147 | changeDelay,
148 | [table, selectedRecord, selectedField],
149 | );
150 |
151 | // The Monaco component responds to the `renderSignal` by resizing the
152 | // editor according to the available space. The viewport size and the list
153 | // of errors both influence the desired size of the editor, so changes to
154 | // either should trigger resizing (via the invocation of `forceRender`).
155 | useWatchable(viewport, ['size'], forceRender);
156 | useEffect(() => forceRender(), [errors, forceRender]);
157 |
158 | // Immediately clear errors when navigating between cells.
159 | useEffect(() => {
160 | // This branch an optimization to reduce rendering when there are no
161 | // errors to be cleared.
162 | if (errors.length === 0) {
163 | return;
164 | }
165 |
166 | setErrors([]);
167 | // eslint-disable-next-line react-hooks/exhaustive-deps
168 | }, [selectedField, selectedRecord]);
169 |
170 | // Triggers a re-render if the user switches table or view. EditorGuard
171 | // may now need to render a preview, or render nothing at all.
172 | useWatchable(cursor, ['activeTableId', 'activeViewId']);
173 |
174 | const inGridView =
175 | // `activeViewId` is briefly null when switching views.
176 | cursor.activeViewId && table.getViewById(cursor.activeViewId).type === ViewType.GRID;
177 | const hasSelection =
178 | // `selectedRecord` will be null on app initialization, after the
179 | // user switches table or view, or if it was deleted.
180 | selectedRecord &&
181 | // The selected field may have been deleted.
182 | selectedField;
183 |
184 | if (!inGridView) {
185 | return (
186 |
187 | Switch to a grid view to begin editing
188 |
189 | );
190 | } else if (!hasSelection || !isFieldSupported(selectedField)) {
191 | return (
192 |
193 |
194 | Select a cell in a single line text field or a long text field to begin editing
195 |
196 |
197 | );
198 | }
199 |
200 | const errorComponent = errors.length ? (
201 |
202 |
209 | Line {errors[0].startLineNumber}, column {errors[0].startColumn}: {errors[0].message}
210 |
211 | ) : (
212 | ''
213 | );
214 | const result = table.checkPermissionsForUpdateRecord(selectedRecord, {[selectedField.id]: ''});
215 | const permissionComponent = result.hasPermission ? (
216 | ''
217 | ) : (
218 |
219 |
220 |
221 | );
222 |
223 | return (
224 |
225 | {isLoading ? : ''}
226 | setIsLoading(false)}
231 | onSyntaxError={setErrors}
232 | onChange={onChange}
233 | value={selectedRecord.getCellValueAsString(selectedField)}
234 | renderSignal={renderSignal}
235 | />
236 |
246 | {errorComponent}
247 |
248 | {permissionComponent}
249 |
250 |
251 | );
252 | }
253 |
254 | function LoadingScreen() {
255 | return (
256 |
262 |
263 |
264 | );
265 | }
266 |
267 | initializeBlock(() => );
268 |
--------------------------------------------------------------------------------
/frontend/monaco.js:
--------------------------------------------------------------------------------
1 | import React, {useEffect, useLayoutEffect, useRef, useState} from 'react';
2 | import {Box, loadScriptFromURLAsync, loadCSSFromURLAsync} from '@airtable/blocks/ui';
3 |
4 | const markersMatch = (aMarkers, bMarkers) => {
5 | if (aMarkers.length !== bMarkers.length) {
6 | return false;
7 | }
8 |
9 | return aMarkers.every((aMarker, index) => {
10 | const bMarker = bMarkers[index];
11 | return (
12 | aMarker.startLineNumber === bMarker.startLineNumber &&
13 | aMarker.startColumn === bMarker.startColumn &&
14 | aMarker.endLineNumber === bMarker.endLineNumber &&
15 | aMarker.endColumn === bMarker.endColumn &&
16 | aMarker.message === bMarker.message
17 | );
18 | });
19 | };
20 |
21 | async function loadMonacoAsync() {
22 | window.require = {
23 | paths: {
24 | vs: 'https://unpkg.com/monaco-editor@0.19.3/min/vs',
25 | },
26 | };
27 |
28 | await loadCSSFromURLAsync(
29 | 'https://unpkg.com/monaco-editor@0.19.3/min/vs/editor/editor.main.css',
30 | );
31 | await loadScriptFromURLAsync('https://unpkg.com/monaco-editor@0.19.3/min/vs/loader.js');
32 | await loadScriptFromURLAsync(
33 | 'https://unpkg.com/monaco-editor@0.19.3/min/vs/editor/editor.main.nls.js',
34 | );
35 | await loadScriptFromURLAsync(
36 | 'https://unpkg.com/monaco-editor@0.19.3/min/vs/editor/editor.main.js',
37 | );
38 |
39 | return window.monaco;
40 | }
41 |
42 | /**
43 | * @param {object} options
44 | * @param {string} options.value
45 | * @param {string} options.language
46 | * @param {function} options.onChange
47 | * @param {function} options.onLoad
48 | * @param {function} options.onSyntaxError
49 | * @param {boolean} options.readOnly
50 | * @param {object} options.style
51 | * @param {number} options.renderSignal
52 | */
53 | export default function Monaco({
54 | value,
55 | language,
56 | onChange,
57 | onLoad,
58 | onSyntaxError,
59 | readOnly,
60 | style,
61 | renderSignal,
62 | }) {
63 | const [monaco, setMonaco] = useState(window.monaco);
64 | const [editor, setEditor] = useState(null);
65 | const [errors, setErrors] = useState([]);
66 | const rootRef = useRef(null);
67 | const valueRef = useRef(value);
68 |
69 | useEffect(() => {
70 | if (monaco) {
71 | onLoad();
72 | return;
73 | }
74 | loadMonacoAsync().then(loaded => {
75 | setMonaco(loaded);
76 | });
77 | }, [monaco, onLoad]);
78 |
79 | useEffect(() => {
80 | if (!monaco || !rootRef.current) {
81 | return () => {};
82 | }
83 |
84 | const newEditor = monaco.editor.create(rootRef.current, {
85 | // https://github.com/microsoft/monaco-editor/issues/29
86 | scrollBeyondLastLine: false,
87 | value: valueRef.current,
88 | });
89 | setEditor(newEditor);
90 |
91 | return () => newEditor.dispose();
92 | }, [monaco]);
93 |
94 | useEffect(() => {
95 | if (!editor || !monaco) {
96 | return () => {};
97 | }
98 | const changeSub = editor.onDidChangeModelContent(() => {
99 | const newValue = editor.getValue();
100 | valueRef.current = newValue;
101 | onChange(newValue);
102 | });
103 | return () => {
104 | changeSub.dispose();
105 | };
106 | }, [editor, monaco, onChange]);
107 |
108 | useEffect(() => {
109 | if (!editor || !monaco) {
110 | return () => {};
111 | }
112 |
113 | /**
114 | * Monaco emits "model decoration" change events more frequently than
115 | * changes to "model markers" occur. Use a React hook to track emitted
116 | * errors so to limit `onSyntaxError` handler invocations to cases
117 | * where the errors have changed. Augment React's change detection
118 | * algorithm (which is designed to work with primitive values) with a
119 | * domain-specific helper function that compares lists of errors.
120 | */
121 | const decorationsSub = editor.onDidChangeModelDecorations(() => {
122 | const model = editor.getModel();
123 | const modeId = model && model.getModeId();
124 | if (modeId !== 'json') {
125 | return;
126 | }
127 |
128 | const newErrors = monaco.editor.getModelMarkers({owner: modeId});
129 | if (markersMatch(errors, newErrors)) {
130 | return;
131 | }
132 |
133 | setErrors(newErrors);
134 | });
135 | return () => {
136 | decorationsSub.dispose();
137 | };
138 | }, [editor, monaco, errors]);
139 |
140 | useEffect(() => {
141 | onSyntaxError(errors);
142 | }, [errors, onSyntaxError]);
143 |
144 | useEffect(() => {
145 | if (!editor) {
146 | return;
147 | }
148 |
149 | // Temporarily shrink the editor so that the surrounding flex layout
150 | // can be recalculated by the browser. The subsequent call to `layout`
151 | // will then expand the editor to the appropriate dimensions.
152 | editor.layout({height: 0, width: 0});
153 | editor.layout();
154 | }, [editor, renderSignal]);
155 |
156 | useLayoutEffect(() => {
157 | if (!editor) {
158 | return;
159 | }
160 |
161 | if (valueRef.current === value) {
162 | return;
163 | }
164 |
165 | editor.setValue(value);
166 | }, [editor, value]);
167 | useEffect(() => {
168 | if (!editor || !monaco) {
169 | return;
170 | }
171 | monaco.editor.setModelLanguage(editor.getModel(), language);
172 | }, [editor, monaco, language]);
173 | useEffect(() => {
174 | if (!editor) {
175 | return;
176 | }
177 | editor.updateOptions({readOnly});
178 | }, [editor, readOnly]);
179 |
180 | return ;
181 | }
182 |
--------------------------------------------------------------------------------
/frontend/useDebounced.js:
--------------------------------------------------------------------------------
1 | import {useMemo, useRef} from 'react';
2 | import debounce from 'lodash.debounce';
3 |
4 | /**
5 | * Create a "debounced" version of the provided function, `fn`. The new version
6 | * will delay invoking `fn` until after `changeDelay` milliseconds have elapsed
7 | * since the last time the debounced function was invoked.
8 | *
9 | * This function is memoized and will only be recreated when one of the values
10 | * in the provided `deps` array changes. This will immediately invalidate any
11 | * pending invocation of any previously-created function.
12 | *
13 | * @param {function} fn - the function to debounce
14 | * @param {number} changeDelay - the duration in milliseconds to wait before
15 | * invoking the provided function
16 | * @param {Array} deps - a set of values which should trigger the creation of a
17 | * new debounced function
18 | */
19 | export default function useDebounced(fn, changeDelay, deps) {
20 | const count = useRef(0);
21 |
22 | return useMemo(() => {
23 | const id = (count.current += 1);
24 |
25 | return debounce((...args) => {
26 | // Every time a debounced function is created, this hook's mutable
27 | // `count` value is incremented. If the value of the immutable `id`
28 | // binding differs from the `count` value, the currently-executing
29 | // function has been superseded by a new version and should
30 | // therefore return without causing side effects.
31 | if (id !== count.current) {
32 | return;
33 | }
34 |
35 | return fn(...args);
36 | }, changeDelay);
37 | // eslint-disable-next-line react-hooks/exhaustive-deps
38 | }, [changeDelay, ...deps]);
39 | }
40 |
--------------------------------------------------------------------------------
/frontend/useRenderSignal.js:
--------------------------------------------------------------------------------
1 | import {useState, useCallback} from 'react';
2 |
3 | export default () => {
4 | const [value, setValue] = useState(0);
5 | const forceRerender = useCallback(() => {
6 | setValue(v => v + 1);
7 | }, [setValue]);
8 |
9 | return [value, forceRerender];
10 | };
11 |
--------------------------------------------------------------------------------
/media/block.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Airtable/apps-json-editor/baae48dfc7ecf2eec3f3256c0a6c616b4af9db79/media/block.gif
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@airtable/json-editor-app",
3 | "version": "1.0.5",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@airtable/blocks": {
8 | "version": "1.8.0",
9 | "resolved": "https://registry.npmjs.org/@airtable/blocks/-/blocks-1.8.0.tgz",
10 | "integrity": "sha512-nVH67fNtXOFky9w2ppNPEjpG184Qre+w8AtjMMi4CW4PcYbhU5rkDvSVNY3Q8QOnjJZGjuQE2XuuU69f7qO1tg==",
11 | "requires": {
12 | "@airtable/eslint-plugin-blocks": "^1.0.2",
13 | "@babel/runtime": "^7.7.6",
14 | "@styled-system/core": "^5.1.2",
15 | "@types/hoist-non-react-statics": "^3.3.1",
16 | "@types/lodash.omit": "^4.5.6",
17 | "@types/prettier": "^1.19.0",
18 | "@types/prop-types": "^15.7.3",
19 | "@types/react": "^16.9.5",
20 | "@types/react-dom": "^16.9.1",
21 | "@types/react-window": "^1.8.1",
22 | "@types/styled-system": "^5.1.4",
23 | "core-js": "^3.4.8",
24 | "emotion": "^10.0.23",
25 | "fast-deep-equal": "^3.1.1",
26 | "hoist-non-react-statics": "^3.3.1",
27 | "lodash.omit": "^4.5.0",
28 | "prop-types": "15.7.2",
29 | "react-window": "1.8.5",
30 | "use-subscription": "^1.3.0"
31 | }
32 | },
33 | "@airtable/eslint-plugin-blocks": {
34 | "version": "1.0.2",
35 | "resolved": "https://registry.npmjs.org/@airtable/eslint-plugin-blocks/-/eslint-plugin-blocks-1.0.2.tgz",
36 | "integrity": "sha512-8Y+qGA6wIvROoWYADtREg41HlLPDQ31sH16CkWJy1sbFAZUT8V6WXsHnRZrEG22XN80J0eAAYfqUznHMwuo+VA=="
37 | },
38 | "@babel/code-frame": {
39 | "version": "7.14.5",
40 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
41 | "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
42 | "requires": {
43 | "@babel/highlight": "^7.14.5"
44 | }
45 | },
46 | "@babel/helper-module-imports": {
47 | "version": "7.14.5",
48 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
49 | "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
50 | "requires": {
51 | "@babel/types": "^7.14.5"
52 | }
53 | },
54 | "@babel/helper-validator-identifier": {
55 | "version": "7.14.9",
56 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
57 | "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g=="
58 | },
59 | "@babel/highlight": {
60 | "version": "7.14.5",
61 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
62 | "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
63 | "requires": {
64 | "@babel/helper-validator-identifier": "^7.14.5",
65 | "chalk": "^2.0.0",
66 | "js-tokens": "^4.0.0"
67 | }
68 | },
69 | "@babel/runtime": {
70 | "version": "7.14.8",
71 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz",
72 | "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==",
73 | "requires": {
74 | "regenerator-runtime": "^0.13.4"
75 | }
76 | },
77 | "@babel/types": {
78 | "version": "7.15.0",
79 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz",
80 | "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==",
81 | "requires": {
82 | "@babel/helper-validator-identifier": "^7.14.9",
83 | "to-fast-properties": "^2.0.0"
84 | }
85 | },
86 | "@emotion/cache": {
87 | "version": "10.0.29",
88 | "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz",
89 | "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==",
90 | "requires": {
91 | "@emotion/sheet": "0.9.4",
92 | "@emotion/stylis": "0.8.5",
93 | "@emotion/utils": "0.11.3",
94 | "@emotion/weak-memoize": "0.2.5"
95 | }
96 | },
97 | "@emotion/hash": {
98 | "version": "0.8.0",
99 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz",
100 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow=="
101 | },
102 | "@emotion/memoize": {
103 | "version": "0.7.4",
104 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
105 | "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw=="
106 | },
107 | "@emotion/serialize": {
108 | "version": "0.11.16",
109 | "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz",
110 | "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==",
111 | "requires": {
112 | "@emotion/hash": "0.8.0",
113 | "@emotion/memoize": "0.7.4",
114 | "@emotion/unitless": "0.7.5",
115 | "@emotion/utils": "0.11.3",
116 | "csstype": "^2.5.7"
117 | },
118 | "dependencies": {
119 | "csstype": {
120 | "version": "2.6.17",
121 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz",
122 | "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A=="
123 | }
124 | }
125 | },
126 | "@emotion/sheet": {
127 | "version": "0.9.4",
128 | "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz",
129 | "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA=="
130 | },
131 | "@emotion/stylis": {
132 | "version": "0.8.5",
133 | "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz",
134 | "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ=="
135 | },
136 | "@emotion/unitless": {
137 | "version": "0.7.5",
138 | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz",
139 | "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
140 | },
141 | "@emotion/utils": {
142 | "version": "0.11.3",
143 | "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz",
144 | "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw=="
145 | },
146 | "@emotion/weak-memoize": {
147 | "version": "0.2.5",
148 | "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz",
149 | "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA=="
150 | },
151 | "@styled-system/core": {
152 | "version": "5.1.2",
153 | "resolved": "https://registry.npmjs.org/@styled-system/core/-/core-5.1.2.tgz",
154 | "integrity": "sha512-XclBDdNIy7OPOsN4HBsawG2eiWfCcuFt6gxKn1x4QfMIgeO6TOlA2pZZ5GWZtIhCUqEPTgIBta6JXsGyCkLBYw==",
155 | "requires": {
156 | "object-assign": "^4.1.1"
157 | }
158 | },
159 | "@types/hoist-non-react-statics": {
160 | "version": "3.3.1",
161 | "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
162 | "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
163 | "requires": {
164 | "@types/react": "*",
165 | "hoist-non-react-statics": "^3.3.0"
166 | }
167 | },
168 | "@types/lodash": {
169 | "version": "4.14.172",
170 | "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.172.tgz",
171 | "integrity": "sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw=="
172 | },
173 | "@types/lodash.omit": {
174 | "version": "4.5.6",
175 | "resolved": "https://registry.npmjs.org/@types/lodash.omit/-/lodash.omit-4.5.6.tgz",
176 | "integrity": "sha512-KXPpOSNX2h0DAG2w7ajpk7TXvWF28ZHs5nJhOJyP0BQHkehgr948RVsToItMme6oi0XJkp19CbuNXkIX8FiBlQ==",
177 | "requires": {
178 | "@types/lodash": "*"
179 | }
180 | },
181 | "@types/parse-json": {
182 | "version": "4.0.0",
183 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
184 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
185 | },
186 | "@types/prettier": {
187 | "version": "1.19.1",
188 | "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz",
189 | "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ=="
190 | },
191 | "@types/prop-types": {
192 | "version": "15.7.4",
193 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
194 | "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
195 | },
196 | "@types/react": {
197 | "version": "16.14.12",
198 | "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.12.tgz",
199 | "integrity": "sha512-7nOJgNsRbARhZhvwPm7cnzahtzEi5VJ9OvcQk8ExEEb1t+zaFklwLVkJz7G1kfxX4X/mDa/icTmzE0vTmqsqBg==",
200 | "requires": {
201 | "@types/prop-types": "*",
202 | "@types/scheduler": "*",
203 | "csstype": "^3.0.2"
204 | }
205 | },
206 | "@types/react-dom": {
207 | "version": "16.9.14",
208 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.14.tgz",
209 | "integrity": "sha512-FIX2AVmPTGP30OUJ+0vadeIFJJ07Mh1m+U0rxfgyW34p3rTlXI+nlenvAxNn4BP36YyI9IJ/+UJ7Wu22N1pI7A==",
210 | "requires": {
211 | "@types/react": "^16"
212 | }
213 | },
214 | "@types/react-window": {
215 | "version": "1.8.5",
216 | "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.5.tgz",
217 | "integrity": "sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==",
218 | "requires": {
219 | "@types/react": "*"
220 | }
221 | },
222 | "@types/scheduler": {
223 | "version": "0.16.2",
224 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
225 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
226 | },
227 | "@types/styled-system": {
228 | "version": "5.1.12",
229 | "resolved": "https://registry.npmjs.org/@types/styled-system/-/styled-system-5.1.12.tgz",
230 | "integrity": "sha512-7x4BYKKfK9QewfsFC2x5r9BK/OrfX+JF/1P21jKPMHruawDw9gvG7bTZgTVk6YkzDO2JUlsk4i8hdiAepAhD0g==",
231 | "requires": {
232 | "csstype": "^3.0.2"
233 | }
234 | },
235 | "acorn": {
236 | "version": "7.4.1",
237 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
238 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
239 | "dev": true
240 | },
241 | "acorn-jsx": {
242 | "version": "5.3.2",
243 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
244 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
245 | "dev": true
246 | },
247 | "ajv": {
248 | "version": "6.12.6",
249 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
250 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
251 | "dev": true,
252 | "requires": {
253 | "fast-deep-equal": "^3.1.1",
254 | "fast-json-stable-stringify": "^2.0.0",
255 | "json-schema-traverse": "^0.4.1",
256 | "uri-js": "^4.2.2"
257 | }
258 | },
259 | "ansi-escapes": {
260 | "version": "4.3.2",
261 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
262 | "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
263 | "dev": true,
264 | "requires": {
265 | "type-fest": "^0.21.3"
266 | },
267 | "dependencies": {
268 | "type-fest": {
269 | "version": "0.21.3",
270 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
271 | "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
272 | "dev": true
273 | }
274 | }
275 | },
276 | "ansi-regex": {
277 | "version": "5.0.0",
278 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
279 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
280 | "dev": true
281 | },
282 | "ansi-styles": {
283 | "version": "3.2.1",
284 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
285 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
286 | "requires": {
287 | "color-convert": "^1.9.0"
288 | }
289 | },
290 | "argparse": {
291 | "version": "1.0.10",
292 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
293 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
294 | "dev": true,
295 | "requires": {
296 | "sprintf-js": "~1.0.2"
297 | }
298 | },
299 | "array-includes": {
300 | "version": "3.1.3",
301 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
302 | "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
303 | "dev": true,
304 | "requires": {
305 | "call-bind": "^1.0.2",
306 | "define-properties": "^1.1.3",
307 | "es-abstract": "^1.18.0-next.2",
308 | "get-intrinsic": "^1.1.1",
309 | "is-string": "^1.0.5"
310 | }
311 | },
312 | "array.prototype.flatmap": {
313 | "version": "1.2.4",
314 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz",
315 | "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==",
316 | "dev": true,
317 | "requires": {
318 | "call-bind": "^1.0.0",
319 | "define-properties": "^1.1.3",
320 | "es-abstract": "^1.18.0-next.1",
321 | "function-bind": "^1.1.1"
322 | }
323 | },
324 | "astral-regex": {
325 | "version": "1.0.0",
326 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
327 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
328 | "dev": true
329 | },
330 | "babel-plugin-emotion": {
331 | "version": "10.2.2",
332 | "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz",
333 | "integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==",
334 | "requires": {
335 | "@babel/helper-module-imports": "^7.0.0",
336 | "@emotion/hash": "0.8.0",
337 | "@emotion/memoize": "0.7.4",
338 | "@emotion/serialize": "^0.11.16",
339 | "babel-plugin-macros": "^2.0.0",
340 | "babel-plugin-syntax-jsx": "^6.18.0",
341 | "convert-source-map": "^1.5.0",
342 | "escape-string-regexp": "^1.0.5",
343 | "find-root": "^1.1.0",
344 | "source-map": "^0.5.7"
345 | }
346 | },
347 | "babel-plugin-macros": {
348 | "version": "2.8.0",
349 | "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz",
350 | "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==",
351 | "requires": {
352 | "@babel/runtime": "^7.7.2",
353 | "cosmiconfig": "^6.0.0",
354 | "resolve": "^1.12.0"
355 | }
356 | },
357 | "babel-plugin-syntax-jsx": {
358 | "version": "6.18.0",
359 | "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
360 | "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
361 | },
362 | "balanced-match": {
363 | "version": "1.0.2",
364 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
365 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
366 | "dev": true
367 | },
368 | "brace-expansion": {
369 | "version": "1.1.11",
370 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
371 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
372 | "dev": true,
373 | "requires": {
374 | "balanced-match": "^1.0.0",
375 | "concat-map": "0.0.1"
376 | }
377 | },
378 | "call-bind": {
379 | "version": "1.0.2",
380 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
381 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
382 | "dev": true,
383 | "requires": {
384 | "function-bind": "^1.1.1",
385 | "get-intrinsic": "^1.0.2"
386 | }
387 | },
388 | "callsites": {
389 | "version": "3.1.0",
390 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
391 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
392 | },
393 | "chalk": {
394 | "version": "2.4.2",
395 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
396 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
397 | "requires": {
398 | "ansi-styles": "^3.2.1",
399 | "escape-string-regexp": "^1.0.5",
400 | "supports-color": "^5.3.0"
401 | }
402 | },
403 | "chardet": {
404 | "version": "0.7.0",
405 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
406 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
407 | "dev": true
408 | },
409 | "cli-cursor": {
410 | "version": "3.1.0",
411 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
412 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
413 | "dev": true,
414 | "requires": {
415 | "restore-cursor": "^3.1.0"
416 | }
417 | },
418 | "cli-width": {
419 | "version": "3.0.0",
420 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
421 | "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
422 | "dev": true
423 | },
424 | "color-convert": {
425 | "version": "1.9.3",
426 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
427 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
428 | "requires": {
429 | "color-name": "1.1.3"
430 | }
431 | },
432 | "color-name": {
433 | "version": "1.1.3",
434 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
435 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
436 | },
437 | "concat-map": {
438 | "version": "0.0.1",
439 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
440 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
441 | "dev": true
442 | },
443 | "convert-source-map": {
444 | "version": "1.8.0",
445 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
446 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
447 | "requires": {
448 | "safe-buffer": "~5.1.1"
449 | }
450 | },
451 | "core-js": {
452 | "version": "3.16.0",
453 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.0.tgz",
454 | "integrity": "sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g=="
455 | },
456 | "cosmiconfig": {
457 | "version": "6.0.0",
458 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
459 | "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
460 | "requires": {
461 | "@types/parse-json": "^4.0.0",
462 | "import-fresh": "^3.1.0",
463 | "parse-json": "^5.0.0",
464 | "path-type": "^4.0.0",
465 | "yaml": "^1.7.2"
466 | }
467 | },
468 | "create-emotion": {
469 | "version": "10.0.27",
470 | "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-10.0.27.tgz",
471 | "integrity": "sha512-fIK73w82HPPn/RsAij7+Zt8eCE8SptcJ3WoRMfxMtjteYxud8GDTKKld7MYwAX2TVhrw29uR1N/bVGxeStHILg==",
472 | "requires": {
473 | "@emotion/cache": "^10.0.27",
474 | "@emotion/serialize": "^0.11.15",
475 | "@emotion/sheet": "0.9.4",
476 | "@emotion/utils": "0.11.3"
477 | }
478 | },
479 | "cross-spawn": {
480 | "version": "6.0.5",
481 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
482 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
483 | "dev": true,
484 | "requires": {
485 | "nice-try": "^1.0.4",
486 | "path-key": "^2.0.1",
487 | "semver": "^5.5.0",
488 | "shebang-command": "^1.2.0",
489 | "which": "^1.2.9"
490 | },
491 | "dependencies": {
492 | "semver": {
493 | "version": "5.7.1",
494 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
495 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
496 | "dev": true
497 | }
498 | }
499 | },
500 | "csstype": {
501 | "version": "3.0.8",
502 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz",
503 | "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw=="
504 | },
505 | "debug": {
506 | "version": "4.3.2",
507 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
508 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
509 | "dev": true,
510 | "requires": {
511 | "ms": "2.1.2"
512 | }
513 | },
514 | "deep-is": {
515 | "version": "0.1.3",
516 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
517 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
518 | "dev": true
519 | },
520 | "define-properties": {
521 | "version": "1.1.3",
522 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
523 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
524 | "dev": true,
525 | "requires": {
526 | "object-keys": "^1.0.12"
527 | }
528 | },
529 | "doctrine": {
530 | "version": "3.0.0",
531 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
532 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
533 | "dev": true,
534 | "requires": {
535 | "esutils": "^2.0.2"
536 | }
537 | },
538 | "emoji-regex": {
539 | "version": "8.0.0",
540 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
541 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
542 | "dev": true
543 | },
544 | "emotion": {
545 | "version": "10.0.27",
546 | "resolved": "https://registry.npmjs.org/emotion/-/emotion-10.0.27.tgz",
547 | "integrity": "sha512-2xdDzdWWzue8R8lu4G76uWX5WhyQuzATon9LmNeCy/2BHVC6dsEpfhN1a0qhELgtDVdjyEA6J8Y/VlI5ZnaH0g==",
548 | "requires": {
549 | "babel-plugin-emotion": "^10.0.27",
550 | "create-emotion": "^10.0.27"
551 | }
552 | },
553 | "error-ex": {
554 | "version": "1.3.2",
555 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
556 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
557 | "requires": {
558 | "is-arrayish": "^0.2.1"
559 | }
560 | },
561 | "es-abstract": {
562 | "version": "1.18.5",
563 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz",
564 | "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==",
565 | "dev": true,
566 | "requires": {
567 | "call-bind": "^1.0.2",
568 | "es-to-primitive": "^1.2.1",
569 | "function-bind": "^1.1.1",
570 | "get-intrinsic": "^1.1.1",
571 | "has": "^1.0.3",
572 | "has-symbols": "^1.0.2",
573 | "internal-slot": "^1.0.3",
574 | "is-callable": "^1.2.3",
575 | "is-negative-zero": "^2.0.1",
576 | "is-regex": "^1.1.3",
577 | "is-string": "^1.0.6",
578 | "object-inspect": "^1.11.0",
579 | "object-keys": "^1.1.1",
580 | "object.assign": "^4.1.2",
581 | "string.prototype.trimend": "^1.0.4",
582 | "string.prototype.trimstart": "^1.0.4",
583 | "unbox-primitive": "^1.0.1"
584 | }
585 | },
586 | "es-to-primitive": {
587 | "version": "1.2.1",
588 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
589 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
590 | "dev": true,
591 | "requires": {
592 | "is-callable": "^1.1.4",
593 | "is-date-object": "^1.0.1",
594 | "is-symbol": "^1.0.2"
595 | }
596 | },
597 | "escape-string-regexp": {
598 | "version": "1.0.5",
599 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
600 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
601 | },
602 | "eslint": {
603 | "version": "6.8.0",
604 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
605 | "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
606 | "dev": true,
607 | "requires": {
608 | "@babel/code-frame": "^7.0.0",
609 | "ajv": "^6.10.0",
610 | "chalk": "^2.1.0",
611 | "cross-spawn": "^6.0.5",
612 | "debug": "^4.0.1",
613 | "doctrine": "^3.0.0",
614 | "eslint-scope": "^5.0.0",
615 | "eslint-utils": "^1.4.3",
616 | "eslint-visitor-keys": "^1.1.0",
617 | "espree": "^6.1.2",
618 | "esquery": "^1.0.1",
619 | "esutils": "^2.0.2",
620 | "file-entry-cache": "^5.0.1",
621 | "functional-red-black-tree": "^1.0.1",
622 | "glob-parent": "^5.0.0",
623 | "globals": "^12.1.0",
624 | "ignore": "^4.0.6",
625 | "import-fresh": "^3.0.0",
626 | "imurmurhash": "^0.1.4",
627 | "inquirer": "^7.0.0",
628 | "is-glob": "^4.0.0",
629 | "js-yaml": "^3.13.1",
630 | "json-stable-stringify-without-jsonify": "^1.0.1",
631 | "levn": "^0.3.0",
632 | "lodash": "^4.17.14",
633 | "minimatch": "^3.0.4",
634 | "mkdirp": "^0.5.1",
635 | "natural-compare": "^1.4.0",
636 | "optionator": "^0.8.3",
637 | "progress": "^2.0.0",
638 | "regexpp": "^2.0.1",
639 | "semver": "^6.1.2",
640 | "strip-ansi": "^5.2.0",
641 | "strip-json-comments": "^3.0.1",
642 | "table": "^5.2.3",
643 | "text-table": "^0.2.0",
644 | "v8-compile-cache": "^2.0.3"
645 | }
646 | },
647 | "eslint-plugin-react": {
648 | "version": "7.24.0",
649 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz",
650 | "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==",
651 | "dev": true,
652 | "requires": {
653 | "array-includes": "^3.1.3",
654 | "array.prototype.flatmap": "^1.2.4",
655 | "doctrine": "^2.1.0",
656 | "has": "^1.0.3",
657 | "jsx-ast-utils": "^2.4.1 || ^3.0.0",
658 | "minimatch": "^3.0.4",
659 | "object.entries": "^1.1.4",
660 | "object.fromentries": "^2.0.4",
661 | "object.values": "^1.1.4",
662 | "prop-types": "^15.7.2",
663 | "resolve": "^2.0.0-next.3",
664 | "string.prototype.matchall": "^4.0.5"
665 | },
666 | "dependencies": {
667 | "doctrine": {
668 | "version": "2.1.0",
669 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
670 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
671 | "dev": true,
672 | "requires": {
673 | "esutils": "^2.0.2"
674 | }
675 | },
676 | "resolve": {
677 | "version": "2.0.0-next.3",
678 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
679 | "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
680 | "dev": true,
681 | "requires": {
682 | "is-core-module": "^2.2.0",
683 | "path-parse": "^1.0.6"
684 | }
685 | }
686 | }
687 | },
688 | "eslint-plugin-react-hooks": {
689 | "version": "2.5.1",
690 | "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz",
691 | "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==",
692 | "dev": true
693 | },
694 | "eslint-scope": {
695 | "version": "5.1.1",
696 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
697 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
698 | "dev": true,
699 | "requires": {
700 | "esrecurse": "^4.3.0",
701 | "estraverse": "^4.1.1"
702 | }
703 | },
704 | "eslint-utils": {
705 | "version": "1.4.3",
706 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
707 | "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
708 | "dev": true,
709 | "requires": {
710 | "eslint-visitor-keys": "^1.1.0"
711 | }
712 | },
713 | "eslint-visitor-keys": {
714 | "version": "1.3.0",
715 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
716 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
717 | "dev": true
718 | },
719 | "espree": {
720 | "version": "6.2.1",
721 | "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
722 | "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
723 | "dev": true,
724 | "requires": {
725 | "acorn": "^7.1.1",
726 | "acorn-jsx": "^5.2.0",
727 | "eslint-visitor-keys": "^1.1.0"
728 | }
729 | },
730 | "esprima": {
731 | "version": "4.0.1",
732 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
733 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
734 | "dev": true
735 | },
736 | "esquery": {
737 | "version": "1.4.0",
738 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
739 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
740 | "dev": true,
741 | "requires": {
742 | "estraverse": "^5.1.0"
743 | },
744 | "dependencies": {
745 | "estraverse": {
746 | "version": "5.2.0",
747 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
748 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
749 | "dev": true
750 | }
751 | }
752 | },
753 | "esrecurse": {
754 | "version": "4.3.0",
755 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
756 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
757 | "dev": true,
758 | "requires": {
759 | "estraverse": "^5.2.0"
760 | },
761 | "dependencies": {
762 | "estraverse": {
763 | "version": "5.2.0",
764 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
765 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
766 | "dev": true
767 | }
768 | }
769 | },
770 | "estraverse": {
771 | "version": "4.3.0",
772 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
773 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
774 | "dev": true
775 | },
776 | "esutils": {
777 | "version": "2.0.3",
778 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
779 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
780 | "dev": true
781 | },
782 | "external-editor": {
783 | "version": "3.1.0",
784 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
785 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
786 | "dev": true,
787 | "requires": {
788 | "chardet": "^0.7.0",
789 | "iconv-lite": "^0.4.24",
790 | "tmp": "^0.0.33"
791 | }
792 | },
793 | "fast-deep-equal": {
794 | "version": "3.1.3",
795 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
796 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
797 | },
798 | "fast-json-stable-stringify": {
799 | "version": "2.1.0",
800 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
801 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
802 | "dev": true
803 | },
804 | "fast-levenshtein": {
805 | "version": "2.0.6",
806 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
807 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
808 | "dev": true
809 | },
810 | "figures": {
811 | "version": "3.2.0",
812 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
813 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
814 | "dev": true,
815 | "requires": {
816 | "escape-string-regexp": "^1.0.5"
817 | }
818 | },
819 | "file-entry-cache": {
820 | "version": "5.0.1",
821 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
822 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
823 | "dev": true,
824 | "requires": {
825 | "flat-cache": "^2.0.1"
826 | }
827 | },
828 | "find-root": {
829 | "version": "1.1.0",
830 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
831 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="
832 | },
833 | "flat-cache": {
834 | "version": "2.0.1",
835 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
836 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
837 | "dev": true,
838 | "requires": {
839 | "flatted": "^2.0.0",
840 | "rimraf": "2.6.3",
841 | "write": "1.0.3"
842 | }
843 | },
844 | "flatted": {
845 | "version": "2.0.2",
846 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
847 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
848 | "dev": true
849 | },
850 | "fs.realpath": {
851 | "version": "1.0.0",
852 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
853 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
854 | "dev": true
855 | },
856 | "function-bind": {
857 | "version": "1.1.1",
858 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
859 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
860 | },
861 | "functional-red-black-tree": {
862 | "version": "1.0.1",
863 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
864 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
865 | "dev": true
866 | },
867 | "get-intrinsic": {
868 | "version": "1.1.1",
869 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
870 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
871 | "dev": true,
872 | "requires": {
873 | "function-bind": "^1.1.1",
874 | "has": "^1.0.3",
875 | "has-symbols": "^1.0.1"
876 | }
877 | },
878 | "glob": {
879 | "version": "7.1.7",
880 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
881 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
882 | "dev": true,
883 | "requires": {
884 | "fs.realpath": "^1.0.0",
885 | "inflight": "^1.0.4",
886 | "inherits": "2",
887 | "minimatch": "^3.0.4",
888 | "once": "^1.3.0",
889 | "path-is-absolute": "^1.0.0"
890 | }
891 | },
892 | "glob-parent": {
893 | "version": "5.1.2",
894 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
895 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
896 | "dev": true,
897 | "requires": {
898 | "is-glob": "^4.0.1"
899 | }
900 | },
901 | "globals": {
902 | "version": "12.4.0",
903 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
904 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
905 | "dev": true,
906 | "requires": {
907 | "type-fest": "^0.8.1"
908 | }
909 | },
910 | "has": {
911 | "version": "1.0.3",
912 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
913 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
914 | "requires": {
915 | "function-bind": "^1.1.1"
916 | }
917 | },
918 | "has-bigints": {
919 | "version": "1.0.1",
920 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
921 | "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
922 | "dev": true
923 | },
924 | "has-flag": {
925 | "version": "3.0.0",
926 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
927 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
928 | },
929 | "has-symbols": {
930 | "version": "1.0.2",
931 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
932 | "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
933 | "dev": true
934 | },
935 | "has-tostringtag": {
936 | "version": "1.0.0",
937 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
938 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
939 | "dev": true,
940 | "requires": {
941 | "has-symbols": "^1.0.2"
942 | }
943 | },
944 | "hoist-non-react-statics": {
945 | "version": "3.3.2",
946 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
947 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
948 | "requires": {
949 | "react-is": "^16.7.0"
950 | }
951 | },
952 | "iconv-lite": {
953 | "version": "0.4.24",
954 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
955 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
956 | "dev": true,
957 | "requires": {
958 | "safer-buffer": ">= 2.1.2 < 3"
959 | }
960 | },
961 | "ignore": {
962 | "version": "4.0.6",
963 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
964 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
965 | "dev": true
966 | },
967 | "import-fresh": {
968 | "version": "3.3.0",
969 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
970 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
971 | "requires": {
972 | "parent-module": "^1.0.0",
973 | "resolve-from": "^4.0.0"
974 | }
975 | },
976 | "imurmurhash": {
977 | "version": "0.1.4",
978 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
979 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
980 | "dev": true
981 | },
982 | "inflight": {
983 | "version": "1.0.6",
984 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
985 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
986 | "dev": true,
987 | "requires": {
988 | "once": "^1.3.0",
989 | "wrappy": "1"
990 | }
991 | },
992 | "inherits": {
993 | "version": "2.0.4",
994 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
995 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
996 | "dev": true
997 | },
998 | "inquirer": {
999 | "version": "7.3.3",
1000 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
1001 | "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
1002 | "dev": true,
1003 | "requires": {
1004 | "ansi-escapes": "^4.2.1",
1005 | "chalk": "^4.1.0",
1006 | "cli-cursor": "^3.1.0",
1007 | "cli-width": "^3.0.0",
1008 | "external-editor": "^3.0.3",
1009 | "figures": "^3.0.0",
1010 | "lodash": "^4.17.19",
1011 | "mute-stream": "0.0.8",
1012 | "run-async": "^2.4.0",
1013 | "rxjs": "^6.6.0",
1014 | "string-width": "^4.1.0",
1015 | "strip-ansi": "^6.0.0",
1016 | "through": "^2.3.6"
1017 | },
1018 | "dependencies": {
1019 | "ansi-styles": {
1020 | "version": "4.3.0",
1021 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1022 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1023 | "dev": true,
1024 | "requires": {
1025 | "color-convert": "^2.0.1"
1026 | }
1027 | },
1028 | "chalk": {
1029 | "version": "4.1.2",
1030 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1031 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1032 | "dev": true,
1033 | "requires": {
1034 | "ansi-styles": "^4.1.0",
1035 | "supports-color": "^7.1.0"
1036 | }
1037 | },
1038 | "color-convert": {
1039 | "version": "2.0.1",
1040 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1041 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1042 | "dev": true,
1043 | "requires": {
1044 | "color-name": "~1.1.4"
1045 | }
1046 | },
1047 | "color-name": {
1048 | "version": "1.1.4",
1049 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1050 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1051 | "dev": true
1052 | },
1053 | "has-flag": {
1054 | "version": "4.0.0",
1055 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1056 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1057 | "dev": true
1058 | },
1059 | "strip-ansi": {
1060 | "version": "6.0.0",
1061 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1062 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1063 | "dev": true,
1064 | "requires": {
1065 | "ansi-regex": "^5.0.0"
1066 | }
1067 | },
1068 | "supports-color": {
1069 | "version": "7.2.0",
1070 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1071 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1072 | "dev": true,
1073 | "requires": {
1074 | "has-flag": "^4.0.0"
1075 | }
1076 | }
1077 | }
1078 | },
1079 | "internal-slot": {
1080 | "version": "1.0.3",
1081 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
1082 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
1083 | "dev": true,
1084 | "requires": {
1085 | "get-intrinsic": "^1.1.0",
1086 | "has": "^1.0.3",
1087 | "side-channel": "^1.0.4"
1088 | }
1089 | },
1090 | "is-arrayish": {
1091 | "version": "0.2.1",
1092 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1093 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
1094 | },
1095 | "is-bigint": {
1096 | "version": "1.0.3",
1097 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.3.tgz",
1098 | "integrity": "sha512-ZU538ajmYJmzysE5yU4Y7uIrPQ2j704u+hXFiIPQExpqzzUbpe5jCPdTfmz7jXRxZdvjY3KZ3ZNenoXQovX+Dg==",
1099 | "dev": true
1100 | },
1101 | "is-boolean-object": {
1102 | "version": "1.1.2",
1103 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
1104 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
1105 | "dev": true,
1106 | "requires": {
1107 | "call-bind": "^1.0.2",
1108 | "has-tostringtag": "^1.0.0"
1109 | }
1110 | },
1111 | "is-callable": {
1112 | "version": "1.2.4",
1113 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
1114 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
1115 | "dev": true
1116 | },
1117 | "is-core-module": {
1118 | "version": "2.5.0",
1119 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz",
1120 | "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==",
1121 | "requires": {
1122 | "has": "^1.0.3"
1123 | }
1124 | },
1125 | "is-date-object": {
1126 | "version": "1.0.5",
1127 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
1128 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
1129 | "dev": true,
1130 | "requires": {
1131 | "has-tostringtag": "^1.0.0"
1132 | }
1133 | },
1134 | "is-extglob": {
1135 | "version": "2.1.1",
1136 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1137 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1138 | "dev": true
1139 | },
1140 | "is-fullwidth-code-point": {
1141 | "version": "3.0.0",
1142 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1143 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1144 | "dev": true
1145 | },
1146 | "is-glob": {
1147 | "version": "4.0.1",
1148 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1149 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1150 | "dev": true,
1151 | "requires": {
1152 | "is-extglob": "^2.1.1"
1153 | }
1154 | },
1155 | "is-negative-zero": {
1156 | "version": "2.0.1",
1157 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
1158 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
1159 | "dev": true
1160 | },
1161 | "is-number-object": {
1162 | "version": "1.0.6",
1163 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
1164 | "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
1165 | "dev": true,
1166 | "requires": {
1167 | "has-tostringtag": "^1.0.0"
1168 | }
1169 | },
1170 | "is-regex": {
1171 | "version": "1.1.4",
1172 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
1173 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
1174 | "dev": true,
1175 | "requires": {
1176 | "call-bind": "^1.0.2",
1177 | "has-tostringtag": "^1.0.0"
1178 | }
1179 | },
1180 | "is-string": {
1181 | "version": "1.0.7",
1182 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
1183 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
1184 | "dev": true,
1185 | "requires": {
1186 | "has-tostringtag": "^1.0.0"
1187 | }
1188 | },
1189 | "is-symbol": {
1190 | "version": "1.0.4",
1191 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
1192 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
1193 | "dev": true,
1194 | "requires": {
1195 | "has-symbols": "^1.0.2"
1196 | }
1197 | },
1198 | "isexe": {
1199 | "version": "2.0.0",
1200 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1201 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1202 | "dev": true
1203 | },
1204 | "js-tokens": {
1205 | "version": "4.0.0",
1206 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1207 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1208 | },
1209 | "js-yaml": {
1210 | "version": "3.14.1",
1211 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
1212 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
1213 | "dev": true,
1214 | "requires": {
1215 | "argparse": "^1.0.7",
1216 | "esprima": "^4.0.0"
1217 | }
1218 | },
1219 | "json-parse-even-better-errors": {
1220 | "version": "2.3.1",
1221 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
1222 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
1223 | },
1224 | "json-schema-traverse": {
1225 | "version": "0.4.1",
1226 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1227 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1228 | "dev": true
1229 | },
1230 | "json-stable-stringify-without-jsonify": {
1231 | "version": "1.0.1",
1232 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1233 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1234 | "dev": true
1235 | },
1236 | "jsx-ast-utils": {
1237 | "version": "3.2.0",
1238 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz",
1239 | "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==",
1240 | "dev": true,
1241 | "requires": {
1242 | "array-includes": "^3.1.2",
1243 | "object.assign": "^4.1.2"
1244 | }
1245 | },
1246 | "levn": {
1247 | "version": "0.3.0",
1248 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
1249 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
1250 | "dev": true,
1251 | "requires": {
1252 | "prelude-ls": "~1.1.2",
1253 | "type-check": "~0.3.2"
1254 | }
1255 | },
1256 | "lines-and-columns": {
1257 | "version": "1.1.6",
1258 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
1259 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
1260 | },
1261 | "lodash": {
1262 | "version": "4.17.21",
1263 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1264 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1265 | "dev": true
1266 | },
1267 | "lodash.debounce": {
1268 | "version": "4.0.8",
1269 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
1270 | "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
1271 | },
1272 | "lodash.omit": {
1273 | "version": "4.5.0",
1274 | "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
1275 | "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA="
1276 | },
1277 | "loose-envify": {
1278 | "version": "1.4.0",
1279 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1280 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1281 | "requires": {
1282 | "js-tokens": "^3.0.0 || ^4.0.0"
1283 | }
1284 | },
1285 | "memoize-one": {
1286 | "version": "5.2.1",
1287 | "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
1288 | "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
1289 | },
1290 | "mimic-fn": {
1291 | "version": "2.1.0",
1292 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1293 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1294 | "dev": true
1295 | },
1296 | "minimatch": {
1297 | "version": "3.0.4",
1298 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1299 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1300 | "dev": true,
1301 | "requires": {
1302 | "brace-expansion": "^1.1.7"
1303 | }
1304 | },
1305 | "minimist": {
1306 | "version": "1.2.5",
1307 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1308 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1309 | "dev": true
1310 | },
1311 | "mkdirp": {
1312 | "version": "0.5.5",
1313 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1314 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1315 | "dev": true,
1316 | "requires": {
1317 | "minimist": "^1.2.5"
1318 | }
1319 | },
1320 | "ms": {
1321 | "version": "2.1.2",
1322 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1323 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1324 | "dev": true
1325 | },
1326 | "mute-stream": {
1327 | "version": "0.0.8",
1328 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
1329 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
1330 | "dev": true
1331 | },
1332 | "natural-compare": {
1333 | "version": "1.4.0",
1334 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1335 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1336 | "dev": true
1337 | },
1338 | "nice-try": {
1339 | "version": "1.0.5",
1340 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1341 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
1342 | "dev": true
1343 | },
1344 | "object-assign": {
1345 | "version": "4.1.1",
1346 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1347 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1348 | },
1349 | "object-inspect": {
1350 | "version": "1.11.0",
1351 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
1352 | "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
1353 | "dev": true
1354 | },
1355 | "object-keys": {
1356 | "version": "1.1.1",
1357 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1358 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1359 | "dev": true
1360 | },
1361 | "object.assign": {
1362 | "version": "4.1.2",
1363 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
1364 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
1365 | "dev": true,
1366 | "requires": {
1367 | "call-bind": "^1.0.0",
1368 | "define-properties": "^1.1.3",
1369 | "has-symbols": "^1.0.1",
1370 | "object-keys": "^1.1.1"
1371 | }
1372 | },
1373 | "object.entries": {
1374 | "version": "1.1.4",
1375 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz",
1376 | "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==",
1377 | "dev": true,
1378 | "requires": {
1379 | "call-bind": "^1.0.2",
1380 | "define-properties": "^1.1.3",
1381 | "es-abstract": "^1.18.2"
1382 | }
1383 | },
1384 | "object.fromentries": {
1385 | "version": "2.0.4",
1386 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz",
1387 | "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==",
1388 | "dev": true,
1389 | "requires": {
1390 | "call-bind": "^1.0.2",
1391 | "define-properties": "^1.1.3",
1392 | "es-abstract": "^1.18.0-next.2",
1393 | "has": "^1.0.3"
1394 | }
1395 | },
1396 | "object.values": {
1397 | "version": "1.1.4",
1398 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz",
1399 | "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==",
1400 | "dev": true,
1401 | "requires": {
1402 | "call-bind": "^1.0.2",
1403 | "define-properties": "^1.1.3",
1404 | "es-abstract": "^1.18.2"
1405 | }
1406 | },
1407 | "once": {
1408 | "version": "1.4.0",
1409 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1410 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1411 | "dev": true,
1412 | "requires": {
1413 | "wrappy": "1"
1414 | }
1415 | },
1416 | "onetime": {
1417 | "version": "5.1.2",
1418 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
1419 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
1420 | "dev": true,
1421 | "requires": {
1422 | "mimic-fn": "^2.1.0"
1423 | }
1424 | },
1425 | "optionator": {
1426 | "version": "0.8.3",
1427 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
1428 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
1429 | "dev": true,
1430 | "requires": {
1431 | "deep-is": "~0.1.3",
1432 | "fast-levenshtein": "~2.0.6",
1433 | "levn": "~0.3.0",
1434 | "prelude-ls": "~1.1.2",
1435 | "type-check": "~0.3.2",
1436 | "word-wrap": "~1.2.3"
1437 | }
1438 | },
1439 | "os-tmpdir": {
1440 | "version": "1.0.2",
1441 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1442 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1443 | "dev": true
1444 | },
1445 | "parent-module": {
1446 | "version": "1.0.1",
1447 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1448 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1449 | "requires": {
1450 | "callsites": "^3.0.0"
1451 | }
1452 | },
1453 | "parse-json": {
1454 | "version": "5.2.0",
1455 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
1456 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
1457 | "requires": {
1458 | "@babel/code-frame": "^7.0.0",
1459 | "error-ex": "^1.3.1",
1460 | "json-parse-even-better-errors": "^2.3.0",
1461 | "lines-and-columns": "^1.1.6"
1462 | }
1463 | },
1464 | "path-is-absolute": {
1465 | "version": "1.0.1",
1466 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1467 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1468 | "dev": true
1469 | },
1470 | "path-key": {
1471 | "version": "2.0.1",
1472 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1473 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1474 | "dev": true
1475 | },
1476 | "path-parse": {
1477 | "version": "1.0.7",
1478 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1479 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1480 | },
1481 | "path-type": {
1482 | "version": "4.0.0",
1483 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1484 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
1485 | },
1486 | "prelude-ls": {
1487 | "version": "1.1.2",
1488 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1489 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1490 | "dev": true
1491 | },
1492 | "progress": {
1493 | "version": "2.0.3",
1494 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1495 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1496 | "dev": true
1497 | },
1498 | "prop-types": {
1499 | "version": "15.7.2",
1500 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
1501 | "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
1502 | "requires": {
1503 | "loose-envify": "^1.4.0",
1504 | "object-assign": "^4.1.1",
1505 | "react-is": "^16.8.1"
1506 | }
1507 | },
1508 | "punycode": {
1509 | "version": "2.1.1",
1510 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1511 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1512 | "dev": true
1513 | },
1514 | "react": {
1515 | "version": "16.14.0",
1516 | "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
1517 | "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
1518 | "requires": {
1519 | "loose-envify": "^1.1.0",
1520 | "object-assign": "^4.1.1",
1521 | "prop-types": "^15.6.2"
1522 | }
1523 | },
1524 | "react-dom": {
1525 | "version": "16.14.0",
1526 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
1527 | "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
1528 | "requires": {
1529 | "loose-envify": "^1.1.0",
1530 | "object-assign": "^4.1.1",
1531 | "prop-types": "^15.6.2",
1532 | "scheduler": "^0.19.1"
1533 | }
1534 | },
1535 | "react-is": {
1536 | "version": "16.13.1",
1537 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
1538 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
1539 | },
1540 | "react-window": {
1541 | "version": "1.8.5",
1542 | "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.5.tgz",
1543 | "integrity": "sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q==",
1544 | "requires": {
1545 | "@babel/runtime": "^7.0.0",
1546 | "memoize-one": ">=3.1.1 <6"
1547 | }
1548 | },
1549 | "regenerator-runtime": {
1550 | "version": "0.13.9",
1551 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
1552 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
1553 | },
1554 | "regexp.prototype.flags": {
1555 | "version": "1.3.1",
1556 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
1557 | "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
1558 | "dev": true,
1559 | "requires": {
1560 | "call-bind": "^1.0.2",
1561 | "define-properties": "^1.1.3"
1562 | }
1563 | },
1564 | "regexpp": {
1565 | "version": "2.0.1",
1566 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
1567 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
1568 | "dev": true
1569 | },
1570 | "resolve": {
1571 | "version": "1.20.0",
1572 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
1573 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
1574 | "requires": {
1575 | "is-core-module": "^2.2.0",
1576 | "path-parse": "^1.0.6"
1577 | }
1578 | },
1579 | "resolve-from": {
1580 | "version": "4.0.0",
1581 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1582 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
1583 | },
1584 | "restore-cursor": {
1585 | "version": "3.1.0",
1586 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
1587 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
1588 | "dev": true,
1589 | "requires": {
1590 | "onetime": "^5.1.0",
1591 | "signal-exit": "^3.0.2"
1592 | }
1593 | },
1594 | "rimraf": {
1595 | "version": "2.6.3",
1596 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1597 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1598 | "dev": true,
1599 | "requires": {
1600 | "glob": "^7.1.3"
1601 | }
1602 | },
1603 | "run-async": {
1604 | "version": "2.4.1",
1605 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
1606 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
1607 | "dev": true
1608 | },
1609 | "rxjs": {
1610 | "version": "6.6.7",
1611 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
1612 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
1613 | "dev": true,
1614 | "requires": {
1615 | "tslib": "^1.9.0"
1616 | }
1617 | },
1618 | "safe-buffer": {
1619 | "version": "5.1.2",
1620 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1621 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1622 | },
1623 | "safer-buffer": {
1624 | "version": "2.1.2",
1625 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1626 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1627 | "dev": true
1628 | },
1629 | "scheduler": {
1630 | "version": "0.19.1",
1631 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
1632 | "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
1633 | "requires": {
1634 | "loose-envify": "^1.1.0",
1635 | "object-assign": "^4.1.1"
1636 | }
1637 | },
1638 | "semver": {
1639 | "version": "6.3.0",
1640 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1641 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1642 | "dev": true
1643 | },
1644 | "shebang-command": {
1645 | "version": "1.2.0",
1646 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1647 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1648 | "dev": true,
1649 | "requires": {
1650 | "shebang-regex": "^1.0.0"
1651 | }
1652 | },
1653 | "shebang-regex": {
1654 | "version": "1.0.0",
1655 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1656 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1657 | "dev": true
1658 | },
1659 | "side-channel": {
1660 | "version": "1.0.4",
1661 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1662 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1663 | "dev": true,
1664 | "requires": {
1665 | "call-bind": "^1.0.0",
1666 | "get-intrinsic": "^1.0.2",
1667 | "object-inspect": "^1.9.0"
1668 | }
1669 | },
1670 | "signal-exit": {
1671 | "version": "3.0.3",
1672 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1673 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
1674 | "dev": true
1675 | },
1676 | "slice-ansi": {
1677 | "version": "2.1.0",
1678 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
1679 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
1680 | "dev": true,
1681 | "requires": {
1682 | "ansi-styles": "^3.2.0",
1683 | "astral-regex": "^1.0.0",
1684 | "is-fullwidth-code-point": "^2.0.0"
1685 | },
1686 | "dependencies": {
1687 | "is-fullwidth-code-point": {
1688 | "version": "2.0.0",
1689 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1690 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1691 | "dev": true
1692 | }
1693 | }
1694 | },
1695 | "source-map": {
1696 | "version": "0.5.7",
1697 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1698 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
1699 | },
1700 | "sprintf-js": {
1701 | "version": "1.0.3",
1702 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1703 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1704 | "dev": true
1705 | },
1706 | "string-width": {
1707 | "version": "4.2.2",
1708 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
1709 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
1710 | "dev": true,
1711 | "requires": {
1712 | "emoji-regex": "^8.0.0",
1713 | "is-fullwidth-code-point": "^3.0.0",
1714 | "strip-ansi": "^6.0.0"
1715 | },
1716 | "dependencies": {
1717 | "strip-ansi": {
1718 | "version": "6.0.0",
1719 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1720 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1721 | "dev": true,
1722 | "requires": {
1723 | "ansi-regex": "^5.0.0"
1724 | }
1725 | }
1726 | }
1727 | },
1728 | "string.prototype.matchall": {
1729 | "version": "4.0.5",
1730 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz",
1731 | "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==",
1732 | "dev": true,
1733 | "requires": {
1734 | "call-bind": "^1.0.2",
1735 | "define-properties": "^1.1.3",
1736 | "es-abstract": "^1.18.2",
1737 | "get-intrinsic": "^1.1.1",
1738 | "has-symbols": "^1.0.2",
1739 | "internal-slot": "^1.0.3",
1740 | "regexp.prototype.flags": "^1.3.1",
1741 | "side-channel": "^1.0.4"
1742 | }
1743 | },
1744 | "string.prototype.trimend": {
1745 | "version": "1.0.4",
1746 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
1747 | "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
1748 | "dev": true,
1749 | "requires": {
1750 | "call-bind": "^1.0.2",
1751 | "define-properties": "^1.1.3"
1752 | }
1753 | },
1754 | "string.prototype.trimstart": {
1755 | "version": "1.0.4",
1756 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
1757 | "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
1758 | "dev": true,
1759 | "requires": {
1760 | "call-bind": "^1.0.2",
1761 | "define-properties": "^1.1.3"
1762 | }
1763 | },
1764 | "strip-ansi": {
1765 | "version": "5.2.0",
1766 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1767 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1768 | "dev": true,
1769 | "requires": {
1770 | "ansi-regex": "^4.1.0"
1771 | },
1772 | "dependencies": {
1773 | "ansi-regex": {
1774 | "version": "4.1.0",
1775 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1776 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1777 | "dev": true
1778 | }
1779 | }
1780 | },
1781 | "strip-json-comments": {
1782 | "version": "3.1.1",
1783 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1784 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1785 | "dev": true
1786 | },
1787 | "supports-color": {
1788 | "version": "5.5.0",
1789 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1790 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1791 | "requires": {
1792 | "has-flag": "^3.0.0"
1793 | }
1794 | },
1795 | "table": {
1796 | "version": "5.4.6",
1797 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
1798 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
1799 | "dev": true,
1800 | "requires": {
1801 | "ajv": "^6.10.2",
1802 | "lodash": "^4.17.14",
1803 | "slice-ansi": "^2.1.0",
1804 | "string-width": "^3.0.0"
1805 | },
1806 | "dependencies": {
1807 | "emoji-regex": {
1808 | "version": "7.0.3",
1809 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
1810 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
1811 | "dev": true
1812 | },
1813 | "is-fullwidth-code-point": {
1814 | "version": "2.0.0",
1815 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1816 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1817 | "dev": true
1818 | },
1819 | "string-width": {
1820 | "version": "3.1.0",
1821 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1822 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1823 | "dev": true,
1824 | "requires": {
1825 | "emoji-regex": "^7.0.1",
1826 | "is-fullwidth-code-point": "^2.0.0",
1827 | "strip-ansi": "^5.1.0"
1828 | }
1829 | }
1830 | }
1831 | },
1832 | "text-table": {
1833 | "version": "0.2.0",
1834 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1835 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1836 | "dev": true
1837 | },
1838 | "through": {
1839 | "version": "2.3.8",
1840 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1841 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1842 | "dev": true
1843 | },
1844 | "tmp": {
1845 | "version": "0.0.33",
1846 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1847 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1848 | "dev": true,
1849 | "requires": {
1850 | "os-tmpdir": "~1.0.2"
1851 | }
1852 | },
1853 | "to-fast-properties": {
1854 | "version": "2.0.0",
1855 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1856 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
1857 | },
1858 | "tslib": {
1859 | "version": "1.14.1",
1860 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1861 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
1862 | "dev": true
1863 | },
1864 | "type-check": {
1865 | "version": "0.3.2",
1866 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1867 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1868 | "dev": true,
1869 | "requires": {
1870 | "prelude-ls": "~1.1.2"
1871 | }
1872 | },
1873 | "type-fest": {
1874 | "version": "0.8.1",
1875 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1876 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1877 | "dev": true
1878 | },
1879 | "unbox-primitive": {
1880 | "version": "1.0.1",
1881 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
1882 | "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
1883 | "dev": true,
1884 | "requires": {
1885 | "function-bind": "^1.1.1",
1886 | "has-bigints": "^1.0.1",
1887 | "has-symbols": "^1.0.2",
1888 | "which-boxed-primitive": "^1.0.2"
1889 | }
1890 | },
1891 | "uri-js": {
1892 | "version": "4.4.1",
1893 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1894 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1895 | "dev": true,
1896 | "requires": {
1897 | "punycode": "^2.1.0"
1898 | }
1899 | },
1900 | "use-subscription": {
1901 | "version": "1.5.1",
1902 | "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz",
1903 | "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==",
1904 | "requires": {
1905 | "object-assign": "^4.1.1"
1906 | }
1907 | },
1908 | "v8-compile-cache": {
1909 | "version": "2.3.0",
1910 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
1911 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
1912 | "dev": true
1913 | },
1914 | "which": {
1915 | "version": "1.3.1",
1916 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1917 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1918 | "dev": true,
1919 | "requires": {
1920 | "isexe": "^2.0.0"
1921 | }
1922 | },
1923 | "which-boxed-primitive": {
1924 | "version": "1.0.2",
1925 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
1926 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
1927 | "dev": true,
1928 | "requires": {
1929 | "is-bigint": "^1.0.1",
1930 | "is-boolean-object": "^1.1.0",
1931 | "is-number-object": "^1.0.4",
1932 | "is-string": "^1.0.5",
1933 | "is-symbol": "^1.0.3"
1934 | }
1935 | },
1936 | "word-wrap": {
1937 | "version": "1.2.3",
1938 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1939 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1940 | "dev": true
1941 | },
1942 | "wrappy": {
1943 | "version": "1.0.2",
1944 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1945 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1946 | "dev": true
1947 | },
1948 | "write": {
1949 | "version": "1.0.3",
1950 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1951 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1952 | "dev": true,
1953 | "requires": {
1954 | "mkdirp": "^0.5.1"
1955 | }
1956 | },
1957 | "yaml": {
1958 | "version": "1.10.2",
1959 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
1960 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
1961 | }
1962 | }
1963 | }
1964 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@airtable/json-editor-app",
3 | "version": "1.0.5",
4 | "license": "MIT",
5 | "dependencies": {
6 | "@airtable/blocks": "latest",
7 | "lodash.debounce": "^4.0.8",
8 | "react": "^16.9.0",
9 | "react-dom": "^16.9.0"
10 | },
11 | "devDependencies": {
12 | "eslint": "^6.3.0",
13 | "eslint-plugin-react": "^7.14.3",
14 | "eslint-plugin-react-hooks": "^2.0.1"
15 | },
16 | "scripts": {
17 | "lint": "eslint frontend"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------