├── .block
└── remote.json
├── .eslintrc.js
├── .gitignore
├── LICENSE.md
├── README.md
├── block.json
├── frontend
├── SettingsForm.js
├── index.js
├── layout.js
├── loadCSS.js
└── settings.js
├── package-lock.json
└── package.json
/.block/remote.json:
--------------------------------------------------------------------------------
1 | {
2 | "blockId": "blkqUrtsb39vAM1FH",
3 | "baseId": "appxkZrQHE4sj9D1w"
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
4 |
--------------------------------------------------------------------------------
/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 associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Flowchart app
2 |
3 | Visualize linked records as a directed graph, such as a flowchart, decision tree, or user flow diagram. Export your
4 | graph to SVG for further editing or PNG for sharing.
5 |
6 | ## How to remix this app
7 |
8 | 1. Create a new base (or you can use an existing base).
9 |
10 | 2. Create a new app in your base (see [Create a new app](https://airtable.com/developers/blocks/guides/hello-world-tutorial#create-a-new-app)),
11 | selecting "Remix from Github" as your template.
12 |
13 | 3. From the root of your new app, run `block run`.
14 |
--------------------------------------------------------------------------------
/block.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0",
3 | "frontendEntry": "./frontend/index.js"
4 | }
5 |
--------------------------------------------------------------------------------
/frontend/SettingsForm.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types';
2 | import React, {Fragment} from 'react';
3 | import {Field, RecordQueryResult, Table, View} from '@airtable/blocks/models';
4 | import {
5 | Box,
6 | Button,
7 | FieldPickerSynced,
8 | FormField,
9 | Heading,
10 | Label,
11 | Link,
12 | SelectButtonsSynced,
13 | SelectSynced,
14 | TablePickerSynced,
15 | Text,
16 | ViewPickerSynced,
17 | } from '@airtable/blocks/ui';
18 |
19 | import {ExportType} from './index';
20 | import {allowedFieldTypes, ConfigKeys, LinkStyle, ChartOrientation, RecordShape} from './settings';
21 |
22 | function SettingsForm({setIsSettingsVisible, settingsValidationResult, onExportGraph}) {
23 | const {settings, isValid} = settingsValidationResult;
24 | return (
25 |
32 |
40 | Settings
41 |
42 |
43 |
44 | {settings.table && (
45 |
46 |
47 |
51 |
52 |
56 |
61 |
62 |
70 |
77 |
78 |
79 |
86 |
87 |
88 |
99 |
100 |
101 |
102 | Record color
103 |
104 |
105 | Record coloring is{' '}
106 |
110 | based on the view
111 |
112 |
113 |
114 |
115 | )}
116 |
117 |
125 |
126 |
129 |
136 |
139 |
140 |
143 |
144 |
145 | );
146 | }
147 |
148 | SettingsForm.propTypes = {
149 | setIsSettingsVisible: PropTypes.func.isRequired,
150 | onExportGraph: PropTypes.func.isRequired,
151 | settingsValidationResult: PropTypes.shape({
152 | settings: PropTypes.shape({
153 | table: PropTypes.instanceOf(Table),
154 | view: PropTypes.instanceOf(View),
155 | field: PropTypes.instanceOf(Field),
156 | queryResult: PropTypes.instanceOf(RecordQueryResult),
157 | chartOrientation: PropTypes.oneOf(Object.values(ChartOrientation)).isRequired,
158 | linkStyle: PropTypes.oneOf(Object.values(LinkStyle)).isRequired,
159 | recordShape: PropTypes.oneOf(Object.values(RecordShape)).isRequired,
160 | }).isRequired,
161 | isValid: PropTypes.bool.isRequired,
162 | }),
163 | };
164 |
165 | export default SettingsForm;
166 |
--------------------------------------------------------------------------------
/frontend/index.js:
--------------------------------------------------------------------------------
1 | import React, {useEffect, useRef, useState} from 'react';
2 | import {saveSvgAsPng, svgAsDataUri} from 'save-svg-as-png';
3 | import {
4 | Box,
5 | expandRecord,
6 | initializeBlock,
7 | Loader,
8 | useLoadable,
9 | useSettingsButton,
10 | useViewport,
11 | useWatchable,
12 | } from '@airtable/blocks/ui';
13 |
14 | import {createLayout} from './layout';
15 | import loadCSS from './loadCSS';
16 | import {useSettings} from './settings';
17 | import SettingsForm from './SettingsForm';
18 |
19 | // viz.js has a stack overflow when there are too many records. So add a limit to be safe.
20 | const MAX_RECORDS = 100;
21 | export const ExportType = Object.freeze({
22 | PNG: 'png',
23 | SVG: 'svg',
24 | });
25 |
26 | loadCSS();
27 |
28 | const domParser = new DOMParser();
29 |
30 | function FlowchartApp() {
31 | const viewport = useViewport();
32 | const [isSettingsVisible, setIsSettingsVisible] = useState(false);
33 | useSettingsButton(() => {
34 | if (!isSettingsVisible) {
35 | viewport.enterFullscreenIfPossible();
36 | }
37 | setIsSettingsVisible(!isSettingsVisible);
38 | });
39 | const settingsValidationResult = useSettings();
40 | const {queryResult} = settingsValidationResult.settings;
41 | useLoadable(queryResult);
42 | useWatchable(queryResult, ['records', 'cellValues', 'recordColors']);
43 |
44 | useEffect(() => {
45 | if (!settingsValidationResult.isValid) {
46 | setIsSettingsVisible(true);
47 | }
48 | }, [settingsValidationResult.isValid]);
49 |
50 | const graph = useRef(null);
51 |
52 | function draw() {
53 | if (!graph.current) {
54 | // Return early if ref isn't ready yet.
55 | return;
56 | }
57 | if (!settingsValidationResult.isValid) {
58 | graph.current.innerHTML = `${settingsValidationResult.message}`;
59 | return;
60 | }
61 |
62 | if (!queryResult.isDataLoaded) {
63 | graph.current.innerHTML = 'Loading...';
64 | } else if (queryResult.records.length === 0) {
65 | graph.current.innerHTML = 'Add some records to get started';
66 | } else if (queryResult.records.length > MAX_RECORDS) {
67 | graph.current.innerHTML = `
68 | The flowchart app can only visualize up to ${MAX_RECORDS} records. Try deleting some records or
69 | filtering them out of the view.
70 | `;
71 | } else {
72 | createLayout(settingsValidationResult.settings).then(svg => {
73 | const svgDocument = domParser.parseFromString(svg, 'image/svg+xml');
74 | const svgElement = svgDocument.firstElementChild;
75 | if (svgElement && graph.current) {
76 | // Set the width and height of the SVG element so that it takes up the full dimensions of the
77 | // app frame.
78 | const width = svgElement.getAttribute('width');
79 | const height = svgElement.getAttribute('height');
80 | if (Number(width) > Number(height)) {
81 | svgElement.setAttribute('width', '100%');
82 | svgElement.removeAttribute('height');
83 | } else {
84 | svgElement.setAttribute('height', '100%');
85 | svgElement.removeAttribute('width');
86 | }
87 | graph.current.innerHTML = '';
88 | graph.current.appendChild(svgElement);
89 | }
90 | });
91 | }
92 | }
93 |
94 | function _onGraphClick(e) {
95 | if (!queryResult || !queryResult.isDataLoaded) {
96 | return;
97 | }
98 | let target = e.target || null;
99 | // Traverse up the element tree from the click event target until we find an svg element
100 | // describing a 'node' that has a corresponding record that we can expand.
101 | while (target && target !== graph.current) {
102 | if (target.classList.contains('node')) {
103 | const record = queryResult.getRecordByIdIfExists(target.id);
104 | if (record) {
105 | expandRecord(record);
106 | return;
107 | }
108 | }
109 | target = target.parentElement;
110 | }
111 | }
112 |
113 | function _onExportGraph(exportType) {
114 | const {view} = settingsValidationResult.settings;
115 | if (view && graph.current) {
116 | const svgElement = graph.current.firstElementChild;
117 | if (svgElement) {
118 | if (exportType === ExportType.PNG) {
119 | saveSvgAsPng(svgElement, `${view.name}.png`, {
120 | scale: 2.0,
121 | });
122 | } else if (exportType === ExportType.SVG) {
123 | // Convert the SVG to a data URI and download it via an anchor link.
124 | svgAsDataUri(svgElement, {}, uri => {
125 | const downloadLink = document.createElement('a');
126 | downloadLink.download = `${view.name}.svg`;
127 | downloadLink.href = uri;
128 | document.body.appendChild(downloadLink);
129 | downloadLink.click();
130 | document.body.removeChild(downloadLink);
131 | });
132 | } else {
133 | throw new Error('Unexpected export type: ', exportType);
134 | }
135 | }
136 | }
137 | }
138 |
139 | draw();
140 | return (
141 |
151 |
164 |
165 |
166 | {isSettingsVisible && (
167 |
172 | )}
173 |
174 | );
175 | }
176 |
177 | initializeBlock(() => );
178 |
--------------------------------------------------------------------------------
/frontend/layout.js:
--------------------------------------------------------------------------------
1 | import workerize from 'workerize';
2 | import {colorUtils} from '@airtable/blocks/ui';
3 |
4 | import {LinkStyle, ChartOrientation, RecordShape} from './settings';
5 |
6 | const DEBUG_OUTPUT = false; // Set to true to log layout source string to console
7 | let worker;
8 |
9 | const workerString = `
10 | // Run viz.js in a worker to avoid blocking the main thread.
11 | self.importScripts('https://unpkg.com/viz.js@2.1.2/viz.js', 'https://unpkg.com/viz.js@2.1.2/full.render.js');
12 |
13 | let viz;
14 |
15 | function restart() {
16 | viz = new Viz();
17 | viz.renderString('digraph {}', {
18 | format: 'svg',
19 | engine: 'dot',
20 | }).catch(() => {});
21 | }
22 |
23 | restart();
24 |
25 | export function layout(source) {
26 | return new Promise((resolve, reject) => {
27 | let timeoutTimer = setTimeout(() => {
28 | restart();
29 | reject(new Error('timeout'));
30 | }, 10000);
31 |
32 | return viz.renderString(source, {
33 | format: 'svg',
34 | engine: 'dot',
35 | }).then(resolve).catch(err => {
36 | clearTimeout(timeoutTimer);
37 | restart();
38 | reject(err);
39 | });
40 | });
41 | }
42 | `;
43 |
44 | /**
45 | * Creates a string representation of the graph based on the passed in settings
46 | * Uses the viz worker to convert this string to an svg
47 | * See https://www.graphviz.org/documentation/ for more details.
48 | * @param settings
49 | * @returns {Promise} The returned promise should resolve to an svg
50 | */
51 | export function createLayout(settings) {
52 | if (!worker) {
53 | worker = workerize(workerString);
54 | }
55 | const {chartOrientation, linkStyle, recordShape, queryResult, field} = settings;
56 | let source = 'digraph {\n\t';
57 | source += 'bgcolor=transparent\n\t';
58 | source += 'pad=0.25\n\t';
59 | source += 'nodesep=0.75\n\t';
60 |
61 | if (chartOrientation === ChartOrientation.HORIZONTAL) {
62 | source += 'rankdir=LR\n\t';
63 | }
64 |
65 | switch (linkStyle) {
66 | case LinkStyle.STRAIGHT_LINES:
67 | source += 'splines=line\n\n\t';
68 | break;
69 | case LinkStyle.CURVED_LINES:
70 | source += 'splines=curved\n\n\t';
71 | break;
72 | case LinkStyle.RIGHT_ANGLES:
73 | default:
74 | source += 'splines=ortho\n\n\t';
75 | break;
76 | }
77 |
78 | source += 'node [\n\t\t';
79 | switch (recordShape) {
80 | case RecordShape.ELLIPSE:
81 | source += 'shape=ellipse\n\t\t';
82 | break;
83 | case RecordShape.CIRCLE:
84 | source += 'shape=circle\n\t\t';
85 | break;
86 | case RecordShape.DIAMOND:
87 | source += 'shape=diamond\n\t\t';
88 | break;
89 | case RecordShape.ROUNDED:
90 | case RecordShape.RECTANGLE:
91 | default:
92 | source += 'shape=rect\n\t\t';
93 | break;
94 | }
95 | source += `style="filled${recordShape === RecordShape.ROUNDED ? ',rounded' : ''}"\n\t\t`;
96 | source += 'fontname=Helvetica\n\t';
97 | source += ']\n\n\t';
98 |
99 | const nodes = [];
100 | const edges = [];
101 | for (const record of queryResult.records) {
102 | if (record.isDeleted) {
103 | continue;
104 | }
105 | const recordColor = queryResult.getRecordColor(record);
106 | const shouldUseLightText = record
107 | ? colorUtils.shouldUseLightTextOnColor(recordColor)
108 | : false;
109 | let displayText = record.name
110 | .substring(0, 50)
111 | .trim()
112 | .replace(/"/g, '\\"');
113 | if (record.name.length > 50) {
114 | displayText += '...';
115 | }
116 | nodes.push(
117 | `${record.id} [id="${record.id}" label="${displayText}"
118 | tooltip="${displayText}"
119 | fontcolor="${shouldUseLightText ? 'white' : 'black'}"
120 | fillcolor="${recordColor ? colorUtils.getHexForColor(recordColor) : 'white'}"]`,
121 | );
122 |
123 | const linkedRecordCellValues = record.getCellValue(field.id) || [];
124 | for (const linkedRecordCellValue of linkedRecordCellValues) {
125 | // The record might be in the cell value but not in the query result when it is deleted
126 | const linkedRecord = queryResult.getRecordByIdIfExists(linkedRecordCellValue.id);
127 | if (!linkedRecord || linkedRecord.isDeleted) {
128 | continue;
129 | }
130 | edges.push(
131 | `${record.id} -> ${linkedRecord.id} [id="${record.id}->${linkedRecord.id}"]`,
132 | );
133 | }
134 | }
135 |
136 | source += nodes.join('\n\t');
137 | source += '\n\n\t';
138 | source += edges.join('\n\t');
139 | source += '\n}';
140 |
141 | if (DEBUG_OUTPUT) {
142 | console.log(source);
143 | }
144 | return worker.layout(source);
145 | }
146 |
--------------------------------------------------------------------------------
/frontend/loadCSS.js:
--------------------------------------------------------------------------------
1 | import {loadCSSFromString} from '@airtable/blocks/ui';
2 |
3 | const cssString = `
4 | span.prompt {
5 | padding: 2rem;
6 | margin: 0;
7 | font-size: 17px;
8 | font-weight: 500;
9 | color: hsl(0, 0%, 46%);
10 | line-height: 1.5;
11 | text-align: center;
12 | }
13 |
14 | g.node {
15 | cursor: pointer;
16 | user-select: none;
17 | }
18 | `;
19 |
20 | function loadCSS() {
21 | loadCSSFromString(cssString);
22 | }
23 |
24 | export default loadCSS;
25 |
--------------------------------------------------------------------------------
/frontend/settings.js:
--------------------------------------------------------------------------------
1 | import {FieldType} from '@airtable/blocks/models';
2 | import {useBase, useGlobalConfig} from '@airtable/blocks/ui';
3 |
4 | export const ConfigKeys = {
5 | TABLE_ID: 'tableId',
6 | VIEW_ID: 'viewId',
7 | FIELD_ID: 'fieldId',
8 | CHART_ORIENTATION: 'chartOrientation',
9 | LINK_STYLE: 'linkStyle',
10 | RECORD_SHAPE: 'recordShape',
11 | };
12 |
13 | export const allowedFieldTypes = [FieldType.MULTIPLE_RECORD_LINKS];
14 |
15 | export const RecordShape = Object.freeze({
16 | ROUNDED: 'rounded',
17 | RECTANGLE: 'rectangle',
18 | ELLIPSE: 'ellipse',
19 | CIRCLE: 'circle',
20 | DIAMOND: 'diamond',
21 | });
22 |
23 | export const LinkStyle = Object.freeze({
24 | RIGHT_ANGLES: 'rightAngles',
25 | STRAIGHT_LINES: 'straightLines',
26 | });
27 |
28 | export const ChartOrientation = Object.freeze({
29 | HORIZONTAL: 'horizontal',
30 | VERTICAL: 'vertical',
31 | });
32 |
33 | const defaults = Object.freeze({
34 | [ConfigKeys.CHART_ORIENTATION]: ChartOrientation.VERTICAL,
35 | [ConfigKeys.LINK_STYLE]: LinkStyle.RIGHT_ANGLES,
36 | [ConfigKeys.RECORD_SHAPE]: RecordShape.ROUNDED,
37 | });
38 |
39 | /**
40 | * Reads the values stored in GlobalConfig and inserts defaults for missing values
41 | * @param {GlobalConfig} globalConfig
42 | * @returns {{
43 | * tableId?: string,
44 | * viewId?: string,
45 | * fieldId?: string,
46 | * chartOrientation: ChartOrientation,
47 | * linkStyle: LinkStyle,
48 | * recordShape: RecordShape,
49 | * }}
50 | */
51 | function getRawSettingsWithDefaults(globalConfig) {
52 | const rawSettings = {};
53 | for (const globalConfigKey of Object.values(ConfigKeys)) {
54 | const storedValue = globalConfig.get(globalConfigKey);
55 | if (
56 | storedValue === undefined &&
57 | Object.prototype.hasOwnProperty.call(defaults, globalConfigKey)
58 | ) {
59 | rawSettings[globalConfigKey] = defaults[globalConfigKey];
60 | } else {
61 | rawSettings[globalConfigKey] = storedValue;
62 | }
63 | }
64 |
65 | return rawSettings;
66 | }
67 |
68 | /**
69 | * Takes values read from GlobalConfig and converts them to Airtable objects where possible.
70 | * Also creates an extra key for queryResult which is derived from view and field.
71 | * @param {object} rawSettings - The object returned by getRawSettingsWithDefaults
72 | * @param {Base} base - The base being used by the app in order to convert id's to objects
73 | * @returns {{
74 | * table: Table | null,
75 | * view: View | null,
76 | * field: Field | null,
77 | * queryResult: RecordQueryResult | null,
78 | * chartOrientation: ChartOrientation,
79 | * linkStyle: LinkStyle,
80 | * recordShape: RecordShape,
81 | * }}
82 | */
83 | function getSettings(rawSettings, base) {
84 | const table = base.getTableByIdIfExists(rawSettings.tableId);
85 | const view = table ? table.getViewByIdIfExists(rawSettings.viewId) : null;
86 | const field = table ? table.getFieldByIdIfExists(rawSettings.fieldId) : null;
87 | const queryResult =
88 | view && field ? view.selectRecords({fields: [table.primaryField, field]}) : null;
89 | return {
90 | table,
91 | view,
92 | field,
93 | queryResult,
94 | chartOrientation: rawSettings.chartOrientation,
95 | linkStyle: rawSettings.linkStyle,
96 | recordShape: rawSettings.recordShape,
97 | };
98 | }
99 |
100 | /**
101 | * Wraps the settings with validation information
102 | * @param {object} settings - The object returned by getSettings
103 | * @returns {{settings: object, isValid: boolean} | {settings: object, isValid: boolean, message: string}}
104 | */
105 | function getSettingsValidationResult(settings) {
106 | const {queryResult, table, field} = settings;
107 | if (!queryResult) {
108 | return {
109 | isValid: false,
110 | message: 'Pick a table, view, and linked record field',
111 | settings: settings,
112 | };
113 | } else if (field.type !== FieldType.MULTIPLE_RECORD_LINKS) {
114 | return {
115 | isValid: false,
116 | message: 'Select a linked record field',
117 | settings: settings,
118 | };
119 | } else if (field.options.linkedTableId !== table.id) {
120 | return {
121 | isValid: false,
122 | message: 'Linked record field must be linked to same table',
123 | settings: settings,
124 | };
125 | }
126 | return {
127 | isValid: true,
128 | settings: settings,
129 | };
130 | }
131 |
132 | /**
133 | * A React hook to validate and access settings configured in SettingsForm.
134 | * @returns {{settings: object, isValid: boolean, message: string} | {settings: object, isValid: boolean}}
135 | */
136 | export function useSettings() {
137 | const base = useBase();
138 | const globalConfig = useGlobalConfig();
139 | const rawSettings = getRawSettingsWithDefaults(globalConfig);
140 | const settings = getSettings(rawSettings, base);
141 | return getSettingsValidationResult(settings);
142 | }
143 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@airtable/flowchart-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.omit": {
1268 | "version": "4.5.0",
1269 | "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
1270 | "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA="
1271 | },
1272 | "loose-envify": {
1273 | "version": "1.4.0",
1274 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1275 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1276 | "requires": {
1277 | "js-tokens": "^3.0.0 || ^4.0.0"
1278 | }
1279 | },
1280 | "memoize-one": {
1281 | "version": "5.2.1",
1282 | "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz",
1283 | "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
1284 | },
1285 | "mimic-fn": {
1286 | "version": "2.1.0",
1287 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1288 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1289 | "dev": true
1290 | },
1291 | "minimatch": {
1292 | "version": "3.0.4",
1293 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1294 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1295 | "dev": true,
1296 | "requires": {
1297 | "brace-expansion": "^1.1.7"
1298 | }
1299 | },
1300 | "minimist": {
1301 | "version": "1.2.5",
1302 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1303 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1304 | "dev": true
1305 | },
1306 | "mkdirp": {
1307 | "version": "0.5.5",
1308 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1309 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1310 | "dev": true,
1311 | "requires": {
1312 | "minimist": "^1.2.5"
1313 | }
1314 | },
1315 | "ms": {
1316 | "version": "2.1.2",
1317 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1318 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1319 | "dev": true
1320 | },
1321 | "mute-stream": {
1322 | "version": "0.0.8",
1323 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
1324 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
1325 | "dev": true
1326 | },
1327 | "natural-compare": {
1328 | "version": "1.4.0",
1329 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1330 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1331 | "dev": true
1332 | },
1333 | "nice-try": {
1334 | "version": "1.0.5",
1335 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1336 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
1337 | "dev": true
1338 | },
1339 | "object-assign": {
1340 | "version": "4.1.1",
1341 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1342 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
1343 | },
1344 | "object-inspect": {
1345 | "version": "1.11.0",
1346 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
1347 | "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==",
1348 | "dev": true
1349 | },
1350 | "object-keys": {
1351 | "version": "1.1.1",
1352 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1353 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1354 | "dev": true
1355 | },
1356 | "object.assign": {
1357 | "version": "4.1.2",
1358 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
1359 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
1360 | "dev": true,
1361 | "requires": {
1362 | "call-bind": "^1.0.0",
1363 | "define-properties": "^1.1.3",
1364 | "has-symbols": "^1.0.1",
1365 | "object-keys": "^1.1.1"
1366 | }
1367 | },
1368 | "object.entries": {
1369 | "version": "1.1.4",
1370 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz",
1371 | "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==",
1372 | "dev": true,
1373 | "requires": {
1374 | "call-bind": "^1.0.2",
1375 | "define-properties": "^1.1.3",
1376 | "es-abstract": "^1.18.2"
1377 | }
1378 | },
1379 | "object.fromentries": {
1380 | "version": "2.0.4",
1381 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz",
1382 | "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==",
1383 | "dev": true,
1384 | "requires": {
1385 | "call-bind": "^1.0.2",
1386 | "define-properties": "^1.1.3",
1387 | "es-abstract": "^1.18.0-next.2",
1388 | "has": "^1.0.3"
1389 | }
1390 | },
1391 | "object.values": {
1392 | "version": "1.1.4",
1393 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz",
1394 | "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==",
1395 | "dev": true,
1396 | "requires": {
1397 | "call-bind": "^1.0.2",
1398 | "define-properties": "^1.1.3",
1399 | "es-abstract": "^1.18.2"
1400 | }
1401 | },
1402 | "once": {
1403 | "version": "1.4.0",
1404 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1405 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1406 | "dev": true,
1407 | "requires": {
1408 | "wrappy": "1"
1409 | }
1410 | },
1411 | "onetime": {
1412 | "version": "5.1.2",
1413 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
1414 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
1415 | "dev": true,
1416 | "requires": {
1417 | "mimic-fn": "^2.1.0"
1418 | }
1419 | },
1420 | "optionator": {
1421 | "version": "0.8.3",
1422 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
1423 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
1424 | "dev": true,
1425 | "requires": {
1426 | "deep-is": "~0.1.3",
1427 | "fast-levenshtein": "~2.0.6",
1428 | "levn": "~0.3.0",
1429 | "prelude-ls": "~1.1.2",
1430 | "type-check": "~0.3.2",
1431 | "word-wrap": "~1.2.3"
1432 | }
1433 | },
1434 | "os-tmpdir": {
1435 | "version": "1.0.2",
1436 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1437 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1438 | "dev": true
1439 | },
1440 | "parent-module": {
1441 | "version": "1.0.1",
1442 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1443 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1444 | "requires": {
1445 | "callsites": "^3.0.0"
1446 | }
1447 | },
1448 | "parse-json": {
1449 | "version": "5.2.0",
1450 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
1451 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
1452 | "requires": {
1453 | "@babel/code-frame": "^7.0.0",
1454 | "error-ex": "^1.3.1",
1455 | "json-parse-even-better-errors": "^2.3.0",
1456 | "lines-and-columns": "^1.1.6"
1457 | }
1458 | },
1459 | "path-is-absolute": {
1460 | "version": "1.0.1",
1461 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1462 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1463 | "dev": true
1464 | },
1465 | "path-key": {
1466 | "version": "2.0.1",
1467 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1468 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1469 | "dev": true
1470 | },
1471 | "path-parse": {
1472 | "version": "1.0.7",
1473 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1474 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1475 | },
1476 | "path-type": {
1477 | "version": "4.0.0",
1478 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1479 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
1480 | },
1481 | "prelude-ls": {
1482 | "version": "1.1.2",
1483 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1484 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1485 | "dev": true
1486 | },
1487 | "progress": {
1488 | "version": "2.0.3",
1489 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1490 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1491 | "dev": true
1492 | },
1493 | "prop-types": {
1494 | "version": "15.7.2",
1495 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
1496 | "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
1497 | "requires": {
1498 | "loose-envify": "^1.4.0",
1499 | "object-assign": "^4.1.1",
1500 | "react-is": "^16.8.1"
1501 | }
1502 | },
1503 | "punycode": {
1504 | "version": "2.1.1",
1505 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1506 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1507 | "dev": true
1508 | },
1509 | "react": {
1510 | "version": "16.14.0",
1511 | "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
1512 | "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
1513 | "requires": {
1514 | "loose-envify": "^1.1.0",
1515 | "object-assign": "^4.1.1",
1516 | "prop-types": "^15.6.2"
1517 | }
1518 | },
1519 | "react-dom": {
1520 | "version": "16.14.0",
1521 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
1522 | "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
1523 | "requires": {
1524 | "loose-envify": "^1.1.0",
1525 | "object-assign": "^4.1.1",
1526 | "prop-types": "^15.6.2",
1527 | "scheduler": "^0.19.1"
1528 | }
1529 | },
1530 | "react-is": {
1531 | "version": "16.13.1",
1532 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
1533 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
1534 | },
1535 | "react-window": {
1536 | "version": "1.8.5",
1537 | "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.5.tgz",
1538 | "integrity": "sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q==",
1539 | "requires": {
1540 | "@babel/runtime": "^7.0.0",
1541 | "memoize-one": ">=3.1.1 <6"
1542 | }
1543 | },
1544 | "regenerator-runtime": {
1545 | "version": "0.13.9",
1546 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
1547 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
1548 | },
1549 | "regexp.prototype.flags": {
1550 | "version": "1.3.1",
1551 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
1552 | "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
1553 | "dev": true,
1554 | "requires": {
1555 | "call-bind": "^1.0.2",
1556 | "define-properties": "^1.1.3"
1557 | }
1558 | },
1559 | "regexpp": {
1560 | "version": "2.0.1",
1561 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
1562 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
1563 | "dev": true
1564 | },
1565 | "resolve": {
1566 | "version": "1.20.0",
1567 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
1568 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
1569 | "requires": {
1570 | "is-core-module": "^2.2.0",
1571 | "path-parse": "^1.0.6"
1572 | }
1573 | },
1574 | "resolve-from": {
1575 | "version": "4.0.0",
1576 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1577 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
1578 | },
1579 | "restore-cursor": {
1580 | "version": "3.1.0",
1581 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
1582 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
1583 | "dev": true,
1584 | "requires": {
1585 | "onetime": "^5.1.0",
1586 | "signal-exit": "^3.0.2"
1587 | }
1588 | },
1589 | "rimraf": {
1590 | "version": "2.6.3",
1591 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1592 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1593 | "dev": true,
1594 | "requires": {
1595 | "glob": "^7.1.3"
1596 | }
1597 | },
1598 | "run-async": {
1599 | "version": "2.4.1",
1600 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
1601 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
1602 | "dev": true
1603 | },
1604 | "rxjs": {
1605 | "version": "6.6.7",
1606 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
1607 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
1608 | "dev": true,
1609 | "requires": {
1610 | "tslib": "^1.9.0"
1611 | }
1612 | },
1613 | "safe-buffer": {
1614 | "version": "5.1.2",
1615 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1616 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1617 | },
1618 | "safer-buffer": {
1619 | "version": "2.1.2",
1620 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1621 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1622 | "dev": true
1623 | },
1624 | "save-svg-as-png": {
1625 | "version": "1.4.17",
1626 | "resolved": "https://registry.npmjs.org/save-svg-as-png/-/save-svg-as-png-1.4.17.tgz",
1627 | "integrity": "sha512-7QDaqJsVhdFPwviCxkgHiGm9omeaMBe1VKbHySWU6oFB2LtnGCcYS13eVoslUgq6VZC6Tjq/HddBd1K6p2PGpA=="
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 | "workerize": {
1943 | "version": "0.1.8",
1944 | "resolved": "https://registry.npmjs.org/workerize/-/workerize-0.1.8.tgz",
1945 | "integrity": "sha512-X2y/MZ4UHXY00CKPbhb7g5Pm7aagKmXqTETvG/gi9I0tlrONqAN8jRuyLvlyvhrXTugJUk9Dzz7UBpSwFIP8pQ=="
1946 | },
1947 | "wrappy": {
1948 | "version": "1.0.2",
1949 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1950 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1951 | "dev": true
1952 | },
1953 | "write": {
1954 | "version": "1.0.3",
1955 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1956 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1957 | "dev": true,
1958 | "requires": {
1959 | "mkdirp": "^0.5.1"
1960 | }
1961 | },
1962 | "yaml": {
1963 | "version": "1.10.2",
1964 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
1965 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
1966 | }
1967 | }
1968 | }
1969 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@airtable/flowchart-app",
3 | "version": "1.0.5",
4 | "scripts": {
5 | "lint": "eslint frontend"
6 | },
7 | "dependencies": {
8 | "@airtable/blocks": "latest",
9 | "prop-types": "^15.7.2",
10 | "react": "^16.12.0",
11 | "react-dom": "^16.12.0",
12 | "save-svg-as-png": "^1.4.14",
13 | "workerize": "^0.1.7"
14 | },
15 | "devDependencies": {
16 | "eslint": "^6.8.0",
17 | "eslint-plugin-react": "^7.18.3",
18 | "eslint-plugin-react-hooks": "^2.4.0"
19 | },
20 | "license": "MIT"
21 | }
22 |
--------------------------------------------------------------------------------