From 24305dd1bc03af225393913712f5d9cf12d22632 Mon Sep 17 00:00:00 2001 From: Niels de Jong Date: Mon, 3 Oct 2022 09:48:42 +0200 Subject: [PATCH 1/2] 2.1.6 Release (#211) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added Hotfix for broken map visualization (#184) * Added Sankey charts, improved docs and tests (#189) * Sankey 0.1 * Sankey 0.9 with Docs * Included package-lock in repository. Fixed gitignore and webpack.config.js * Updated docs * Added test for sankey chart. Updated docs in various places. Handling of empty sankey charts without weights Co-authored-by: Niels de Jong * Fixed flaky behaviour in parameter selection (#192) * Fixed flaky behaviour in parameter selection * Extended parameter select to support: custom # suggestions, optional case-sensitiveness, custom search types, and turn of deduplications * Updated version to 2.1.5 * Updated docs publish trigger * Update develop-deployment.yml * Refactored package.json to support yarn instead of npm (#199) * Replaced npm scripts by yarn, fixed issues in package.json * Upversioning some old dependencies * Bumped node version for test environment * Added extensions for table report, optional markdown descriptions (pop-ups), deep-linking pages and line-chart customizations (#196) * Added doubleclick = copy action to tables. Added description setting to all reports: * Added option to deep-link into a given pagenumber * Added rotation angles for line chart ticks * Updated docs for new extensions * Cycle detection (#206) * Cycle detection * Moving deps * Added support for default values in parameter select (#200) * Added setting to customize a map provider for map visualizations (#201) * Adding Radar Charts (#207) * Radar 0.1 * Radar 1.0 * Changed selection for radar chart * Removed old advanced config for radars * Bump docs version * Updated examples * Removed debug statements Co-authored-by: Niels de Jong * Restructuring Record Mapper Architecture (#193) * Stability fixes for 2.0.11 * Added prototype SSO implementation * Changed dockerfile usage from ENV to ARG (#93) * Stability fixes for 2.0.11 (#76) Fix for rendering dictionaries in tables/single value charts. Added resize handler for fullscreen map views. Added missing auto-run config to pie charts. Fixed broken value scale parameter for bar charts. * Changed dockerfile usage from ENV to ARG Also using CMD as opposed to ENTRYPOINT * Updated supporting docker scripts * Renamed docker run scripts, deleted docker-build.bash * Changed dockerfile usage from ENV to ARG Also using CMD as opposed to ENTRYPOINT * Updated supporting docker scripts * Renamed docker run scripts, deleted docker-build.bash * Updated README to match new Docker image setup Co-authored-by: Niels de Jong Co-authored-by: Tobias * Added color selector component. Clean up/refactoring of file names * Tweaking of color picker for advanced settings, added framework for rule-based styling of reports * Clean up, refactoring of project structure * Added version number to Dockerfile * Moved version number in docker file to before RUN command * Added some more comments to the docker scripts * Restructured scripts and docker file locations, added conf.d * Added conf.d directory * Updated version number and Dockerfile references * updated path to conf.d * Updated version number in dockerfile * First version of rule-based styling is completed * Fixed handling of nginx configuration file (#98) * Remedied errors in handling of nginx configs * Adjusted copy of default.conf Co-authored-by: Tobias Krøgholt * Update Dockerfile * Update Dockerfile * Improved handling of null values in tables * Added support for custom style rules to relevant report types * Removed standalone password from default configuration * Fixed default styling for config.json * Updated release notes, readme and docker push script for 2.0.12 * Updated description of component hierarchy * Set dockerfile to pull from master by default * Changed docker startup script to contain a message for the user * Updated dockerfile startup message * Fixed startup message in Dockerfile * Corrected null check for table rendering * Better null handling for rule based evaluation in tables * Cleanup of code documentation * Updated documentation * Clean up of comments * Work in progress on drag-and-drop dashboards/pages * Styling fixes for resizable layout * Styling for drag-and-drop pages/reports. Bumped version to 2.1 * Fixed icon for card settings * WIP on the drag-and-drop dashboard header * WIP on drag-and-drop page reordering * Added support for loading dashboards from a relative URL in standalone mode * Hotfix for broken demo dashboard * Refactoring dashboard header code * Controlled drag-and-drop state for dashboards * Drag-and-drop layout for pages with dynamic add-card placement * Tweaking style for the new resizable reports * Bump to 2.0.15. Added option to replace dashboard parameters in Markdown and iFrame strings * added html to image to lib * Tweaking the resizeable report/page view * W.I.P. on downloading reports/dashboard as image * Style tweaks * Added button to download entire dashboard as an image * Updated release notes for 2.0.15 * Dockerfile - Configuration through env variables at runtime (#125) * Configuration throug env variables - Env variables can now be used to define the contents of config.json (when the container starts) - Added tips for setting up single sign on * Cleanup of Dockerfile and README * Removed temporary files * Bumped version number Co-authored-by: Håkan Löfqvist * Updated release notes * Updated README on Docker deployments * Add bar chart report ; add catch for when a dashboard is cached * Finish rebasing from 2.0.15 * Added pie chart report and generalized report testing * Added auto-position of add card button * Added dashboard upgrading from 2.0 --> 2.1 * Clean up. Added help modal for reports * Added Hierarchical Charts (#124) * Added extra option (standalone dashboard by URL to build config * WIP on dockerfile * Reverted back to old Docker config * Fixed import for react-color-picker, clean up Dockerfile * Updated material-ui-color-picker dependency * Report updates base on global params Disable refresh when a global parameter is changed that is not used in the report * Update CardView.tsx Removing extra logs * Hierarchical Charts Hierarchical Charts Added Pie Chart Options added Pie Chart Percentage Default true * Added extra option (standalone dashboard by URL to build config * WIP on dockerfile * Reverted back to old Docker config * Fixed import for react-color-picker, clean up Dockerfile * Updated material-ui-color-picker dependency * Update CardView.tsx Removing extra logs * Hierarchical Charts Hierarchical Charts Added Pie Chart Options added Pie Chart Percentage Default true * Added extra option (standalone dashboard by URL to build config * Merge * Reverted back to old Docker config * Merge * Updated material-ui-color-picker dependency * Added missing line in Dockerfile * Icon + quick fix Fixes base on comments * Added comments to describe functionality * Fixed comments on PR review for hierarchy reports * Updated Dockerfile and package.json * Removed console.log Co-authored-by: Niels de Jong * Fixed button style of reset for hierarchy reports * Removed legacy docker scripts * Removed temporary logging * Removed editable button for non-editable cards * Clean up of card settings * Fixed bug where code-editor will duplicate text * Added auto upgrade of cached dashboard version * added new query + 3 new testcases * added a few more tests and also some code to make testing easier * Fixed bug where the code editor didn't update internal state after pasting * Update README.md * Update README.md * Update README.md * Finalized cypress tests * testing GH actions * testing GH actions * Removed CD experiment * Fixed upload S3 script - revert * Added CD config * Fixed case-sensentive import error * Docs and Small Fixes Docs on hierarchical reports. Fix on restart button Fix on lodash names * Fixed description text for hierarhical charts examples * added small change to run test in the background * added githhub action for cypress * syntax changes * small modification 2.0 * wait-on mod * renamed the deploy to develop and created a master with docker * small master docker test on dev * docker-ready * syntax fix * deleted develop for test purpose * syntax fix * syntax fix final * added dependency between different jobs * Fixed typos in in-app docs * removed 2 files + test to publish npm * mod * made changes * added npm install * modified stuff * take 345 * take 346 * take 347 * take 348 * take 349 * take 350 * take 351 * take 351 * added develop-deployment.yml and new stuff(still master pulls develop) + removed publish-package-npm.bash * Tweaked workaround for paste+replace bug in codemirror * Fixed bug where iFrame URL does not get replaced by parameters if it's the only text in the page. Fixed bug where minimizing card settings results in a glitched page layout * Changed the 'save as image' library * Added google site tracker * Code cleanup, added comments * Downgraded mui data grid * Downgrade mui datagrid * Removed video generation from .cypress.json, fixed workflows, reverted index.html * Updated workflows * Fix bug where neodash will ask you to clear a dashboard when none exists * Fixed bug where editing the vertical alignment of a single value caused the number to clip * Added placeholder for docs * Updated cypress test to work better on GitHub test VM's. Added placeholder for new adocs * Added warning handler for Cypress * Removed it.only from Cypress IT * Fixed cypress test to reflect new cached dashboard changes * Updated GitHub workflows, added small wait after entering URL to allow for Redux cache sync * Added publish to npm step. Removed debug settings. * Fixed error in workflow definition * Added changelog, release-notes, final fixes to CI/CD pipeline, style fix for parameter selectors * Fixed release notes * Final tweaks to workflows & changelog * Updated cypress stress test to wait for loading the stress dashboards * Fixed flaky test in Cypress stress test * Feature/rebase 2.1 master (#139) * 2.1 Release (#131) ## NeoDash 2.1 The 2.1 release is a major update to the NeoDash application. Main updates: - Added new drag-and-drop dashboard layout - reports can be **moved** and **resized** freely within the dashboard. - Updated dashboard file format for new layout (2.0 dashboards are automatically migrated). - Pages can now be reordered by dragging and dropping. - Added three new hierarchical report types: - Treemaps - Sunburst Charts - Circle Packing Charts - Styling/usability improvements for pie charts. - Improved image download (screenshot functionality) for all report types. - Parameter select reports now resize the selector to fit the available space. Other changes: - Added continuous integration and deployment workflows. - Created a new [User Guide](https://github.com/nielsdejong/neodash/wiki/User-Guide) with documentation on all report customizations is available. - Added a new [Developer Guide](https://github.com/nielsdejong/neodash/wiki/Developer-Guide) with info on installing, building and extending the application. * Bumped version new to fix npm signature * Fixed npm publish command in workflow * Reverse Pull-Request to sync develop with master (#141) * 2.1 Release (#131) ## NeoDash 2.1 The 2.1 release is a major update to the NeoDash application. Main updates: - Added new drag-and-drop dashboard layout - reports can be **moved** and **resized** freely within the dashboard. - Updated dashboard file format for new layout (2.0 dashboards are automatically migrated). - Pages can now be reordered by dragging and dropping. - Added three new hierarchical report types: - Treemaps - Sunburst Charts - Circle Packing Charts - Styling/usability improvements for pie charts. - Improved image download (screenshot functionality) for all report types. - Parameter select reports now resize the selector to fit the available space. Other changes: - Added continuous integration and deployment workflows. - Created a new [User Guide](https://github.com/nielsdejong/neodash/wiki/User-Guide) with documentation on all report customizations is available. - Added a new [Developer Guide](https://github.com/nielsdejong/neodash/wiki/Developer-Guide) with info on installing, building and extending the application. * 2.1.1 - npm signature hotfix (#140) Hotfix for npm signature signing * Added different npm registry syntax * Fixed Docker version number in deploy scripts * Reverse PR (#143) * 2.1.1 - npm signature hotfix (#140) Hotfix for npm signature signing * Added different npm registry syntax * Added step in workflow for injecting the deployment HTML file into the npm published package (#147) * Added GitHub issue templates (#145) * Added issue templates * Fixed issue template directory * Converted Wiki Docs to ASCII-doc, updating README (#146) * Converting docs to adoc * Renamed adoc files * Updated README. Updated Home page of the adocs to match labs standard * Added tags * Added screenshot * Fixed adoc spacing * Fixed styling on adoc files * Final adjustments to ASCIIdoc migration of the Wiki * Feature/add clone button to report (#150) * added a skeleton for the clone button feature * removed a comment * removed stuff and also added a new icon * Minor performance improvements on report cloning Co-authored-by: aleksandarneo4j Co-authored-by: Bennu Co-authored-by: Niels de Jong * Fix on Hierarchical Charts (#151) * Renamed some variables * Renamed helper function Co-authored-by: Niels de Jong * Several bug fixes for 2.1.2 (#148) * Made resize button more visible. Added docker environment variables for standaloneUsername and standalonePassword. Fixed width of card title headers for standalone mode. Fixed rendering issue for nullable columns in tables * Removed deprecated string parameters * Changed grid compaction type from horizontal to vertical * Bumped version number. Changed all GitHub references to new organization * Updated release notes * Re-enabled all IT tests * Added documentation portal in new and improved ASCIIdoc format (#156) * Created new documentation structure * Renamed navigation adoc fiel * Restructuring of documentation * Updated page structure * Added README for documentation directory, code to run docs locally * Restructring and cleaning up docs * Updated links and images in documentation portal * Renamed quickstart * Renamed quickstart in docs folder * Add bg color (#158) * Add bg color * Added some minor robustness to report background color, updated docs Co-authored-by: Vitor Horta Co-authored-by: Niels de Jong * Temporarily disabled flaky Cypress test (#161) * Added handling of share URL without password + better date handling for line charts (#162) * Added handling of special case where no password is provided in the share URL * Improved handling of date/datetime types for line charts * fixed the reszie issue + returned card to how it was before my chnages * Removed old docs * Restructuring * Re-architecting many things. Record mapper is now gone * Made bar charts/line charts work with the new architecture * bumped version number * Made bar charts stable with new architecture * Cont. development on restructuring w/o record mapper * Record mapper refactoring - bar/line/pie charts * Fixed sunburst to no longer use record mapper * Restructure treemap, choropleth, and circle packing to not use record mapper * Removed default (cached) selection from page state initialization * Added lockfile * Fix invalid merge * Fixed Radar chart to work without the record mapper * WIP on release notes * Added skeleton for tests * Merge Co-authored-by: Tkrogholt Co-authored-by: Tobias Co-authored-by: Håkan Löfqvist Co-authored-by: Marius Conjeaud Co-authored-by: BennuFire Co-authored-by: aleksandarneo4j Co-authored-by: MariusC Co-authored-by: Aleksandar Co-authored-by: Vitor Horta Co-authored-by: Vitor Horta * Updated release notes and changelog * Sunburst Child's color (#212) * Sunburst Child's color * Updated release notes and changelog * Merge * Fixed merge conflict Co-authored-by: Niels de Jong Co-authored-by: BennuFire Co-authored-by: Tkrogholt Co-authored-by: Tobias Co-authored-by: Håkan Löfqvist Co-authored-by: Marius Conjeaud Co-authored-by: aleksandarneo4j Co-authored-by: MariusC Co-authored-by: Aleksandar Co-authored-by: Vitor Horta Co-authored-by: Vitor Horta --- .github/workflows/develop-deployment.yml | 27 +- .github/workflows/develop-test.yml | 8 +- .github/workflows/master-deployment.yml | 28 +- .github/workflows/master.test.yml | 8 +- .gitignore | 2 - Dockerfile | 8 +- README.md | 2 +- changelog.md | 19 + cypress/integration/start_page.spec.js | 9 + docs/README.md | 4 +- docs/modules/ROOT/images/radar.png | Bin 0 -> 97103 bytes docs/modules/ROOT/nav.adoc | 1 + .../adding-visualizations.adoc | 6 +- .../pages/developer-guide/build-and-run.adoc | 16 +- .../ROOT/pages/developer-guide/design.adoc | 1 - .../developer-guide/standalone-mode.adoc | 11 + .../ROOT/pages/developer-guide/testing.adoc | 6 +- docs/modules/ROOT/pages/quickstart.adoc | 6 +- docs/modules/ROOT/pages/user-guide/faq.adoc | 10 +- .../ROOT/pages/user-guide/publishing.adoc | 3 +- .../pages/user-guide/reports/bar-chart.adoc | 1 + .../pages/user-guide/reports/choropleth.adoc | 1 + .../user-guide/reports/circle-packing.adoc | 1 + .../ROOT/pages/user-guide/reports/graph.adoc | 1 + .../ROOT/pages/user-guide/reports/iframe.adoc | 1 + .../ROOT/pages/user-guide/reports/index.adoc | 3 + .../pages/user-guide/reports/line-chart.adoc | 5 + .../ROOT/pages/user-guide/reports/map.adoc | 1 + .../pages/user-guide/reports/markdown.adoc | 1 + .../user-guide/reports/parameter-select.adoc | 1 + .../pages/user-guide/reports/pie-chart.adoc | 1 + .../ROOT/pages/user-guide/reports/radar.adoc | 68 + .../pages/user-guide/reports/raw-json.adoc | 1 + .../ROOT/pages/user-guide/reports/sankey.adoc | 1 + .../user-guide/reports/single-value.adoc | 1 + .../pages/user-guide/reports/sunburst.adoc | 5 + .../ROOT/pages/user-guide/reports/table.adoc | 3 + .../pages/user-guide/reports/treemap.adoc | 1 + docs/package-lock.json | 2945 +++--- docs/package.json | 4 +- package.json | 31 +- public/index.html | 2 +- public/style.css | 2 +- release-notes.md | 32 +- src/application/Application.tsx | 2 +- src/application/ApplicationSelectors.ts | 4 +- src/application/ApplicationThunks.ts | 12 +- src/card/Card.tsx | 1 - src/card/CardThunks.ts | 5 +- src/card/settings/CardSettingsContent.tsx | 1 - .../CardSettingsContentPropertySelect.tsx | 6 +- src/card/view/CardView.tsx | 3 +- src/card/view/CardViewHeader.tsx | 52 +- src/chart/BarChart.tsx | 27 - src/chart/ChartUtils.ts | 317 + src/chart/ChoroplethMapChart.tsx | 18 - src/chart/CirclePackingChart.tsx | 15 - src/chart/LineChart.tsx | 19 - src/chart/PieChart.tsx | 18 - src/chart/SunburstChart.tsx | 18 - src/chart/TreeMapChart.tsx | 18 - src/chart/Utils.ts | 163 + .../BarVisualization.tsx => bar/BarChart.tsx} | 92 +- .../ChoroplethMapChart.tsx} | 85 +- .../CirclePackingChart.tsx} | 44 +- src/chart/{ => graph}/GraphChart.tsx | 10 +- src/chart/{ => iframe}/IFrameChart.tsx | 4 +- src/chart/{ => json}/JSONChart.tsx | 2 +- .../LineChart.tsx} | 108 +- src/chart/{ => map}/MapChart.tsx | 17 +- src/chart/{ => markdown}/MarkdownChart.tsx | 4 +- .../ParameterSelectionChart.tsx | 14 +- .../PieVisualization.tsx => pie/PieChart.tsx} | 60 +- src/chart/radar/RadarChart.tsx | 117 + src/chart/sankey/SankeyChart.tsx | 238 + src/chart/{ => single}/SingleValueChart.tsx | 7 +- .../SunburstChart.tsx} | 66 +- src/chart/{ => table}/TableChart.tsx | 45 +- .../TreeMapChart.tsx} | 50 +- src/chart/util/ChartUtils.ts | 58 - src/chart/visualizations/Utils.ts | 442 - .../visualizations/VisualizationProps.ts | 17 - src/component/editor/CodeViewerComponent.tsx | 14 +- src/component/field/Field.tsx | 3 +- src/component/field/Setting.tsx | 27 +- .../misc/DashboardConnectionUpdateHandler.tsx | 6 +- src/config/CardConfig.ts | 66 - src/config/ExampleConfig.ts | 174 +- src/config/ReportConfig.tsx | 374 +- src/dashboard/Dashboard.tsx | 3 +- src/dashboard/DashboardThunks.ts | 35 +- src/modal/AboutModal.tsx | 2 +- src/modal/ReportHelpModal.tsx | 2 +- src/modal/SaveModal.tsx | 2 +- src/modal/WelcomeScreenModal.tsx | 3 +- src/page/Page.tsx | 1 - src/page/PageReducer.ts | 2 - src/report/Report.tsx | 36 +- src/report/ReportQueryRunner.ts | 45 +- src/report/ReportRecordProcessing.tsx | 265 +- src/settings/SettingsThunks.ts | 6 +- src/store.ts | 2 +- yarn.lock | 8302 +++++++++++++++++ 103 files changed, 11619 insertions(+), 3218 deletions(-) create mode 100644 docs/modules/ROOT/images/radar.png create mode 100644 docs/modules/ROOT/pages/user-guide/reports/radar.adoc delete mode 100644 src/chart/BarChart.tsx create mode 100644 src/chart/ChartUtils.ts delete mode 100644 src/chart/ChoroplethMapChart.tsx delete mode 100644 src/chart/CirclePackingChart.tsx delete mode 100644 src/chart/LineChart.tsx delete mode 100644 src/chart/PieChart.tsx delete mode 100644 src/chart/SunburstChart.tsx delete mode 100644 src/chart/TreeMapChart.tsx create mode 100644 src/chart/Utils.ts rename src/chart/{visualizations/BarVisualization.tsx => bar/BarChart.tsx} (60%) rename src/chart/{visualizations/ChoroplethMapVisualization.tsx => choropleth/ChoroplethMapChart.tsx} (66%) rename src/chart/{visualizations/CirclePackingVisualization.tsx => circlepacking/CirclePackingChart.tsx} (75%) rename src/chart/{ => graph}/GraphChart.tsx (98%) rename src/chart/{ => iframe}/IFrameChart.tsx (93%) rename src/chart/{ => json}/JSONChart.tsx (94%) rename src/chart/{visualizations/LineVisualization.tsx => line/LineChart.tsx} (68%) rename src/chart/{ => map}/MapChart.tsx (96%) rename src/chart/{ => markdown}/MarkdownChart.tsx (90%) rename src/chart/{ => parameter}/ParameterSelectionChart.tsx (91%) rename src/chart/{visualizations/PieVisualization.tsx => pie/PieChart.tsx} (79%) create mode 100644 src/chart/radar/RadarChart.tsx create mode 100644 src/chart/sankey/SankeyChart.tsx rename src/chart/{ => single}/SingleValueChart.tsx (89%) rename src/chart/{visualizations/SunburstVisualization.tsx => sunburst/SunburstChart.tsx} (59%) rename src/chart/{ => table}/TableChart.tsx (70%) rename src/chart/{visualizations/TreeMapVisualization.tsx => treemap/TreeMapChart.tsx} (73%) delete mode 100644 src/chart/util/ChartUtils.ts delete mode 100644 src/chart/visualizations/Utils.ts delete mode 100644 src/chart/visualizations/VisualizationProps.ts create mode 100644 yarn.lock diff --git a/.github/workflows/develop-deployment.yml b/.github/workflows/develop-deployment.yml index ed07e8368..59c5fbb8a 100644 --- a/.github/workflows/develop-deployment.yml +++ b/.github/workflows/develop-deployment.yml @@ -4,13 +4,12 @@ on: push: branches: [ develop ] - jobs: build-test: runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} @@ -18,27 +17,37 @@ jobs: with: node-version: ${{ matrix.node-version }} - run: rm -rf docs - - run: npm install + - run: yarn install - name: Cypress run uses: cypress-io/github-action@v2 with: - build: npm run build - start: npm run dev + build: yarn run build + start: yarn run dev wait-on: 'http://localhost:3000' + deploy-docs: + needs: build-test + runs-on: ubuntu-latest + steps: + - name: Trigger Developer Event + uses: peter-evans/repository-dispatch@main + with: + token: ${{ secrets.DOCS_REFRESH_TOKEN }} + repository: neo4j-documentation/docs-refresh + event-type: labs build-s3: needs: build-test runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - run: npm install - - run: npm run build + - run: yarn install + - run: yarn run build - name: Set AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -46,4 +55,4 @@ jobs: aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: us-west-1 - run: curl ${{ secrets.INDEX_HTML_DEPLOYMENT_URL }} > dist/index.html - - run: aws s3 rm s3://neodash-test.graphapp.io/ --recursive && aws s3 sync dist s3://neodash-test.graphapp.io/ --acl public-read \ No newline at end of file + - run: aws s3 rm s3://neodash-test.graphapp.io/ --recursive && aws s3 sync dist s3://neodash-test.graphapp.io/ --acl public-read diff --git a/.github/workflows/develop-test.yml b/.github/workflows/develop-test.yml index 223533180..37fcdd0c0 100644 --- a/.github/workflows/develop-test.yml +++ b/.github/workflows/develop-test.yml @@ -10,17 +10,17 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - run: npm install + - run: yarn install - name: Cypress run uses: cypress-io/github-action@v2 with: - build: npm run build - start: npm run dev + build: yarn run build + start: yarn run dev wait-on: 'http://localhost:3000' \ No newline at end of file diff --git a/.github/workflows/master-deployment.yml b/.github/workflows/master-deployment.yml index ebe48d5eb..b9735df1b 100644 --- a/.github/workflows/master-deployment.yml +++ b/.github/workflows/master-deployment.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} @@ -18,19 +18,19 @@ jobs: with: node-version: ${{ matrix.node-version }} - run: rm -rf docs - - run: npm install + - run: yarn install - name: Cypress run uses: cypress-io/github-action@v2 with: - build: npm run build - start: npm run dev + build: yarn run build + start: yarn run dev wait-on: 'http://localhost:3000' build-s3: needs: build-test runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} @@ -38,8 +38,8 @@ jobs: with: node-version: ${{ matrix.node-version }} - run: rm -rf docs - - run: npm install - - run: npm run build + - run: yarn install + - run: yarn run build - name: Set AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: @@ -53,7 +53,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - name: run Docker uses: actions/checkout@v2 @@ -71,13 +71,13 @@ jobs: context: . file: ./Dockerfile push: true - tags: ${{ secrets.DOCKER_HUB_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_USERNAME }}/neodash:2.1.5 + tags: ${{ secrets.DOCKER_HUB_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_USERNAME }}/neodash:2.1.6 build-npm: needs: build-test runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} @@ -85,10 +85,10 @@ jobs: with: node-version: ${{ matrix.node-version }} - run: rm -rf docs - - run: npm install - - run: npm run-script build + - run: yarn install + - run: yarn run-script build - run: curl ${{ secrets.INDEX_HTML_DEPLOYMENT_URL }} > dist/index.html - - run: npm pack + - run: yarn pack - run: rm -rf target - run: mkdir target - run: mv *.tgz target/ @@ -100,7 +100,7 @@ jobs: - run: npx @neo4j/code-signer --app ./package --private-key neo4j-labs-app.pem --cert neo4j-labs-app.cert --passphrase ${{ secrets.NEO4J_DESKTOP_PASSPHRASE }} - run: echo "${{ secrets.NEO4J_DESKTOP_CERTIFICATE }}" > neo4j_desktop.cert - run: npx @neo4j/code-signer --verify --app ./package --root-cert neo4j_desktop.cert - - run: cd package && npm pack + - run: cd package && yarn pack - run: mv package/*.tgz . - run: rm -rf package - run: tar xvf *.tgz package diff --git a/.github/workflows/master.test.yml b/.github/workflows/master.test.yml index 5a26990a9..767e75b79 100644 --- a/.github/workflows/master.test.yml +++ b/.github/workflows/master.test.yml @@ -10,17 +10,17 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [17.x] + node-version: [18.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - - run: npm install + - run: yarn install - name: Cypress run uses: cypress-io/github-action@v2 with: - build: npm run build - start: npm run dev + build: yarn run build + start: yarn run dev wait-on: 'http://localhost:3000' diff --git a/.gitignore b/.gitignore index c48d0618f..20471195f 100644 --- a/.gitignore +++ b/.gitignore @@ -27,8 +27,6 @@ cypress/videos .env.development.local .env.test.local .env.production.local - -npm-debug.log* yarn-debug.log* yarn-error.log* diff --git a/Dockerfile b/Dockerfile index 3bdfa27af..2138a66fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # build stage FROM node:lts-alpine AS build-stage -RUN npm install -g typescript jest +RUN yarn install -g typescript jest WORKDIR /usr/local/src/neodash # Pull source code if you have not cloned the repository @@ -11,9 +11,9 @@ WORKDIR /usr/local/src/neodash # Copy sources and install/build COPY ./package.json /usr/local/src/neodash/package.json -RUN npm install +RUN yarn install COPY ./ /usr/local/src/neodash -RUN npm run build +RUN yarn run build # production stage FROM nginx:alpine AS neodash @@ -38,4 +38,4 @@ RUN chown -R nginx:nginx /usr/share/nginx/html/ USER nginx EXPOSE 5005 HEALTHCHECK cmd curl --fail http://localhost:5005 || exit 1 -LABEL version="2.1.5" +LABEL version="2.1.6" diff --git a/README.md b/README.md index b8762d9d7..257615412 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ After building a dashboard, you can chose to deploy a read-only, standalone inst ## Questions / Suggestions If you have any questions about NeoDash, please reach out to the maintainers: -- Create an [Issue](https://github.com/nielsdejong/neodash/issues/new) on GitHub for feature requests/bugs. +- Create an [Issue](https://github.com/neo4j-labs/neodash/issues/new) on GitHub for feature requests/bugs. - Connect with us on the [Neo4j Discord](https://neo4j.com/developer/discord/). - Create a post on the Neo4j [Community Forum](https://community.neo4j.com/). diff --git a/changelog.md b/changelog.md index 9e9103c4b..8914558b8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,22 @@ +## NeoDash 2.1.6 +New features: +- Added *Radar Charts/Spider Charts*. +- Added optional markdown description for each report, to be displayed via the header. + +Extensions: +- Added option to provide a custom map provider for map charts. +- Added support for default values in parameter selectors. +- Added documentation on deep-linking into NeoDash. +- Added tick-rotation customization for line charts. +- Added option to have children in the sunburst chart inherit colors from their parents. + +Improvements: +- Rewiring of the internal query/rendering engine - resulting in far fewer query executions and a smoother UX. +- Changed package manager from `npm` to `yarn`, and bumped node version to 18. Cleaned up `package.json`. +- Reduced flaky behaviour in parameter selectors. +- Added cycle-detection logic for sankey charts. +- Fixed report documentation pop-up to open link in a new window. + ## NeoDash 2.1.5 Added *New* Sankey charts: - Visualize nodes and relationships as a flow diagram. diff --git a/cypress/integration/start_page.spec.js b/cypress/integration/start_page.spec.js index 28e5baf72..51d374b4d 100644 --- a/cypress/integration/start_page.spec.js +++ b/cypress/integration/start_page.spec.js @@ -170,6 +170,15 @@ describe('NeoDash E2E Tests', () => { cy.get('main .react-grid-item:eq(2) .MuiCardContent-root h1').should('have.text', 'Hello') }) + // it('creates a radar report', () => { + // // TODO - create a test for radar. + // }) + + + // it('creates a sankey report', () => { + // // TODO - create a test for sankey charts. + // }) + // Test load stress-test dashboard from file // TODO - this test is flaky, especially in GitHub actions environment. it.skip('test load dashboard from file and stress test report customizations', () => { diff --git a/docs/README.md b/docs/README.md index fb7e80adc..6303fe494 100644 --- a/docs/README.md +++ b/docs/README.md @@ -11,8 +11,8 @@ For example: https://neo4j.com/labs/neodash/2.1 ## Local Build To compile and view the documentation locally, navigate to this (`./docs`) folder and run: ``` -npm install -npm start +yarn install +yarn start ``` Then, open your browser and navigate to http://localhost:8000/. \ No newline at end of file diff --git a/docs/modules/ROOT/images/radar.png b/docs/modules/ROOT/images/radar.png new file mode 100644 index 0000000000000000000000000000000000000000..718a2fd98912698578da1774fc9f2f0a225f44fd GIT binary patch literal 97103 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%0DD&HfYjg{Nak4hK z;=lpnT4OLRyP1Jx?}&}ZX&bW}HLA~tK^4Y8#!uvE;iez+b|=6#Qy%r=QD6E6G92r) z7Z(3VB8&V+e@6f9;w>Jj#kU*A7SOroL-!No-UZN+rmul|{3*lD_J&vzK>djOO@=b2WwhD^NzfEQGMSFzvNP6HD4CW>`TrLeQgG4?mDfX<Q~AqKO}k zK5>{%E-r6y7NGuFm}YE=$G)Dmky>YsgQYIZh*!(uVEshfX-n73yYe0guz>1 zPS@CK&d!?ECh|>hDRVul$`7~dWNOa?c;^PAU5R>j*Bi`7bx$uaM=Ol4Z^=zReAx7P zM=I5|=jU1dL-$98xrIO&f@9Wo-_+tq*d$j%Q4_Ya_d0X!`EhdgS!h;*4dZn~grA1a zf{$;EH7q;*T6SzUchlt15LE4xW!MHX`^y6)>)hh6MB^Yd5s=+x3Gdt7qJrg4WR4D! zc@)HzYUSjl-bBZmsmyB{QMbBktsRbmqj>pYyVKvz5vYcI62WmJdu`=(97t9m#x4F> z{R{WNRNr-DS?Rk%y+F6kX$&=EuDthzl|sHbgVU0r)74WZ%zWeqdQZ4YE#M50G>r!^xZ z{Xf>@yQ3TMH5ZY~+yqv_ERA`~%UQ-v%u079&7rqRTRR$ld~{LhrO@1EwOaS00cx4U z2=eEmtdM_2$LQCu!%sY_q`luITfIO#{YmPSklW9$z}#kpx13?n4S;wAX+KoHGnx^) z4%{x2i!AZU%wgj-QwB=z`d@i1V1>`)QNBLMaxE5=GKHn3x`KEjU{!WptYC{D$}xeC zSw&k$U;Qq^uqpL~DwX^|{q{JgIMGmh@jYeRv7c$7Sh;z@+%} z%&|@5_*@}}J$Q<~ytr2{oA5yRD@y^jC!KBc=EbXu^d=VjXN3?`fxdDoX};%|Z__<% zDF_TIgMofXyr%N`x9A3Lo?5G?aWA0XOTm#ZP|qk~?84fNJ4ZKHG)&`5;k`k6 zL6`~Qb+5;o`37@0cZY2NGNs!2J*)vsFDgL<=@5^a1@F%LE^aj!jf{2imaB_>&_d-~ zMb&;-zeQJa6Rm3|GcW+CVFfe##1*fMdXwVupf zxP{&He1Iedb-ibYnfBei-MZl^Q1A#tx}{(-{gPO8zsUlN8(53&gZ z%aBN5YjkB>c>FnU*0@|MU-X?JV{9TGos>;bZ~la&Injito5U664e9y;SExYdBhSJH z>KGb^5jTK{Xkrxz_>v*yhUb31E0n^DsF%^M6}0g5JYgyCl?Tm&-jQ`Yrq-SB-DSZI zY8~)sn~RM6%I6=6E?KBMPr##WlO_7Pm_l(IBNJ`%$^owKw}%TVha9%%i+BJ(Ouvs$ zi6J{-T4#L!E!#cu;!gA)H7h(pii)C_3MC<`e!8dDGC8)+i6(G>B}P>?G&~1_PV^9#uK7r2U8o#`{nW?Bd~mkIjc5~dtjr~r6#_B zPvd2C6+OYS+ox~7w&9ge;9?TArmoQoTzMiRz18Si$n8XLKjUGNA90r7uYvbEwCJ#{ zQ_Zhm1B@*8a~|P+KB2fg>Z3vre5lHkzwoq;-3{yKwm9g~?Ai;^v7nd#8t|?Rw zy)mxU!j|}OZGBA?PsK6J9&aMCC{DepZ;R$9A1~^6TeO!l|D$_ou6+QXer9u&Gqv8u z7IE-vrFywvU*>uq1vN&kXc|nMUDHcPpZHm6pCCTYk-ejTiJW5Aiy~VE$iPmJ=t#qO zbVPka!({X6|397X?F_R4tn-(tu48~IAcv>|ll#u4?VJYC3{%T>bA*yZ8K)5n6E3np zU)--+75iWr_e+3?en&&(W8&KArmXl`ng5haIkP>oL9qNr0G5? z@}8sBNNu8~McYtqusgy8onVby_RTrD6!|k#Q-P(sGqp++_PJWaf%k6wVn_$x{@9t_ zn+w*{G-+({U=JCA{cC?2=#ooC%g7^}6t8IN@fmVS<RVG(#**9uC5o`(#lsc>VbVs7P+pjF=NN;wa3T49#8N zxmz0y`8`+wE$w=S<_-7m9ju6)H1FHXxhF4gt=Hj`8$fuqel(a{kfa|14_Ltj-wlQ- zXN&PNhi7qTNG4+ziE#CYF7Kn8Gu}6@6g{ddKFMkaC34u``Bc63AY#C!g_mwMB`=NG zZJ!g;!W(pMbjBYwTr{OUMJXWc6S|{?%K8e5B3;@}D9Rg_lU^0VM2jFgf?-8?j{wb( zP&ww0@))m@yV8p?k)c=CSperN0r!3Xl0_I~=)~NXN5Z>^H#q&xv5rMly{1kn0 z0xGy%9t9PAhK1Q4JO@;$JcC}5F$qo=5XRjhB7Axd09!l+YysJS-nK9rv;Xm9rS=ZN zr#V;STR#k*Qu$w*=aBrl@;}^djNW{`U&9TIZoTUrYX;rO-e;}(Q2P5KHdxt9g2q~;>$%R#0%81(RIDrHr-QZWtk5Z$-pS{;QcxR6GU(U zw>NSm?}PX^i1a7St6-)KV=v^JfYj=we6bTn^Rz16g9lMnjfah&j(RAcbaIl@ZO#M(mhfbBraqe zG`0D;FF^?xK+1*F*am)lgzChMhs8KJ!N7Qidi1%5ECI%WSda#%d@2q>w|tn*Yyqe36R5tENsC@Cn0sU1b?_yb2^BGTcnL?IY@QVQZT z;j-d82Zyk*+Yhh|?*cFZqIlH)9DzGj%-cRZ<*(!DM&+0jLGC2!2fY4>cdoED&{8b3 zVMfLN)bxA^g?_l_GwnbZIZp{?K%;^nJZ%M(JY2HCdYbs}9mU6BIWhWsxGB4RxCeBu zE|a64HVTuje@ydwM#~}5gohbC;Kyd-67HInZl8n=o}~SG zmZuTYpbR2KOih3@WkTZ@05X+FFuihm)BlU+m?=5nu;oyN*l4KvWEMY|5*Q)H+wfod z+#C7+Viup}w2$>)eGm}bgxW$?^z6y5e42`?w_>Y#zxWP@7F79Jyvb>HTo9kSn>EL;jjjOM^xl!ZT%qXi?XyHH9 z&iSJ(|3h=nY+Eui=29?zO;``duygcbG(oMV@JG7w(VP{Plk5odw(#)=~Y#WznXA>5fxTI3c z$RSjL8{0$KF30D1=~bZr_UP?MbYC~sM7myWJf^j6J{0@!+gR>RMUd&}8V2xCivhuJ zp!*9SxDtK`LY})vSip#lcCmnh?Z&Bfu*+A!9r6#nlB>qDKy;!8#<@GwhdEDw=L0}W z+i`-i*2v+b^FdlOR#erG2~JlHQon})UerJPRD0qr6%}`ZrDn^myLl?yJNo<^SmRGi z%L(BPcl?@@uV1#dYVHbr9CUB9Q6_w(s^yID)?mGF zC*Zx8VQ9msMxkj7#HD7d64H_(-H=J6INBps7YS^F44*C30zdrEd?Fga*RguKPGZ)_ z*#l);uvTM>OFkZ4%vn22OLPjy?((PGsj$a|PxvKO>2&Nr=;n2DV=9p1Xz}5TZsc(B? z&PdH!-0D&~AwM!^93aqK+=b)m&~6O|O+d7DhE&JSb7EGtaFL zQ^qvbXf3aP37v}ttUQK2_E?EELu8?`Oz8(J>%4;dml}%H;uhlyf8ciMaKiYz?frrW zRKt&|?;Z+*mAIZq>m3$mRHPFN#70n|C;6vVwZAkg@138YA07(U%jUoy-N*O`$&v?( z$ys%l;`FZ)<#UMZnIFMZzyEHjItex+KwM;3nJ%V*E_0vVJ`oju9~h2&b;d~rU)U?Q z9Hhe}KRO~*+}*Y-(a&x<5tpY=UUL$ClOPN)*Bcam(lM^LLu#8Vu2A~g!GSaUH2weF zSTouC6VgCeEr0e6Qj=H{1bOqX5d%>_<{U$dCI-H75hA;+!65_TBM4>r44nAKix*Lq zZ=+_B!hrh2vPOuRkx`_=Fpt8=M~g{f{dGP@qv0d4=)Ac{Ko&)k%*mkX<$$Ewwed%`OPR25B*^a0uJ4i5Lz%*r&Z|dC}9UTSKG5^02@tICn zXti6dA`OjJjw{r+=Vlt|#reVK)Nf&=RB(>(Xn>(i>5 zyod38_v-?^L;WU2;R{(M+Y{qs;r)(`_}`g-fGPD&dGtgKarJp2jyDmrI0+7pk5hqqid85bwAJioIez3K1(b=_V@ zW16x^YkRf-*@FeAHOf%AAYYrTBoSljxV0@B7I9G?TS?W|(c)gK4<3eXb_ZdRhL5mR z(Hv0frx<9yt(iUR zm$zBbRJN|4w*?6lO#aA?>I-xI2YB#5ClgYB*fHS;AE@&64-7;acysBJElIH7=fFav zNKx>aR_h1B5dW+U{3bi4=qad2TX+<-Q*`#PZ(za5D)-rOdeZ;0hfklr0sg$iRe{o! zVmPygkO8P}0JQoZ_Wrk*HLR+k_w|+MUI&^jjM3%0R zlFpM7#Os)lRm}aYfj0RTTS{k0lh>H%WINywKxs+>KMiXj*_Flt%l|{N2x=gIrJgnl zIz0eXnta-1ql5-EKc!;DDX(;53dF2fIlk56#LfXw%Y#W!7dJnvL#3v6Yx@Tm7n>5$ zQB@{8Kk}~bY2PfBEsQsSPlz1RiY>0>YDrPVkrdyMisb|&=rg;#w(+6eFq#le@Y))r zh!=)$lC%bPGP_)Oa0`ONi(lSF9WC!*QMPMAPFPa@g$goWJXS^QCz(9RyQ}MaP*J7t zee)+bmq<<0X~5O#U!pl-Q|H?-go*2F`jH1r19c~>_`PF=b z&2z&&92OBdzSZ^GfS@P;`C5av-m$Fxa@?foLHyH-tCUNCxDZ7B*t^0&wj*`}-f~Ak z-ZZ(&RO~)oXYZ_;P>F)(hXaQYfk1T9ZnV_ZDFZNx1$5jiH2SIK<-dsVnhq|Xbm8`54e2z$GsITWk z2YTyT7VkbKw-v@C$u&2|@MHqbA{XvL8k7CLJx+8(`NVpwbKlKB;q#oxg>N6>?X`yi zXLb(Ag26FK%<{M`YWrFjm{&pDN1jC9B}70sj(_f<+Uu^`1fzfe703|wRs5i(p(kZU z`dcXtzr6$C)^0Whe1`rk-g1Q2GX$`kHM>rfNCMG(^0fXZ#D$0>fGeJ5b5<3&lxuHv z{^xC`V83n^k}=ThvYWUmi>PB2vUrVIul>}MCB8bXBm&*o#&1L=~)vo3q^Wa=A$c^Y7!zrbkJP(YxX6?u3S}^|Jxy`rd~+K-9x?pp?| zk(>)Qm%kXpbG;faQ0vN1r}}WQn1kK>_DAE2oVI}UgYwep^w^Cl@-2~LRgQV8m(*UB zFTHBTnlLF%*|Qp@W?Wa>jMnPuHIwftXjmU;Y&&;T@r-Ar*ZVrv_jY*Bj`+J`(4_hF z7YLzyoJrwBs-@v!QUI|o#W7?jnH7IJN1*(^@Y%;bHF!uWT^^B#8h zNx16;D;!mX%k{5r(!!eHDxoca&V@je&uXBkcA90=$6-Q%aQV?VxZp;*1(S?AEr{ zU1pd)6&Vd}+Z*I>4ScEDdyV|FF76#AD6(lZG3p51n!9*_AK|P2u49Z6Ry!O6VH(%% zEPKC~DvJGN_A9!7Y)OHA_aR#RUm!S9W2Qo)$bj;~CKupnV^yAht+jgCSioBUN+XA1 zg$#YvX*2G6<9EuYcr9a)pJ#RDpF4biD+uY8((e!(ZhGb@Cl{~j!zPjdcE<0uXSGB? zamk{4fk71c=~u7tgJ(}aMB}FcZoN;;@tHowkTDoHk&6KPDDeJ*0v)pGqmI&=3;ldK ziy>H)g^yP0i_Cr2p5S8uNuM7dq{`N!WykWx_?zKc7yi5!cMqdx_$HPrRP_UtXVpst zJa6ottnag>0~zu$pq*5DkI9P*sH07@3}$fBwEi8iV>l8ZdY;$@vNa)}kU^k8xEJ=Y z%H8d zA7S0eKzh*@ronFG)RQgl^}o6zF2^PCD^${|mM~qo21+4MFxb`_-l-Rs{ru#4z)SP0 zKKAxqVxZa|P+oPi7BH*GXYSG0t?mrdzF1w(#hX|ykDDUz{Py(5U7Ci2Cau0zbx65u zfM`w706zaeK0 z=WUTvknUEHmXui1pai6(8|jc(x?4J=6&6sWq@=rJky@lfdXZMT>pko9{k{KkvDbAz zb7E%hx#ym|G`>cOp*MLrx$3_HFD8G@d8-T&yb`r@Y|vl*`DPRf``8Uf&vQS4=0YpU z*m%Teo+Yh+jQ=zWX<=T1U+ow!oD{K&@eWHJ8Jzy6AK`SLragvO3wcBDw;41#m0c{K z(r1%U7ED|R!aN$OPt`ThTH^%~IvRx;gyKk7;4{(adga;gp?u7p%wm5^(^W{&-oXoRi<5o0J{0qWAc6Yn0u4We?j4J<1{QB4fMX>ob@P?>nJbRD$T2 z9G+l#2(-5<3d~hYeRsY|2P!<#(L!`cZD1@^cNg#lLa>AO%xA1u#(b6ye zU+myaCY0^{WaZ}-P<%c=yc^E?YnP|QACyatZ~>TFw8Jf>FQ=Y%grA5=&v3xiTRAY8 zM6Sjo1vGp+xJA2%cHXXElY)|S@El<^D3jz4nN2>k>-=EI1;9#f0ihSu*#ARvSu;$^*xfO zsdfrFkj~4+4;#0&F~32B&rD7jaDt>elm58WgR&UBcBiE2n&H;)PrY{d`|SR=D-*K)r%jx)YGqirtZg*;G&>@e zQlZSqoPeCJ)alyWaT7ayTv4yW|8n6*^lL@(f8aKNNAa=(IyUpE&g|_=n@=C{D^E!k zjC=$@Z8yT2hYztp4mOyQhK9s3MX_;>kXikoL#xnkh>>Po0jg1RFi$wU?TNPVXyh1- zi|G4LK_rn=Hz%`Tf`UAu+C16#b%1=fAt+}g#umO+5a+amNYI4XhhVPc@Nl3 zX%a|43#c|}Sl=h61CzI&?mCs(_}pT^H~oIzW&L`cF!pDIq@E=%^Em?_f}Rs(GZ8Ii z7vtmda*tHm#Q%k8CnvSja8PYha4=6lKlj=%E2z+U4NO0;)8OzO6X~1II0U*5^k&}2 z97b|ZQ?$c3Ens?U9))D){!_oFPWb*;I~&KZ`!a73JqDvIA`Y*R{poAT{Q)`~E6Dm( z8Hbq_m}>j-CxqO-x4;B;<0Ay2;)>5)Ks@e&JaP}d1`uWA5O|30X#W6nXq}nHBD~+{ z!Z`okZXtxn?n1(^PnLkiAdV!h8Gf~+Ejww~Wutt!{8c2Rkok>I z`N*y0NR(YBsa(qtYswQ$PclpKE+<A>`^&pAE*spUBpKO| zujuko(3d-*SP@X~*Qit!KfLED0tkIY3?O~B;GVWn&SKH9BAfm z=KuGHkc9TSQfFR7Vj0#K>jTEmf0;*Tghd1H<5|*T^&K7?SL;SQW!)rkHj?=nh6pH$*I>4@3v! zw)9m`R==xQf3wwSn8e*9UWE2JxZF) z2$r}z^1AyKhOpaLL3-|?nE`>f$Pz2b&9~`|EtYPXSTX8lT6ML;ZbjK9n>*HJq@dda z$HyhMM^zpmGS5K`=hr)D-&7mD8>UjVrLpp|ab`j#ZuidCdZ-X8ZZj~)sW#>NUvlj3 z;jx@Z5uI7T`h)1Tk`mXGCm+C7&Sm^VyVoC4C(T-o@g=f?Va}Epahd7%a%2@`*7{9> zDa*NIh~%ZUpDS$>y*jiGQq7Jn2>T>6Px9?AmGG~@pv?GYEu`s0j$R>*ieL%ZJYv&>2< z0%h3|;{6qY0{?L)QYCH{*1N;=g&jT<2&(mmV~g!qm_Us=A1imvB<{5I*HLC;!Q&wt zHj3)6RFPU$^uQ>*?kJu>0}G17G#fMzdu;z-rfe*W(e zhZM@p%5Z&Rcei0x!%b^v>OwlU&bR*hf{tvSFQe1_NZQCkVJ}tRfh&OTG&-}XzCvD+ z(0~Kqq~hhQvE^0HQy#Nae~a9CGlyEl{WML>BA%&YW0XN~fI;+uL2TyL?cZZ%2RgVN z9PAQ`sUaXVz#Ml8$SEAXa|*jQ{sRUEA8wh;tKoJ=N@N<0V{X)Al)Cs57KpepWrB^6 z`HZEhK+OfkYLtU)3Orpz%8vXEz!Zi==DQ1n#a!Iy_wT{#xeZO(toU{ z@P+8HEQtQzz4;(euoL&0UBd5qhW$v}2z$2r|IDG@8$S)P`>lCFf#rLGSM!+XHqLDS zM(zhBQ?zp6>-6+=VDuf3k>*&E{I5Lp(3XXu^=-%qa5-4kizj>)Ree1|#QF#B=i_dOMh=Aq@Hw)I6NVru&jrr>v5xZL%|jch=>DR>waM3ZQ0zNeb-bW%jCDUz1!Za@?}*79GK?9M%$&Sni^+2 zD!mnA)4q)6E3vp9?0}c>O;vym0%7yYY2zO~#kDU)v{4=lORXRY*(b3Yb}uG2Hd0u? zXy*aO#*;L|zghU;63y+BMzQeRwPbKOzqhLAQ1u+O2&I*nq(2VxFsO=e`2a>zQP#6y=&a(Ov*us;_&86J7!>1g2B{08 zb`IF24F#2U^ahe$P!%Q1kJ;H2-*+hiZtrN_TzFrvV!bnD`%oK$eOnOdO^k8;$-IAG z`YF*0_$C_OhuLgUCCj;DlVkW%6pNRsqv~D-xZi zK>2*`*EWkBu#oV77OFhNp)5e!aEfmJg)GRb)2y@pfY{@J6U4S*$Mb&`1D_MnH4ZY? z?yNbc54D4g?upO$`cH>Lq3Knr(0ejT6llWVk_Ge@hpE;-3{SORktr5rd|Lxi=%y|B z7jw$fDF>GdTrNCK_iPQtzctBw-3E zTeqRy<$JKGbVCipzh~O^v6X*_>|g}?m{IHzdA&a%!XuGCh; z^hazH7y@6a^lqL=jV+bDi*44wrC7lhBt_$r-cSM_TZ7Dm#iXNMvEbkE5~w5;2N-8S zMN$TClkfq++6FW|#cAyB|G&BkDm=@>@qG}`I^ALNVU7?@t*PY>#IqwrFTxBl~eY^aw;gZ+NzxN2t+(!OC29G7=qs_pR z9EFVOf$qpgOJb*TeS32#4vm#pn~ce)OGa^_iy!axI{K9nkVmt=DfM~pPK<%L%;9+P zc7m${X;f_ygIc<}A>)6G$ofpbzBc*G4D(zV=eH{`3Y~IgVPo}vR!RS~AHxtWP74$l zb!b#7pjt_W`O-Ule{;%s|3~Tzo1ZtV-|I2ua~2y5bckZLH=Tm%>*@kAOt4jhLql}F z(A*oXCz)mYk5GZk&rW~D2NMi}~QOH05g{QrDBUmj$fkT=G8qNjSjZ z5W}pB@ZW!IWUbnCTxOknOHPnEIq@~&Lmn9uhTI&DC1m?{2$A19a2q?HC>2Kec{2+O z#b55S7GpgV-7)h#Sf3h4hB zO-rQ~cwY$S{{C#G7e1JTXoo#u&NlXKtH0;D+chBU$`p>*Y0(om>_Z{hYP3vT{1+|0 z$^-@oF|mu4JTCi}X=R$8YLE!AivfQ_ku%Un|Xz; zqNHqqzYOb&v_NX7u(I(C=8f#Sb0~` zGZ$BTU`8%+v0leO!*{GF^WC>y3GQBgWtUzqQ&<#^R|60+SdYn9{QNOk$J?LmxJbC= zQPb=D8=niG`YaW38qo(iFQ9NO%A83xY(o-MjoOJ>Z9VC(Jjo!k7N1$+L?ewM)*8_qbx~ONy1#r>TQ-0y&%pl0W-hLb6=*T0G&>ViEpD$-i=)oy=wZNTS}UX- z*u@A@Sr|7|zV8VtFOULU4xhj);5Q3fPD}~HMR)dVnCL*_o`4o)alo`hkRVV{k^vq$ zg0DSFmLa?9;re3(A2U|`wkOl&*g!8Fm$k)Mytsh!?f^j)01e6eh9LjLap^S>xu&dh z^&8*n-6LJ;Z%@M9+4gx?dF14(h4&enJvQ^*L(|sHE>C%y!!JS>oA$h@zAv5!LLEM1 zzX;I1k`#}qQE)Qh%mSozs|G+y&!c4hz%`9rOtU*mZtswIoI~$2&&}QFpk#&R{twr- zkaWi73u_hn;CK&guq4=EDPcVgL%zM@SzFEHLm}U&Az?Sv>oUO8Y7%=$He;b6-BKPQ z!I1pF?G5g6RovcmyeC*}Gl;tI#rv(j{Fi{n`w?B^ ziJpOWZLk#;-{!kJ>Shz*EC;i%cV6P!n+sEV*C=q@!n&jb|F+u@g~-f$HmbF`h%oMZn3KBNy|}i_+K_3}O}~_F>YOO~ zGjR6Q0;)=Wb)r8F7_G#Z`>^d=$Q(3pq9hXl7bXh0k zeJ`RoqVTupOODCs8XXL~J!JEq$@Lo?El=QR^(gw|E_glKL}N|5k^Voc=uVwdBqMjO zr1kRB(i$tE+%xg~h_oryxT@Be9e(B0i!zG&e_! z3ed^lz>ABcg*om7B8?S==KbHg{LwF( zWcGZ9FMoe^P7--ECzI8G%d^15K*@Liu~_-eQ@i>bNw1NpsGDrgQMJmE65Me-t|M>jG;ko@PJ%1o4^dO zS@OsyLbVl&#W-%qbd6c8?ZzUjOkr~dZgx~UODc-Q^Ane}eE3a7@l4_yQah=kVu(hL zvVfRgC~+cH!RK(g4xiP>r-`wB7~FQ>N0C|2@un`$(8ASzQX0`Q)XQ zNXo!SJH3bUJDXdk>(*&$X$0GM_2(C^T9q*2Ufa*`M!k1m5f)=B(&@DiX7s zXOF~&Si~N9&=wemwdMBdwQ6ZWwzB~1ba($>X7*`_d~#x;uZ1bK}&V@W82^21}TT-+(LHU0OvaXYIt{mw7ZZPWX&z>_o`Vr zm|s9X@y`WQ`z;1RUv9)2EM8nI8-6SAk>D^O|D=2SFAK9{mHQ;LLb<-VUR0HrP%p5) z?=#^A-{fNF=2+98Qft||n%|=r;qjSBYN%faWnBNi@=reb*(I(*W>8%6>s9iX5bf(d zpLmrE_+}JO5%*I+9!`(#{fC=kaj`emF)m7nAHgO`8%E*?^ks6jIUqC936s@DAK}dbMaMb2`(Vi*h~QVQ6n97xny5MrkV~dIGVE&Ig;H+LmR< zdz#UZJ3E4X8XUaJHPuDMYuI%%!Lzdh-Zb+<4P8%c_%w8>Ighs}&eiGeXQ=uv5G;Eh zLuLflnMH245)p%6x?+-s4(FBFv`P+zc!C;-`|uHXrt1Sqa){nfQaWB<7W~VfRbL>^ zo<{XAV>uS74yqrhbE7vhTpf85kd?}$Nc0t_gA#O7D|9xKXTOh8aPGU`rbE;^r0y!_ zIUi=l!J3^pY>T*ZpsTO*SgYBMlWm<4Kx(fUPdpsdTnbHTxE^j5qTeyPB^CTgYxY3d z#WwsGD$;mfmG-J21qg)n8pqR&U@aE3NG7jU*9xr&SdDE{6lwRbf7fr{qi=K9Y!MRB zlK&MW-#D9T8Clve>revKGymzlJ_b?7urrg{^)m=2Z;bpdamOHci7%mSO)hy1g zu5P*D<7*~zPPw0jqVv6S%;~z5NX<%H^I3G%r)RHij%od^+v8?Z)%`sEodIxR4~(el z+g40LZx45sB5{SwMD%xSd4i6pK} zj|Pdo_-lCJrswXyD6xSeu(T@m494Go;$r+d4%_LxUHgwOG8B*umffp+0@993g{^aW zChqoisa?#zO_*@9FCXJTAHkS+)ys7viAN3!BQZSPrlJ?yJZri?cpDz0-+u~Qdz{BS zR(L0S4iW?^@ni;6^eF+^Zu4Qr@{@Nui$M`$F^pZRyS`<33q^1o2nX7P{NH>=Y$X?qhnd zKqMu^{^h_N1KRpShll8~=)TCKr}U)+6TWIs+jdOM|19X)`1L9J&A8YfR~1b^*vcO?fornbSl>TR{WS&fid~)GDj8~y8xln z1u+7%r=2H-%$*l;B3J6fA(JJ7>F>p>RdgE?qwXFKHnRKg2eeEw$DiWAeNiX)Z8!Ha zOKnBu^_eMw3?^g3tF8PMFUO~p>)QAz0zN9bwDzuWjcX*1F4d>39BnLGuj4u9$$FLk zE0aTCC2!6P&oSH@Dj_2!lu<k4-F6-5*Bk| zJLqKI8wja*<3~bOuqszMAVui&vtfFS_P_0VfG#R1A)(|D5jZW&d9q6H^rE5{*|lHr zu>${SDAXyvYSM~=E&t)&uL&cUY{F0V=E)#32y6lmQ;FM-CTH2t%c zU7J(4P~&~?B(`-DRG}SRmU(M~u>zMj2$4ToqaKWn6;VgZ zAJ~hPyUctr+RF;7z`G`^;S)B)qz{L_ zJ*{ay=L4jNqgoUS78K^clTH{ykWrx|y7hO7tCrZx%gYS?FfC59rAo?fLVNrNsRB>B z+W52^Ub+#W8NirF1(XYPa}I8BsI0aHe=0@1trZ>3t(IC!!#2~rVB$w?WdN1~kfKD_5HJ*;-N=2}u5K5~FyvhMU^0l{C7@UYWr4 zL==8K7ib1 zY%GfikkI34_c-3_0oG;Q`TNEO0Xp9Ea#gJB<)!C${P&+ZbpNrYIfQS&70>6s!scRD z*0o6aTJRvIszB-6#;xF0Ed1s)(V109*$Q3H{1xH9M?w_7S=rB}1(sH{FCv7v{nem2&sGQ=v^me7Vp5pRv&4EL;7erq3i1FQW8Pp1Nh8!~|x`Y@JJW{HA&b zyFseqtCm&aHny2x1Ut3ql z4RU%PQ1|^-*Uc=st#kTbvU^IfSfBmHZ6XQGr}($Iai}`1y#{K2h=4HH}&X`FpS3k*sqZ3ULmK@f$YLfX$+0x z+PbvDB_0Y{4lt1$GVi*xVQB&_66T*PcI!&bpKL=;j(7Y1vKmL`SAW^(^co8wMYs0n zmM;Apd6A-_roU}VRNHHSs$9|9P!`NhYRs>;Myg=QYl51rdQ{`xhp9U)ciY4%?TP>r zJn;Qi2J9~YyisM6ZhCSVkvj0xh~Vj@@FmXr!l}6@<2K=T-sD^H?KBBF#7Q39{n~?- zMqeFrtHPjwpwOi>^^~MKL5hqH9T`;H(R#9s#zIKxw{q}IXroE82ah8(e^tX zE{#i@lDZy~`b)~~_ZE-_6e|M~2i^`DTf4GJk1LvNT+Q$AOknfQ{3~8F6Fex7knbH4 zb2uSbIdEMdMn;k)zMHcr zlfud(?n8DbdS~Z_iYlT%)AI9P7dO|^3nyjPB5o?wnk7u$nhfk+lj~3UDf69=fL8qY z3Qv7IfkYe-e&=ZYeC+biSJB$Q@Xfg9^ry}-Md_N`Fy=$|ih%^Zn>WfQOpY^y^2b%u zj`K59iU(nw#Nw@miW;g2E^w)G9=Zpaifd?$e}Mr#c+)AH;g{^5o{{(&6pOT5U5zsm zbR`UbI@^T9y~}m+hhwMeRpUrZ%g3qi$wfkyW8x)Wq(DN*GDFBx@pV5L-byJB8)6^o z41MNy%iJCIynfVl#HZ|{m!4ENgu1}J2>|acbJsK1Blvayrw^SLFFj62#I+yTq%(r`YZx-t5C@uX6o2P8u7ob8_)TSk3KD( zo)1kp&iJl}#CiYhZ{3JU+JweG80Xk>QWUxP0SGeaBYclDmC&sR4Bap3_J({d(feOgfa2K=3e zLk$%qUGhVzg#?Z^I43Jyqgmwt2-g_S=hX%BM7#Pb^al z6nO=Y!kqKwpS;U>q-+Lry6VL_a3t;D1RNy%s%{5q^fXOBYxAo9YZY@C&)icea*o>k z-x^(2Iv{BZx61B)=-+o9ZnG1U-V? zSGbA=rA?LKFeaZudmCGo;f^1n0Qb*$*&RO?nHrIH_3M-Ae_UKWqHx9CF7-DW8b?2+ z9R8T~9Pb_U*oD2LljoMVhY6Y0j0Ka6wMQ3m(t&9sMVz9R0=e1}LR%E57imgDN(3=F zyib1~A(768>nHcWZvnLm(FW}Ghw5oJBFwrQCVGa3pnE+B{}m>FzDV7|UlW?Aa##y3 zKG>7EJo#BRy)=2RIRPJRKGx|_IUIkUHV$JJE9CP>M91^p9~)*A)t`gzFPB=m<EYQVszX=lI$m%~BE zczhekbZ3{uT}>4;fhi>-Y?!~rRg=(@qQ1PCQ$_?)key(7KzJGT7<6#;ivUWV%#)?< z`f2WzOwm6%3S1xFlko)QY+A+0e4IF@MTq7^a2PmS6}cPA z^+-TIX{H|2^9-yNET6)754aF^GXabx!y}wOvImgl-jX)OC_FhqxrB=m1 zZi7|;YH@xv&8q~Er6+bm^pS>Jlc`f6<$K$}(hRo^dHQ^ZmznpR0=O{IjA`Gs48m05=ehijrhg5+}Z7F-lxXH$mav>@i8( zZyakuhp?R+PX|N-Z=OWZT2-O2oBhK;ZiSIC7QEr?jK@3;TB%xT@9cc=L$jYPnFJtW zjEtrPFO79|MM|d4^FNXVpt;U{Fn_y4+HBBavNzx4@zc5^iTZxb&Ch&BW%BH27(cKL zjrUytSY+!ir5j)j77DQ@B2uN($9n6bF2CA+XBWQi3ba&fCyl_!k*(y7gt0D@n(oJ4 zr_WoWZr4Zg=I=RNY5$`dKMv!oOm(Rc8tL2dJAa`Dy`NB%Le$k&OyM7V;kkIZXRFJa zw!nfV(s?X+`?v!4!B$vn_n&#aN4y9bm7W^K+_Z~2;cBUUIV1DMtpK;0R%Ddj)pG&(=^J{?n#WVb05h3jLe?^4I;oX2+ zvHbTQ`;Czj2jhUv32>0@H{pvke{wbKV~M$n{tBNcYvj01bPXHaZFo&>hsOi3;Z>X& z3tC7(k5TH~GJ>2FYBhuicxxH&8mGz7^+!gNMPKAGc$7pN7We@LWlPJjIYN>%d|n|T ztYM(f@?GD_YfaGyZ?Y25i=2kS0@pR$&Ijs?=WV8-RT21D+8OE})&!nDTOyz8(Wv&? zy0mLe>N7Wixi$L5x^_@mX?Wy8MxOc5xlOj3Gki+~( zXO#Z{^xEGVMcnf2-XWwvIU`niTJ$n}c;OG1RLid^uW)VJw5P2^aB%`2QZnO_#Kb06 zUIgIOyWYFMJzua{LK493*3)a;>ap2a{j7lrOx6_HOZ9T-Vi7U~s2GXUN2s&m7NJ`y z(5FrQEHlw{(puqME&lE(MIYQZGs9bAs`albKe&{tYBAHY>-l^u+-M|={7|=3Ak(Ar!>Borfi%E#8T~I*t7Hl( zUqdz)8~v=!;gz`LMQ=TB<-8j!pWb?|6m%56{N_^8EwzQV>Xi~Ax=%;=_j-O@)f+NXw71uca zsJiSs=xCt=#PHdRuRK2~sw#vxsjQHk8>&?2c*r-d-W z8C}JDkJvroJuaU(?!K&Q&_x$A{N*ES4M1lnV99FAM<+w)68@!OT%+JvXJ_HRp6RZ^ zaMRdQ>*6eJ{pso>B|*6jV&pn$lEzQ_OOGbsv)!X_7h=itDT^y{ZhlfZ3EWSR=DVH# zRM>8^Nh0G};XV8QwvQ8pY3a}8D?`|Rdqwp8b*TwifUmJc(tH^-*q2mUxt5?WjUXw5 zf+9z(4z*}lwC5gU?$!|3TdeAifNTV#k6j|bJpVaL9-K#la-MafwTB+$d zcM{y&Or#$wdG>K95z|0@$8pzG8 zrUkK+8mJor?uA!G^Txwzh;EBnxN}$@g)W~Aem@J(*BXjbymXkGra=>`^nov^?2hZs z1baI_MKO4Ji7J3}d+Rb=ggfUPJ(`W6P5vVbil z82o~%HT=Q&N~)h10lD47F?a6xJe8Mzp@IFUEbg2M44l1~HDrF0q!9@Bs=2#4BKc~9 zzIOX6jEOwOnB!tDP%=(>(-JTHpfdjLCaRObSl;k!)!r9FU8;mmd>MX(pSt;UnG3H; za!<4E^WK;@8BXoixl92FNIB6lb#C4MXrN$%sn5YKt%u3=uInpxu0izlml=n z(_JOWQ=vH;%+Q+Lhua+frh(brmOov$SBS%pv4rtxS-0xtx9_zU(;W%9;}Y@IYD-9J zB)>mBl{+cwGVW66eVdluw9n84$ z-}@2I_=&MfIo=rdm>>cR{qX>_(o7{<@uH6_^nVQwA#haJ7ToqqEOdxb%~LWszNMK2 zc*b$>b_n`u0u-^)h~fN6U{VAbb7@SjHAmJ|EB^j2Dgy@fb_H_&%jTMs%nOn)!VqMR` zV=9^v+UQPx#4Wz&=X3t%{y38_^b`S%BRx6U{(ETO!)M*9HbNBBB$q7KbiOra{$vps zPbk#1MT$d&BQo8($9hShh7%T^UWE|&r?dSEO+G3}ANN8)xv2tfle)C{ z=ykrW3{U^x0R!Ve=!uZ~cX#jo(+Uy4I@Em%tB9hsx=K%d&oeP%t+8{S@b4mRn14A^ zL0u$eF>%a_Y|K09Y&v%&{1#gMzx_2OOGp^(B67e`HlL~LND_kA=Y{9fTsZKNXa%@z^~Miyo+;~Zf>9K3i~ z=zAM>16#-_fM(uH9GNc-TlYH*D;9ijTcXM4GW!1s4S8u6(|gxrEBNg~i72gT#H{W~ z_Q9Y+g4%3YfL{6Lm#_&;YHfkcY^rrD@lV%JN*H%zDrG)Mp6L$Q>bU1=euszV9xfh zWQ`2eCn{UAOiZV4_Eie38)8PAPnv@5UgsR_R+TmFaU#6wEnwxBeq>8>B?PCp*Kf&| zke~ZrUxvM_3=zZ3|L95R8p@1ShSB2mj#+=<9;=^0zaoo}?Wdgh6he3{%c=oJ}Y%hpnTn0z#=4QiVT}Ea( zQ9=IOvPU9_x(y#Q^2YJyV5Sr1^p|MBt4U**r8xBrzC^`N6d~Dpe~S?JKqI)BS>)vL ztI5g9rS?u%Js8~)sZkvhbIq((@0Mlk1Hc7km?M@x>9$5-t*Kl42@Wz7sPEeOPa2-n z{neQgW^0EiT{yQ~^z;E)r!>YPP~T!t9={ipWE@5kUc1RBq%3cCpK{&T=Qc5flJ$!5 z-}=5Wiy-V>hX!A!HBQ(3W+w$Hzk<-mj~@wtO)QBu7SgG-gRw@DP0eFg9v;G^IC+N# z&sV;DyJHb5wAr2XdO2V@Pf-F#sF6Qh`;qrgU7qUK{xR{$lu5Z_;-pE#o2hy`<5|=P1Hl@=D=wwTBn}hM8Cq-#D zM0<9WAE6X2-~cP^#(-tz#Fd9C%843_u_uqASOa*^h2vA|#L#qqU^M%j;&Tt>Ac8yF z2T~f7a50FocxVTYj*d3vjAP^DhY|E6Ot$w!sMzo9}%LO`5!Zofg)Bf#)RQ zf;q(S=JqE!Pty2!geCq2XEwo6W1jQ54ELcQ}&|auv&XwshvxJ}1EdGgv41VGtSQ#=uBX+%ep90{Qu1uszzy`|IKgd% zCl98mI^POT{n)u>gzM&cY^(AibS3x@N<2&`3(XJ@vn~PAGPe~0wf6~ zLRLxH0$p@5gNu76pH~{CS+J2B>?nru{dX{TGo|P+{TB0SOQF0}#jA*brFd_*2Di`O zuwz_g*MVw<;74GY8M0}JwiQdy-(3U(rig=y+9>8qCz~$K-`&d3SAH*bb0=Yd37j2q z?SdU*%W2=fv3HoJe8Qv#O3xMJ{B(L*9dO;15nK=*VB5L4pPAQF30<}^ILU_%+%6a# zlExe=#Yz`|jx=`4a%e3j2LXaAm{&ma$9(pe_{LodO`cggu+x?KPW*c%3H~o{ z$3ybeg-6*5horm5U_ocrh_{x7ap#nJrg(=J87^iOy z=${T#b*fo;mTpJ`@XY&GRdX%N^&|wU+#d;Tjm7!RZ}YCEs2m#B+_EQ=xuZkdopn#; z%N`2Or`M&#B#@;6T}@dYk=VLX^S|Cx6k}BC)?*kwpGIC>h&K2IrcAHJ{{aP28fBT= z*E$>N`>$fwVy4#KStvl$$Kc6l>5AYfC@c2657#}30x~EjcaSC8lERw-zPI+uJY!)%*Tz@qXC#h` zD5oPB0nO<%@e7=RH&vqWb(7Ta zo_uxCCe26v(1#3rHcz>aA7Bf*n9@o+RNFvGTem)jn~O_ErVwkGORMiVKj?E;G|LIC zFWT7H*yjfJR+{F&!e*PUw36>POwz{&edF`SdYbo(9r0RPIlggVBX_n?YB~?R8)>O$ z)Wg4>e1?kZuO>DYDD3hqlWixDJV5Mr_~Om0An8+69hgmbLXuw z>~LsM-)Foi!b1daaMrayA&BPE1}c>Ec~q6!L_d_{N#1t?=#ja2X#h5TfKi+L{#*+9 zIKaq+JEOoiQH1ItgI{yC4(pcP+p1$SSm?tp>l!SlJ#o|(V8p$hwLmz5okN4 zSxayKw$|62_+{Y4koaG$<=mZm41GAXX<6iy^zL}ka%?qA|9K298IZR;|4b%%JGKSrX>Ro%mEXcB z*GqI{I4pI3;NdXqgOGFej?)WXP~@ZCyO5fTaopE2FnApx!0LHoLtfnd)uc){iv(Q( z?^20lG6a`o8j^i1aNi&)I&cKg@V@RSpwgPUe($wi^r7Kq9!Wcn>-^Qt!zKa+Bk=&$ z%e84Wb^q@N6Muv)>K+yu&xd6MKl|a?>;)~pI5zBn$6)W|tn|e1agZ-CS*rXuEx~=n%oUGfqp(pl80rMYivIX2Tv&@`vom;R+^(8OoLsf;7`{>LC zwdL)vZ7D{TB1W1vx}NFp5`m2No1%LGE5%Rv*)Tytinfa?z!R` zBw-W{0Sf%reSrcXE+;(rXMXtlyCj3>eqB+N_ONk_*WsGm*R=_Gq(#eCgVxP!CO@2K z%O2CtOOE^`)aPT~nx9O}@^fBXzbx=AOOSZanxifb+6nL7Jj`BUZXPF$O@GJmxVdfb z0=CxkEu7-hbzwU$cm1}BHJQq?h#qyZ&U`Y%Yo|tg99={9y23_1(~ic5S-!wFhao|F zdsxN`$Lg;ZU8Srdh)rIRUVa={k5eBbpo>01oltaeb<^G(&>`;q-P!r@E2pBm8bf=J zl)S#N5hn~U|6@Y)OXZ76wDPUoQIWa|=dQdv$mZW#1l%#WZb`9$2{CIx{Div=e6#Fg zUCdT^$5eI(=dSknt3?gP^kZV{aTSu2HR|FoqvNU$MLfdWi`4=_%;WcN){@_jrqu~( z;tFN)zdI{GzUnF?yHd)M;i6@gh8r(1bvcv-X-E1+hI-IFwSBUeK9#0V&AH4+FsGRF z{u?azUbp`!rH>*4!y-{_zHLTeJA4B~t%S0sX zL88l(ujU2G*zcWDOvE`}35m@2LDITSwZW<^hBkC16me+MTp`SJ74lYAd2VQsF)!XP zcJUWLpJ~gHtezzjU6D|bH$djw!`nPbxf!SP#mhy5?+N|Ic{rKmH5*j-_t2ZZ)#f!6 z{Zou`5S&<9_9%!ysAQlP{Ek7RLRtwLRUJw&y%@1=QrqF^0jc4S!oR-%(KpiRzwGng z1R04gNwycbchSX)k(IV&G<|m$|FZRS251q>=`o0osY2rT7Lob2IZk{qg$=|>zJo<` zfwDYlw|h6kA8TEj&1kRJ-4Is(wzZ!pCql4JQ-ZGrs)?xmrKx+I$xNcq6>tpdx= zy)67T1e?)kVxi9Am?;L#CcO7AP16LG6y9vkUG6UYlWgL#7qlmldO2?%qMbpar000p z22?r8cQcoZP(9PR7J~d1u?91?L_+HY57IRM3ViMUSbASRu}cS8{p#)4U+#s^bK`Cg zlWyHk!+9`i#vbre7HFgwkL zTHel^|7k<+3s`-gMTc)%iF06;V(Se1b_$4NAa{zIgJRV4$A#}@91iyQ|FSCzGoD^} z^W^iU!XPw;gt-q!P8EUsk=vOX!9Qdzy%f|oeENJwiK+4gw!zYDx_7s88)!6sdoDWQ z&#|W;lJ(BJ$<7wQX)~8TXRik4wXa#;#JF_Kf$*nie)v@J#f~&~uc$qzRN=Z`^ixE| zTW5ERxbm~@2kLC$fLxIH^to>3o;^*j5N=iSow*r26&zZM6E=6jpJ4ox2`}5v){-Fg z@!;j$s23Eeh)3`o4>zc<@R68_Sbu=C@0+A?pL*v3NlXOQ||O+^fk@tP%p0h$Gskr>*5p zN4I^i}ZHzI78Xs<5MZI5{#A2XjFKB=06*)g=k zMG8Qa)G)H%_41Pdi+CLKvrmKc+syyu{M0$6K&Sn0^U+7|gHf?QvlHfE=hc_Iyu2d- zmELiv=m)cc&OQx^NR%(Wdh8rLnnm^2$HxZ{lT1y6#qQXd-zg9w3*ioOSa~(RX0EO0 zcwpQW>#8y!!Heh+zEx$*HG$dIl*iXzgTB8>=2 zES)ONf*{@9-Q6Hcr?5*&tVl^W2uPQ7!y*VG-3{Nx^M3pR_P%On&YU@ChSAfmW?7rv zQO7`h_wt($^2}uw9nc`E+-a|amyc;|;Ll%+j>e{D{(ag?u~kI?Gy%`6`yYA@|FV{^ zddG^mPm$A*!`c<$)}Eec7|+oQ`VMcq*vV#USgW+Th{Cuu(S=aG?Axm(|2iw2dYmnq zDl?F8xck}zW}^iEyXY89FY94k>4=!|u{*w9t-9X(vc`tEcK3n^kuLcD!)Sl31I8w? z-H1-klHaRHM_L@a8824MfJ_cZbAbh5;2m%W!RZ`7`KRBazw z!pAc>?clnvaS)$FK5skdn>E(MDguOG4abvZn^PDE1Y`|Ud|A6^^HHN$CWg0vcpAcT zf8Zbx2ogKMsY2dM`n#~pYd_E#L6W=Z8sUxf_q^7;vh1vX5-@8?_>Y4JbonGx#+~1%BQrQ)`A$vg4dLS9FQn8+gvwOG3`lkf^oUw; zmAr_HI?UAkEQ{N-k9?;R=Q!UJN6{U&E~o2rB{;JSA0R|YpRy@RA~7~Reva7B?t0>{ z;@~2WwvLhQZ%yzx5h|+pwYDkHlC6AM1x`4Rd;8-03k`24axq$i^r4TQ0_yPjb&Mq$ zfd?gXgoPyh-Q6nL|1COJZ@zo-y4%Zw`UH>ayj(c`19MDr7B9qjKZQg<7mTb9XKp$q z#*#~-%4x&}a#e}@K6J|ozOA#9vIbmwVa-S5VW!V|1v?sw+_?QKQYZLgT# zc2m^PUqTYW=*&YxI6m;CHh~8R__<`#)(ZqVCsGm1$KFpHz5oA}fYx zWPI#0G222#E^(Z>nXU}%JS_!st5%c9sJPNW|3C3kzJ9>aVnPW*Xbo*z9;jYfZwS74 z&N(=%eZ>HPx~*`ffUK}5>h^;Mc#cps&*vKsIzo?l?H4{@{DZNfogopun;N>m8?D>o z#2XKT6(&<*gj70B>MJ)V3c6AGS0m?~F+0BJa4b5Z3us?gI|j?o+L5=>uGML99fXCS zp9qYG>;GfR2tcXV)))bTkW-6LbS?Y7MG#s`E6D#4Z*0V6u?e_ZS@C8RYrpvn-sGsL zC|O1m@&lxXcDfz*yQlKZr9dz@ydesOMv7MOUd;yrby~71Qu$7yiAP% zr(uLtF2@z!i~;GwjV$tcSfJZ^fD8@qprK&?;`n~YqXO4zK?B(MtC=BQWbN#XCkYke z^#L(L&{dUrvsa)K$ozC@U~;c}Aeph@Wa{}gvyCd`_uDu`*u2n=<`O%2Rd0Vd{?l*UQfc+MIz zNz+MLt0u~3EP^90j|zGGo+SP9y4qUga@ET>DPW5pKM1{eY4OS6dwjWaF8Y1fj0$#_9Q0R=~r{W7v0$er{hXL%aN@5BlyKi5>A9g#`igmb8^s zovmxKDW#%KQiI=>8#UB{-%7b)wu5o|h&e-Bo!YbTtnY>uy8@{tEeZi6UTK-d?R{~X z?YO`{4cCP;GXzKu)rTa2>k7ROU1XI!wf+G6pvI+}6>P1oB^~-{lCmFNsh36c<1#Cp zZ!3E_wL7zkbT8(lN8{L141-&uPj#OAf{1DVdxQBjou?;=-8NlBPg zZfI8oH||$*y>L7#76?W&wEsGQ%vVi9 z)!+Odnp;URdI*)D_j1H>AKpCMR2~w1Vib&}P#78-LK*T^Nm<#_$$({7cO)PK)j)2> zu}njMLu-DiaXG3G-+z&v?}?im=I51$gD^Mg9vQltXR9T(s;{r;R2 z^iZ04Q#!Trw8;wBX%&!vto{BSCGD0Y-w`uN9V@hbfpin2u~6E%AJM#wb1$HJ`6UYT z<%KnrA=E-g;@IjoBERa=kdlTQnyxytzX8Es6wtS`_N*>}(nim%p`|Ph?)GmA{5~3w zn<*b>FSqpzm$4UvG+%lugok8)i%_Tye=B?k32Zx>Z{@BPM3uY?Sx?RAZj}K)4>J>GR z3iE9P<_TV&+7=EDxLG=+?8*g&W41uc@{^B$68)KqIL38IG>;JE^25Y^udP0z*6o@E zA-Hqm=#;@z-p@!<>D-?%lkjNsB5^KEf{U2g@-s8hO-IItzsfz zCL)?=YVYaBNYn@EyxC1|VAXQ}WVQjgM&zbnVl(JdP{_lM5pbm|h~m9G1vgi~OZp_T zvms^p*C7sMSVsRzFE<$i$Z$go5v~*b0z`iRj8Pg2ba`_!r(U*Emt0dvk0Y)n3#Gc# zH37e9Lf~MHys3hDqXvQ*jK{$u6Mi|aHs$L%yXGD-J;TS;sA|5d_V$dfLP_H^@cqg{ zU4KEwkPq{hKU)XvXN76nbUWGG4m4ZU?IS3{(Pld7y*}6`EWc##)#rw@S3@JaEWL-H zg(p&i#OxYPxs2Gi|M5AK7Bj06y<`xjLbQPtjdew>H&R^(Z-8LQ{{b}9vR;`9I9lrcz zr-bB7S2Z1ukHOQ$E z#Zqd?v-fa4t$5B$Fm3qHO!t37o=*@aMv#yKq7HGIP3n`A;(2FwQdE2N@8?3i`lW1b;i%EPNbY z7;Q&bKuJtkQCYcj$#te>>6Ku}I6MU%GAt0~85{juZtFFP!{gT$sGd_d6w$7-mocrV z6qdKia_kRR8OvthFMibHX=@yHUi;2NLy|7u%$z)_mlutI6lA!_-8_DKCIfdkJxe># zCo(B(C-Rc8<35j1_67=joS%IlEv+*j=x!|(BMQH+YT0dNZQ6eFsOI3-*CROR+aYST zJv6;I0YG2RXLJlhgsXc(?*BqV+>bxpRo2j3la!G1+wXaHQv-l{fZvB0M>Pmrh~4C% z`);&pM`MaHMqx$!W2a*L+YcpQ*B%*xp-sqpP)eJIs^Gd1dK<*?-02fNi_F}_w>oG3 zcFDG|Tg!H=^heJ|tt?emN!+Du7J0=wc$)88u`tK4vAh1>MLH74MQ6OrUXWa&G+*2w z;I193^lG$K9O*A!W0$h#kpalZ3*Ej< z*&)uC?w-6lW^iv+W;VlVYSo;Q+zO$k$Sg$Jqu|H%f8_ZSwwa4BXHCl9L6Ql;+)P=@ zbF*PC!9}~1fU23rzUd(f_YMwVC^zNXti?p1O6{LOX6EkBS!k9CGceY?dN$5Cs})t_ zQt+>7XEZDGVW^{nJEW7XYI5|0W7(u=C(An<>_lojkC*V@V$&rsY|ljQmh-W z#B$9BL8Pw7$xwPz$AkH9WDwGTGxd2ZYOWq@1NUA0;7p=(LHlI zN17Fzu%%Xl^7z(s28D4eGydGJz#yOAv~blFC1>=?ntXV$O!vA)sMP@~CoDJ(|7yJ~ z^zyYVJ`rutvm`B7S^R~J)aOsQ3VroK)y@=QH~a4;Qq98CJj>2`di6ylswPPWGJoxU zD(_+f1!@W~*_=IP0!_7h>^va835I*t2Fy7U3H+GStefFfh{r5^Fi_9x3?*J`7jm2DgvUO0 znO-cH=;S}sT(+|*`+$IC4@~?;XLdDMbsK-Re-eTSbsf4W-2Fww{fhPcyL;c%^Ituo z704}&Rbsm}nL*Q^5Q?ME$n}1ekz{p}GX+sWS!C8EWr6*TwyC>237jiZA$t|Qx378%&>1;0?TJFK@_D#PjmF^y zDX4XqFbQvP~K#eTTMX@d7qiGTEZ)b^CME!qAXyBjfq*Z4|rekH;oDvlNfdFMfaK zg`lB>9jQrpt>7qS=T7jBMeCzimWeJ&*BZ9B=(=FIWq&CD$Jr6wFF5~y zk-R+EamQMNs{{1-=(4>kB01AzHh!n`&rS3_0+CuB8f547M^b~q5y56Hmmq1Xxe zDFw?Lks<5Nrr`Nohe?v;bvrLD!?-8N*?2XgAQdi- zg)%K78HXR9s08ZM!%R>x`*5rS$oe6Xr!}*#GR8KmQv1+TH8nLs_*;x1o6wTDxHwB! z71SIGhn}$_x|97F9%33Q^G}pMl=(9#gRwx^0aw1&MJEC1JFJ=~{Vijll)CaIod$6`>>CV#VUXK4trk9=WMYu4}naC$Bbxzs#bW3bCyf zno$%|RVTE;T!kN)+ANy~T4@A@NE-DH$-c`q599xIxzH4*=Ms}ae&U6HUab}Ko33p` zcO*ke<2YaP`pq>@EbnoTaCka-H{^3;OlyBvtS8HVp~lC&a+vk!k?1~$#5thZ_U`DR z^q`c}&v-zJnTH%ou6qhF?rkb4fK7!03*f|y@AJo_qyThM^X5tZxTSZ|DE-@bI@YAM z%6{F|D2a*SPlVa33B*d(*!$RCq)#o^v~v>Bziu_-za_%TlFXi83Y^HL6Mv9b@lnBE zes;p5bT?(;$P&u$dzI~6G-R#*<$QDoc6ze(<{*#3l;>}ZM|BAvU*`?)7+5fQ8B{#hD{=n?qnaKc8!Vl$=QABbkSRLU5e_COVC!}~DJCRNpE>hl-FNJZ35K*HU-CU# zM8i6#_#57-^@%8Zd%s<025mi|DC-P|l0`_Tm}8~?z>V3rx5ix%c1tmbAX zoTsh(&!+iW3G*QZ-A&kZn{wqFC;42TeLD-Hm_kSuMbVT*xWNlpb>q-3EopZqtnsaN zRgb8rP^qFWz5d(|&x51woTb&abqEEq0rXgNlDQVbb{g0{q;vD}z&nB(^r_laThXCH zK7rY1wIW5k%sMjL6cz_Y}ij zv<+jGy6m!Ygei?Jfiqu?Icf%BojsC!%u@W6Wtb+bLx99erSPphVfsuI>>@S2DvFN+ zCs~8{3rort`|-vS)^3x6JR7mWlcy6qFXOaav_k)KpZ6orc(4DF!uAHBe z^gkrEpMoiuf2*k3`x z+Y}hOj>qQUR!g{AGX98Z^|NF?{_(@KVL4fPT*%c2bZs`+OLYHh@w=jeSKJB_6qM2rihx?)P5pu{quQLnK3gjhH@@*HP{H#!9?LtFXhcE z%-c7UR{?bYCWCA_n;vvO_wI_D(4TLY3}!2&U|UD*VO&j5Fu~D*^enz9+o^BiXBL9ng_Qc}nzl*# zko!S}RXoBld*r2G9hDoPk5RNJ=<(>S>+FcQ3HCFXCTwQx3nZQ*9OqIL;=ryGIV39I zu?6w)4s2VQc%hTC7Pan8i@*@ukuXs= zg|e%MoPn{z_ql+$b-YP&C!N0QT#bONkEyU0ds)T;S0kwdrK{yrj~E* z=W9Ke#Wo>9&bI^aw$dq;WGz1{>Nx(DWU`w;7pG#syNX{c4)zGw300Kx0BJ7iv*#xQ zkD1nRJyh((j`KU)d8x^39_3anX!5lEEYse&(*LfB*(g{b%MmAb+TAi582wuY%alb( zV8xl^TnKZXKjXQ;v|jUBk5*l}-*4ri>+9>88FFARMT`cLKuqb>jbo#pq1zwwPD);d z5?LjQIE|0W(Z3?R8kfbX+O3DlTDrrWyT{?BbG|d=Iv-vgIx#<4aGxhJ8qBz~ zl=);~Xfey%Q`#OH-zI_Ltt60B)?SL&!!Jf$5Z`0(q`~2=xrpVO!{GXFndzv@_Wkdx zT^5~OU2~lM$IaQ+*uA;#<3GEr(|u_Px_wB$h2BN92IBrl_uQnH`vnjfQ6m^j$s4sg z9ghL42y{bXa5!U~s}ct(Iy!E+)NiG)iTBnBL%FwMZk5*1^&*2V=(*KjDf7hZ47#g1 zl@OxjXPMk`>A-N=&ZdgA0CHpm6?$W;_V!r~g{P9e>08q~L&3%E-N5EKv6t^)pXqto z?3XEpJPz_gE7s252+u6>c08+H>?A}K@dR_;h8V~7eMv)b1eFXehI624OP&rDcomsUoM zD$s7>s^Ei5GiAc6WCw`gES4`R?rt==C~5DW1ih!EHGf z!jYHN8Z;{eTUeg-CYMp!oKx=c|8s`meAu|{a_ZD=0)_*&d#G+v^Mf$qV&$2|16l8 z@{{yKzHTTzA$^#)RoD3^&=N;kh}!H{C6lw5NMpFvxwd9a)26COP|ijTp{DKI+DS+9 z5O!ubZeMEZNXQdb$fqy7LPRP~_!H{p1o#ALujeSXwNh?-8`kBAhU!)s)=V=6_rr44 zlygL8ByyO8nl$nrpM?7My@~fcSqk))8NyJ0qJ71v)QP$((tIK}CY|$|gjX&ZEu7L) zEPfD|$Rw?wM%e+rJsGwUQWQ-jPI+M(?0kE%BwA0+$jRH>ws7W)R!>N?;H9^}-*1%=jCvqaDL0UBvc4}NX!W{l;}kj?n>#! zAlIEkj{Z9`t|Ue$f_JNalq~7-S#)`j9Z;E!Oo>Ys4gLJ8WUEj!dPaeOE&9huXIi6AoQ86N@{Sm?QV=lh`s=ARmtL>Cg489-lOks~)NKiFs<^UH^GgWxxZT?C!; zE>D&F<~#0s7-#ft(bTZ2(q)YN02y(tn{Z) z*VcbLEYUpFH2z4tG|^6GHqyr#?x?e@0XN)mX`uN`*3g%h|9G27`JVHO4Idd?YFfcGAc#$9npx!L#plK$2(5j|ns!8pg!DT9Hi`%$X>4 z>jn=ji6<|qwS;uPEQPs2yd(E?-51+r#756t0SDawJ+oX)*y}PvpC~WqfNu=B4sIS4 z^d6J_3kV2}MieArPBD7U?Q>08@SV|g*mqn%iYYC@Y3g#DWuS=A>ea7Bw-Z;bn>L{g z9{PaOI{R)VvG(8h6S&K}y)kOeIio8~xL!p{ODFK~mWdt$gQa&29qoZm$A$;u(8Wu$ ze5~k1py4ryg$uua=wLeLyGm{2UUd6Oc;ldGIBNv~qz8phUyX7BW2Zj_|H6>w!Ij!< z{=UA#_k<#fto$H1sU#jgz7!Uwq;n+2TL6_)Pg}0dOv6T7z zB4up+eo@(rb@99P?st3t^T%901cC7rr6U2W3!d?E9&gxqzdEm@%k9Jq?<6fzu@uof zQ@tVEgZDgmBrMb+Ky(*!dz<6zVwf-*&{wb$Z*bDdY0ScKr7i`!ixQRkgQ-(QFZ}+IzphiJ8|?JQu$d&_nk8u4GRPL#i@%7SF>@-ky3S_N-;@Un>mW zwwZCMXZt1A^D?$6?w5-putuJdl}nka?z?n)(&8%FFz5P~gdz^DZUMP)i& z)hNAUH~VbxJD5=B*hZNnRehBBBmC4|uIrJL8NN)QwgAQtO2uXeOLT&Z3oiWe zBgMVZadDl~fH#XyJtaZiY?b%I&NpG(Cw2_m&LV7?^QYvC$Me7T%P(ZA#TL+a8NAh` z*ua3qIyx3KAd%}QKkmW+3sHC9x|+A48J-BU@4F9}N$**XNnZU{qy)^0M&=^FWU|G-&|-iiDBB-0=g&uf zOAu@5I}=2}phq;EHG*o>Cy}siv zRj}Jw!xuMcgdE|1=YfOz{`-3&Ep+b{R}!eNZ!=I`RC8%OGXC@(q9NHLrE>iYHXQ(L z)=VAeCz|f5;R9r^ciz#74;6VD8mq7VHtJd??@Z!IyKm<9H57Jo^hNf|2n-h5c>5PU zttompaFsdNdb=UC&OgIfvt;Nw+1y=5;Xhfsl+^cIMz4gwbxqH;Vy*vF;`v3;$2fsS zfxnf0zXZ;h$OxaZF>1P>Vvo>&mneyFCS)5)?rvy1Y2RKRptq+k*ar!r;A5mDRC`x< zd3N?uWG5IASo7cn1_Y5TS;dkC)*ap~)H}{svy!hWoW-_FSh|5r&K&QrLZ7hkPKQR3 zUea~D8ho}_9}Jl{2gzABUt>-4{zdK^XHR9$_$W80L= zb{uv(V4&9Bi5W0A1SoxuZ);sj3zJ7Mpm#){BGgy~Ln&E+Xw8lH*1gEvLqq7)v)@0G zek!*-i255u3b3orT&W}Pl6I7sU1VwI_L+$^PV! zutC-8B}E*M5ghu77w;$oU&FQLPy(bb>K@vEIv2UC_V(Zob5st-|DnEz=0@IblH1Xz zWks|uWrBvMf9&c){aCBIIy$5Zug2Mu;ea&g;_(>{9}M6>V{f_~z4Xx-r$yU;W%gAi zyZ*;xOh+Q>o#SJ-j8)WBQ!3B7n*W3hZ(L2^2*H{molop&GaJRPwp5Iv#em~W+@z>V zKfRiqmm$;r?|dOg#AOHq)63?lvF7W&fqEM*yJqgyozqNvak)=^$vQ@cPBAqJ@Pz5C zeZspN++5dFI{~f?7jG;cUx!2Lrb)4xLP5V6PUBQDxNS*IMn;xv+`DZO*MmukP+`TO z)WqM!_bRoR>G}x#D>XDUVmY|x!~}u$M+*9j8G+E1idz?w(>Ug{@<`jVQ0LQnVnRJ; zIfm-=L23Fj!L`ano!x^B8EyTj+urXPw#iS-LDnB~pDBDB=b*4tYs3opvBwvdd*Zro zE&6vox$-$_?=?=YeYtDRCG$o`@nMteYySjU#(^6aC)GE3qYJomxhmX``JnyjXypM} zHxvuMUWRq9ETldUX^E>^+rjWab^1|1j^E1i*1WLWVW)8ax`R#0u-o{9EY!)tlrTi}UIo77? zj2!{1jiCF%*I8iyeCGyDZBVv^KgG4I;do!UVu@4_`^D8V%Sv?6o~d{J6neOe2|!ba zDM8IJyLX3X)b>kit@fpGwXzfWF9}i&<%PL9%3YgCe%w|bMx}9FE~v>W$HCtQ;3K=u zM@nEju;*+%jEi+Z@@{~UB+NN6--73#gyT?EdxqZ3V9h`DqM=J6_d2CVjk7!68XH$M z0iPz(+qRRN(H7zM`ww|vF;q-WR$m`dB4ArF%!SG|-RcCGr?bc6HeRTi*GNj*% zlfc#EcOg5$FM|aW<{Qwngn2bD#M5LYI7ngO2A|>L23T0E8}S(OkA)YgiT_&x7B2d9 z3^WI~e)YfU4AL<2iS&p{-cE4KUD&~mQlV9h2@`{+JP=-W~$pzAgMmU2z^#=(ajbhkv9 zIA_;>2L|`BQ+3TPZ7QMWxJ*E&=}Ty2_#hoOFE$B_T0&%Z)Ek~9UtIAcdyV*~cK00v zsrWg&ubOxQH3m&Tx60Lmk5VJd{OeESF z=);l4W_o;oX_WR++Bxt}v1;q;jN2|$#JNa6tr%xE=)@c)Z}0Ac#_b9w&w&Cq^FK;D zfJ@qx(;x&XlGOfO33|!-PZvne))~R^<@vbD8{}Dq(m!6mf(A$v(WGequ3Rs-`fbI{ zEN9Y-F~mX?{AmXsL#B5?f^ojuP^aiT8VwqwtcCG@ zY@p{iY!-u4Z?^nUI@b&fw7z*1%2Y9pynb1%y)OOI(jp4y7z`LOdVqSOr>`GgN63ic zHCNO#Hv6BU59#={mP(_#rk~yYW8)Rw#X6B0{bsnBAy^|sFT})!V(6Mo>0#5`FG{I% zW(y|)X$!V#^*%(Ci%-f%uDPgEslO15&%M-eE_+09^tl)D;>fN< zr4s%A?wW(W9&~hePFNUzRv&M0+LOqPITFwtS-r)E8oUIE!+6{?0(*7Vz6_m%@9U>^ zB5At*UbYx|l0{ePu5rr=7NIOZNVQH7auVX<%(xJwW3}d`dhTpfB@KEBHt6~~<*&Ja zX_)VBoaHaWr`+r#-)Pac^i&>RE(5%1T6|ew&QCDx6VQ|h-m_lwAoT{;E1w-C-%l2( zKmjD#ugx4Oh%SQ5!P4rB{}O4%D+Gb0&VR{Gm*QE7El``?aN-u-p;>&eVL9{OuaXOB zeMu_ArK7p!w0WQ=>0bSUw&}Q4VWm#VhLgN%k)7|! z%)Hz~NA_81nE|T=0`DN2C}yC#U#B5AefzKCOQ^?;ReL_qh4Fvvm&x7on$1d^*I7Po zL?`*e!eC#i^t0baGY7L-FxJlfOU()Z2vNk_$}^8;K2$eX0Fh{_c{rs+!1W4QlS}Ty z+-a}|Bj{J6idc#SGCG=@Gm+zTJXZayMnr9z@2LOJ@d>9=TtrBt1MlLSanHW;=11ML zv#Ld-vXTxqf8+r}*IIh4`&82Msqkk(5aI~Z?MR8(m|?wP+0D7>nAYh6a1HCs74@-+ zb*o5=AIt}hHj0^1S#B}|cvLrH!E9M#wULceYo4I|D!Lt+uP{D*^)a+q5lDrs=hvd& z+Q>&bst$_)w9S&v3JTP5%ceecj-}t!@Z;S-KRO!wP=S|~MJV1)O;^nb3I$6rEi8-3 zyP+o~^XxQi9-c!rNN4nK;aG9Cn~HZ+uA;;?@zf&{ZFOchBGckDMqFJJTE40v(ybtR zd|UUl)2t+QG6kDCzfQYmW%sfj@_un~m7{cvUUZXvdBlI0{eD#;gEeql(1s-M#rl9X z?65A+Z(2bPkM`!ij*ucC0k_u`HLE|Vm~H;Pe9eOL^6;qD_d)mch^Z{Cm3hb!Tr*K8 zZ_w%(!L z#n$RRooO?^!_*_aT{JF{j2nTnY>125u~aHtSH?@56%y??|9es%UNrO|aqf7INeni) zB0DJOc-cm9S?1?Cz2zr~KmbT{Kk4iv)+B#KLoCpOc-{R7UhzP{ek z!1_3@eJtH^(b7r8={<jI)Pc`X}(PuKz&a(Om`m#!?{> zdYa8b17jY>DLH=cyIS%-C*{ji*|Us8G0+w#S#Ey9v!>>Pay}^YEJ1Hb5$mrVeZL@J zto`u=9ql(LW#j3c=mIz*G5#hdCayf*P*(A%7T>Gtd#|-2gK-`jH@wz%s3}iE2i$=w zT|Bv+TW&(2!K$i{3bw?kWdB6TT{Th`?#vDKQg=aI) zfNnG}2P>HtsKoz;bB$dMRG57oS08g^3ek+^=v;`Y3n{6r{scq&Un%<;8`G|JU=GEc zzlu(39_cRq*<;bVYLt ztG(Q-a2Dct6Olm~KI~SR)4f^ChNDD6xJVRWQ&l0kAh}}cJi~RUAn|!c0M>;BHJaFgYg3|`1Jwo(KuLSde_R6@v@pW}|d84e= zq8I5(Vbd(c*ug#_L5WJ&G0l~$A4w|W<5tiV5*x7N2Z$x#jfL4|ygQ%z|&8M#3 zDZeh_U2sBAzRz!8JSU}zYb2&Z^vV8YHBZlXTNRO`e^;sj-`ROZuROLs=t+b@y;qWh}UFlMb0YUQ(&C<*IFsGg=O?8G!@ z9p{dac6bDHXE8%)z7@!53M?+zsVCKmGaVfr?V}E_uu`IwH%PD`{-=YwK?z{pVQNyj zcI0~#u{volC(D=QdRkh&^C6Rq3hCLxJn^Xywso1APmJg!;8 z6Y;>$QIYj-hLc(Jd?Nf~JjsX(gwH?+kr?|=u4hD=Wx23TyFhl0=2t&)^pm2q>k8!< zp(*-myL84VDOUBKm?Km8P&YdTWsSC+9+96uV!KxU!F+PC$D$FsynUtUCIIBDsW08= z6DzWgOF35$x3+-1(w5Um*HgyofEC18|L{B#|B4g37O? zc%ssz`tAx+fjovvh3ER@!hE3-KoB$Z13PfnG(_6}dv2>FziRY+JTijg7FU-M6hIo@ z!D_e*hMuBNUyApkpzZd3bJBNVVa;EuL@NCoX9lS$Y zZ#I;MU^M$*k+#DASQ7AJGhN-U%tNmd^ zZkm;2sg@@&G`ryOXh6l&oG+`|!G<|cP+5(66Nd^h&R)#Z zyp%SV{9HGtKOP}AR!j%6xnhsEm8zx;e9vvQfcEAHX}Hn(0?k%L+wN*!v!D*7yQMcP zJ3m>y4dc)l9esR+z!~Ud6uG}L*Lx*7DwQA`$2O;{=k^n;);gDU5o_f2N4|vtsM9ne zTd4V3QM-v(ZH>uWbhWY4g8#DUm(;tAiGiv1q(ptK2^C9OQp5Oh- zm_Zdq2lOC6;)~de&`r&uMm`Rgdg_E(Ei1=C+WAPw${Be2xTdT=;!yIpE^eKEuQPq* z`u&;GUAbh+z7^CTeUuHMPOnnNyShEO>Q>u(!dS!B#f9tT?fZ#Tk7psTrz_6Mi_(zX z4?HE*xEha24$KI)YRcaGbvCT~ELM3c^k{igk2Hqj(KckN0mc%z#sQpL61i(&bedS6 za9`!S-`9TJohcwZC6@L<8Jm^+gD^GZG^n)ng^LX7C|2X0b#W~@mnpwZY12GH(i)1- z!J*E=ndH_zMP2#1IOSyIqDU#!Kr~tn23ZUu9>VV!opm?-Bl7?+0o-0=0aA7E=lvD0AG6$xhJIHT2n2P9YWQl04d|zFC zjqR%%c?`_%=Z4H~fAs-kcOz(2_GVhhRpm-WN!v5q*h4laJ2SU&=s(q#>qO{Rwdt&H zl~~a-DonnPHv7Wj@B7tO$vN9~DCHZKV_v{vZ2=aXpxp>x4C>9j&REV#21Xe`sFae! ztbPVC7iAp+_-K@LUif6^u%)S~DWLwmK~3u#?s$AvxNI{T5TRZ)>r6sy^COD6G>KbI zJ~yU-2-6ns0%X?tr?g<-RBV#?ZITr1AI$%wPsp7V$&Y07H6lB4vj266zWV>yPB5f75sFe*^C`U9YH4?O7Z^r@ zQ92OM-!09r9}}6oGY#$hO#ks^pYTl~bK*=@I);vi8*zs7vr#v4TRWx6+I1T> z*OYH7;V)}uy9yyNKDe!q`N!{wB|fQcMhUlQKQ8EeXa5tsuF?2nRe~pqX(rsTOU~E`0%A`p6f3Fx*s%Jv`=Gd5m1{<7R9u&88qL!Z`&F=6wg$Z5X! znqEb@wVHZ|qt+m2p%s+p(Ol6&; z&QIdtK-Caz$ok<_?JR#U`ncp9E$H7~uNPavPSOeWtw$Wz! zi8(Mm5verS%C35Cl_O1SR}RDGKZ_F^zm%h3>qKTN&nD4QS?QNH^fj!1`+eJ#{?MCc z?7=YiIXkA|*F*Vjcz~g-r3F6)`wlD|94|Y&=zq-NE_(Ni$%5*}g9m$!GQU4DF(IgJi6=s} z^l5fhJ08XBH_Ag+5q}lcmwO;QwT5!?CT}+VdKP1|H&Ws9q@K9Y;L1qN!42m4{L-`}o z95F7vN@o7q7zB97j1N8O+*+(L&1M)Fxc4k|^q(?H-+zU^Dv~7ni1_2o{bh&t0yzHs z$>%2xnfyp?AeD%zUv-4By|WXX7i84|Ln}uy`27$_+ZjDFD)_V%>#$f}p)*V65bSkg z{YM`q9BM zBUG*jF1aj-{7J|8Jozjw&il$d#z{Y(j>l!H+-2+nzWP9U*-rFvJU_F&Qx+|_ok{;S zwUI>s`6#KeCY#;|6hT2iz4|2-(jPy6f$@Rt^VIpdmw{5*2saR;e2Trlh_dDjf=jb& z^WnFTBpgb3>`54-=0)Ge`@Uxja;PHIAAG}-?)A`p&5EIc<@~|%zsl1a&h^TsYVeyThy`(HgTzNx#0>c=_u*2{BQexSg#PYfKX|^EAQ(ll?xwvo#%B#Bm zpuevcpX0vxlg^gyCSR-P4khaQS2Lg>+2J!m*c6rg)O0G#zL7o*aJ2xT;+NUFv9kH8cb$OfWyB!eSmRxYeaSN0^uqzhodJ#C zC>5`b6N2R{qvYI@n#i8HTfEN)IF~EugvBqAl^=ej+f-kD9izpMg*H+Xpqf!V zdUs$q!x7(mY}%>S)v*5iCeCEh;*cHjWLG*8Z=<6FZ8q5w89eGOU;_KEhpx&>VdUtD zH@z`1KPdxRa=@mImvX4sZlyG*$o7 zi;;wBeo>%I6iKx2^m}cGgMVSP&8P5_xC*N_=(vU_zH)k;QMWU`yUXby35dkRESW4YZN$BP#Lp8+kQ>uqVQeNWl* zL}@ZbgbFvH)nYRxA?3F(7O?7CT4J8lWX-o{`Z{`&X5H45VZEp-qdqrRZopV8QD))i zOHj;RV@w>y0Bx~o+O_Ta=y^Cq7D-E}YGy|hmsI5)wg8$uC^V~*6oVBkyP|IKzbqG(w8)UY41a;(?}8|B-bm zxTaoCU=O8ehrJ15G3y_pq7(yP9WU`}dE+u4E+m*Ix>&(ATw|m(-w`R>e|ZNxZF~nC zey%_)PFVv8fdUw!oAdA5elUzjW#$g^b?FcDY1;hq*;<=ajFYf1qCUh-W&!}|6hAw6%}>(wTmDiNT{H6 zNcTt#4CMeS-5}j4-9x8HsemXF5`sud4Jpzn4bsiXfFKOb&<)><-&yNiowNQo-`zJ? zEcgxU{k^f@y`TN;XHWL@5YyYj=pX7+cDaxbLZ}3I)XZ) zVWL$(&_Tz!mM*gB^}B9~Qcuu0LMZkgHv>{tJHBhWZWXo{*<aF(5rqO@WaKH|b z6A4IHUt8jti=h;PTQo?2LeDl1Cbt8Iv%}U-sKBKNKMh1p$eY!R;7nZa4JU_F+g@ns z1e_i?X9dD@G>NIMV#n_6D!1?|Z2Tt5+#z|hi<;pSm z`S*jdb?5vdD-*LyW)ljW-tYk_YED!3(0};@$~Vh09|*|A1O>Hj>6n-M%m*K|x3>#R zA??)m%QVz_*p$*QTe8Iis)az_{_DLHCaNhx^{}irnbS@}1yRmMnJj{j>?RvrK_mvj zesOshqcL_0(TGaB&g1uNJ;oFHmGS=&pe7Z}kl8N=K=USCo@RWeeYs;f#VksRt5D1d zyE!9i7xO4f6Mc_a>IUO14G96&y?g!7Qa*k}I_Lc*PYwQS%d_Pg1Gu#1?{mb-0iXGs z`?R}*@IwckFYkP&RtfeS<`o>CR6(@PZYXqi#Z5x*r?;BB#vNZ5^?T+t{S4Gv0BVDc zv9w?ATPtU0(t$^rDJk5P6XC9Um6erlzp7d!BjOpZHp3L&D5=r+2GcRO0&FMyO*5`6&)}?g`tyLts0*Kj|wX-l^GDkJOpo3f0S+p>cZ~7W{%KhuN-EQcl zy?-|?v4@|ZraG4^!yXr7&}?131PBX`s|s5-on5`2FlJ|LH5+a0yoe=QfWh;f0iS3` z{N-*6SAsCefD*G86(f-gvepra(BG4jE%+`#nVgtQEr5-#qY%qGOj@!V{4-a4fB*4O zeCa!Zcz20n?ZnbTdG$d3LS1j;>X^6sX9Z@^e%|2lRx018TbI(o#H1H+)rhwvD$JTJAluG;5B#5-f#4D3p7y1d>s z;ER-G$sSrB9@e(>lh^j{h?J=;_SWW5a%_qNU1WHMvz-<7IFv{hoE!?1usUh}WAC(3 z`uwe>Q|A2SwTE}%KZnFU=$OPGuYuE1BSF#&K>}tVTDQE$?=h9Im;p!^Hp~$dxl6BL za+vWV;`Of_Fb}**X?BCm$w{;Nbs| zFy)`FUZmQm;mkwHm_44a4veJ3uH?{#wxN2J$z{PS&f+RM%3Uy zeTL`V=YPqR_g0)UXr$DHr}ih+QMpih27NJlrhR+o*>Vg?|abU9orw>SnucmS@U^ z7>m!nrd(#eN4yvV^0ac@(%+S@N^C6EIPa8|mxpeM(~}Jh3{VZW9YFW9yKS5G%gH8S zd*vn7^pcsT96uzM%ho@%kI>mxmdk%x$`xHpyoh}4@Ii~WlOVi3j+y1Y^Gzh@3>6o} zjpwVNRl%GIV&zY!wY1*OnO}=O^O4BBwgNyrA|4u1WvGBoD#FovKKYs+Amc^M4w(}Y zj4)$x13pa#t`wDKlAQ>csgIXW5LPjCY`^STcB2AW$MnW{`9i9TZxaK&vjYYy>7cHo zc@6bi(#)?Rab^OfRUF`K{vmI2!J2m{7;Ih6JS)&*PT;mGD)Os6oBf9YZXaH)g#-8edFQv@0lrM2g#2 z0$UxWe&>tk4j^v;e61XW_kx1%1o5BfQ7F{sH0DpRwc4_>cTo(Rba}M5gtFJDCRb&4 z(o>1~URDd;oxIlIOEW zExnRflDe4xkHM>R=0oN6zV(pi$P-ANSPxxakP?RK{rUPQivjzdHH`}l<)43{@VPNu zk0O1JFBSmwCT3C%<{%)xDkLg&3Ms1Py%*mrh6;18E;esW$0WG-|IB2|NzUh%rqdQ5DiN)M@m#hO3eZ!6W(p{(;SJ{d`uNSmRuzRwP{@iWBO`S@4ihA_P!m0IXb9+CA_Lz*X z3>o^13z^7m&gF?*qigoXu67bXQL_$fe8NAd=G+*r;_UEu$3@&-?Uih!e_&V3p-ON} z#Og-t<-8}tqDprzS#n6W_~S16?TVRxRW`oWu)RS+W1?H%>gD?5v%lTxrvKtN?BwL+ zRKeootaOSiUj<(t@bOYpaknKh_s!>4!rXrK^#Rd;>udPOfJ_?BUlxQw>?Y747i~lE zyc``a#YN$NU*g5iMNiZAou?*6EpD9oV)M>Zz7f^uF<0AvP&ws!?RYTJ^N8VUCaFnu zMaY6<4hyVR3CnF9rqqSnS})d{EO08oO%yA<9jI5I&%H=%Gk(Fau_2Nm^KsIpX4 zD=PzvuCeuVp@2a8P(oN3Pn!%v zY1h-=-;YK!9%m*v8L?Zqo;zrBeD&EAq_)g8YBm=^9n2(5Q|=47$knOytR-=1r?qnQ zJyR_Bc!tF;-L&3-BB>)~-H=Z%x}Y>Oi40FL{Z!^>lMIJIV7M^e4igGH5C=OAwa4M|8fU7u*Eq5EtqqwjDt8faP>_+@HO0W z_-SK!{L`7c`T*`k(|{5>YFXv3b}*k}O7v+lJ!I2!Q~RoGpL}O19Lsa}z1jJ*0(+K8 z7^7Xx+tH|~Rk^TfoNSuy!pM`wrY47xmZ$1ssMD>!gLzG}t5Wg7}a5rC$qTV6y&gp^@>zUCwfg~v35Mn_J#0VlxO*}1lwEKp#F zn7`6&+Jnhyc%LgP4Uau<|0_+}#lM0TS2W?)G{3!4Z+STI{91!aC zt{i0#&A)dOH8e6Jj*uI&OAzSvzy*aV20N=}MrE3BebU|ui8{JZ)P9wpK8+k*Sr2}B zVS_Er&J|8{-w7CYeq_!#^`U7pKMQa(e0fd)csrhA#`#+AUt3|# zem-BJfCtpqw{j>TZ+ksfW@Yz{GE-YP0=8;Sa3L+U?#}ALBx%(IL^Ollp3J<`)D)IM zYgqks7qaVbL0)Rr$td_70uUuq$Qyn0>fGr|%_miA>>s1`k4+9YZ5YeBMv~Lm) z0uyWza2`i1%Pz_IElE`0Du~`;xZncOd2y7eQ4({oVyQB=rstHtV5$^@fEgq%E7=A^ z?+p{3#WP9%xOmEMWKYovGXE%6>Ax@f=|`d535Y9zXwd`*UHkp}tJA5Kqkd0c$-B6i zXmkmF;(FukNm+yGY@`i-EU5?}$zd*ok6XR?5(cXD{OsvO`@7Au+z(3{`ebrV|f%F0>l#cLt+j72cdG9DIr(f-8G?zE9pfAH1fCzP`_wuIH( zdLn$8DToED66|zpQWW2|vs_dm>B@=wm%0DmT(U2t#92=7JxwkQF)+hDe$N2ik~Wqg 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 +MATCH (:Player{name:"Mbappe"})-[h2:HAS_SKILL]->(s) +MATCH (:Player{name:"Benzema"})-[h3:HAS_SKILL]->(s) +MATCH (:Player{name:"C Ronaldo"})-[h4:HAS_SKILL]->(s) +MATCH (:Player{name:"Lewandowski"})-[h5:HAS_SKILL]->(s) +RETURN s.name as Skill, h1.value as Messi, h2.value as Mbappe, h3.value as Benzema, + h4.value as `C Ronaldo`, h5.value as Lewandowski +---- + +image::radar.png[Radar Chart] + +== Advanced Settings + +[width="100%",cols="15%,2%,26%,57%",options="header",] +|=== +|Name |Type |Default Value |Description +|Enable interactivity |on/off |on |If enabled, turn on animations when a +user hovers over a layer. + +|Show Legend |on/off |off |If enabled, shows a legend on the bottom of +the visualization. + +|Color Scheme |List | |The color scheme to use for the Radar. Each polygon will have a color from the list. + +|Margin Left (px) |number |24 |The margin in pixels on the left side of +the visualization. + +|Margin Right (px) |number |24 |The margin in pixels on the right side +of the visualization. + +|Margin Top (px) |number |24 |The margin in pixels on the top side of +the visualization. + +|Margin Bottom (px) |number |40 |The margin in pixels on the bottom side +of the visualization. + +|Dot Size |number |10 |Size of the dots (px). + +|Dot Border Width |number |2 |Width of the dots border (px). + +|Grid Levels |number |5 |Number of levels to display for grid. + +|Grid Label Offset (px) |number |16 |Label offset from outer radius (px) + +|Blend Mode |List |normal |This will define CSS mix-blend-mode for layers + +|Motion Configuration |List |gentle |This parameter will select the motion config for react-spring. + +|Curve |List |linearClosed |This parameter will select the type of curve interpolation. + +|Auto-run query |on/off |on |When activated, automatically runs the +query when the report is displayed. When set to `off', the query is +displayed and will need to be executed manually. +|=== diff --git a/docs/modules/ROOT/pages/user-guide/reports/raw-json.adoc b/docs/modules/ROOT/pages/user-guide/reports/raw-json.adoc index 691eaa6be..cf523529e 100644 --- a/docs/modules/ROOT/pages/user-guide/reports/raw-json.adoc +++ b/docs/modules/ROOT/pages/user-guide/reports/raw-json.adoc @@ -23,4 +23,5 @@ image::json.png[Basic Value] |Auto-run query |on/off |on |when activated automatically runs the query when the report is displayed. When set to `off', the query is displayed and will need to be executed manually. +|Report Description |markdown text | | When specified, adds another button the report header that opens a pop-up. This pop-up contains the rendered markdown from this setting. |=== diff --git a/docs/modules/ROOT/pages/user-guide/reports/sankey.adoc b/docs/modules/ROOT/pages/user-guide/reports/sankey.adoc index fb68681cd..1b1dad010 100644 --- a/docs/modules/ROOT/pages/user-guide/reports/sankey.adoc +++ b/docs/modules/ROOT/pages/user-guide/reports/sankey.adoc @@ -62,6 +62,7 @@ of the visualization. |Auto-run query |on/off |on |when activated automatically runs the query when the report is displayed. When set to `off', the query is displayed and will need to be executed manually. +|Report Description |markdown text | | When specified, adds another button the report header that opens a pop-up. This pop-up contains the rendered markdown from this setting. |=== diff --git a/docs/modules/ROOT/pages/user-guide/reports/single-value.adoc b/docs/modules/ROOT/pages/user-guide/reports/single-value.adoc index 0a7d96aca..593f92a11 100644 --- a/docs/modules/ROOT/pages/user-guide/reports/single-value.adoc +++ b/docs/modules/ROOT/pages/user-guide/reports/single-value.adoc @@ -46,6 +46,7 @@ image::value2.png[Styled Value] |Auto-run query |on/off |on |when activated automatically runs the query when the report is displayed. When set to `off', the query is displayed and will need to be executed manually. +|Report Description |markdown text | | When specified, adds another button the report header that opens a pop-up. This pop-up contains the rendered markdown from this setting. |=== == Rule-Based Styling diff --git a/docs/modules/ROOT/pages/user-guide/reports/sunburst.adoc b/docs/modules/ROOT/pages/user-guide/reports/sunburst.adoc index 1ad58204e..8538dfe51 100644 --- a/docs/modules/ROOT/pages/user-guide/reports/sunburst.adoc +++ b/docs/modules/ROOT/pages/user-guide/reports/sunburst.adoc @@ -55,7 +55,12 @@ an arc needed to display a label (if labels are enabled). |Slice Corner Radius |number |3 |The rounding angle of each of the arcs in the visualization. +|Inherit color from parent |on/off |on |If enabled, starting from level 2, each +level will inherit the same color of his parent. If disabled, color will be randomly +assigned based on the color scheme. + |Auto-run query |on/off |on |When activated, automatically runs the query when the report is displayed. When set to `off', the query is displayed and will need to be executed manually. +|Report Description |markdown text | | When specified, adds another button the report header that opens a pop-up. This pop-up contains the rendered markdown from this setting. |=== diff --git a/docs/modules/ROOT/pages/user-guide/reports/table.adoc b/docs/modules/ROOT/pages/user-guide/reports/table.adoc index 4857d1998..435b2904d 100644 --- a/docs/modules/ROOT/pages/user-guide/reports/table.adoc +++ b/docs/modules/ROOT/pages/user-guide/reports/table.adoc @@ -11,6 +11,8 @@ The table report supports the following additional features: - Sorting/filtering by clicking on the table headers. - Downloading your data as a CSV file. +Double-clicking on a table cell will copy that cell's value to the user's clipboard. + == Examples === Basic Table @@ -52,6 +54,7 @@ the complete set of table results (all pages) as a CSV file. |Auto-run query |on/off |on |when activated automatically runs the query when the report is displayed. When set to `off', the query is displayed and will need to be executed manually. +|Report Description |markdown text | | When specified, adds another button the report header that opens a pop-up. This pop-up contains the rendered markdown from this setting. |=== == Rule-Based Styling diff --git a/docs/modules/ROOT/pages/user-guide/reports/treemap.adoc b/docs/modules/ROOT/pages/user-guide/reports/treemap.adoc index daf44993a..9878707d0 100644 --- a/docs/modules/ROOT/pages/user-guide/reports/treemap.adoc +++ b/docs/modules/ROOT/pages/user-guide/reports/treemap.adoc @@ -50,4 +50,5 @@ of the visualization. |Auto-run query |on/off |on |When activated, automatically runs the query when the report is displayed. When set to `off', the query is displayed and will need to be executed manually. +|Report Description |markdown text | | When specified, adds another button the report header that opens a pop-up. This pop-up contains the rendered markdown from this setting. |=== diff --git a/docs/package-lock.json b/docs/package-lock.json index b12f306ba..3c45ca356 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8,8 +8,8 @@ "name": "docs", "version": "1.0.0", "dependencies": { - "@antora/cli": "^2.3.3", - "@antora/site-generator-default": "^2.3.3", + "@antora/cli": "^3.1.1", + "@antora/site-generator-default": "^3.1.1", "@neo4j-documentation/macros": "^1.0.0", "@neo4j-documentation/remote-include": "^1.0.0", "express": "^4.17.1", @@ -17,202 +17,273 @@ } }, "node_modules/@antora/asciidoc-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.3.4.tgz", - "integrity": "sha512-IQ0d/hnOCGZXzTYUwKAw2BlyRMI4Kg/zu7XejQ6ERIncjuUUv/+PhlzVxoJNT0r9uasJFHDlZ7l3X53Hn+MUuQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.1.tgz", + "integrity": "sha512-aW3aBVbPE3sXXrelgM392N87UhNT9JpIYcUV7DUegX0/9w8qybzdgkbrQjsaSwMstcR+7KK5muNoBr5dF+J1IQ==", "dependencies": { - "asciidoctor.js": "1.5.9", - "opal-runtime": "1.0.11" + "@antora/logger": "3.1.1", + "@antora/user-require-helper": "~2.0", + "@asciidoctor/core": "~2.2" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/cli": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-2.3.4.tgz", - "integrity": "sha512-KItaWFEf/X4LLY2XCidjD00oUp4Ay7y9Hu26+T8dPqV+qnMwOL+MGHhYXsJz+4JaeNJu1Ofwc4onmShpwHQruA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.1.tgz", + "integrity": "sha512-YmwuUgvWQt2Do3zAByMQW+a3GfAPkUs0k2OKVCiuAQD51TUyDoeK4qSE3lYMzpInKf9ps1DardBssSnibDYZXA==", "dependencies": { - "@antora/playbook-builder": "2.3.4", - "commander": "~6.1" + "@antora/logger": "3.1.1", + "@antora/playbook-builder": "3.1.1", + "@antora/user-require-helper": "~2.0", + "commander": "~9.4" }, "bin": { "antora": "bin/antora" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/content-aggregator": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.3.4.tgz", - "integrity": "sha512-ZwlGm/t90PUnGVo+pir71O+wC+gyXnVuhoAed+9bBLjsiGI7EGUzwUEXSZqHRSihPx5XLFj6pZinoCGX+uabcw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.1.tgz", + "integrity": "sha512-kktMWq9m/IX3X/AyQvFcw4cKEKoJfs9o5tcraA3pZgOPr3hJgf5BEnldeszxWDJ8dc4mzyYIaq6GZC+c8foB0A==", "dependencies": { - "@antora/expand-path-helper": "~1.0", + "@antora/expand-path-helper": "~2.0", + "@antora/logger": "3.1.1", + "@antora/user-require-helper": "~2.0", "braces": "~3.0", "cache-directory": "~2.0", - "camelcase-keys": "~6.2", - "fs-extra": "~8.1", - "isomorphic-git": "0.78.5", - "js-yaml": "~3.14", - "matcher": "~2.1", - "mime-types": "~2.1", - "multi-progress": "~2.0", - "picomatch": "~2.2", - "through2": "~4.0", - "vinyl": "~2.2", - "vinyl-fs": "~3.0" + "glob-stream": "~7.0", + "hpagent": "~1.0", + "isomorphic-git": "~1.19", + "js-yaml": "~4.1", + "multi-progress": "~4.0", + "picomatch": "~2.3", + "progress": "~2.0", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~2.2" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/content-classifier": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.3.4.tgz", - "integrity": "sha512-DR4I6dLSZEFOS3T0F/hYwLf3AGY2Rb3e9j8V8ygEFzdP8OySAAZWyTjjJPF4pJZqjWtqD7s7S1f5/cCI83977Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.1.tgz", + "integrity": "sha512-nhqo8VZpab4OuPwZHPAgjWO8uaNq37IzjipU0p86nKVbKcp6VL1Velj7JI1rpVjg/2FQKQ8x41UguySXN2rImw==", "dependencies": { - "@antora/asciidoc-loader": "2.3.4", + "@antora/asciidoc-loader": "3.1.1", + "@antora/logger": "3.1.1", + "mime-types": "~2.1", "vinyl": "~2.2" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/document-converter": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.3.4.tgz", - "integrity": "sha512-Fo2SKdX3BlNrvfQEBOi2II+YmYzdEqKQ5+lO2pzxJuNBfqN0kJJYYk30jFPR27h6QuU43U/XZgufyDt+FjfdZg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.1.tgz", + "integrity": "sha512-RNk1p9fI/CjANwwQ7BgLnSrbxxYh8kZV7SscPUptl32V7xUpbTMLebPEKPa3rl2C5qoalvJQNXLKfFRPMCqE7w==", "dependencies": { - "@antora/asciidoc-loader": "2.3.4" + "@antora/asciidoc-loader": "3.1.1" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/expand-path-helper": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-1.0.0.tgz", - "integrity": "sha512-hg3y6M3OvRTb7jtLAnwwloYDxafbyKYttcf16kGCXvP7Wqosh7c+Ag+ltaZ7VSebpzpphO/umb/BXdpU7rxapw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-2.0.0.tgz", + "integrity": "sha512-CSMBGC+tI21VS2kGW3PV7T2kQTM5eT3f2GTPVLttwaNYbNxDve08en/huzszHJfxo11CcEs26Ostr0F2c1QqeA==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@antora/file-publisher": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.1.tgz", + "integrity": "sha512-J8CKp3q24KutImNq9JTyxRK8uq+pnBliW7g6XJ4tQbchbV8DPgz+hzOVkFyehUb8bmUbp5G+mt3LMt1zRQbZJw==", + "dependencies": { + "@antora/expand-path-helper": "~2.0", + "@antora/user-require-helper": "~2.0", + "gulp-vinyl-zip": "~2.5", + "vinyl": "~2.2", + "vinyl-fs": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/logger": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.1.tgz", + "integrity": "sha512-V62YLE59z6KDQbCKjzHAv1zE7FHfT9pSwhLsHYJbWa2e8CGbGKflaR8hiDnvKSqs71VFxbdbkcOdbu7hAjGiEw==", + "dependencies": { + "@antora/expand-path-helper": "~2.0", + "pino": "~8.4", + "pino-pretty": "~9.0", + "sonic-boom": "~3.2" + }, + "engines": { + "node": ">=16.0.0" + } }, "node_modules/@antora/navigation-builder": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.3.4.tgz", - "integrity": "sha512-55I7p9tNTernQ/YR1+mp6RRXMV5EcU8q20Tdodt3mazdm3ObTe9E9XVAvUDFmDzRA27D0eb06jVRwLoth1gHYA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.1.tgz", + "integrity": "sha512-/0BGQpttXaj0pvbYGdCiLFnOsygNYQBB+qjQsIbsgyGFFVlXJ2hF3zAHcGeVhCDVNa2EspeObP2lW7Mg3glRjw==", "dependencies": { - "@antora/asciidoc-loader": "2.3.4" + "@antora/asciidoc-loader": "3.1.1" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/page-composer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.3.4.tgz", - "integrity": "sha512-xY0O9X87DzcoP6k/5Jx55ysy0iQIhgav3q1JbOQK/FoYQYHbiQgmVWOjJdqh5nZw57ih3yE20JROPuYqOYuUZA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.1.tgz", + "integrity": "sha512-nByVOKnSN+vZnfmIqi1zqQmlDQS0qwQnauGkFq/S67pbeY8AYw2yyaKNrI+8GqVnJNaF3T/fWK7d7no1NY0acA==", "dependencies": { + "@antora/logger": "3.1.1", "handlebars": "~4.7", "require-from-string": "~2.0" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/playbook-builder": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.3.4.tgz", - "integrity": "sha512-iPjBndcoZhWqpN608WOkXKUUD94b3JX38igebshiT5/NRINJbeEclpdEX/gPv8D1Z1JcrSVGURZQO1uML76dkg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.1.tgz", + "integrity": "sha512-HQ+E9Zn7upeThKxrGozRzRSymb0wUwUAtqHaHscOfj7IuDWI7kmjHfmS9td10tU3Oe2VdXiInnOeXMPpN/lPYQ==", "dependencies": { "@iarna/toml": "~2.2", - "camelcase-keys": "~6.2", - "convict": "~6.0", - "js-yaml": "~3.14", - "json5": "~2.1" + "convict": "~6.2", + "js-yaml": "~4.1", + "json5": "~2.2" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/redirect-producer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.3.4.tgz", - "integrity": "sha512-148amiLc+1Pod6kluAOBke8OATFWFUW3LZdTPFVfqX1lJolCp5ciOnGciy52sIIysSyVkQUjotEUhqGO9Af1EQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.1.tgz", + "integrity": "sha512-jK4H/fNu75mEFrZaZRWdRxnlQ+dFTyXIQm6zKS37Sa4UdwwudkOOa8IM3R06z9S8bmGJnr30dOw7mqNTLRycBw==", "dependencies": { - "@antora/asciidoc-loader": "2.3.4", "vinyl": "~2.2" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" + } + }, + "node_modules/@antora/site-generator": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.1.tgz", + "integrity": "sha512-dHhsnsLqBSQiyzUPMVHmpe41XjX/SJor47aMUifCSHmq/i/GhZycyw8azf0KHiQ1Vj9D24ihck61KMOW9qQdog==", + "dependencies": { + "@antora/asciidoc-loader": "3.1.1", + "@antora/content-aggregator": "3.1.1", + "@antora/content-classifier": "3.1.1", + "@antora/document-converter": "3.1.1", + "@antora/file-publisher": "3.1.1", + "@antora/logger": "3.1.1", + "@antora/navigation-builder": "3.1.1", + "@antora/page-composer": "3.1.1", + "@antora/playbook-builder": "3.1.1", + "@antora/redirect-producer": "3.1.1", + "@antora/site-mapper": "3.1.1", + "@antora/site-publisher": "3.1.1", + "@antora/ui-loader": "3.1.1", + "@antora/user-require-helper": "~2.0" + }, + "engines": { + "node": ">=16.0.0" } }, "node_modules/@antora/site-generator-default": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.3.4.tgz", - "integrity": "sha512-uRiFJ/nG5bxjDmFOur27ae7A1J7r+OFVocEwx+vVLRvVYfNHxYP0fI2uUrmJTci8xJ92NLH9VLHpfsHypsoq9Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-3.1.1.tgz", + "integrity": "sha512-zCC/gegPqPgPeBkL/hnHwRW4Vl++sDmBWmn8jAgR0Qj7NpNU4vUHAS7ArsqpJvPJB4/6hXhhSqsJPxP1xkTySQ==", "dependencies": { - "@antora/asciidoc-loader": "2.3.4", - "@antora/content-aggregator": "2.3.4", - "@antora/content-classifier": "2.3.4", - "@antora/document-converter": "2.3.4", - "@antora/navigation-builder": "2.3.4", - "@antora/page-composer": "2.3.4", - "@antora/playbook-builder": "2.3.4", - "@antora/redirect-producer": "2.3.4", - "@antora/site-mapper": "2.3.4", - "@antora/site-publisher": "2.3.4", - "@antora/ui-loader": "2.3.4" + "@antora/site-generator": "3.1.1" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/site-mapper": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.3.4.tgz", - "integrity": "sha512-GVghn6ausIWZlUfbEEdDD4YB7M1mWJAUMokyha9sE5w0gyYoWwukKWQiwCwk/JhvnwXunMLhEUm6y2nrHEmlLw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.1.tgz", + "integrity": "sha512-1ghRHVJ4k5ZdP5q/1SPP6rDyzyXWQs2F5D54sruvs6mNLaDVlb9usjRNfkLZdNko4tjfp5Blg9vDtKERenFQhg==", "dependencies": { - "@antora/content-classifier": "2.3.4", + "@antora/content-classifier": "3.1.1", "vinyl": "~2.2" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/site-publisher": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.3.4.tgz", - "integrity": "sha512-7xI/5OdjKq5tkdGzE0ABkl/QpIcgtnof+rnIWZweQKeQtA3LWutvEHtdIeXLQt0oNZmE/kf45FwC2XCg9/ptDg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.1.tgz", + "integrity": "sha512-08/XRnOvkx5RrUQvsodU3s0j1Pen4LfiyQ0yY2jF996Kweanj8YTJ41Y6hyxnJsNPEb9OcGU9trKDOPpm2F/Sw==", "dependencies": { - "@antora/expand-path-helper": "~1.0", - "fs-extra": "~8.1", - "gulp-vinyl-zip": "~2.2", - "vinyl": "~2.2", - "vinyl-fs": "~3.0" + "@antora/file-publisher": "3.1.1" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" } }, "node_modules/@antora/ui-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.3.4.tgz", - "integrity": "sha512-eorTmZW7zc6ZHgGLt3Vrq7mzPuobPeJnyfli50/m/DIQ91slkqjPKUYGcq4paPEz6IWoa7LT2ZwtwA5KzMyTPg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.1.tgz", + "integrity": "sha512-Lu6IFtjtPPo+MjVTioNwpMzMY5KKMmmVAFjDofpQGt4RSSNc0KtK4g++T86OWhia/vvKVftmAPWzuYEhpwYIsw==", "dependencies": { - "@antora/expand-path-helper": "~1.0", - "bl": "~4.0", + "@antora/expand-path-helper": "~2.0", + "braces": "~3.0", "cache-directory": "~2.0", - "camelcase-keys": "~6.2", - "fs-extra": "~8.1", - "got": "~9.6", - "gulp-vinyl-zip": "~2.2", - "js-yaml": "~3.14", - "minimatch-all": "~1.1", - "through2": "~4.0", - "vinyl": "~2.2", - "vinyl-fs": "~3.0" + "glob-stream": "~7.0", + "gulp-vinyl-zip": "~2.5", + "hpagent": "~1.0", + "js-yaml": "~4.1", + "picomatch": "~2.3", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~2.2" }, "engines": { - "node": ">=8.11.0" + "node": ">=16.0.0" + } + }, + "node_modules/@antora/user-require-helper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-2.0.0.tgz", + "integrity": "sha512-5fMfBZfw4zLoFdDAPMQX6Frik90uvfD8rXOA4UpXPOUikkX4uT1Rk6m0/4oi8oS3fcjiIl0k/7Nc+eTxW5TcQQ==", + "dependencies": { + "@antora/expand-path-helper": "~2.0" + }, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@asciidoctor/core": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.6.tgz", + "integrity": "sha512-TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ==", + "dependencies": { + "asciidoctor-opal-runtime": "0.3.3", + "unxhr": "1.0.1" + }, + "engines": { + "node": ">=8.11", + "npm": ">=5.0.0", + "yarn": ">=1.1.0" } }, "node_modules/@iarna/toml": { @@ -230,30 +301,22 @@ "resolved": "https://registry.npmjs.org/@neo4j-documentation/remote-include/-/remote-include-1.0.0.tgz", "integrity": "sha512-SprNp9XsWiMBC0T44vs3JUwEYhoyJlg+du5kP0f9RGewXrSeEgsr5tY7nQDa4Bou9iG0sBl0+2u4XZjiVMkiuw==" }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dependencies": { - "defer-to-connect": "^1.0.1" + "event-target-shim": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=6.5" } }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -325,12 +388,9 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/arr-diff": { "version": "4.0.0", @@ -369,18 +429,16 @@ "node": ">=0.10.0" } }, - "node_modules/asciidoctor.js": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/asciidoctor.js/-/asciidoctor.js-1.5.9.tgz", - "integrity": "sha512-k5JgwyV82TsiCpnYbDPReuHhzf/vRUt6NaZ+OGywkDDGeGG/CPfvN2Gd1MJ0iIZKDyuk4iJHOdY/2x1KBrWMzA==", - "deprecated": "Package no longer supported. Replaced by @asciidoctor/core", + "node_modules/asciidoctor-opal-runtime": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz", + "integrity": "sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ==", "dependencies": { - "opal-runtime": "1.0.11" + "glob": "7.1.3", + "unxhr": "1.0.1" }, "engines": { - "node": ">=8.11", - "npm": ">=5.0.0", - "yarn": ">=1.1.0" + "node": ">=8.11" } }, "node_modules/assign-symbols": { @@ -397,9 +455,9 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, "node_modules/async-lock": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.3.1.tgz", - "integrity": "sha512-zK7xap9UnttfbE23JmcrNIyueAn6jWshihJqA33U/hEnKprF/lVGBDsBv/bqLm2YMMl1DnpHhUY044eA0t1TUw==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.3.2.tgz", + "integrity": "sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==" }, "node_modules/atob": { "version": "2.1.2", @@ -412,6 +470,14 @@ "node": ">= 4.5.0" } }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -481,16 +547,6 @@ "file-uri-to-path": "1.0.0" } }, - "node_modules/bl": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.4.tgz", - "integrity": "sha512-7tdr4EpSd7jJ6tuQ21vu2ke8w7pNEstzj1O8wwq6sNNzO3UDi5MA8Gny/gquCj7r2C6fHudg8tKRGyjRgmvNxQ==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, "node_modules/body-parser": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", @@ -514,23 +570,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/bops": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.7.tgz", - "integrity": "sha512-oF8JFj2vZoTTzbS4haaB/37vqoJbZXxPBWmNdFONu3dUBW+zp7JcoIIYYd1r+4/YwFM8QUSR1u4rrPbtcdHsRg==", - "dependencies": { - "base64-js": "0.0.2", - "to-utf8": "0.0.1" - } - }, - "node_modules/bops/node_modules/base64-js": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", - "integrity": "sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", @@ -577,9 +616,9 @@ } }, "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -596,7 +635,7 @@ ], "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "node_modules/buffer-crc32": { @@ -653,45 +692,6 @@ "node": ">=4" } }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -704,30 +704,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", @@ -968,14 +944,6 @@ "node": ">= 0.10" } }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, "node_modules/clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", @@ -1043,12 +1011,17 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, "node_modules/commander": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", - "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "engines": { - "node": ">= 6" + "node": "^12.20.0 || >=14" } }, "node_modules/component-emitter": { @@ -1110,12 +1083,12 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/convict": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/convict/-/convict-6.0.1.tgz", - "integrity": "sha512-M4YNNq5NV4/VS8JhvBSHAokwvQRL4evEuU0VFe1GNPiqnj9TAkLXpf39ImCCVZlsp3CFp04bc/kRSWPGsJGJWg==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.3.tgz", + "integrity": "sha512-mTY04Qr7WrqiXifdeUYXr4/+Te4hPFWDvz6J2FVIKCLc2XBhq63VOSSYAKJ+unhZAYOAjmEdNswTOeHt7s++pQ==", "dependencies": { "lodash.clonedeep": "^4.5.0", - "yargs-parser": "^18.1.3" + "yargs-parser": "^20.2.7" }, "engines": { "node": ">=6" @@ -1187,6 +1160,14 @@ "node": ">=4" } }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "engines": { + "node": "*" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1195,14 +1176,6 @@ "ms": "2.0.0" } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -1212,14 +1185,17 @@ } }, "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { - "mimic-response": "^1.0.0" + "mimic-response": "^3.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/deep-extend": { @@ -1230,11 +1206,6 @@ "node": ">=4.0.0" } }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, "node_modules/define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -1301,43 +1272,16 @@ "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" }, "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", "stream-shift": "^1.0.0" } }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -1364,32 +1308,28 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "engines": { - "node": ">= 0.6" + "node": ">=0.8.x" } }, "node_modules/execa": { @@ -1635,6 +1575,24 @@ "node": ">=0.10.0" } }, + "node_modules/fast-copy": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.7.tgz", + "integrity": "sha512-ozrGwyuCTAy7YgFCua8rmqmytECYk/JYAMXcswOcm0qvGoE3tPb7ivBeIHTOK2DiapBhDZgacIhzhQIKU5TCfA==" + }, + "node_modules/fast-redact": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", + "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -1748,19 +1706,6 @@ "node": ">= 0.6" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", @@ -1773,46 +1718,10 @@ "node": ">= 0.10" } }, - "node_modules/fs-mkdirp-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/fs-mkdirp-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/fs-mkdirp-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs-mkdirp-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "1.2.13", @@ -1850,17 +1759,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -1869,23 +1767,15 @@ "node": ">=0.10.0" } }, - "node_modules/git-apply-delta": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-apply-delta/-/git-apply-delta-0.0.7.tgz", - "integrity": "sha512-P99rChCrhraaY7D6E4NUotfhjzRRNvlf3Mumw9BHgOJFQTfYHhTwAgSTEtcBvb25iXttvMRLEHtzyz9mE2gLjQ==", - "dependencies": { - "bops": "~0.0.6", - "varint": "0.0.3" - } - }, "node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dependencies": { + "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "2 || 3", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -1914,23 +1804,23 @@ } }, "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-7.0.0.tgz", + "integrity": "sha512-evR4kvr6s0Yo5t4CD4H171n4T8XcnPFznvsbeN8K9FPzc0Q0wYqcOWyGtck2qcvJSLXKnU6DnDyfmbDDabYvRQ==", "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", + "extend": "^3.0.2", + "glob": "^7.2.0", + "glob-parent": "^6.0.2", "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "ordered-read-streams": "^1.0.1", + "pumpify": "^2.0.1", + "readable-stream": "^3.6.0", + "remove-trailing-separator": "^1.1.0", + "to-absolute-glob": "^2.0.2", + "unique-stream": "^2.3.1" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/glob-stream/node_modules/glob": { @@ -1952,31 +1842,15 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/glob-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/glob-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dependencies": { - "safe-buffer": "~5.1.0" + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/global-dirs": { @@ -1990,46 +1864,15 @@ "node": ">=4" } }, - "node_modules/globalyzer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.4.tgz", - "integrity": "sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==" - }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/gulp-vinyl-zip": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.2.1.tgz", - "integrity": "sha512-9lwCZUkrENzP649hVQB2r+8GgeGtVrqA2fEeVDX6aYr6+yJjdczWu0r1C6WvbZdzhXcA61MtR5MEyjR9a3D7cw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.5.0.tgz", + "integrity": "sha512-KPi5/2SUmkXXDvKU4L2U1dkPOP03SbhONTOgNZlL23l9Yopt+euJ1bBXwWrSMbsyh3JLW/TYuC8CI4c4Kq4qrw==", "dependencies": { "queue": "^4.2.1", "through": "^2.3.8", @@ -2038,42 +1881,9 @@ "vinyl-fs": "^3.0.3", "yauzl": "^2.2.1", "yazl": "^2.2.1" - } - }, - "node_modules/gulp-vinyl-zip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/gulp-vinyl-zip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/gulp-vinyl-zip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/gulp-vinyl-zip/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + }, + "engines": { + "node": ">= 10" } }, "node_modules/handlebars": { @@ -2173,10 +1983,59 @@ "node": ">=0.10.0" } }, - "node_modules/http-cache-semantics": { + "node_modules/help-me": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.1.0.tgz", + "integrity": "sha512-5HMrkOks2j8Fpu2j5nTLhrBhT7VwHwELpqnSnx802ckofys5MO2SkLpgSz3dgNFHV7IYFX2igm5CM75SmuYidw==", + "dependencies": { + "glob": "^8.0.0", + "readable-stream": "^3.6.0" + } + }, + "node_modules/help-me/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/help-me/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/help-me/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpagent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.0.0.tgz", + "integrity": "sha512-SCleE2Uc1bM752ymxg8QXYGW0TWtAV4ZW3TqH1aOnyi6T6YW2xadCcclm5qeVjvMvfQ2RKNtZxO7uVb9CTPt1A==", + "engines": { + "node": ">=14" + } }, "node_modules/http-errors": { "version": "2.0.0", @@ -2557,62 +2416,57 @@ } }, "node_modules/isomorphic-git": { - "version": "0.78.5", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-0.78.5.tgz", - "integrity": "sha512-LrF5t9x7RdFeg84NsYpZo9qF1MZeb56LpBm6Jv47qMjnWMv0Il/3wPTA8I/lUYywgVbvF/e7xypHauj5auKW3w==", + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.19.3.tgz", + "integrity": "sha512-s48mkkojyH98CpnXXN78vOV21Gl5s/6xVnwxZhP1TiXRkJsoi1kCqzNxFxyID9gQ0WFAPw0pNHRxqyb4DtJUfg==", "dependencies": { "async-lock": "^1.1.0", "clean-git-ref": "^2.0.1", "crc-32": "^1.2.0", "diff3": "0.0.3", - "git-apply-delta": "0.0.7", - "globalyzer": "^0.1.4", - "globrex": "^0.1.2", "ignore": "^5.1.4", - "marky": "^1.2.1", "minimisted": "^2.0.0", "pako": "^1.0.10", "pify": "^4.0.1", "readable-stream": "^3.4.0", "sha.js": "^2.4.9", - "simple-get": "^3.0.2" + "simple-get": "^4.0.1" }, "bin": { - "isogit": "cli.js" + "isogit": "cli.cjs" }, "engines": { - "node": ">=7.6.0" + "node": ">=12" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "engines": { + "node": ">=10" } }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dependencies": { - "minimist": "^1.2.5" - }, + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "bin": { "json5": "lib/cli.js" }, @@ -2620,22 +2474,6 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -2753,17 +2591,6 @@ "node": ">=0.10.0" } }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -2775,22 +2602,6 @@ "node": ">=0.10.0" } }, - "node_modules/marky": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", - "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==" - }, - "node_modules/matcher": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", - "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -2942,11 +2753,14 @@ } }, "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/minimatch": { @@ -2960,14 +2774,6 @@ "node": "*" } }, - "node_modules/minimatch-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", - "integrity": "sha512-g1wQmOhBRTqQw9dqkpkhKMT6LvJREygVzRRTqJUe/B6NCtM1+exYpzjR9mS0vGj7q3gbHdHpqNVoCXtZk6qk6A==", - "dependencies": { - "minimatch": "^3.0.2" - } - }, "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", @@ -2999,11 +2805,11 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/multi-progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-2.0.0.tgz", - "integrity": "sha512-ArGgS/Qib/X2FWfE6CVpic+Z0C9kQuhiK9HQtz5pcCfsXwMzoNnXP6FJlplNAMsJuoLtWA8bAoPV36ezT2IFGw==", - "dependencies": { - "progress": "^1.1.8" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-4.0.0.tgz", + "integrity": "sha512-9zcjyOou3FFCKPXsmkbC3ethv51SFPoA4dJD6TscIp2pUmy26kBDZW6h9XofPELrzseSkuD7r0V+emGEeo39Pg==", + "peerDependencies": { + "progress": "^2.0.0" } }, "node_modules/nan": { @@ -3105,14 +2911,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, "node_modules/now-and-later": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", @@ -3147,42 +2945,6 @@ "npm-watch": "cli.js" } }, - "node_modules/npm-watch/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/npm-watch/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/npm-watch/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/npm-watch/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -3289,13 +3051,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -3316,6 +3078,11 @@ "node": ">=0.10.0" } }, + "node_modules/on-exit-leak-free": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", + "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -3335,18 +3102,6 @@ "wrappy": "1" } }, - "node_modules/opal-runtime": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/opal-runtime/-/opal-runtime-1.0.11.tgz", - "integrity": "sha512-L+6pnRvXPlDtbamBRnJAnB9mEMXmsIQ/b+0r/2xJ5/n/nxheEkLo+Pm5QNQ08LEbEN9TI6/kedhIspqRRu6tXA==", - "dependencies": { - "glob": "6.0.4", - "xmlhttprequest": "1.8.0" - }, - "engines": { - "node": ">=8.11" - } - }, "node_modules/ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", @@ -3382,14 +3137,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -3518,9 +3265,9 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -3536,31 +3283,134 @@ "node": ">=6" } }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "engines": { - "node": ">=0.10.0" + "node_modules/pino": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.4.2.tgz", + "integrity": "sha512-PlXDeGhJZfAuVay+wtlS02s5j8uisQveZExYdAm9MwwxUQSz9R7Q78XtjM2tTa4sa5KJmygimZjZxXXuHgV6ew==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" + }, + "bin": { + "pino": "bin.js" } }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "node_modules/pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.2.0.tgz", + "integrity": "sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "node_modules/pino-pretty": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.0.1.tgz", + "integrity": "sha512-5gFIIeDu1niFlL0pBACerwDR8Ts+i4gO0W9S0jRoHVvaQluvGOW4cUaDmC+/dSTCoG4VqfOQhP0dwuDLd0qJ6A==", + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^2.1.1", + "fast-safe-stringify": "^2.1.1", + "help-me": "^4.0.1", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^4.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/readable-stream": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.2.0.tgz", + "integrity": "sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-pretty/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.0.0.tgz", + "integrity": "sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ==" + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/process-warning": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.0.0.tgz", + "integrity": "sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww==" }, "node_modules/progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "engines": { "node": ">=0.4.0" } @@ -3597,22 +3447,13 @@ } }, "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "duplexify": "^4.1.1", + "inherits": "^2.0.3", + "pump": "^3.0.0" } }, "node_modules/qs": { @@ -3637,13 +3478,10 @@ "inherits": "~2.0.0" } }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "engines": { - "node": ">=8" - } + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, "node_modules/range-parser": { "version": "1.2.1", @@ -3734,6 +3572,14 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -3791,42 +3637,6 @@ "node": ">= 0.10" } }, - "node_modules/remove-bom-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/remove-bom-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/remove-bom-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/remove-bom-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -3881,14 +3691,6 @@ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "deprecated": "https://github.com/lydell/resolve-url#deprecated" }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -3924,11 +3726,24 @@ "ret": "~0.1.10" } }, + "node_modules/safe-stable-stringify": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz", + "integrity": "sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA==", + "engines": { + "node": ">=10" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/secure-json-parse": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.5.0.tgz", + "integrity": "sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w==" + }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -4059,6 +3874,11 @@ "node": ">=0.10.0" } }, + "node_modules/should-proxy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/should-proxy/-/should-proxy-1.0.4.tgz", + "integrity": "sha512-RPQhIndEIVUCjkfkQ6rs6sOR6pkxJWCNdxtfG5pP0RVgUYbK5911kLTF0TNcCC0G3YCGd492rMollFT2aTd9iQ==" + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -4097,37 +3917,29 @@ ] }, "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "decompress-response": "^4.2.0", + "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, - "node_modules/simple-get/node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/simple-get/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -4295,6 +4107,14 @@ "node": ">=0.10.0" } }, + "node_modules/sonic-boom": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.0.tgz", + "integrity": "sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -4333,10 +4153,13 @@ "node": ">=0.10.0" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "node_modules/split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "engines": { + "node": ">= 10.x" + } }, "node_modules/static-extend": { "version": "0.1.2", @@ -4508,17 +4331,26 @@ "node": ">=4" } }, + "node_modules/thread-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.2.0.tgz", + "integrity": "sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ==", + "dependencies": { + "real-require": "^0.2.0" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dependencies": { - "readable-stream": "3" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "node_modules/through2-filter": { @@ -4530,7 +4362,7 @@ "xtend": "~4.0.0" } }, - "node_modules/through2-filter/node_modules/readable-stream": { + "node_modules/through2/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", @@ -4544,12 +4376,12 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/through2-filter/node_modules/safe-buffer": { + "node_modules/through2/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/through2-filter/node_modules/string_decoder": { + "node_modules/through2/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", @@ -4557,15 +4389,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/through2-filter/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -4608,14 +4431,6 @@ "node": ">=0.10.0" } }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -4660,47 +4475,6 @@ "node": ">= 0.10" } }, - "node_modules/to-through/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/to-through/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/to-through/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/to-through/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/to-utf8": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", - "integrity": "sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==" - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -4733,9 +4507,9 @@ } }, "node_modules/uglify-js": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz", - "integrity": "sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==", + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.2.tgz", + "integrity": "sha512-bbxglRjsGQMchfvXZNusUcYgiB9Hx2K4AHYXQy2DITZ9Rd+JzhX7+hoocE5Winr7z2oHvPsekkBwXtigvxevXg==", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -4799,14 +4573,6 @@ "node": ">=4" } }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -4859,6 +4625,14 @@ "node": ">=0.10.0" } }, + "node_modules/unxhr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz", + "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==", + "engines": { + "node": ">=8.11" + } + }, "node_modules/unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", @@ -4902,17 +4676,6 @@ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "deprecated": "Please see https://github.com/lydell/urix#deprecated" }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -4942,11 +4705,6 @@ "node": ">= 0.10" } }, - "node_modules/varint": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/varint/-/varint-0.0.3.tgz", - "integrity": "sha512-SZOWhAh1wbG6fxU5QJMudwrudDkVFCQJlcZEDFQoKdcpr0q2YG5VuS24WSA+w4m0N+9SNe1S2Zd5IdLWXaHyKQ==" - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -4998,6 +4756,56 @@ "node": ">= 0.10" } }, + "node_modules/vinyl-fs/node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/vinyl-fs/node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/vinyl-fs/node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, "node_modules/vinyl-fs/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -5025,15 +4833,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/vinyl-fs/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/vinyl-sourcemap": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", @@ -5112,14 +4911,6 @@ "node": ">=4" } }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -5134,15 +4925,11 @@ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" }, "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/yauzl": { @@ -5165,160 +4952,211 @@ }, "dependencies": { "@antora/asciidoc-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.3.4.tgz", - "integrity": "sha512-IQ0d/hnOCGZXzTYUwKAw2BlyRMI4Kg/zu7XejQ6ERIncjuUUv/+PhlzVxoJNT0r9uasJFHDlZ7l3X53Hn+MUuQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.1.tgz", + "integrity": "sha512-aW3aBVbPE3sXXrelgM392N87UhNT9JpIYcUV7DUegX0/9w8qybzdgkbrQjsaSwMstcR+7KK5muNoBr5dF+J1IQ==", "requires": { - "asciidoctor.js": "1.5.9", - "opal-runtime": "1.0.11" + "@antora/logger": "3.1.1", + "@antora/user-require-helper": "~2.0", + "@asciidoctor/core": "~2.2" } }, "@antora/cli": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-2.3.4.tgz", - "integrity": "sha512-KItaWFEf/X4LLY2XCidjD00oUp4Ay7y9Hu26+T8dPqV+qnMwOL+MGHhYXsJz+4JaeNJu1Ofwc4onmShpwHQruA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.1.tgz", + "integrity": "sha512-YmwuUgvWQt2Do3zAByMQW+a3GfAPkUs0k2OKVCiuAQD51TUyDoeK4qSE3lYMzpInKf9ps1DardBssSnibDYZXA==", "requires": { - "@antora/playbook-builder": "2.3.4", - "commander": "~6.1" + "@antora/logger": "3.1.1", + "@antora/playbook-builder": "3.1.1", + "@antora/user-require-helper": "~2.0", + "commander": "~9.4" } }, "@antora/content-aggregator": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.3.4.tgz", - "integrity": "sha512-ZwlGm/t90PUnGVo+pir71O+wC+gyXnVuhoAed+9bBLjsiGI7EGUzwUEXSZqHRSihPx5XLFj6pZinoCGX+uabcw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.1.tgz", + "integrity": "sha512-kktMWq9m/IX3X/AyQvFcw4cKEKoJfs9o5tcraA3pZgOPr3hJgf5BEnldeszxWDJ8dc4mzyYIaq6GZC+c8foB0A==", "requires": { - "@antora/expand-path-helper": "~1.0", + "@antora/expand-path-helper": "~2.0", + "@antora/logger": "3.1.1", + "@antora/user-require-helper": "~2.0", "braces": "~3.0", "cache-directory": "~2.0", - "camelcase-keys": "~6.2", - "fs-extra": "~8.1", - "isomorphic-git": "0.78.5", - "js-yaml": "~3.14", - "matcher": "~2.1", - "mime-types": "~2.1", - "multi-progress": "~2.0", - "picomatch": "~2.2", - "through2": "~4.0", - "vinyl": "~2.2", - "vinyl-fs": "~3.0" + "glob-stream": "~7.0", + "hpagent": "~1.0", + "isomorphic-git": "~1.19", + "js-yaml": "~4.1", + "multi-progress": "~4.0", + "picomatch": "~2.3", + "progress": "~2.0", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~2.2" } }, "@antora/content-classifier": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.3.4.tgz", - "integrity": "sha512-DR4I6dLSZEFOS3T0F/hYwLf3AGY2Rb3e9j8V8ygEFzdP8OySAAZWyTjjJPF4pJZqjWtqD7s7S1f5/cCI83977Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.1.tgz", + "integrity": "sha512-nhqo8VZpab4OuPwZHPAgjWO8uaNq37IzjipU0p86nKVbKcp6VL1Velj7JI1rpVjg/2FQKQ8x41UguySXN2rImw==", "requires": { - "@antora/asciidoc-loader": "2.3.4", + "@antora/asciidoc-loader": "3.1.1", + "@antora/logger": "3.1.1", + "mime-types": "~2.1", "vinyl": "~2.2" } }, "@antora/document-converter": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.3.4.tgz", - "integrity": "sha512-Fo2SKdX3BlNrvfQEBOi2II+YmYzdEqKQ5+lO2pzxJuNBfqN0kJJYYk30jFPR27h6QuU43U/XZgufyDt+FjfdZg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.1.tgz", + "integrity": "sha512-RNk1p9fI/CjANwwQ7BgLnSrbxxYh8kZV7SscPUptl32V7xUpbTMLebPEKPa3rl2C5qoalvJQNXLKfFRPMCqE7w==", "requires": { - "@antora/asciidoc-loader": "2.3.4" + "@antora/asciidoc-loader": "3.1.1" } }, "@antora/expand-path-helper": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-1.0.0.tgz", - "integrity": "sha512-hg3y6M3OvRTb7jtLAnwwloYDxafbyKYttcf16kGCXvP7Wqosh7c+Ag+ltaZ7VSebpzpphO/umb/BXdpU7rxapw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-2.0.0.tgz", + "integrity": "sha512-CSMBGC+tI21VS2kGW3PV7T2kQTM5eT3f2GTPVLttwaNYbNxDve08en/huzszHJfxo11CcEs26Ostr0F2c1QqeA==" + }, + "@antora/file-publisher": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.1.tgz", + "integrity": "sha512-J8CKp3q24KutImNq9JTyxRK8uq+pnBliW7g6XJ4tQbchbV8DPgz+hzOVkFyehUb8bmUbp5G+mt3LMt1zRQbZJw==", + "requires": { + "@antora/expand-path-helper": "~2.0", + "@antora/user-require-helper": "~2.0", + "gulp-vinyl-zip": "~2.5", + "vinyl": "~2.2", + "vinyl-fs": "~3.0" + } + }, + "@antora/logger": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.1.tgz", + "integrity": "sha512-V62YLE59z6KDQbCKjzHAv1zE7FHfT9pSwhLsHYJbWa2e8CGbGKflaR8hiDnvKSqs71VFxbdbkcOdbu7hAjGiEw==", + "requires": { + "@antora/expand-path-helper": "~2.0", + "pino": "~8.4", + "pino-pretty": "~9.0", + "sonic-boom": "~3.2" + } }, "@antora/navigation-builder": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.3.4.tgz", - "integrity": "sha512-55I7p9tNTernQ/YR1+mp6RRXMV5EcU8q20Tdodt3mazdm3ObTe9E9XVAvUDFmDzRA27D0eb06jVRwLoth1gHYA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.1.tgz", + "integrity": "sha512-/0BGQpttXaj0pvbYGdCiLFnOsygNYQBB+qjQsIbsgyGFFVlXJ2hF3zAHcGeVhCDVNa2EspeObP2lW7Mg3glRjw==", "requires": { - "@antora/asciidoc-loader": "2.3.4" + "@antora/asciidoc-loader": "3.1.1" } }, "@antora/page-composer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.3.4.tgz", - "integrity": "sha512-xY0O9X87DzcoP6k/5Jx55ysy0iQIhgav3q1JbOQK/FoYQYHbiQgmVWOjJdqh5nZw57ih3yE20JROPuYqOYuUZA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.1.tgz", + "integrity": "sha512-nByVOKnSN+vZnfmIqi1zqQmlDQS0qwQnauGkFq/S67pbeY8AYw2yyaKNrI+8GqVnJNaF3T/fWK7d7no1NY0acA==", "requires": { + "@antora/logger": "3.1.1", "handlebars": "~4.7", "require-from-string": "~2.0" } }, "@antora/playbook-builder": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.3.4.tgz", - "integrity": "sha512-iPjBndcoZhWqpN608WOkXKUUD94b3JX38igebshiT5/NRINJbeEclpdEX/gPv8D1Z1JcrSVGURZQO1uML76dkg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.1.tgz", + "integrity": "sha512-HQ+E9Zn7upeThKxrGozRzRSymb0wUwUAtqHaHscOfj7IuDWI7kmjHfmS9td10tU3Oe2VdXiInnOeXMPpN/lPYQ==", "requires": { "@iarna/toml": "~2.2", - "camelcase-keys": "~6.2", - "convict": "~6.0", - "js-yaml": "~3.14", - "json5": "~2.1" + "convict": "~6.2", + "js-yaml": "~4.1", + "json5": "~2.2" } }, "@antora/redirect-producer": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.3.4.tgz", - "integrity": "sha512-148amiLc+1Pod6kluAOBke8OATFWFUW3LZdTPFVfqX1lJolCp5ciOnGciy52sIIysSyVkQUjotEUhqGO9Af1EQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.1.tgz", + "integrity": "sha512-jK4H/fNu75mEFrZaZRWdRxnlQ+dFTyXIQm6zKS37Sa4UdwwudkOOa8IM3R06z9S8bmGJnr30dOw7mqNTLRycBw==", "requires": { - "@antora/asciidoc-loader": "2.3.4", "vinyl": "~2.2" } }, + "@antora/site-generator": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.1.tgz", + "integrity": "sha512-dHhsnsLqBSQiyzUPMVHmpe41XjX/SJor47aMUifCSHmq/i/GhZycyw8azf0KHiQ1Vj9D24ihck61KMOW9qQdog==", + "requires": { + "@antora/asciidoc-loader": "3.1.1", + "@antora/content-aggregator": "3.1.1", + "@antora/content-classifier": "3.1.1", + "@antora/document-converter": "3.1.1", + "@antora/file-publisher": "3.1.1", + "@antora/logger": "3.1.1", + "@antora/navigation-builder": "3.1.1", + "@antora/page-composer": "3.1.1", + "@antora/playbook-builder": "3.1.1", + "@antora/redirect-producer": "3.1.1", + "@antora/site-mapper": "3.1.1", + "@antora/site-publisher": "3.1.1", + "@antora/ui-loader": "3.1.1", + "@antora/user-require-helper": "~2.0" + } + }, "@antora/site-generator-default": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.3.4.tgz", - "integrity": "sha512-uRiFJ/nG5bxjDmFOur27ae7A1J7r+OFVocEwx+vVLRvVYfNHxYP0fI2uUrmJTci8xJ92NLH9VLHpfsHypsoq9Q==", - "requires": { - "@antora/asciidoc-loader": "2.3.4", - "@antora/content-aggregator": "2.3.4", - "@antora/content-classifier": "2.3.4", - "@antora/document-converter": "2.3.4", - "@antora/navigation-builder": "2.3.4", - "@antora/page-composer": "2.3.4", - "@antora/playbook-builder": "2.3.4", - "@antora/redirect-producer": "2.3.4", - "@antora/site-mapper": "2.3.4", - "@antora/site-publisher": "2.3.4", - "@antora/ui-loader": "2.3.4" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-3.1.1.tgz", + "integrity": "sha512-zCC/gegPqPgPeBkL/hnHwRW4Vl++sDmBWmn8jAgR0Qj7NpNU4vUHAS7ArsqpJvPJB4/6hXhhSqsJPxP1xkTySQ==", + "requires": { + "@antora/site-generator": "3.1.1" } }, "@antora/site-mapper": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.3.4.tgz", - "integrity": "sha512-GVghn6ausIWZlUfbEEdDD4YB7M1mWJAUMokyha9sE5w0gyYoWwukKWQiwCwk/JhvnwXunMLhEUm6y2nrHEmlLw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.1.tgz", + "integrity": "sha512-1ghRHVJ4k5ZdP5q/1SPP6rDyzyXWQs2F5D54sruvs6mNLaDVlb9usjRNfkLZdNko4tjfp5Blg9vDtKERenFQhg==", "requires": { - "@antora/content-classifier": "2.3.4", + "@antora/content-classifier": "3.1.1", "vinyl": "~2.2" } }, "@antora/site-publisher": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.3.4.tgz", - "integrity": "sha512-7xI/5OdjKq5tkdGzE0ABkl/QpIcgtnof+rnIWZweQKeQtA3LWutvEHtdIeXLQt0oNZmE/kf45FwC2XCg9/ptDg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.1.tgz", + "integrity": "sha512-08/XRnOvkx5RrUQvsodU3s0j1Pen4LfiyQ0yY2jF996Kweanj8YTJ41Y6hyxnJsNPEb9OcGU9trKDOPpm2F/Sw==", "requires": { - "@antora/expand-path-helper": "~1.0", - "fs-extra": "~8.1", - "gulp-vinyl-zip": "~2.2", - "vinyl": "~2.2", - "vinyl-fs": "~3.0" + "@antora/file-publisher": "3.1.1" } }, "@antora/ui-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.3.4.tgz", - "integrity": "sha512-eorTmZW7zc6ZHgGLt3Vrq7mzPuobPeJnyfli50/m/DIQ91slkqjPKUYGcq4paPEz6IWoa7LT2ZwtwA5KzMyTPg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.1.tgz", + "integrity": "sha512-Lu6IFtjtPPo+MjVTioNwpMzMY5KKMmmVAFjDofpQGt4RSSNc0KtK4g++T86OWhia/vvKVftmAPWzuYEhpwYIsw==", "requires": { - "@antora/expand-path-helper": "~1.0", - "bl": "~4.0", + "@antora/expand-path-helper": "~2.0", + "braces": "~3.0", "cache-directory": "~2.0", - "camelcase-keys": "~6.2", - "fs-extra": "~8.1", - "got": "~9.6", - "gulp-vinyl-zip": "~2.2", - "js-yaml": "~3.14", - "minimatch-all": "~1.1", - "through2": "~4.0", - "vinyl": "~2.2", - "vinyl-fs": "~3.0" + "glob-stream": "~7.0", + "gulp-vinyl-zip": "~2.5", + "hpagent": "~1.0", + "js-yaml": "~4.1", + "picomatch": "~2.3", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~2.2" + } + }, + "@antora/user-require-helper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-2.0.0.tgz", + "integrity": "sha512-5fMfBZfw4zLoFdDAPMQX6Frik90uvfD8rXOA4UpXPOUikkX4uT1Rk6m0/4oi8oS3fcjiIl0k/7Nc+eTxW5TcQQ==", + "requires": { + "@antora/expand-path-helper": "~2.0" + } + }, + "@asciidoctor/core": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.6.tgz", + "integrity": "sha512-TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ==", + "requires": { + "asciidoctor-opal-runtime": "0.3.3", + "unxhr": "1.0.1" } }, "@iarna/toml": { @@ -5336,24 +5174,19 @@ "resolved": "https://registry.npmjs.org/@neo4j-documentation/remote-include/-/remote-include-1.0.0.tgz", "integrity": "sha512-SprNp9XsWiMBC0T44vs3JUwEYhoyJlg+du5kP0f9RGewXrSeEgsr5tY7nQDa4Bou9iG0sBl0+2u4XZjiVMkiuw==" }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5412,12 +5245,9 @@ } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "arr-diff": { "version": "4.0.0", @@ -5444,12 +5274,13 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" }, - "asciidoctor.js": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/asciidoctor.js/-/asciidoctor.js-1.5.9.tgz", - "integrity": "sha512-k5JgwyV82TsiCpnYbDPReuHhzf/vRUt6NaZ+OGywkDDGeGG/CPfvN2Gd1MJ0iIZKDyuk4iJHOdY/2x1KBrWMzA==", + "asciidoctor-opal-runtime": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz", + "integrity": "sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ==", "requires": { - "opal-runtime": "1.0.11" + "glob": "7.1.3", + "unxhr": "1.0.1" } }, "assign-symbols": { @@ -5463,15 +5294,20 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, "async-lock": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.3.1.tgz", - "integrity": "sha512-zK7xap9UnttfbE23JmcrNIyueAn6jWshihJqA33U/hEnKprF/lVGBDsBv/bqLm2YMMl1DnpHhUY044eA0t1TUw==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.3.2.tgz", + "integrity": "sha512-phnXdS3RP7PPcmP6NWWzWMU0sLTeyvtZCxBPpZdkYE3seGLKSQZs9FrmVO/qwypq98FUtWWUEYxziLkdGk5nnA==" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -5514,20 +5350,10 @@ "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.4.tgz", - "integrity": "sha512-7tdr4EpSd7jJ6tuQ21vu2ke8w7pNEstzj1O8wwq6sNNzO3UDi5MA8Gny/gquCj7r2C6fHudg8tKRGyjRgmvNxQ==", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "file-uri-to-path": "1.0.0" } }, "body-parser": { @@ -5549,22 +5375,6 @@ "unpipe": "1.0.0" } }, - "bops": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.7.tgz", - "integrity": "sha512-oF8JFj2vZoTTzbS4haaB/37vqoJbZXxPBWmNdFONu3dUBW+zp7JcoIIYYd1r+4/YwFM8QUSR1u4rrPbtcdHsRg==", - "requires": { - "base64-js": "0.0.2", - "to-utf8": "0.0.1" - }, - "dependencies": { - "base64-js": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", - "integrity": "sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==" - } - } - }, "boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", @@ -5604,12 +5414,12 @@ } }, "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "buffer-crc32": { @@ -5651,35 +5461,6 @@ "xdg-basedir": "^3.0.0" } }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -5689,21 +5470,6 @@ "get-intrinsic": "^1.0.2" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", @@ -5894,14 +5660,6 @@ "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==" }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "requires": { - "mimic-response": "^1.0.0" - } - }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", @@ -5968,10 +5726,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, "commander": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", - "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==" + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" }, "component-emitter": { "version": "1.3.0", @@ -6025,12 +5788,12 @@ } }, "convict": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/convict/-/convict-6.0.1.tgz", - "integrity": "sha512-M4YNNq5NV4/VS8JhvBSHAokwvQRL4evEuU0VFe1GNPiqnj9TAkLXpf39ImCCVZlsp3CFp04bc/kRSWPGsJGJWg==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.3.tgz", + "integrity": "sha512-mTY04Qr7WrqiXifdeUYXr4/+Te4hPFWDvz6J2FVIKCLc2XBhq63VOSSYAKJ+unhZAYOAjmEdNswTOeHt7s++pQ==", "requires": { "lodash.clonedeep": "^4.5.0", - "yargs-parser": "^18.1.3" + "yargs-parser": "^20.2.7" } }, "cookie": { @@ -6081,6 +5844,11 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==" }, + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -6089,22 +5857,17 @@ "ms": "2.0.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" - }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" }, "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "^3.1.0" } }, "deep-extend": { @@ -6112,11 +5875,6 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, "define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -6164,43 +5922,14 @@ "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" }, "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", "stream-shift": "^1.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "ee-first": { @@ -6226,21 +5955,21 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", @@ -6440,6 +6169,21 @@ } } }, + "fast-copy": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.7.tgz", + "integrity": "sha512-ozrGwyuCTAy7YgFCua8rmqmytECYk/JYAMXcswOcm0qvGoE3tPb7ivBeIHTOK2DiapBhDZgacIhzhQIKU5TCfA==" + }, + "fast-redact": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", + "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==" + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -6537,16 +6281,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, "fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", @@ -6554,44 +6288,6 @@ "requires": { "graceful-fs": "^4.1.11", "through2": "^2.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, "fs.realpath": { @@ -6624,36 +6320,20 @@ "has-symbols": "^1.0.3" } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" }, - "git-apply-delta": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/git-apply-delta/-/git-apply-delta-0.0.7.tgz", - "integrity": "sha512-P99rChCrhraaY7D6E4NUotfhjzRRNvlf3Mumw9BHgOJFQTfYHhTwAgSTEtcBvb25iXttvMRLEHtzyz9mE2gLjQ==", - "requires": { - "bops": "~0.0.6", - "varint": "0.0.3" - } - }, "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { + "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "2 || 3", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -6678,20 +6358,20 @@ } }, "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-7.0.0.tgz", + "integrity": "sha512-evR4kvr6s0Yo5t4CD4H171n4T8XcnPFznvsbeN8K9FPzc0Q0wYqcOWyGtck2qcvJSLXKnU6DnDyfmbDDabYvRQ==", "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", + "extend": "^3.0.2", + "glob": "^7.2.0", + "glob-parent": "^6.0.2", "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "ordered-read-streams": "^1.0.1", + "pumpify": "^2.0.1", + "readable-stream": "^3.6.0", + "remove-trailing-separator": "^1.1.0", + "to-absolute-glob": "^2.0.2", + "unique-stream": "^2.3.1" }, "dependencies": { "glob": { @@ -6707,31 +6387,12 @@ "path-is-absolute": "^1.0.0" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "requires": { - "safe-buffer": "~5.1.0" + "is-glob": "^4.0.3" } } } @@ -6744,43 +6405,15 @@ "ini": "^1.3.4" } }, - "globalyzer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.4.tgz", - "integrity": "sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==" - }, - "globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "gulp-vinyl-zip": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.2.1.tgz", - "integrity": "sha512-9lwCZUkrENzP649hVQB2r+8GgeGtVrqA2fEeVDX6aYr6+yJjdczWu0r1C6WvbZdzhXcA61MtR5MEyjR9a3D7cw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.5.0.tgz", + "integrity": "sha512-KPi5/2SUmkXXDvKU4L2U1dkPOP03SbhONTOgNZlL23l9Yopt+euJ1bBXwWrSMbsyh3JLW/TYuC8CI4c4Kq4qrw==", "requires": { "queue": "^4.2.1", "through": "^2.3.8", @@ -6789,44 +6422,6 @@ "vinyl-fs": "^3.0.3", "yauzl": "^2.2.1", "yazl": "^2.2.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, "handlebars": { @@ -6896,10 +6491,49 @@ } } }, - "http-cache-semantics": { + "help-me": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved": "https://registry.npmjs.org/help-me/-/help-me-4.1.0.tgz", + "integrity": "sha512-5HMrkOks2j8Fpu2j5nTLhrBhT7VwHwELpqnSnx802ckofys5MO2SkLpgSz3dgNFHV7IYFX2igm5CM75SmuYidw==", + "requires": { + "glob": "^8.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "hpagent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.0.0.tgz", + "integrity": "sha512-SCleE2Uc1bM752ymxg8QXYGW0TWtAV4ZW3TqH1aOnyi6T6YW2xadCcclm5qeVjvMvfQ2RKNtZxO7uVb9CTPt1A==" }, "http-errors": { "version": "2.0.0", @@ -7172,69 +6806,45 @@ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" }, "isomorphic-git": { - "version": "0.78.5", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-0.78.5.tgz", - "integrity": "sha512-LrF5t9x7RdFeg84NsYpZo9qF1MZeb56LpBm6Jv47qMjnWMv0Il/3wPTA8I/lUYywgVbvF/e7xypHauj5auKW3w==", + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.19.3.tgz", + "integrity": "sha512-s48mkkojyH98CpnXXN78vOV21Gl5s/6xVnwxZhP1TiXRkJsoi1kCqzNxFxyID9gQ0WFAPw0pNHRxqyb4DtJUfg==", "requires": { "async-lock": "^1.1.0", "clean-git-ref": "^2.0.1", "crc-32": "^1.2.0", "diff3": "0.0.3", - "git-apply-delta": "0.0.7", - "globalyzer": "^0.1.4", - "globrex": "^0.1.2", "ignore": "^5.1.4", - "marky": "^1.2.1", "minimisted": "^2.0.0", "pako": "^1.0.10", "pify": "^4.0.1", "readable-stream": "^3.4.0", "sha.js": "^2.4.9", - "simple-get": "^3.0.2" + "simple-get": "^4.0.1" } }, + "joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==" + }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" }, "kind-of": { "version": "6.0.3", @@ -7333,11 +6943,6 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -7346,19 +6951,6 @@ "object-visit": "^1.0.0" } }, - "marky": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.4.tgz", - "integrity": "sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==" - }, - "matcher": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", - "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -7477,9 +7069,9 @@ } }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" }, "minimatch": { "version": "3.1.2", @@ -7489,14 +7081,6 @@ "brace-expansion": "^1.1.7" } }, - "minimatch-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minimatch-all/-/minimatch-all-1.1.0.tgz", - "integrity": "sha512-g1wQmOhBRTqQw9dqkpkhKMT6LvJREygVzRRTqJUe/B6NCtM1+exYpzjR9mS0vGj7q3gbHdHpqNVoCXtZk6qk6A==", - "requires": { - "minimatch": "^3.0.2" - } - }, "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", @@ -7525,12 +7109,10 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "multi-progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-2.0.0.tgz", - "integrity": "sha512-ArGgS/Qib/X2FWfE6CVpic+Z0C9kQuhiK9HQtz5pcCfsXwMzoNnXP6FJlplNAMsJuoLtWA8bAoPV36ezT2IFGw==", - "requires": { - "progress": "^1.1.8" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-4.0.0.tgz", + "integrity": "sha512-9zcjyOou3FFCKPXsmkbC3ethv51SFPoA4dJD6TscIp2pUmy26kBDZW6h9XofPELrzseSkuD7r0V+emGEeo39Pg==", + "requires": {} }, "nan": { "version": "2.16.0", @@ -7611,11 +7193,6 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, "now-and-later": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", @@ -7639,44 +7216,6 @@ "requires": { "nodemon": "^1.18.7", "through2": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, "object-copy": { @@ -7759,13 +7298,13 @@ } }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -7777,6 +7316,11 @@ "isobject": "^3.0.1" } }, + "on-exit-leak-free": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", + "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" + }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -7793,15 +7337,6 @@ "wrappy": "1" } }, - "opal-runtime": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/opal-runtime/-/opal-runtime-1.0.11.tgz", - "integrity": "sha512-L+6pnRvXPlDtbamBRnJAnB9mEMXmsIQ/b+0r/2xJ5/n/nxheEkLo+Pm5QNQ08LEbEN9TI6/kedhIspqRRu6tXA==", - "requires": { - "glob": "6.0.4", - "xmlhttprequest": "1.8.0" - } - }, "ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", @@ -7839,11 +7374,6 @@ } } }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -7944,34 +7474,123 @@ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, + "pino": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.4.2.tgz", + "integrity": "sha512-PlXDeGhJZfAuVay+wtlS02s5j8uisQveZExYdAm9MwwxUQSz9R7Q78XtjM2tTa4sa5KJmygimZjZxXXuHgV6ew==", + "requires": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" + } + }, + "pino-abstract-transport": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz", + "integrity": "sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==", + "requires": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.2.0.tgz", + "integrity": "sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==", + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + } + } + } + }, + "pino-pretty": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.0.1.tgz", + "integrity": "sha512-5gFIIeDu1niFlL0pBACerwDR8Ts+i4gO0W9S0jRoHVvaQluvGOW4cUaDmC+/dSTCoG4VqfOQhP0dwuDLd0qJ6A==", + "requires": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^2.1.1", + "fast-safe-stringify": "^2.1.1", + "help-me": "^4.0.1", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^4.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.2.0.tgz", + "integrity": "sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==", + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + } + } + }, + "pino-std-serializers": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.0.0.tgz", + "integrity": "sha512-mMMOwSKrmyl+Y12Ri2xhH1lbzQxwwpuru9VjyJpgFIH4asSj88F2csdMwN6+M5g1Ll4rmsYghHLQJw81tgZ7LQ==" + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "process-warning": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.0.0.tgz", + "integrity": "sha512-+MmoAXoUX+VTHAlwns0h+kFUWFs/3FZy+ZuchkgjyOu3oioLAo2LB5aCfKPh2+P9O18i3m43tUEv3YqttSy0Ww==" + }, "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "proxy-addr": { "version": "2.0.7", @@ -8002,24 +7621,13 @@ } }, "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz", + "integrity": "sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==", "requires": { - "duplexify": "^3.6.0", + "duplexify": "^4.1.1", "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "pump": "^3.0.0" } }, "qs": { @@ -8038,10 +7646,10 @@ "inherits": "~2.0.0" } }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==" + "quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, "range-parser": { "version": "1.2.1", @@ -8119,6 +7727,11 @@ } } }, + "real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -8162,44 +7775,6 @@ "remove-bom-buffer": "^3.0.0", "safe-buffer": "^5.1.0", "through2": "^2.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, "remove-trailing-separator": { @@ -8240,14 +7815,6 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -8266,11 +7833,21 @@ "ret": "~0.1.10" } }, + "safe-stable-stringify": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.0.tgz", + "integrity": "sha512-eehKHKpab6E741ud7ZIMcXhKcP6TSIezPkNZhy5U8xC6+VvrRdUA2tMgxGxaGl4cz7c2Ew5+mg5+wNB16KQqrA==" + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "secure-json-parse": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.5.0.tgz", + "integrity": "sha512-ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w==" + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -8375,6 +7952,11 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" }, + "should-proxy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/should-proxy/-/should-proxy-1.0.4.tgz", + "integrity": "sha512-RPQhIndEIVUCjkfkQ6rs6sOR6pkxJWCNdxtfG5pP0RVgUYbK5911kLTF0TNcCC0G3YCGd492rMollFT2aTd9iQ==" + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -8396,28 +7978,13 @@ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "requires": { - "decompress-response": "^4.2.0", + "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" - }, - "dependencies": { - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - } } }, "snapdragon": { @@ -8552,6 +8119,14 @@ } } }, + "sonic-boom": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.0.tgz", + "integrity": "sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA==", + "requires": { + "atomic-sleep": "^1.0.0" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -8582,10 +8157,10 @@ "extend-shallow": "^3.0.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" }, "static-extend": { "version": "0.1.2", @@ -8718,26 +8293,26 @@ "execa": "^0.7.0" } }, + "thread-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.2.0.tgz", + "integrity": "sha512-rUkv4/fnb4rqy/gGy7VuqK6wE1+1DOCOWy4RMeaV69ZHMP11tQKZvZSip1yTgrKCMZzEMcCL/bKfHvSfDHx+iQ==", + "requires": { + "real-require": "^0.2.0" + } + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "requires": { - "readable-stream": "3" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" }, "dependencies": { "readable-stream": { @@ -8766,18 +8341,18 @@ "requires": { "safe-buffer": "~5.1.0" } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } } } }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -8810,11 +8385,6 @@ } } }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -8847,51 +8417,8 @@ "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", "requires": { "through2": "^2.0.3" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, - "to-utf8": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", - "integrity": "sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==" - }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -8915,9 +8442,9 @@ } }, "uglify-js": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz", - "integrity": "sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==", + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.2.tgz", + "integrity": "sha512-bbxglRjsGQMchfvXZNusUcYgiB9Hx2K4AHYXQy2DITZ9Rd+JzhX7+hoocE5Winr7z2oHvPsekkBwXtigvxevXg==", "optional": true }, "unc-path-regex": { @@ -8965,11 +8492,6 @@ "crypto-random-string": "^1.0.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -9011,6 +8533,11 @@ } } }, + "unxhr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz", + "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==" + }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", @@ -9043,14 +8570,6 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "requires": { - "prepend-http": "^2.0.0" - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -9071,11 +8590,6 @@ "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==" }, - "varint": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/varint/-/varint-0.0.3.tgz", - "integrity": "sha512-SZOWhAh1wbG6fxU5QJMudwrudDkVFCQJlcZEDFQoKdcpr0q2YG5VuS24WSA+w4m0N+9SNe1S2Zd5IdLWXaHyKQ==" - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -9118,6 +8632,53 @@ "vinyl-sourcemap": "^1.1.0" }, "dependencies": { + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -9144,15 +8705,6 @@ "requires": { "safe-buffer": "~5.1.0" } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } } } }, @@ -9221,11 +8773,6 @@ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==" }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==" - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -9237,13 +8784,9 @@ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" }, "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" }, "yauzl": { "version": "2.10.0", @@ -9263,4 +8806,4 @@ } } } -} +} \ No newline at end of file diff --git a/docs/package.json b/docs/package.json index c2a56dcf6..a99ba8e6e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -19,8 +19,8 @@ } }, "dependencies": { - "@antora/cli": "^2.3.3", - "@antora/site-generator-default": "^2.3.3", + "@antora/cli": "^3.1.1", + "@antora/site-generator-default": "^3.1.1", "@neo4j-documentation/macros": "^1.0.0", "@neo4j-documentation/remote-include": "^1.0.0", "express": "^4.17.1", diff --git a/package.json b/package.json index de9976671..b13d38ade 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,10 @@ { "name": "neodash", - "version": "2.1.5", + "version": "2.1.6", "description": "NeoDash - Neo4j Dashboard Builder", "neo4jDesktop": { "apiVersion": "^1.2.0" }, - "main": "index.js", "repository": { "type": "git", "url": "https://github.com/neo4j-labs/neodash/" @@ -22,17 +21,15 @@ } ], "scripts": { - "dev": "npx webpack-dev-server --mode development", - "debug": "npx --node-options='--inspect' webpack-dev-server --mode development", - "build": "npx webpack --mode production && cp -r public/* dist/", - "sync": "aws s3 sync --acl public-read build s3://neodash.graphapp.io/preview", - "test": "npx cypress open", - "test-headless": "npx cypress run" + "dev": "yarn webpack-dev-server --mode development", + "debug": "yarn --node-options='--inspect' webpack-dev-server --mode development", + "build": "yarn webpack --mode production && cp -r public/* dist/", + "test": "yarn cypress open", + "test-headless": "yarn cypress run" }, "keywords": [], - "author": "Niels de Jong", + "author": "Neo4j Labs", "dependencies": { - "@babel/runtime": "^7.14.6", "@material-ui/core": "^4.12.3", "@material-ui/icons": "^4.11.2", "@material-ui/lab": "^4.0.0-alpha.60", @@ -45,18 +42,20 @@ "@nivo/geo": "^0.79.1", "@nivo/line": "^0.79.1", "@nivo/pie": "^0.79.1", + "@nivo/radar": "^0.79.1", "@nivo/sankey": "^0.79.1", "@nivo/sunburst": "^0.79.1", "@nivo/treemap": "^0.79.1", "babel-runtime": "^6.26.0", "classnames": "^2.3.1", "codemirror": "^5.65.3", - "cypher-codemirror": "github:nielsdejong/cypher-editor#c0eff97fc97f22355e60b57fb6f8dc26b16f9a5f", + "cypher-codemirror": "1.1.9", "d3-scale-chromatic": "^3.0.0", "dom-to-image": "^2.6.0", "leaflet": "^1.7.1", - "lodash": "^4.17.21", - "material-ui-color-picker": "github:nielsdejong/material-ui-color-picker#c1bae552c1daf81952bf0478d7f71c1a416527d3", + "lodash.debounce": "^4.0.8", + "lodash.isequal": "^4.5.0", + "material-ui-color-picker": "^3.5.1", "neo4j-client-sso": "^1.2.2", "react": "^17.0.2", "react-cool-dimensions": "^2.0.7", @@ -65,16 +64,15 @@ "react-grid-layout": "^1.3.4", "react-leaflet": "^3.2.5", "react-leaflet-cluster": "^1.0.4", - "react-leaflet-enhanced-marker": "github:nielsdejong/react-leaflet-enhanced-marker#603a7d73dc9b13a31ab1e8abfd932d63263b4af0", + "react-leaflet-enhanced-marker": "^1.0.21", "react-leaflet-heatmap-layer-v3": "^3.0.3-beta-1", "react-markdown": "^8.0.0", "react-redux": "^7.2.6", - "redux-devtools-extension": "^2.13.9", "redux-persist": "^6.0.0", "redux-thunk": "^2.4.1", "remark-gfm": "^3.0.1", "reselect": "^4.1.5", - "use-neo4j": "^0.3.6" + "use-neo4j": "^0.3.13" }, "devDependencies": { "@babel/cli": "^7.16.8", @@ -86,6 +84,7 @@ "@babel/register": "^7.16.9", "@emotion/react": "^11.7.1", "@emotion/styled": "^11.6.0", + "@redux-devtools/extension": "^3.2.3", "babel-loader": "^8.2.3", "css-loader": "^3.6.0", "cypress": "^9.5.3", diff --git a/public/index.html b/public/index.html index e58df524e..0c9cc4dd5 100644 --- a/public/index.html +++ b/public/index.html @@ -25,7 +25,7 @@ Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will work correctly both with client-side routing and a non-root public URL. - Learn how to configure a non-root public URL by running `npm run build`. + Learn how to configure a non-root public URL by running `yarn run build`. --> diff --git a/public/style.css b/public/style.css index 0bb304213..18e7162b0 100644 --- a/public/style.css +++ b/public/style.css @@ -195,5 +195,5 @@ } .react-grid-layout { - overflow: hidden; + overflow-x: hidden; } \ No newline at end of file diff --git a/release-notes.md b/release-notes.md index ac1a1cc32..f148c25d1 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,16 +1,20 @@ -## NeoDash 2.1.5 -Added *New* Sankey charts: -- Visualize nodes and relationships as a flow diagram. -- Select a customizable flow value from relationship properties. -- Configure a variety of style customizations. +## NeoDash 2.1.6 +New features: +- Added *Radar Charts/Spider Charts*. +- Added optional markdown description for each report, to be displayed via the header. -Parameter select: -- Fixed bug where values would randomly be deleted after changing the parameter. -- Added option to customize the number of suggested values when a user enters (part of) a property value. -- Added option to customize search type (CONTAINS, STARTS WITH, or ENDS WITH). -- Added option to enable/disable case-sensitive search. -- Added option to enable/disable removing duplicate suggestions. +Extensions: +- Added option to provide a custom map provider for map charts. +- Added support for default values in parameter selectors. +- Added documentation on deep-linking into NeoDash. +- Added tick-rotation customization for line charts. +- Added option to have children in the sunburst chart inherit colors from their parents. -Miscellaneous: -- Extended documentation with examples on running NeoDash in Kubernetes. -- Fixed issue where duplicate database names were visible when running NeoDash on an on-prem Neo4j cluster. \ No newline at end of file +Improvements: +- Rewiring of the internal query/rendering engine - resulting in far fewer query executions and a smoother UX. +- Changed package manager from `npm` to `yarn`, and bumped node version to 18. Cleaned up `package.json`. +- Reduced flaky behaviour in parameter selectors. +- Added cycle-detection logic for sankey charts. +- Fixed report documentation pop-up to open link in a new window. + +For a complete version history, see the [Changelog](https://github.com/neo4j-labs/neodash/blob/master/changelog.md). diff --git a/src/application/Application.tsx b/src/application/Application.tsx index 050bcee44..8b9950151 100644 --- a/src/application/Application.tsx +++ b/src/application/Application.tsx @@ -15,7 +15,7 @@ import NeoAboutModal from '../modal/AboutModal'; import { NeoUpgradeOldDashboardModal } from '../modal/UpgradeOldDashboardModal'; import { loadDashboardThunk } from '../dashboard/DashboardThunks'; import { NeoLoadSharedDashboardModal } from '../modal/LoadSharedDashboardModal'; -import { downloadComponentAsImage } from '../chart/util/ChartUtils'; +import { downloadComponentAsImage } from '../chart/ChartUtils'; import NeoReportHelpModal from '../modal/ReportHelpModal'; /** diff --git a/src/application/ApplicationSelectors.ts b/src/application/ApplicationSelectors.ts index bcc1f7fbb..94d1d4a28 100644 --- a/src/application/ApplicationSelectors.ts +++ b/src/application/ApplicationSelectors.ts @@ -1,5 +1,5 @@ import { initialState } from "../dashboard/DashboardReducer"; -import _ from 'lodash'; +import isEqual from 'lodash.isequal'; /** * Selectors define a way to retrieve parts of the global application state for a sub-component. @@ -86,7 +86,7 @@ export const applicationHasCachedDashboard = (state: any) => { if (state.application.connected) { return false; } - return !_.isEqual(state.dashboard, initialState); + return !isEqual(state.dashboard, initialState); } /** diff --git a/src/application/ApplicationThunks.ts b/src/application/ApplicationThunks.ts index faa2bb6ba..11ee5a590 100644 --- a/src/application/ApplicationThunks.ts +++ b/src/application/ApplicationThunks.ts @@ -5,7 +5,7 @@ import { NEODASH_VERSION } from "../dashboard/DashboardReducer"; import { loadDashboardFromNeo4jByNameThunk, loadDashboardFromNeo4jByUUIDThunk, loadDashboardThunk, upgradeDashboardVersion } from "../dashboard/DashboardThunks"; import { createNotificationThunk } from "../page/PageThunks"; import { QueryStatus, runCypherQuery } from "../report/ReportQueryRunner"; -import { updateGlobalParametersThunk, updateGlobalParameterThunk } from "../settings/SettingsThunks"; +import { setPageNumberThunk, updateGlobalParametersThunk, updateGlobalParameterThunk } from "../settings/SettingsThunks"; import { setConnected, setConnectionModalOpen, setConnectionProperties, setDesktopConnectionProperties, resetShareDetails, setShareDetailsFromUrl, setWelcomeScreenOpen, setDashboardToLoadAfterConnecting, @@ -66,7 +66,9 @@ export const createConnectionThunk = (protocol, url, port, database, username, p dispatch(createNotificationThunk("Unknown Connection Error", "Check the browser console.")); } } - runCypherQuery(driver, database, "RETURN true as connected", {}, {}, ["connected"], 1, () => { return }, (records) => validateConnection(records)) + const query = "RETURN true as connected"; + const parameters = {} + runCypherQuery(driver, database, query, parameters, 1, () => { return }, (records) => validateConnection(records)) } catch (e) { dispatch(createNotificationThunk("Unable to establish connection", e)); } @@ -259,6 +261,12 @@ export const loadApplicationConfigThunk = () => async (dispatch: any, getState: } }); + const page = urlParams.get('page'); + if(page !== "" && page !== null){ + if(!isNaN(page)){ + dispatch(setPageNumberThunk(parseInt(page))); + } + } const clearNotificationAfterLoad = true; dispatch(setSSOEnabled(config['ssoEnabled'], config["ssoDiscoveryUrl"])); const state = getState(); diff --git a/src/card/Card.tsx b/src/card/Card.tsx index 3e6cd23d8..e60db4f31 100644 --- a/src/card/Card.tsx +++ b/src/card/Card.tsx @@ -128,7 +128,6 @@ const NeoCard = ({ database={database} width={report.width} height={report.height} - widthPx={width} heightPx={height} fields={report.fields} type={report.type} diff --git a/src/card/CardThunks.ts b/src/card/CardThunks.ts index cb1a2c51a..9fe654a17 100644 --- a/src/card/CardThunks.ts +++ b/src/card/CardThunks.ts @@ -1,8 +1,7 @@ import { updateReportTitle, updateReportQuery, updateSelection, updateReportSize, updateReportRefreshRate, updateCypherParameters, updateFields, updateReportType, updateReportSetting, toggleCardSettings, clearSelection, updateAllSelections } from "./CardActions"; import { createNotificationThunk } from "../page/PageThunks"; -import _ from 'lodash'; import { DEFAULT_NODE_LABELS, REPORT_TYPES, SELECTION_TYPES } from "../config/ReportConfig"; - +import isEqual from 'lodash.isequal'; export const updateReportTitleThunk = (index, title) => (dispatch: any, getState: any) => { try { @@ -75,7 +74,7 @@ export const updateFieldsThunk = (index, fields) => (dispatch: any, getState: an // If the new set of fields is not equal to the current set of fields, we ned to update the field selection. - if (!_.isEqual(oldFields, fields) || Object.keys(oldSelection).length === 0) { + if (!isEqual(oldFields, fields) || Object.keys(oldSelection).length === 0) { selectables.forEach((selection, i) => { if (fields.includes(oldSelection[selection])) { // If the current selection is still present in the new set of fields, no need to reset. diff --git a/src/card/settings/CardSettingsContent.tsx b/src/card/settings/CardSettingsContent.tsx index 12a5971b5..beb54e0ef 100644 --- a/src/card/settings/CardSettingsContent.tsx +++ b/src/card/settings/CardSettingsContent.tsx @@ -6,7 +6,6 @@ import debounce from 'lodash/debounce'; import { useCallback } from 'react'; import NeoField from '../../component/field/Field'; import NeoCodeEditorComponent from '../../component/editor/CodeEditorComponent'; -import { CARD_SIZES } from '../../config/CardConfig'; const NeoCardSettingsContent = ({ query, database, reportSettings, refreshRate, type, diff --git a/src/card/settings/custom/CardSettingsContentPropertySelect.tsx b/src/card/settings/custom/CardSettingsContentPropertySelect.tsx index fc59e7ad0..8c122b315 100644 --- a/src/card/settings/custom/CardSettingsContentPropertySelect.tsx +++ b/src/card/settings/custom/CardSettingsContentPropertySelect.tsx @@ -38,12 +38,10 @@ const NeoCardSettingsContentPropertySelect = ({ type, database, settings, onRepo // Define query callback to allow reports to get extra data on interactions. const queryCallback = useCallback( (query, parameters, setRecords) => { - debouncedRunCypherQuery(driver, database, query, parameters, {}, [], 10, + debouncedRunCypherQuery(driver, database, query, parameters, 10, (status) => { status == QueryStatus.NO_DATA ? setRecords([]) : null }, (result => setRecords(result)), - () => { return }, false, - false, false, - [], [], [], [], null); + () => { return }); }, [], ); diff --git a/src/card/view/CardView.tsx b/src/card/view/CardView.tsx index 7711a484a..8c774b43b 100644 --- a/src/card/view/CardView.tsx +++ b/src/card/view/CardView.tsx @@ -10,7 +10,7 @@ import PlayCircleFilledIcon from '@material-ui/icons/PlayCircleFilled'; import debounce from 'lodash/debounce'; import { CARD_FOOTER_HEIGHT, CARD_HEADER_HEIGHT } from '../../config/CardConfig'; -import { downloadComponentAsImage } from '../../chart/util/ChartUtils'; +import { downloadComponentAsImage } from '../../chart/ChartUtils'; const NeoCardView = ({ title, database, query, globalParameters, widthPx, heightPx, fields, active, setActive, @@ -26,6 +26,7 @@ const NeoCardView = ({ title, database, query, globalParameters, const reportHeader = { const [text, setText] = React.useState(title); + const [descriptionModalOpen, setDescriptionModalOpen] = React.useState(false); // Ensure that we only trigger a text update event after the user has stopped typing. const debouncedTitleUpdate = useCallback( @@ -32,7 +36,7 @@ const NeoCardViewHeader = ({ title, editable, onTitleUpdate, fullscreenEnabled, }, [title]) const cardTitle = <> - +
{editable ?
@@ -59,6 +63,8 @@ const NeoCardViewHeader = ({ title, editable, onTitleUpdate, fullscreenEnabled,
+ const descriptionEnabled = description && description.length > 0; + const settingsButton = @@ -85,13 +91,37 @@ const NeoCardViewHeader = ({ title, editable, onTitleUpdate, fullscreenEnabled, - return - {(downloadImageEnabled) ? downloadImageButton : <>} - {fullscreenEnabled ? (expanded ? unMaximizeButton : maximizeButton) : <>} - {editable ? settingsButton : <>} - } - title={cardTitle} /> + const descriptionButton = + setDescriptionModalOpen(true)} aria-label="details"> + + + + + return <> + setDescriptionModalOpen(false)} aria-labelledby="form-dialog-title"> + + {title} + setDescriptionModalOpen(false)} style={{ padding: "3px", float: "right" }}> + + + + + + +
+ +
+
+
+ + {(downloadImageEnabled) ? downloadImageButton : <>} + {fullscreenEnabled ? (expanded ? unMaximizeButton : maximizeButton) : <>} + {descriptionEnabled ? descriptionButton : <>} + {editable ? settingsButton : <>} + } + title={cardTitle} /> + } export default NeoCardViewHeader; diff --git a/src/chart/BarChart.tsx b/src/chart/BarChart.tsx deleted file mode 100644 index 53129d46d..000000000 --- a/src/chart/BarChart.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; -// import BarReport from "@graphapps/charts/dist/components/reports/bar"; -import { ChartProps } from './Chart'; -import BarVisualization from './visualizations/BarVisualization'; - - -/** - * Embeds a BarReport (from Charts) into NeoDash. - * This visualization was extracted from https://github.com/neo4j-labs/charts. - */ -const NeoBarChart = (props: ChartProps) => { - - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { - return <>No data, re-run the report. - } - return -} - -export default NeoBarChart; \ No newline at end of file diff --git a/src/chart/ChartUtils.ts b/src/chart/ChartUtils.ts new file mode 100644 index 000000000..792eb6494 --- /dev/null +++ b/src/chart/ChartUtils.ts @@ -0,0 +1,317 @@ +import domtoimage from 'dom-to-image'; + + + + + +/** + * Converts a neo4j record entry to a readable string representation. + */ +export const convertRecordObjectToString = (entry) => { + if (entry == null || entry == undefined) { + return entry; + } + const className = entry.__proto__.constructor.name; + if (className == "String") { + return entry; + } else if (valueIsNode(entry)) { + return convertNodeToString(entry); + } else if (valueIsRelationship(entry)) { + return convertRelationshipToString(entry); + } else if (valueIsPath(entry)) { + return convertPathToString(entry); + } + return entry.toString(); +} + +/** + * Converts a neo4j node record entry to a readable string representation. + * if it's a fieldType =="Node" + * Then, return + * 1. 'name' property, if it exists, + * 2. the 'title' property, if it exists, + * 3. the 'id' property, if it exists... + * 4. the 'uid' property, if it exists.. + * 5. the ({labels}}, if they exist, + * 6. Node(id). + */ +const convertNodeToString = (nodeEntry => { + if (nodeEntry.properties.name) { + return nodeEntry.labels + "(" + nodeEntry.properties.name + ")"; + } + if (nodeEntry.properties.title) { + return nodeEntry.labels + "(" + nodeEntry.properties.title + ")"; + } + if (nodeEntry.properties.id) { + return nodeEntry.labels + "(" + nodeEntry.properties.id + ")"; + } + if (nodeEntry.properties.uid) { + return nodeEntry.labels + "(" + nodeEntry.properties.uid + ")"; + } + return nodeEntry.labels + "(" + "_id=" + nodeEntry.identity + ")"; +}); + + +// if it's a fieldType == "Relationship" +const convertRelationshipToString = (relEntry => { + return relEntry.toString(); +}); + +// if it's a fieldType == "Path" +const convertPathToString = (pathEntry => { + return pathEntry.toString(); +}); +// Anything else, return the string representation of the object. + + + +/* HELPER FUNCTIONS FOR DETERMINING TYPE OF FIELD RETURNED FROM NEO4J */ +export function valueIsArray(value) { + const className = value.__proto__.constructor.name; + return className == "Array"; +} + +export function valueIsNode(value) { + // const className = value.__proto__.constructor.name; + // return className == "Node"; + return (value && value["labels"] && value["identity"] && value["properties"]); +} + +export function valueIsRelationship(value) { + // const className = value.__proto__.constructor.name; + // return className == "Relationship"; + return (value && value["type"] && value["start"] && value["end"] && value["identity"] && value["properties"]); +} + +export function valueIsPath(value) { + // const className = value.__proto__.constructor.name; + // return className == "Path" + return (value && value["start"] && value["end"] && value["segments"] && value["length"]); +} + +export function valueisPoint(value) { + // Look at the properties and identify the type. + return (value && value["x"] && value["y"] && value["srid"]); +} + +export function valueIsObject(value) { + // TODO - this will not work in production builds. Need alternative. + const className = value.__proto__.constructor.name; + return className == "Object"; +} + +export function getRecordType(value) { + // mui data-grid native column types are: 'string' (default), + // 'number', 'date', 'dateTime', 'boolean' and 'singleSelect' + // https://v4.mui.com/components/data-grid/columns/#column-types + // Type singleSelect is not implemented here + if (value === true || value === false) { + return 'boolean'; + } else if (value === undefined) { + return 'undefined'; + } else if (value === null) { + return 'null'; + } else if (value.__isInteger__) { + return 'integer'; + } else if (typeof (value) == "number") { + return 'number'; + } else if (value.__isDate__) { + return 'date'; + } else if (value.__isDateTime__) { + return 'dateTime'; + } else if (valueIsNode(value)) { + return 'node'; + } else if (valueIsRelationship(value)) { + return 'relationship'; + } else if (valueIsPath(value)) { + return 'path'; + } else if (valueIsArray(value)) { + return 'array'; + } else if (valueIsObject(value)) { + return 'object'; + } + + // Use string as default type + return 'string'; +} + + +/** + * Basic function to convert a table row output to a CSV file, and download it. + * TODO: Make this more robust. Probably the commas should be escaped to ensure the CSV is always valid. + */ +export const downloadCSV = (rows) => { + const element = document.createElement("a"); + let csv = ""; + const headers = Object.keys(rows[0]).slice(1); + csv += headers.join(", ") + "\n"; + rows.forEach(row => { + headers.forEach((header) => { + // Parse value + var value = row[header]; + if (value && value["low"]) { + value = value["low"]; + } + csv += JSON.stringify(value).replaceAll(",", ";"); + csv += (headers.indexOf(header) < headers.length - 1) ? ", " : ""; + }); + csv += "\n"; + }); + + const file = new Blob([csv], { type: 'text/plain' }); + element.href = URL.createObjectURL(file); + element.download = "table.csv"; + document.body.appendChild(element); // Required for this to work in FireFox + element.click(); +} + +/** + * Replaces all global dashboard parameters inside a string with their values. + * @param str The string to replace the parameters in. + * @param parameters The parameters to replace. + */ +export function replaceDashboardParameters(str, parameters) { + if (!str) return ""; + Object.keys(parameters).forEach(key => { + str = str.replaceAll("$" + key, parameters[key] !== null ? parameters[key] : ""); + }); + return str; +} + +/** + * Downloads a screenshot of the element reference passed to it. + * @param ref The reference to the element to download as an image. + */ +export const downloadComponentAsImage = async (ref) => { + const element = ref.current; + + domtoimage.toPng(element, { bgcolor: 'white' }).then(function (dataUrl) { + var link = document.createElement('a'); + link.download = 'image.png'; + link.href = dataUrl; + link.click(); + }); +}; + +import { QueryResult, Record as Neo4jRecord } from 'neo4j-driver' + +export function recordToNative(input: any): any { + if (!input && input !== false) { + return null + } + else if (typeof input.keys === 'object' && typeof input.get === 'function') { + return Object.fromEntries(input.keys.map(key => [key, recordToNative(input.get(key))])) + } + else if (typeof input.toNumber === 'function') { + return input.toNumber() + } + else if (Array.isArray(input)) { + return (input as Array).map(item => recordToNative(item)) + } + else if (typeof input === 'object') { + const converted = Object.entries(input).map(([key, value]) => [key, recordToNative(value)]) + + return Object.fromEntries(converted) + } + + return input +} + +export function resultToNative(result: QueryResult): Record { + if (!result) return {} + + return result.records.map(row => recordToNative(row)) +} +export function checkResultKeys(first: Neo4jRecord, keys: string[]) { + const missing = keys.filter(key => !first.keys.includes(key)) + + if (missing.length > 0) { + return new Error(`The query is missing the following key${missing.length > 1 ? 's' : ''}: ${missing.join(', ')}. The expected keys are: ${keys.join(', ')}`) + } + + return false +} + +/** + * For hierarchical data structures, recursively search for a key property that must have a given value. + * If none can be found, return null. + */ +export const search = (tree, value, key = 'id', reverse = false) => { + if (tree.length == 0) return null; + const stack = Array.isArray(tree) ? [...tree] : [tree] + while (stack.length) { + const node = stack[reverse ? 'pop' : 'shift']() + if (node[key] && node[key] === value) return node + node.children && stack.push(...node.children) + } + return null +}; + + +/** + * For hierarchical data, we remove all intermediate node prefixes generate by `processHierarchyFromRecords`. + * This ensures that the visualization itself shows the 'real' names, and not the intermediate ones. + */ +export const mutateName = (currentNode) => { + if (currentNode.name) { + let s = currentNode.name.split('_'); + currentNode.name = s.length > 0 ? s.slice(1).join('_') : s[0]; + } + + if (currentNode.children) + currentNode.children.forEach(n => mutateName(n)) +} + +export const findObject = (data, name) => data.find(searchedName => searchedName.name === name); + +export const flatten = data => + data.reduce((acc, item) => { + if (item.children) + return [...acc, item, ...flatten(item.children)] + return [...acc, item] + }, []); + +/** + * Converts a list of Neo4j records into a hierarchy structure for hierarchical data visualizations. + */ +export const processHierarchyFromRecords = (records: Record[], selection: any ) => { + return records.reduce((data: Record, row: Record) => { + try { + // const index = recordToNative(row.get('index')); + // const key = recordToNative(row.get('key')); + // const value = recordToNative(row.get('value')); + + const index = recordToNative(row.get(selection['index'])); + // const idx = data.findIndex(item => item.index === index) + // const key = selection['key'] !== "(none)" ? recordToNative(row.get(selection['key'])) : selection['value']; + const value = recordToNative(row.get(selection['value'])); + if(!Array.isArray(index) || isNaN(value)){ + throw "Invalid data format selected for hierarchy report."; + } + let holder = data; + for (let [idx, val] of index.entries()) { + // Add a level prefix to each item to avoid duplicates + val = "lvl" + idx + "_" + val; + let obj = search(holder, val, 'name'); + let entry = { name: val }; + if (obj) + holder = obj; + else { + if (Array.isArray(holder)) + holder.push(entry); + else if (holder.hasOwnProperty("children")) + holder.children.push(entry) + else + holder.children = [entry] + + holder = search(holder, val, 'name'); + } + } + holder.loc = value; + return data + } catch (e) { + console.error(e); + return []; + } + }, []); +} diff --git a/src/chart/ChoroplethMapChart.tsx b/src/chart/ChoroplethMapChart.tsx deleted file mode 100644 index bccccf247..000000000 --- a/src/chart/ChoroplethMapChart.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { ChartProps } from './Chart'; -import ChoroplethMapVisualization from './visualizations/ChoroplethMapVisualization'; - - -/** - * Embeds a NeoChoroplethMapChart (from Charts) into NeoDash. - */ -const NeoChoroplethMapChart = (props: ChartProps) => { - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { - return <>No data, re-run the report. - } - return -} - -export default NeoChoroplethMapChart; \ No newline at end of file diff --git a/src/chart/CirclePackingChart.tsx b/src/chart/CirclePackingChart.tsx deleted file mode 100644 index 3d4e7639d..000000000 --- a/src/chart/CirclePackingChart.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -import { ChartProps } from './Chart'; -import CirclePackingVisualization from './visualizations/CirclePackingVisualization'; - - -const NeoCirclePackingChart = (props: ChartProps) => { - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { - return <>No data, re-run the report. - } - return -} - -export default NeoCirclePackingChart; \ No newline at end of file diff --git a/src/chart/LineChart.tsx b/src/chart/LineChart.tsx deleted file mode 100644 index 5b08e0b63..000000000 --- a/src/chart/LineChart.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import { ChartProps } from './Chart'; -import LineVisualization from './visualizations/LineVisualization'; - - -/** - * Embeds a LineReport (from Charts) into NeoDash. - */ -const NeoLineChart = (props: ChartProps) => { - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { - return <>No data, re-run the report. - } - // Wrapping this report ensures a refresh on a switch of fullscreen mode. - return
-
-} - -export default NeoLineChart; \ No newline at end of file diff --git a/src/chart/PieChart.tsx b/src/chart/PieChart.tsx deleted file mode 100644 index 26a8f7ff1..000000000 --- a/src/chart/PieChart.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { ChartProps } from './Chart'; -import PieVisualization from './visualizations/PieVisualization'; - - -/** - * Embeds a PieChart (from Charts) into NeoDash. - */ -const NeoPieChart = (props: ChartProps) => { - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { - return <>No data, re-run the report. - } - return -} - -export default NeoPieChart; \ No newline at end of file diff --git a/src/chart/SunburstChart.tsx b/src/chart/SunburstChart.tsx deleted file mode 100644 index 58953bf27..000000000 --- a/src/chart/SunburstChart.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { ChartProps } from './Chart'; -import SunburstVisualization from './visualizations/SunburstVisualization'; - - -/** - * Embeds a SunburstChart (from Charts) into NeoDash. - */ -const NeoSunburstChart = (props: ChartProps) => { - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { - return <>No data, re-run the report. - } - return -} - -export default NeoSunburstChart; \ No newline at end of file diff --git a/src/chart/TreeMapChart.tsx b/src/chart/TreeMapChart.tsx deleted file mode 100644 index d94fd7e5a..000000000 --- a/src/chart/TreeMapChart.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import { ChartProps } from './Chart'; -import TreeMapVisualization from './visualizations/TreeMapVisualization'; - - -/** - * Embeds a TreeMap (from Charts) into NeoDash. - */ -const NeoTreeMapChart = (props: ChartProps) => { - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { - return <>No data, re-run the report. - } - return -} - -export default NeoTreeMapChart; \ No newline at end of file diff --git a/src/chart/Utils.ts b/src/chart/Utils.ts new file mode 100644 index 000000000..cd46af121 --- /dev/null +++ b/src/chart/Utils.ts @@ -0,0 +1,163 @@ +import { QueryResult, Record as Neo4jRecord } from 'neo4j-driver' + +export function recordToNative(input: any): any { + if ( !input && input !== false ) { + return null + } + else if ( typeof input.keys === 'object' && typeof input.get === 'function' ) { + return Object.fromEntries(input.keys.map(key => [ key, recordToNative(input.get(key)) ])) + } + else if ( typeof input.toNumber === 'function' ) { + return input.toNumber() + } + else if ( Array.isArray(input) ) { + return (input as Array).map(item => recordToNative(item)) + } + else if ( typeof input === 'object' ) { + const converted = Object.entries(input).map(([ key, value ]) => [ key, recordToNative(value) ]) + + return Object.fromEntries(converted) + } + + return input +} + +export function resultToNative(result: QueryResult): Record { + if (!result) return {} + + return result.records.map(row => recordToNative(row)) +} +export function checkResultKeys(first: Neo4jRecord, keys: string[]) { + const missing = keys.filter(key => !first.keys.includes(key)) + + if ( missing.length > 0 ) { + return new Error(`The query is missing the following key${missing.length > 1 ? 's' : ''}: ${missing.join(', ')}. The expected keys are: ${keys.join(', ')}`) + } + + return false +} + +/** + * For hierarchical data structures, recursively search for a key property that must have a given value. + * If none can be found, return null. + */ +export const search = (tree, value, key = 'id', reverse = false) => { + if (tree.length == 0) return null; + const stack = Array.isArray(tree) ? [...tree] : [tree] + while (stack.length) { + const node = stack[reverse ? 'pop' : 'shift']() + if (node[key] && node[key] === value) return node + node.children && stack.push(...node.children) + } + return null +}; + + +/** + * For hierarchical data, we remove all intermediate node prefixes generate by `processHierarchyFromRecords`. + * This ensures that the visualization itself shows the 'real' names, and not the intermediate ones. + */ +export const mutateName = (currentNode) => { + if (currentNode.name){ + let s = currentNode.name.split('_'); + currentNode.name = s.length > 0 ? s.slice(1).join('_'): s[0]; + } + + if(currentNode.children) + currentNode.children.forEach(n => mutateName(n)) +} + +export const findObject = (data, name) => data.find(searchedName => searchedName.name === name); + +export const flatten = data => + data.reduce((acc, item) => { + if (item.children) + return [...acc, item, ...flatten(item.children)] + return [...acc, item] + }, []); + +/** + * Converts a list of Neo4j records into a hierarchy structure for hierarchical data visualizations. + */ +export const processHierarchyFromRecords = (records : Record[]) => { + return records.reduce((data: Record, row: Record) => { + + try { + const index = recordToNative(row.get('index')); + const key = recordToNative(row.get('key')); + const value = recordToNative(row.get('value')); + + let holder = data; + for (let [idx, val] of index.entries()) { + // Add a level prefix to each item to avoid duplicates + val = "lvl"+idx+"_"+val; + let obj = search(holder, val, 'name'); + let entry = { name: val }; + if(obj) + holder = obj; + else{ + if(Array.isArray(holder)) + holder.push(entry); + else if (holder.hasOwnProperty("children")) + holder.children.push(entry) + else + holder.children = [entry] + + holder = search(holder, val, 'name'); + } + } + holder.loc = value; + return data + } catch(e) { + console.error(e); + return []; + } + }, []); +} + +function isCyclicUtil(i,visited,recStack, adj) +{ + // Mark the current node as visited and + // part of recursion stack + if (recStack.get(i)) + return true; + + if (visited.get(i)) + return false; + + visited.set(i, true); + recStack.set(i, true); + + let childrens = adj.get(i); + + for (const children in childrens) + if (isCyclicUtil(childrens[children], visited, recStack, adj)) + return true; + + recStack.set(i, false); + + return false; +} + + +export const isCyclic = (graph) => { + let visited = new Map(); + let recStack = new Map(); + let adj = new Map(); + + graph.nodes.forEach( (node) => { + visited.set(node["id"], false); + recStack.set(node["id"], false); + adj.set(node["id"], []); + }) + + graph.links.forEach( (link) => { + adj.get(link["source"]).push(link["target"]); + }) + + for (const idx in graph.nodes) + if (isCyclicUtil(graph.nodes[idx]["id"], visited, recStack, adj)) + return true; + + return false; +} \ No newline at end of file diff --git a/src/chart/visualizations/BarVisualization.tsx b/src/chart/bar/BarChart.tsx similarity index 60% rename from src/chart/visualizations/BarVisualization.tsx rename to src/chart/bar/BarChart.tsx index b38a07893..90c36419c 100644 --- a/src/chart/visualizations/BarVisualization.tsx +++ b/src/chart/bar/BarChart.tsx @@ -1,38 +1,54 @@ -import React from 'react' -import { ResponsiveBar } from '@nivo/bar' -import { ChartReportProps, ExtendedChartReportProps } from './VisualizationProps' -import { checkResultKeys, recordToNative } from './Utils'; -import { green, grey } from '@material-ui/core/colors' +import { ResponsiveBar } from '@nivo/bar'; +import React, { useEffect } from 'react'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; import { evaluateRulesOnDict } from '../../report/ReportRuleEvaluator'; +import { ChartProps } from '../Chart'; +import { convertRecordObjectToString, recordToNative } from '../ChartUtils'; /** - * This visualization was extracted from https://github.com/neo4j-labs/charts. + * Embeds a BarReport (from Nivo) into NeoDash. + * This visualization was extracted from https://github.com/neo4j-labs/charts. + * TODO: There is a regression here with nivo > 0.73 causing the bar chart to have a very slow re-render. */ -export default function BarVisualization(props: ExtendedChartReportProps) { - const { records, first } = props - - if (!first) { - return

Loading data...

+const NeoBarChart = (props: ChartProps) => { + + /** + * The code fragment below is a workaround for a bug in nivo > 0.73 causing bar charts to re-render very slowly. + */ + const [loading, setLoading] = React.useState(false); + useEffect(() => { + setLoading(true); + const timeOutId = setTimeout(() => { + setLoading(false); + }, 1); + return () => clearTimeout(timeOutId); + }, [props.selection]) + if (loading) { + return <>; } - const error = checkResultKeys(first, ['index', 'key', 'value']) + const records = props.records; + const selection = props.selection; - if (error !== false) { - return

{error.message}

+ if (!selection || props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return } - const keys: string[] = [] - + const keys = {}; const data: Record[] = records.reduce((data: Record[], row: Record) => { - const index = recordToNative(row.get('index')) + if (!selection || !selection['index'] || !selection['value']) { + return data; + } + const index = convertRecordObjectToString(row.get(selection['index'])); const idx = data.findIndex(item => item.index === index) - const key = recordToNative(row.get('key')) - const value = recordToNative(row.get('value')) + const key = selection['key'] !== "(none)" ? recordToNative(row.get(selection['key'])) : selection['value']; + const value = recordToNative(row.get(selection['value'])); - if (!keys.includes(key)) { - keys.push(key) + if (isNaN(value)) { + return data; } + keys[key] = true; if (idx > -1) { data[idx][key] = value @@ -44,12 +60,11 @@ export default function BarVisualization(props: ExtendedChartReportProps) { return data }, []) .map(row => { - keys.forEach(key => { + Object.keys(keys).forEach(key => { if (!row.hasOwnProperty(key)) { row[key] = 0 } }) - return row }) @@ -63,6 +78,7 @@ export default function BarVisualization(props: ExtendedChartReportProps) { const labelRotation = (settings["labelRotation"] != undefined) ? settings["labelRotation"] : 45; const labelSkipSize = (settings["barValues"]) ? 1 : 2000; const colorScheme = (settings["colors"]) ? settings["colors"] : 'set2'; + const groupMode = (settings["groupMode"]) ? settings["groupMode"] : 'stacked'; const valueScale = (settings["valueScale"]) ? settings["valueScale"] : 'linear'; const minValue = (settings["minValue"]) ? settings["minValue"] : 'auto'; const maxValue = (settings["maxValue"]) ? settings["maxValue"] : 'auto'; @@ -71,24 +87,29 @@ export default function BarVisualization(props: ExtendedChartReportProps) { // Compute bar color based on rules - overrides default color scheme completely. const getBarColor = (bar) => { const data = {} - if(!props.selection){ + if (!selection || !selection['index'] || !selection['value']) { return "grey"; } - data[props.selection['index']] = bar.indexValue; - data[props.selection['value']] = bar.value; - data[props.selection['key']] = bar.id; + data[selection['index']] = bar.indexValue; + data[selection['value']] = bar.value; + data[selection['key']] = bar.id; const validRuleIndex = evaluateRulesOnDict(data, styleRules, ['bar color']); - if(validRuleIndex !== -1){ + if (validRuleIndex !== -1) { return styleRules[validRuleIndex]['customizationValue']; } return "grey" } + if (data.length == 0) { + return + } + // TODO: Get rid of duplicate pie slice names... + return -} \ No newline at end of file + +} + +export default NeoBarChart; \ No newline at end of file diff --git a/src/chart/visualizations/ChoroplethMapVisualization.tsx b/src/chart/choropleth/ChoroplethMapChart.tsx similarity index 66% rename from src/chart/visualizations/ChoroplethMapVisualization.tsx rename to src/chart/choropleth/ChoroplethMapChart.tsx index 6ef0ae497..215746099 100644 --- a/src/chart/visualizations/ChoroplethMapVisualization.tsx +++ b/src/chart/choropleth/ChoroplethMapChart.tsx @@ -1,40 +1,55 @@ -import React from 'react' -import { ResponsiveChoropleth } from '@nivo/geo' -import { ExtendedChartReportProps } from './VisualizationProps' -import { - checkResultKeys, - recordToNative -} from './Utils' -import { useState, useEffect } from 'react' +import React from 'react'; +import { ChartProps } from '../Chart'; +import { ResponsiveChoropleth } from '@nivo/geo'; +import { useState, useEffect } from 'react'; +import { checkResultKeys, recordToNative } from '../ChartUtils'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; -export default function ChroplethMapVisualization(props: ExtendedChartReportProps) { - const { records, first } = props +/** + * Embeds a NeoChoroplethMapChart (from Charts) into NeoDash. + */ +const NeoChoroplethMapChart = (props: ChartProps) => { - if (!first) { - return

Loading data...

- } + const records = props.records; + const selection = props.selection; - const error = checkResultKeys(first, ['index', 'key', 'value']) - if (error !== false) { - return

{error.message}

+ //TODO Apply certain logic to determine different map features to display + //const feature = globeFeature; + const [feature, setFeature] = useState({ features: [] }); + // TODO Think of a way to make it configurable to fetch vector data. + // It makes sense to ship this JSON with NeoDash deployments that are behind some firewall and can't access this site. + useEffect(() => { + fetch("https://raw.githubusercontent.com/plouc/nivo/master/website/src/data/components/geo/world_countries.json") + .then((res) => res.json()) + .then((matched) => setFeature(matched)); + }, []); + + if (!selection || props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return } + const keys = {}; + let data = records.reduce((data: Record, row: Record) => { try { - const index = recordToNative(row.get('index')); - const value = recordToNative(row.get('value')); - data.push({ "id" : index, "value" : value }); + const index = recordToNative(row.get(selection['index'])); + const value = recordToNative(row.get(selection['value'])); + + if(!index || index.length != 3 || isNaN(value)){ + throw "Invalid selection for choropleth chart. Ensure a three letter country code is retrieved together with a value." + } + data.push({ "id": index, "value": value }); return data - } catch(e) { + } catch (e) { console.error(e); return []; } }, []); let m = Math.max(...data.map(o => o.value)); - + const settings = (props.settings) ? props.settings : {}; const marginRight = (settings["marginRight"]) ? settings["marginRight"] : 24; const marginLeft = (settings["marginLeft"]) ? settings["marginLeft"] : 24; @@ -50,33 +65,26 @@ export default function ChroplethMapVisualization(props: ExtendedChartReportProp const labelProperty = (settings["labelProperty"]) ? settings["labelProperty"] : "properties.name"; - //TODO Apply certain logic to determine different map features to display - //const feature = globeFeature; - - const [ feature, setFeature ] = useState({ features : []}); - - useEffect(() => { - fetch("https://raw.githubusercontent.com/plouc/nivo/master/website/src/data/components/geo/world_countries.json") - .then((res) => res.json()) - .then((matched) => setFeature(matched)); - }, []); + if (!data || data.length == 0) { + return ; + } return ( <>
) +} -} \ No newline at end of file +export default NeoChoroplethMapChart; \ No newline at end of file diff --git a/src/chart/visualizations/CirclePackingVisualization.tsx b/src/chart/circlepacking/CirclePackingChart.tsx similarity index 75% rename from src/chart/visualizations/CirclePackingVisualization.tsx rename to src/chart/circlepacking/CirclePackingChart.tsx index c9e69d8a8..511899768 100644 --- a/src/chart/visualizations/CirclePackingVisualization.tsx +++ b/src/chart/circlepacking/CirclePackingChart.tsx @@ -1,33 +1,39 @@ -import React from 'react' -import { ResponsiveCirclePacking } from '@nivo/circle-packing' -import { ExtendedChartReportProps } from './VisualizationProps' -import { checkResultKeys, mutateName, processHierarchyFromRecords, findObject, flatten } from './Utils' +import React, { useEffect } from 'react'; +import { ChartProps } from '../Chart'; +import { ResponsiveCirclePacking } from '@nivo/circle-packing'; +import { checkResultKeys, mutateName, processHierarchyFromRecords, findObject, flatten } from '../ChartUtils' import { useState } from 'react' import { Tooltip } from '@material-ui/core' import RefreshIcon from '@material-ui/icons/Refresh'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; -export default function CirclePackingVisualization(props: ExtendedChartReportProps) { - const { records, first } = props - - if (!first) { - return

Loading data...

+const NeoCirclePackingChart = (props: ChartProps) => { + if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return <>No data, re-run the report. } + const records = props.records; + const selection = props.selection; + const [data, setData] = useState(undefined); + useEffect(() => { + setData(commonProperties.data); + }, [props.selection]); + const [refreshable, setRefreshable] = useState(false); - const error = checkResultKeys(first, ['index', 'key', 'value']) - - if (error !== false) { - return

{error.message}

+ if (!selection || props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return } - const dataPre = processHierarchyFromRecords(records); + + const dataPre = processHierarchyFromRecords(records, selection); dataPre.forEach(currentNode => mutateName(currentNode)); // Where a user give us the hierarchy with a common root, in that case we can push the entire tree. // Where a user give us just the tree starting one hop away from the root. // as Nivo needs a common root, so in that case, we create it for them. const commonProperties = { data: dataPre.length == 1 ? dataPre[0] : { name: "Total", children: dataPre } }; + if(data == undefined){ + setData(commonProperties.data); + } - const [data, setData] = useState(commonProperties.data); - const [refreshable, setRefreshable] = useState(false); const settings = (props.settings) ? props.settings : {}; const legendHeight = 20; const marginRight = (settings["marginRight"]) ? settings["marginRight"] : 24; @@ -49,6 +55,9 @@ export default function CirclePackingVisualization(props: ExtendedChartReportPro return n.node.height == 0; } + if(!data || !data.children || data.children.length == 0){ + return ; + } return ( <>
@@ -87,5 +96,6 @@ export default function CirclePackingVisualization(props: ExtendedChartReportPro />
) +} -} \ No newline at end of file +export default NeoCirclePackingChart; \ No newline at end of file diff --git a/src/chart/GraphChart.tsx b/src/chart/graph/GraphChart.tsx similarity index 98% rename from src/chart/GraphChart.tsx rename to src/chart/graph/GraphChart.tsx index 0b1fb2628..5ae4d7a49 100644 --- a/src/chart/GraphChart.tsx +++ b/src/chart/graph/GraphChart.tsx @@ -3,10 +3,10 @@ import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from import ForceGraph2D from 'react-force-graph-2d'; import ReactDOMServer from 'react-dom/server'; import useDimensions from "react-cool-dimensions"; -import { categoricalColorSchemes } from '../config/ColorConfig'; -import { ChartProps } from './Chart'; -import { valueIsArray, valueIsNode, valueIsRelationship, valueIsPath } from '../report/ReportRecordProcessing'; -import { NeoGraphItemInspectModal } from '../modal/GraphItemInspectModal'; +import { categoricalColorSchemes } from '../../config/ColorConfig'; +import { ChartProps } from '../Chart'; +import { valueIsArray, valueIsNode, valueIsRelationship, valueIsPath } from '../../chart/ChartUtils'; +import { NeoGraphItemInspectModal } from '../../modal/GraphItemInspectModal'; import LockIcon from '@material-ui/icons/Lock'; import LockOpenIcon from '@material-ui/icons/LockOpen'; import SettingsOverscanIcon from '@material-ui/icons/SettingsOverscan'; @@ -17,7 +17,7 @@ import TableCell from '@material-ui/core/TableCell'; import TableContainer from '@material-ui/core/TableContainer'; import TableRow from '@material-ui/core/TableRow'; import SearchIcon from '@material-ui/icons/Search'; -import { evaluateRulesOnNode } from '../report/ReportRuleEvaluator'; +import { evaluateRulesOnNode } from '../../report/ReportRuleEvaluator'; const drawDataURIOnCanvas = (node, strDataURI, canvas, defaultNodeSize) => { var img = new Image; diff --git a/src/chart/IFrameChart.tsx b/src/chart/iframe/IFrameChart.tsx similarity index 93% rename from src/chart/IFrameChart.tsx rename to src/chart/iframe/IFrameChart.tsx index 6438ec112..ba07d5803 100644 --- a/src/chart/IFrameChart.tsx +++ b/src/chart/iframe/IFrameChart.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { ChartProps } from './Chart'; -import { replaceDashboardParameters } from './util/ChartUtils'; +import { ChartProps } from '../Chart'; +import { replaceDashboardParameters } from '../ChartUtils'; /** * Renders an iFrame of the URL provided by the user. diff --git a/src/chart/JSONChart.tsx b/src/chart/json/JSONChart.tsx similarity index 94% rename from src/chart/JSONChart.tsx rename to src/chart/json/JSONChart.tsx index 4e1635b7f..e29ed42fb 100644 --- a/src/chart/JSONChart.tsx +++ b/src/chart/json/JSONChart.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { ChartProps } from './Chart'; +import { ChartProps } from '../Chart'; import { TextareaAutosize } from '@material-ui/core'; import { CardContent, Chip, IconButton, Tooltip } from "@material-ui/core"; import WarningIcon from '@material-ui/icons/Warning'; diff --git a/src/chart/visualizations/LineVisualization.tsx b/src/chart/line/LineChart.tsx similarity index 68% rename from src/chart/visualizations/LineVisualization.tsx rename to src/chart/line/LineChart.tsx index 67c54ee7c..3762cc22c 100644 --- a/src/chart/visualizations/LineVisualization.tsx +++ b/src/chart/line/LineChart.tsx @@ -1,8 +1,13 @@ -import React from 'react'; import { ResponsiveLine } from '@nivo/line'; -import { ChartReportProps, ExtendedChartReportProps } from './VisualizationProps'; -import { recordToNative } from './Utils'; +import React from 'react'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; import { evaluateRulesOnDict } from '../../report/ReportRuleEvaluator'; +import { ChartProps } from '../Chart'; +import { convertRecordObjectToString, recordToNative } from '../ChartUtils'; +import { ResponsiveSunburst } from '@nivo/sunburst'; +import { useState } from 'react'; +import { Tooltip } from '@material-ui/core'; +import RefreshIcon from '@material-ui/icons/Refresh'; interface LineChartData { id: string; @@ -10,13 +15,21 @@ interface LineChartData { } /** - * This visualization was extracted from https://github.com/neo4j-labs/charts. + * Embeds a LineReport (from Charts) into NeoDash. */ -export default function (props: ExtendedChartReportProps) { - const { records, first } = props +const NeoLineChart = (props: ChartProps) => { + if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return <>No data, re-run the report. + } + const records = props.records; + const selection = props.selection; - const label = first!.keys[0] as string - const keys = first!.keys.slice(1) + if (!selection || !selection.value || selection.value.length == 0) { + return
+ No y-axis selected. To view the report, select a value below.
; + } + + const [isTimeChart, setIsTimeChart] = React.useState(false); const settings = (props.settings) ? props.settings : {}; const colorScheme = (settings["colors"]) ? settings["colors"] : 'set2'; @@ -28,9 +41,7 @@ export default function (props: ExtendedChartReportProps) { const maxXValue = (settings["maxXValue"]) ? settings["maxXValue"] : 'auto'; const minYValue = (settings["minYValue"]) ? settings["minYValue"] : 'auto'; const maxYValue = (settings["maxYValue"]) ? settings["maxYValue"] : 'auto'; - const legend = (settings["legend"] != undefined) ? settings["legend"] : false; - const legendWidth = (settings["legendWidth"]) ? settings["legendWidth"] : 70; const curve = (settings["curve"]) ? settings["curve"] : "linear"; const marginRight = (settings["marginRight"]) ? settings["marginRight"] : 24; @@ -44,6 +55,9 @@ export default function (props: ExtendedChartReportProps) { const xTickTimeValues = (settings["xTickTimeValues"] != undefined) ? settings["xTickTimeValues"] : "every 1 years"; const xAxisTimeFormat = (settings["xAxisTimeFormat"] != undefined) ? settings["xAxisTimeFormat"] : "%Y-%m-%dT%H:%M:%SZ"; const xAxisFormat = (settings["xAxisFormat"] != undefined) ? settings["xAxisFormat"] : undefined; + + const xTickRotationAngle = (settings["xTickRotationAngle"] != undefined) ? settings["xTickRotationAngle"] : 0; + const yTickRotationAngle = (settings["yTickRotationAngle"] != undefined) ? settings["yTickRotationAngle"] : 0; const styleRules = settings && settings.styleRules ? settings.styleRules : []; // Compute line color based on rules - overrides default color scheme completely. @@ -54,8 +68,8 @@ export default function (props: ExtendedChartReportProps) { var color = "black"; line.data.forEach((entry) => { const data = {}; - data[xFieldName] = entry['x']; - data[yFieldName] = entry['y']; + data[xFieldName] = entry[selection['x']]; + data[yFieldName] = entry[selection['value']]; const validRuleIndex = evaluateRulesOnDict(data, styleRules, ['line color']); if (validRuleIndex !== -1) { color = styleRules[validRuleIndex]['customizationValue']; @@ -65,26 +79,61 @@ export default function (props: ExtendedChartReportProps) { return color; } - if (!keys.length) { - return

No data.

+ if (!selection['value'].length) { + return

} - const data: LineChartData[] = keys.map(key => ({ + const data: LineChartData[] = selection['value'].map(key => ({ id: key as string, data: [] })) + const isDateTime = (x) => { + return x !== undefined && x.day !== undefined && x.hour !== undefined && x.minute !== undefined && + x.month !== undefined && x.nanosecond !== undefined && x.second !== undefined && x.year !== undefined; + } + records.forEach((row) => { - keys.forEach(key => { + selection['value'].forEach(key => { const index = data.findIndex(item => (item as Record).id === key) - const x: string | number = recordToNative(row.get(label)) || 0 + const x: any = row.get(selection['x']) || 0 const y: any = recordToNative(row.get(key)) || 0 - - data[index].data.push({ x, y }) + if (data[index] && !isNaN(y)) { + if (isDateTime(x)) { + data[index].data.push({ x, y }) + } + if (!isNaN(x)) { + data[index].data.push({ x, y }) + } + } }) }) - const isTimeChart = data[0] !== undefined && data[0].data[0] !== undefined && data[0].data[0]['x'] !== undefined && isNaN(data[0].data[0]['x']); + // Post-processing validation on the data --> confirm only numeric data was selected by the user. + let validSelection = true; + data.forEach(selected => { + if(selected['data'].length == 0){ + validSelection = false; + return; + }; + }) + + if(!validSelection){ + return ; + } + + // TODO - Nivo has a bug that, when we switch from a time-axis to a number axis, the visualization breaks. + // Therefore, we now require a manual refresh. + const chartIsTimeChart = (data[0] !== undefined && data[0].data[0] !== undefined && data[0].data[0]['x'] !== undefined && isNaN(data[0].data[0]['x'])); + if (isTimeChart !== chartIsTimeChart) { + if (!chartIsTimeChart) { + return
+ Line chart switched from time-axis to number-axis. + Please re-run the report to see your changes.
; + } + setIsTimeChart(chartIsTimeChart); + } + const validateXTickTimeValues = xTickTimeValues.split(" "); if (validateXTickTimeValues.length != 3 || validateXTickTimeValues[0] != "every" || @@ -101,13 +150,15 @@ export default function (props: ExtendedChartReportProps) { )) { return Invalid tick size specification for time chart. Parameter value must be set to "every [number] ['years', 'months', 'weeks', 'days', 'hours', 'seconds', 'milliseconds']".; } + + const lineViz =
; return lineViz; -} \ No newline at end of file +} + +export default NeoLineChart; \ No newline at end of file diff --git a/src/chart/MapChart.tsx b/src/chart/map/MapChart.tsx similarity index 96% rename from src/chart/MapChart.tsx rename to src/chart/map/MapChart.tsx index efbdc4fcf..114251b45 100644 --- a/src/chart/MapChart.tsx +++ b/src/chart/map/MapChart.tsx @@ -1,16 +1,15 @@ import React, { useEffect } from 'react'; -import { ChartProps } from './Chart'; -import { Icon, TextareaAutosize } from '@material-ui/core'; -import { categoricalColorSchemes } from '../config/ColorConfig'; -import { valueIsArray, valueIsNode, valueIsRelationship, valueIsPath, valueIsObject } from '../report/ReportRecordProcessing'; +import { ChartProps } from '../Chart'; +import { categoricalColorSchemes } from '../../config/ColorConfig'; +import { valueIsArray, valueIsNode, valueIsRelationship, valueIsPath, valueIsObject } from '../../chart/ChartUtils'; import { MapContainer, Polyline, Popup, TileLayer, Tooltip } from "react-leaflet"; import { HeatmapLayer } from 'react-leaflet-heatmap-layer-v3'; import Marker from 'react-leaflet-enhanced-marker'; import MarkerClusterGroup from 'react-leaflet-cluster'; import LocationOnIcon from '@material-ui/icons/LocationOn'; import 'leaflet/dist/leaflet.css'; -import { evaluateRulesOnNode } from '../report/ReportRuleEvaluator'; +import { evaluateRulesOnNode } from '../../report/ReportRuleEvaluator'; const update = (state, mutations) => Object.assign({}, state, mutations) @@ -34,7 +33,11 @@ const NeoMapChart = (props: ChartProps) => { const intensityProp = props.settings && props.settings.intensityProp ? props.settings.intensityProp : ""; const defaultNodeColor = "grey"; // Color of nodes without labels const dimensions = props.dimensions ? props.dimensions : {width: 100, height: 100}; + const mapProviderURL = props.settings && props.settings.providerUrl ? props.settings.providerUrl : "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"; + const attribution = props.settings && props.settings.attribution ? props.settings.attribution : '© OpenStreetMap contributors'; + + const [data, setData] = React.useState({ nodes: [], links: [], zoom: 0, centerLatitude: 0, centerLongitude: 0 }); // Per pixel, scaling factors for the latitude/longitude mapping function. @@ -339,8 +342,8 @@ const NeoMapChart = (props: ChartProps) => { scrollWheelZoom={false}> {heatmap} {markers} {lines} diff --git a/src/chart/MarkdownChart.tsx b/src/chart/markdown/MarkdownChart.tsx similarity index 90% rename from src/chart/MarkdownChart.tsx rename to src/chart/markdown/MarkdownChart.tsx index 69fee621f..e562b90e9 100644 --- a/src/chart/MarkdownChart.tsx +++ b/src/chart/markdown/MarkdownChart.tsx @@ -1,9 +1,9 @@ import React from 'react'; -import { ChartProps } from './Chart'; +import { ChartProps } from '../Chart'; import ReactMarkdown from 'react-markdown'; import gfm from 'remark-gfm'; -import { replaceDashboardParameters } from './util/ChartUtils'; +import { replaceDashboardParameters } from '../ChartUtils'; /** * Renders Markdown text provided by the user. diff --git a/src/chart/ParameterSelectionChart.tsx b/src/chart/parameter/ParameterSelectionChart.tsx similarity index 91% rename from src/chart/ParameterSelectionChart.tsx rename to src/chart/parameter/ParameterSelectionChart.tsx index 7cd5c86d9..9e76433ea 100644 --- a/src/chart/ParameterSelectionChart.tsx +++ b/src/chart/parameter/ParameterSelectionChart.tsx @@ -1,9 +1,9 @@ import React, { useCallback, useEffect } from 'react'; -import { ChartProps } from './Chart'; +import { ChartProps } from '../Chart'; import { CircularProgress, debounce, TextareaAutosize, TextField } from '@material-ui/core'; import Autocomplete from '@material-ui/lab/Autocomplete'; -import NeoField from '../component/field/Field'; +import NeoField from '../../component/field/Field'; /** * A special chart type to define global dashboard parameters that are injected as query parameters into each report. @@ -15,7 +15,7 @@ const NeoParameterSelectionChart = (props: ChartProps) => { const type = props.settings && props.settings["type"] ? props.settings["type"] : undefined; const suggestionsUpdateTimeout = props.settings && props.settings["suggestionsUpdateTimeout"] ? props.settings["suggestionsUpdateTimeout"] : 250; const setParameterTimeout = props.settings && props.settings["setParameterTimeout"] ? props.settings["setParameterTimeout"] : 1000; - + const defaultValue = props.settings && props.settings["defaultValue"] && props.settings["defaultValue"].length > 0 ? props.settings["defaultValue"] : ""; const currentValue = (props.getGlobalParameter && props.getGlobalParameter(parameter)) ? props.getGlobalParameter(parameter) : ""; const [extraRecords, setExtraRecords] = React.useState([]); const [inputText, setInputText] = React.useState(currentValue); @@ -50,7 +50,7 @@ const NeoParameterSelectionChart = (props: ChartProps) => { // In case the components gets (re)loaded with a different/non-existing selected parameter, set the text to the current global parameter value. if (query && value != currentValue && currentValue != inputText) { setValue(currentValue); - setInputText(currentValue); + setInputText(value == defaultValue ? "" : currentValue); setExtraRecords([]); } @@ -71,7 +71,7 @@ const NeoParameterSelectionChart = (props: ChartProps) => { { onChange={(newValue) => { // TODO: i want this to be a proper wait instead of triggering on the first character. if (newValue == null && clearParameterOnFieldClear) { - setValue(""); + setValue(defaultValue); } else { setValue(newValue); } @@ -108,6 +108,8 @@ const NeoParameterSelectionChart = (props: ChartProps) => { } if (newValue == null && clearParameterOnFieldClear) { props.setGlobalParameter(parameter, undefined); + } else if (newValue == null) { + props.setGlobalParameter(parameter, defaultValue); } else { props.setGlobalParameter(parameter, newValue); } diff --git a/src/chart/visualizations/PieVisualization.tsx b/src/chart/pie/PieChart.tsx similarity index 79% rename from src/chart/visualizations/PieVisualization.tsx rename to src/chart/pie/PieChart.tsx index 0c0a59bfe..8fb9aeecb 100644 --- a/src/chart/visualizations/PieVisualization.tsx +++ b/src/chart/pie/PieChart.tsx @@ -1,33 +1,39 @@ -import React from 'react' -import { ResponsivePie } from '@nivo/pie' -import { ChartReportProps, ExtendedChartReportProps } from './VisualizationProps' -import { checkResultKeys, recordToNative } from './Utils' -import { evaluateRulesOnDict } from '../../report/ReportRuleEvaluator' - -export default function PieVisualization(props: ExtendedChartReportProps) { - const { records, first } = props - - if (!first) { - return

Loading data...

+import { ResponsivePie } from '@nivo/pie'; +import React from 'react'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; +import { evaluateRulesOnDict } from '../../report/ReportRuleEvaluator'; +import { ChartProps } from '../Chart'; +import { convertRecordObjectToString, recordToNative } from '../ChartUtils'; + +/** + * Embeds a PieChart (from Nivo) into NeoDash. + */ +const NeoPieChart = (props: ChartProps) => { + + const records = props.records; + const selection = props.selection; + + if (!selection || props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return } - const error = checkResultKeys(first, ['index', 'key', 'value']) - - if (error !== false) { - return

{error.message}

- } - const keys: string[] = []; + const keys = {}; const data: Record[] = records.reduce((data: Record[], row: Record) => { - const index = recordToNative(row.get('index')) + if (!selection || !selection['index'] || !selection['value']) { + return data; + } + + const index = convertRecordObjectToString(row.get(selection['index'])); const idx = data.findIndex(item => item.index === index) - const key = recordToNative(row.get('key')) - const value = recordToNative(row.get('value')) + const key = selection['key'] !== "(none)" ? recordToNative(row.get(selection['key'])) : selection['value']; + const value = recordToNative(row.get(selection['value'])); - if (!keys.includes(key)) { - keys.push(key) + if (isNaN(value)) { + return data; } + keys[key] = true; if (idx > -1) { data[idx][key] = value @@ -39,7 +45,7 @@ export default function PieVisualization(props: ExtendedChartReportProps) { return data }, []) .map(row => { - keys.forEach(key => { + Object.keys(keys).forEach(key => { if (!row.hasOwnProperty(key)) { row[key] = 0 } @@ -90,6 +96,10 @@ export default function PieVisualization(props: ExtendedChartReportProps) { return (item.arc.angleDeg * 100 / 360).toFixed(2).toString() + '%'; } + if (data.length == 0) { + return + } + return +} -} \ No newline at end of file +export default NeoPieChart; \ No newline at end of file diff --git a/src/chart/radar/RadarChart.tsx b/src/chart/radar/RadarChart.tsx new file mode 100644 index 000000000..03a6a91a8 --- /dev/null +++ b/src/chart/radar/RadarChart.tsx @@ -0,0 +1,117 @@ +import React from 'react'; +import { ChartProps } from '../Chart'; +import { ResponsiveRadar } from '@nivo/radar' +import { evaluateRulesOnDict, evaluateRulesOnNode } from '../../report/ReportRuleEvaluator'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; + + +/** + * Embeds a RadarChart (from Charts) into NeoDash. + */ + const NeoRadarChart = (props: ChartProps) => { + + if (!props.selection || props.selection.values == undefined || props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return + } + const records = props.records; + const first = records[0] ? records[0] : undefined; + const selection = (props.selection) ? props.selection : {}; + const settings = (props.settings) ? props.settings : {}; + const legendHeight = 20; + const legendWidth = 20; + const marginRight = (settings["marginRight"]) ? settings["marginRight"] : 24; + const marginLeft = (settings["marginLeft"]) ? settings["marginLeft"] : 24; + const marginTop = (settings["marginTop"]) ? settings["marginTop"] : 40; + const marginBottom = (settings["marginBottom"]) ? settings["marginBottom"] : 40; + const dotSize = (settings["dotSize"]) ? settings["dotSize"] : 10; + const dotBorderWidth = (settings["dotBorderWidth"]) ? settings["dotBorderWidth"] : 2; + const gridLabelOffset = (settings["gridLabelOffset"]) ? settings["gridLabelOffset"] : 16; + const gridLevels = (settings["gridLevels"]) ? settings["gridLevels"] : 5; + const interactive = (settings["interactive"] !== undefined) ? settings["interactive"] : true; + const animate = (settings["animate"] !== undefined) ? settings["animate"] : true; + const legend = (settings["legend"] !== undefined) ? settings["legend"] : false; + const colorScheme = (settings["colors"]) ? settings["colors"] : 'set2'; + const blendMode = (settings["blendMode"]) ? settings["blendMode"] : 'normal'; + const motionConfig = (settings["motionConfig"]) ? settings["motionConfig"] : 'gentle'; + const curve = (settings["curve"]) ? settings["curve"] : 'linearClosed'; + const styleRules = settings && settings["styleRules"] ? settings["styleRules"] : []; + const keys = selection.values; + + + + // Compute slice color based on rules - overrides default color scheme completely. + const getCircleColor = (slice) => { + const data = {} + if (!props.selection) { + return "grey"; + } + data[props.selection['value']] = slice.value; + data[props.selection['index']] = slice.id; + const validRuleIndex = evaluateRulesOnDict(data, styleRules, ['slice color']); + if (validRuleIndex !== -1) { + return styleRules[validRuleIndex]['customizationValue']; + } + return "grey" + } + + var valid = true; + const data = records.map(r => { + const entry = {} + selection.values.concat([selection['index']]).forEach((k,i) => { + const fieldIndex = r["_fieldLookup"][k]; + if(k !== selection['index'] && isNaN(r["_fields"][fieldIndex])){ + console.log(k, r["_fields"][fieldIndex]) + valid = false; + } + entry[k] = ""+r["_fields"][fieldIndex]; + }); + return entry; + }); + + // If we find inconsitent data, return an error/ + if(!valid){ + return ; + } + return = 1 ? getCircleColor : { scheme: colorScheme }} + blendMode={blendMode} + motionConfig={motionConfig} + curve={curve} + legends={(legend) ? [ + { + anchor: 'top-left', + direction: 'column', + translateX: 0, + translateY: -40, + itemWidth: 100, + itemHeight: 14, + itemTextColor: '#999', + symbolSize: 14, + symbolShape: 'circle', + effects: [ + { + on: 'hover', + style: { + itemTextColor: '#000' + } + } + ] + } + ] : []} + /> +} + +export default NeoRadarChart; \ No newline at end of file diff --git a/src/chart/sankey/SankeyChart.tsx b/src/chart/sankey/SankeyChart.tsx new file mode 100644 index 000000000..7ff05c296 --- /dev/null +++ b/src/chart/sankey/SankeyChart.tsx @@ -0,0 +1,238 @@ + +import { ChartProps } from '../Chart'; +import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'; +import { ResponsiveSankey } from '@nivo/sankey'; +import {evaluateRulesOnDict, evaluateRulesOnNode} from '../../report/ReportRuleEvaluator' +import {categoricalColorSchemes} from "../../config/ColorConfig"; +import NeoCodeViewerComponent from '../../component/editor/CodeViewerComponent'; +import { valueIsArray, valueIsNode, valueIsPath, valueIsRelationship } from '../ChartUtils'; +import { isCyclic } from '../Utils'; + + + +/** + * Embeds a SankeyChart (from Charts) into NeoDash. + */ +const NeoSankeyChart = (props: ChartProps) => { + const records = props.records; + + const settings = (props.settings) ? props.settings : {}; + const legendHeight = 20; + const legendWidth = 120; + const marginRight = (settings["marginRight"]) ? settings["marginRight"] : 24; + const marginLeft = (settings["marginLeft"]) ? settings["marginLeft"] : 24; + const marginTop = (settings["marginTop"]) ? settings["marginTop"] : 24; + const marginBottom = (settings["marginBottom"]) ? settings["marginBottom"] : 40; + + const interactive = (settings["interactive"] !== undefined) ? settings["interactive"] : true; + const nodeBorderWidth = (settings["nodeBorderWidth"]) ? settings["nodeBorderWidth"] : 0; + + const legend = (settings["legend"] !== undefined) ? settings["legend"] : false; + const colorScheme = (settings["colors"]) ? settings["colors"] : 'set2'; + const labelProperty = (settings["labelProperty"]) ? settings["labelProperty"] : 'value'; + const layout = (settings["layout"]) ? settings["layout"] : 'horizontal'; + const labelPosition = (settings["labelPosition"]) ? settings["labelPosition"] : 'inside'; + const labelOrientation = (settings["labelOrientation"]) ? settings["labelOrientation"] : 'horizontal'; + const nodeThickness = (settings["nodeThickness"]) ? settings["nodeThickness"] : 12; + const nodeSpacing = (settings["nodeSpacing"]) ? settings["nodeSpacing"] : 12; + + + const styleRules = settings && settings["styleRules"] ? settings["styleRules"] : []; + + const update = (state, mutations) => + Object.assign({}, state, mutations) + + const [data, setData] = React.useState({ nodes: [], links: [] }); + + useEffect(() => { + buildVisualizationDictionaryFromRecords(props.records); + }, []); + + + if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return <>No data, re-run the report. + } + var nodes = {}; + var nodeLabels = {}; + var links = {}; + var linkTypes = {}; + + function extractGraphEntitiesFromField(value) { + if (value == undefined) { + return + } + if (valueIsArray(value)) { + value.forEach((v, i) => extractGraphEntitiesFromField(v)); + } else if (valueIsNode(value)) { + value.labels.forEach(l => nodeLabels[l] = true) + nodes[value.identity.low] = { + id: value.identity.low, + labels: value.labels, + properties: value.properties, + lastLabel: value.labels[value.labels.length - 1] + }; + } else if (valueIsRelationship(value)) { + if (links[value.start.low + "," + value.end.low] == undefined) { + links[value.start.low + "," + value.end.low] = []; + } + const addItem = (arr, item) => arr.find((x) => x.id === item.id) || arr.push(item); + if(value.properties[labelProperty] !== undefined && !isNaN(value.properties[labelProperty])){ + addItem(links[value.start.low + "," + value.end.low], { + id: value.identity.low, + source: value.start.low, + target: value.end.low, + type: value.type, + properties: value.properties, + value : value.properties[labelProperty] + }); + } + + } else if (valueIsPath(value)) { + value.segments.map((segment, i) => { + extractGraphEntitiesFromField(segment.start); + extractGraphEntitiesFromField(segment.relationship); + extractGraphEntitiesFromField(segment.end); + }); + } + } + + function buildVisualizationDictionaryFromRecords(records) { + // Extract graph objects from result set. + records.forEach((record, rownumber) => { + record._fields.forEach((field, i) => { + extractGraphEntitiesFromField(field); + }) + }); + // Assign proper curvatures to relationships. + // This is needed for pairs of nodes that have multiple relationships between them, or self-loops. + const linksList = Object.values(links).map(nodePair => { + return nodePair; + }); + + // Assign proper colors to nodes. + const totalColors = categoricalColorSchemes[colorScheme] ? categoricalColorSchemes[colorScheme].length : 0; + const nodeLabelsList = Object.keys(nodeLabels); + const nodesList = Object.values(nodes).map(node => { + // First try to assign a node a color if it has a property specifying the color. + var assignedColor = totalColors > 0 ? categoricalColorSchemes[colorScheme][nodeLabelsList.indexOf(node.lastLabel) % totalColors] : "grey"; + // Next, evaluate the custom styling rules to see if there's a rule-based override + assignedColor = evaluateRulesOnNode(node, 'node color', assignedColor, styleRules); + return update(node, { nodeColor: assignedColor ? assignedColor : "grey" }); + }); + + // Set the data dictionary that is read by the visualization. + setData({ + nodes: nodesList, + links: linksList.flat() + }); + } + + // Compute slice color based on rules - overrides default color scheme completely. + const getSliceColor = (slice) => { + const data = {} + if (!props.selection) { + return "grey"; + } + data[props.selection['value']] = slice.value; + data[props.selection['index']] = slice.id; + const validRuleIndex = evaluateRulesOnDict(data, styleRules, ['slice color']); + if (validRuleIndex !== -1) { + return styleRules[validRuleIndex]['customizationValue']; + } + return "grey" + } + + const getArcLabel = item => { + let lbl = ""; + + switch(props.selection[item.lastLabel]) { + case "(id)": + lbl = item.id; + break; + case "(label)": + lbl = item.lastLabel; + break; + default: + lbl = item.properties[props.selection[item.lastLabel]]; + } + + return typeof lbl === 'object' ? lbl["low"] : lbl; + } + + if(data && data.links && data.links.length == 0){ + return + } + + + if(data && data.nodes && data.links && isCyclic(data)){ + return ; + } + + return = 1 ? getSliceColor : { scheme: colorScheme }} + legends={(legend) ? [ + { + anchor: 'bottom-right', + direction: 'column', + translateX: 120, + itemWidth: 100, + itemHeight: 14, + itemDirection: 'right-to-left', + itemsSpacing: 2, + itemTextColor: '#999', + symbolSize: 14, + effects: [ + { + on: 'hover', + style: { + itemTextColor: '#000' + } + } + ] + } + ] : []} + animate={true} + /> + +} + +export default NeoSankeyChart; \ No newline at end of file diff --git a/src/chart/SingleValueChart.tsx b/src/chart/single/SingleValueChart.tsx similarity index 89% rename from src/chart/SingleValueChart.tsx rename to src/chart/single/SingleValueChart.tsx index 440961593..f3209c658 100644 --- a/src/chart/SingleValueChart.tsx +++ b/src/chart/single/SingleValueChart.tsx @@ -1,9 +1,8 @@ import React from 'react'; -import { ChartProps } from './Chart'; - -import { renderValueByType } from '../report/ReportRecordProcessing'; -import { evaluateRulesOnNeo4jRecord } from '../report/ReportRuleEvaluator'; +import { ChartProps } from '../Chart'; +import { renderValueByType } from '../../report/ReportRecordProcessing'; +import { evaluateRulesOnNeo4jRecord } from '../../report/ReportRuleEvaluator'; /** * Renders Neo4j records as their JSON representation. diff --git a/src/chart/visualizations/SunburstVisualization.tsx b/src/chart/sunburst/SunburstChart.tsx similarity index 59% rename from src/chart/visualizations/SunburstVisualization.tsx rename to src/chart/sunburst/SunburstChart.tsx index 4cd1a37cd..75fe39949 100644 --- a/src/chart/visualizations/SunburstVisualization.tsx +++ b/src/chart/sunburst/SunburstChart.tsx @@ -1,34 +1,45 @@ -import React from 'react' -import { ResponsiveSunburst } from '@nivo/sunburst' -import { ExtendedChartReportProps } from './VisualizationProps' -import { checkResultKeys, mutateName, processHierarchyFromRecords, findObject, flatten } from './Utils' -import { useState } from 'react' -import { Tooltip } from '@material-ui/core' +import React, { useState, useEffect } from 'react'; +import { ChartProps } from '../Chart'; +import { checkResultKeys, mutateName as mutateHierarchyNameIntoDisplayName, processHierarchyFromRecords, findObject, flatten } from '../ChartUtils'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; +import { ResponsiveSunburst } from '@nivo/sunburst' +import { Tooltip } from '@material-ui/core'; import RefreshIcon from '@material-ui/icons/Refresh'; - -export default function SunburstVisualization(props: ExtendedChartReportProps) { - const { records, first } = props - - if (!first) { - return

Loading data...

+/** + * Embeds a SunburstChart (from Charts) into NeoDash. + */ +const NeoSunburstChart = (props: ChartProps) => { + if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return <>No data, re-run the report. } + const records = props.records; + const selection = props.selection; + useEffect(() => { + setData(commonProperties.data); + }, [props.selection]); - const error = checkResultKeys(first, ['index', 'key', 'value']) + const [refreshable, setRefreshable] = useState(false); - if (error !== false) { - return

{error.message}

+ if (!selection || props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return } - const dataPre = processHierarchyFromRecords(records); - dataPre.forEach(currentNode => mutateName(currentNode)); + const dataPre = processHierarchyFromRecords(records, selection); + dataPre.forEach(currentNode => mutateHierarchyNameIntoDisplayName(currentNode)); // Where a user give us the hierarchy with a common root, in that case we can push the entire tree. // Where a user give us just the tree starting one hop away from the root. // as Nivo needs a common root, so in that case, we create it for them. - const commonProperties = { data : dataPre.length == 1 ? dataPre[0] : {name : "Total", children : dataPre}}; + const commonProperties = { data: dataPre.length == 1 ? dataPre[0] : { name: "Total", children: dataPre } }; const [data, setData] = useState(commonProperties.data); - const [refreshable, setRefreshable] = useState(false); + + if(data == undefined){ + setData(commonProperties.data); + } + + + const [back, setBack] = useState(false); const settings = (props.settings) ? props.settings : {}; const legendHeight = 20; const marginRight = (settings["marginRight"]) ? settings["marginRight"] : 24; @@ -38,18 +49,22 @@ export default function SunburstVisualization(props: ExtendedChartReportProps) { const enableArcLabels = (settings["enableArcLabels"] !== undefined) ? settings["enableArcLabels"] : true; const interactive = (settings["interactive"]) ? settings["interactive"] : true; const borderWidth = (settings["borderWidth"]) ? settings["borderWidth"] : 0; - const legend = (settings["legend"]) ? settings["legend"] : false; + const legend = (settings["legend"] !== undefined) ? settings["legend"] : false; const arcLabelsSkipAngle = (settings["arcLabelsSkipAngle"]) ? settings["arcLabelsSkipAngle"] : 10; const cornerRadius = (settings["cornerRadius"]) ? settings["cornerRadius"] : 3; const colorScheme = (settings["colors"]) ? settings["colors"] : 'nivo'; + const inheritColorFromParent = (settings["inheritColorFromParent"] !== undefined) ? settings["inheritColorFromParent"] : true; + if(!data || !data.children || data.children.length == 0){ + return ; + } return ( <>
{refreshable ? - {setData(commonProperties.data); setRefreshable(false);}} - style={{ fontSize: "1.3rem", opacity: 0.6, bottom: 12, right: 12, position: "absolute", borderRadius: "12px", zIndex: 5, background: "#eee" }} - color="disabled" fontSize="small"> + { setData(commonProperties.data); setRefreshable(false); }} + style={{ fontSize: "1.3rem", opacity: 0.6, bottom: 12, right: 12, position: "absolute", borderRadius: "12px", zIndex: 5, background: "#eee" }} + color="disabled" fontSize="small"> :
} @@ -70,6 +85,7 @@ export default function SunburstVisualization(props: ExtendedChartReportProps) { enableArcLabels={enableArcLabels} borderWidth={borderWidth} cornerRadius={cornerRadius} + inheritColorFromParent = {inheritColorFromParent} margin={{ top: marginTop, right: marginRight, @@ -91,4 +107,6 @@ export default function SunburstVisualization(props: ExtendedChartReportProps) { />
) -} \ No newline at end of file +} + +export default NeoSunburstChart; \ No newline at end of file diff --git a/src/chart/TableChart.tsx b/src/chart/table/TableChart.tsx similarity index 70% rename from src/chart/TableChart.tsx rename to src/chart/table/TableChart.tsx index 9e7aaea6e..d90bb78dd 100644 --- a/src/chart/TableChart.tsx +++ b/src/chart/table/TableChart.tsx @@ -1,12 +1,15 @@ import React from 'react'; import { DataGrid } from '@mui/x-data-grid'; -import { ChartProps } from './Chart'; -import { getRecordType, getRendererForValue, rendererForType, RenderSubValue, valueIsNode, valueIsRelationship } from '../report/ReportRecordProcessing'; -import { evaluateRulesOnDict, generateClassDefinitionsBasedOnRules } from '../report/ReportRuleEvaluator'; -import GetAppIcon from '@material-ui/icons/GetApp'; +import { ChartProps } from '../Chart'; +import { evaluateRulesOnDict, generateClassDefinitionsBasedOnRules } from '../../report/ReportRuleEvaluator'; import { IconButton, Tooltip } from '@material-ui/core'; -import { downloadCSV } from './util/ChartUtils'; +import { downloadCSV } from '../ChartUtils'; import SaveAltIcon from '@material-ui/icons/SaveAlt'; +import { getRendererForValue, rendererForType, RenderSubValue } from '../../report/ReportRecordProcessing'; +import Button from '@material-ui/core/Button'; +import Snackbar from '@material-ui/core/Snackbar'; +import CloseIcon from '@material-ui/icons/Close'; + const TABLE_HEADER_HEIGHT = 32; const TABLE_FOOTER_HEIGHT = 52; @@ -28,6 +31,7 @@ const NeoTableChart = (props: ChartProps) => { const transposed = props.settings && props.settings.transposed ? props.settings.transposed : false; const allowDownload = props.settings && props.settings.allowDownload !== undefined ? props.settings.allowDownload : false; const styleRules = props.settings && props.settings.styleRules ? props.settings.styleRules : []; + const [notificationOpen, setNotificationOpen] = React.useState(false); const useStyles = generateClassDefinitionsBasedOnRules(styleRules); const classes = useStyles(); @@ -76,10 +80,29 @@ const NeoTableChart = (props: ChartProps) => { return (
- {(allowDownload && rows && rows.length > 0) ? + setNotificationOpen(false)} + message="Value copied to clipboard." + action={ + + setNotificationOpen(false)}> + + + + } + /> + + + {(allowDownload && rows && rows.length > 0) ? { - downloadCSV(rows); - }} aria-label="download csv" style={{ bottom: "9px", left: "3px", position: "absolute"}}> + downloadCSV(rows); + }} aria-label="download csv" style={{ bottom: "9px", left: "3px", position: "absolute" }}> @@ -88,7 +111,11 @@ const NeoTableChart = (props: ChartProps) => { headerHeight={32} rows={rows} columns={columns} - pageSize={Math.floor((props.dimensions.height-TABLE_HEADER_HEIGHT-TABLE_FOOTER_HEIGHT) / TABLE_ROW_HEIGHT)-1} + onCellDoubleClick={(e) => { + setNotificationOpen(true); + navigator.clipboard.writeText(e.value); + }} + pageSize={Math.floor((props.dimensions.height - TABLE_HEADER_HEIGHT - TABLE_FOOTER_HEIGHT) / TABLE_ROW_HEIGHT) - 1} disableSelectionOnClick components={{ ColumnSortedDescendingIcon: () => <>, diff --git a/src/chart/visualizations/TreeMapVisualization.tsx b/src/chart/treemap/TreeMapChart.tsx similarity index 73% rename from src/chart/visualizations/TreeMapVisualization.tsx rename to src/chart/treemap/TreeMapChart.tsx index 29280b317..c82413651 100644 --- a/src/chart/visualizations/TreeMapVisualization.tsx +++ b/src/chart/treemap/TreeMapChart.tsx @@ -1,34 +1,42 @@ -import React from 'react' +import React, { useEffect } from 'react'; +import { ChartProps } from '../Chart'; import { ResponsiveTreeMap } from '@nivo/treemap' -import { ExtendedChartReportProps } from './VisualizationProps' -import { checkResultKeys, mutateName, processHierarchyFromRecords, findObject, flatten } from './Utils' +import { checkResultKeys, mutateName, processHierarchyFromRecords, findObject, flatten } from '../ChartUtils'; import { useState } from 'react' import { Tooltip } from '@material-ui/core' import RefreshIcon from '@material-ui/icons/Refresh'; +import { NoDrawableDataErrorMessage } from '../../component/editor/CodeViewerComponent'; -export default function TreeMapVisualization(props: ExtendedChartReportProps) { - const { records, first } = props - - if (!first) { - return

Loading data...

+/** + * Embeds a TreeMap (from Charts) into NeoDash. + */ +const NeoTreeMapChart = (props: ChartProps) => { + if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return <>No data, re-run the report. } - - const error = checkResultKeys(first, ['index', 'key', 'value']) - - if (error !== false) { - return

{error.message}

+ const records = props.records; + const selection = props.selection; + const [data, setData] = useState(undefined); + useEffect(() => { + setData(commonProperties.data); + }, [props.selection]); + const [refreshable, setRefreshable] = useState(false); + + if (!selection || props.records == null || props.records.length == 0 || props.records[0].keys == null) { + return } - - const dataPre = processHierarchyFromRecords(records); + + const dataPre = processHierarchyFromRecords(records, selection); dataPre.forEach(currentNode => mutateName(currentNode)); // Where a user give us the hierarchy with a common root, in that case we can push the entire tree. // Where a user give us just the tree starting one hop away from the root. // as Nivo needs a common root, so in that case, we create it for them. const commonProperties = { data : dataPre.length == 1 ? dataPre[0] : {name : "Total", children : dataPre}}; + if(data == undefined){ + setData(commonProperties.data); + } - const [data, setData] = useState(commonProperties.data); - const [refreshable, setRefreshable] = useState(false); const settings = (props.settings) ? props.settings : {}; const legendHeight = 20; const marginRight = (settings["marginRight"]) ? settings["marginRight"] : 24; @@ -48,6 +56,11 @@ export default function TreeMapVisualization(props: ExtendedChartReportProps) { const getLabelForNode = (n) => { return n.formattedValue } + + // Final sanity check - only draw the visualization if we are sure the data is there and formatted correctly. + if(!data || !data.children || data.children.length == 0){ + return ; + } return ( <>
@@ -84,5 +97,6 @@ export default function TreeMapVisualization(props: ExtendedChartReportProps) { />
) +} -} \ No newline at end of file +export default NeoTreeMapChart; \ No newline at end of file diff --git a/src/chart/util/ChartUtils.ts b/src/chart/util/ChartUtils.ts deleted file mode 100644 index 7500f2d39..000000000 --- a/src/chart/util/ChartUtils.ts +++ /dev/null @@ -1,58 +0,0 @@ -import domtoimage from 'dom-to-image'; - -/** - * Basic function to convert a table row output to a CSV file, and download it. - * TODO: Make this more robust. Probably the commas should be escaped to ensure the CSV is always valid. - */ -export const downloadCSV = (rows) => { - const element = document.createElement("a"); - let csv = ""; - const headers = Object.keys(rows[0]).slice(1); - csv += headers.join(", ") + "\n"; - rows.forEach(row => { - headers.forEach((header) => { - // Parse value - var value = row[header]; - if (value && value["low"]) { - value = value["low"]; - } - csv += JSON.stringify(value).replaceAll(",", ";"); - csv += (headers.indexOf(header) < headers.length - 1) ? ", " : ""; - }); - csv += "\n"; - }); - - const file = new Blob([csv], { type: 'text/plain' }); - element.href = URL.createObjectURL(file); - element.download = "table.csv"; - document.body.appendChild(element); // Required for this to work in FireFox - element.click(); -} - -/** - * Replaces all global dashboard parameters inside a string with their values. - * @param str The string to replace the parameters in. - * @param parameters The parameters to replace. - */ -export function replaceDashboardParameters(str, parameters) { - if (!str) return ""; - Object.keys(parameters).forEach(key => { - str = str.replaceAll("$" + key, parameters[key] !== null ? parameters[key] : ""); - }); - return str; -} - -/** - * Downloads a screenshot of the element reference passed to it. - * @param ref The reference to the element to download as an image. - */ -export const downloadComponentAsImage = async (ref) => { - const element = ref.current; - - domtoimage.toPng(element,{bgcolor:'white'}).then(function (dataUrl) { - var link = document.createElement('a'); - link.download = 'image.png'; - link.href = dataUrl; - link.click(); - }); - }; \ No newline at end of file diff --git a/src/chart/visualizations/Utils.ts b/src/chart/visualizations/Utils.ts deleted file mode 100644 index 48e98beee..000000000 --- a/src/chart/visualizations/Utils.ts +++ /dev/null @@ -1,442 +0,0 @@ -import { QueryResult, Record as Neo4jRecord } from 'neo4j-driver' - -export function recordToNative(input: any): any { - if ( !input && input !== false ) { - return null - } - else if ( typeof input.keys === 'object' && typeof input.get === 'function' ) { - return Object.fromEntries(input.keys.map(key => [ key, recordToNative(input.get(key)) ])) - } - else if ( typeof input.toNumber === 'function' ) { - return input.toNumber() - } - else if ( Array.isArray(input) ) { - return (input as Array).map(item => recordToNative(item)) - } - else if ( typeof input === 'object' ) { - const converted = Object.entries(input).map(([ key, value ]) => [ key, recordToNative(value) ]) - - return Object.fromEntries(converted) - } - - return input -} - -export function resultToNative(result: QueryResult): Record { - if (!result) return {} - - return result.records.map(row => recordToNative(row)) -} -export function checkResultKeys(first: Neo4jRecord, keys: string[]) { - const missing = keys.filter(key => !first.keys.includes(key)) - - if ( missing.length > 0 ) { - return new Error(`The query is missing the following key${missing.length > 1 ? 's' : ''}: ${missing.join(', ')}. The expected keys are: ${keys.join(', ')}`) - } - - return false -} - -/** - * For hierarchical data structures, recursively search for a key property that must have a given value. - * If none can be found, return null. - */ -export const search = (tree, value, key = 'id', reverse = false) => { - if (tree.length == 0) return null; - const stack = Array.isArray(tree) ? [...tree] : [tree] - while (stack.length) { - const node = stack[reverse ? 'pop' : 'shift']() - if (node[key] && node[key] === value) return node - node.children && stack.push(...node.children) - } - return null -}; - - -/** - * For hierarchical data, we remove all intermediate node prefixes generate by `processHierarchyFromRecords`. - * This ensures that the visualization itself shows the 'real' names, and not the intermediate ones. - */ -export const mutateName = (currentNode) => { - if (currentNode.name){ - let s = currentNode.name.split('_'); - currentNode.name = s.length > 0 ? s.slice(1).join('_'): s[0]; - } - - if(currentNode.children) - currentNode.children.forEach(n => mutateName(n)) -} - -export const findObject = (data, name) => data.find(searchedName => searchedName.name === name); - -export const flatten = data => - data.reduce((acc, item) => { - if (item.children) - return [...acc, item, ...flatten(item.children)] - return [...acc, item] - }, []); - -/** - * Converts a list of Neo4j records into a hierarchy structure for hierarchical data visualizations. - */ -export const processHierarchyFromRecords = (records : Record[]) => { - return records.reduce((data: Record, row: Record) => { - - try { - const index = recordToNative(row.get('index')); - const key = recordToNative(row.get('key')); - const value = recordToNative(row.get('value')); - - let holder = data; - for (let [idx, val] of index.entries()) { - // Add a level prefix to each item to avoid duplicates - val = "lvl"+idx+"_"+val; - let obj = search(holder, val, 'name'); - let entry = { name: val }; - if(obj) - holder = obj; - else{ - if(Array.isArray(holder)) - holder.push(entry); - else if (holder.hasOwnProperty("children")) - holder.children.push(entry) - else - holder.children = [entry] - - holder = search(holder, val, 'name'); - } - } - holder.loc = value; - return data - } catch(e) { - console.error(e); - return []; - } - }, []); -} - -// TODO: Delete this test data for hierarchical reports. -export const hierarchicalTestData = { - "name": "nivo", - "children": [ - { - "name": "viz", - "children": [ - { - "name": "stack", - "children": [ - { - "name": "cchart", - "loc": 30064 - }, - { - "name": "xAxis", - "loc": 163841 - }, - { - "name": "yAxis", - "loc": 81499 - }, - { - "name": "layers", - "loc": 123359 - } - ] - }, - { - "name": "ppie", - "children": [ - { - "name": "chart", - "children": [ - { - "name": "pie", - "children": [ - { - "name": "outline", - "loc": 18509 - }, - { - "name": "slices", - "loc": 96675 - }, - { - "name": "bbox", - "loc": 161558 - } - ] - }, - { - "name": "donut", - "loc": 192783 - }, - { - "name": "gauge", - "loc": 92239 - } - ] - }, - { - "name": "legends", - "loc": 27356 - } - ] - } - ] - }, - { - "name": "colors", - "children": [ - { - "name": "rgb", - "loc": 138303 - }, - { - "name": "hsl", - "loc": 28193 - } - ] - }, - { - "name": "utils", - "children": [ - { - "name": "randomize", - "loc": 21157 - }, - { - "name": "resetClock", - "loc": 125941 - }, - { - "name": "noop", - "loc": 149459 - }, - { - "name": "tick", - "loc": 129827 - }, - { - "name": "forceGC", - "loc": 943 - }, - { - "name": "stackTrace", - "loc": 47399 - }, - { - "name": "dbg", - "loc": 123995 - } - ] - }, - { - "name": "generators", - "children": [ - { - "name": "address", - "loc": 100493 - } - ] - }, - { - "name": "set", - "children": [ - { - "name": "clone", - "loc": 81139 - }, - { - "name": "intersect", - "loc": 62508 - }, - { - "name": "merge", - "loc": 55346 - }, - { - "name": "reverse", - "loc": 121311 - }, - { - "name": "toArray", - "loc": 38100 - }, - { - "name": "toObject", - "loc": 154522 - }, - { - "name": "fromCSV", - "loc": 41776 - }, - { - "name": "slice", - "loc": 101958 - }, - { - "name": "append", - "loc": 147860 - }, - { - "name": "prepend", - "loc": 112871 - }, - { - "name": "shuffle", - "loc": 9858 - }, - { - "name": "pick", - "loc": 152671 - }, - { - "name": "plouc", - "loc": 166894 - } - ] - }, - { - "name": "text", - "children": [ - { - "name": "trim", - "loc": 16888 - }, - { - "name": "slugify", - "loc": 1891 - }, - { - "name": "snakeCase", - "loc": 93336 - }, - { - "name": "camelCase", - "loc": 12307 - }, - { - "name": "repeat", - "loc": 83941 - }, - { - "name": "padLeft", - "loc": 51330 - }, - { - "name": "padRight", - "loc": 109450 - }, - { - "name": "sanitize", - "loc": 163124 - }, - { - "name": "ploucify", - "loc": 118283 - } - ] - }, - { - "name": "misc", - "children": [ - { - "name": "greetings", - "children": [ - { - "name": "hey", - "loc": 147145 - }, - { - "name": "HOWDY", - "loc": 115821 - }, - { - "name": "aloha", - "loc": 168617 - }, - { - "name": "AHOY", - "loc": 5059 - } - ] - }, - { - "name": "other", - "loc": 141182 - }, - { - "name": "path", - "children": [ - { - "name": "pathA", - "loc": 111697 - }, - { - "name": "pathB", - "children": [ - { - "name": "pathB1", - "loc": 19589 - }, - { - "name": "pathB2", - "loc": 139581 - }, - { - "name": "pathB3", - "loc": 32288 - }, - { - "name": "pathB4", - "loc": 128382 - } - ] - }, - { - "name": "pathC", - "children": [ - { - "name": "pathC1", - "loc": 134193 - }, - { - "name": "pathC2", - "loc": 131748 - }, - { - "name": "pathC3", - "loc": 48812 - }, - { - "name": "pathC4", - "loc": 92870 - }, - { - "name": "pathC5", - "loc": 60282 - }, - { - "name": "pathC6", - "loc": 89867 - }, - { - "name": "pathC7", - "loc": 197107 - }, - { - "name": "pathC8", - "loc": 15449 - }, - { - "name": "pathC9", - "loc": 95465 - } - ] - } - ] - } - ] - } - ] -}; \ No newline at end of file diff --git a/src/chart/visualizations/VisualizationProps.ts b/src/chart/visualizations/VisualizationProps.ts deleted file mode 100644 index 0b9e14f09..000000000 --- a/src/chart/visualizations/VisualizationProps.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Record as Neo4jRecord } from 'neo4j-driver' -export default interface ReportProps { - records: Neo4jRecord[]; - first?: Neo4jRecord; -} - -export interface ChartReportProps extends ReportProps { - stacked?: boolean; - layout?: 'horizontal' | 'vertical'; - config?: Record -} - -// NeoDash Extension -export interface ExtendedChartReportProps extends ChartReportProps { - settings?: {}; - selection?: {}; -} diff --git a/src/component/editor/CodeViewerComponent.tsx b/src/component/editor/CodeViewerComponent.tsx index 7f179cf39..00a05f55a 100644 --- a/src/component/editor/CodeViewerComponent.tsx +++ b/src/component/editor/CodeViewerComponent.tsx @@ -1,5 +1,4 @@ import { TextareaAutosize } from '@material-ui/core'; -import TextField from '@material-ui/core/TextField'; import React from 'react'; @@ -10,7 +9,7 @@ const NeoCodeViewerComponent = ({ value = "", placeholder = "" }) => { return (
{ ); }; +export const NoDrawableDataErrorMessage = () => { + return +} + export default NeoCodeViewerComponent; \ No newline at end of file diff --git a/src/component/field/Field.tsx b/src/component/field/Field.tsx index 9e1ac1ce4..b8ffef640 100644 --- a/src/component/field/Field.tsx +++ b/src/component/field/Field.tsx @@ -16,6 +16,7 @@ const NeoField = ({ label, variant= undefined, helperText = undefined, defaultValue = undefined, + multiline = false, placeholder = "" }) => { return ( {onClick(e.target.textContent)}} onChange={(event) => { if (!numeric) { diff --git a/src/component/field/Setting.tsx b/src/component/field/Setting.tsx index 1d64eb9ca..30d70a6fa 100644 --- a/src/component/field/Setting.tsx +++ b/src/component/field/Setting.tsx @@ -10,13 +10,13 @@ const generateListItem = (label, option) => { return (option ? 'on' : 'off') } else { if (label == "Color Scheme" || label == "Node Color Scheme") { - const colorsFull = categoricalColorSchemes[option]; - const colors = Array.isArray(colorsFull) ? (Array.isArray(colorsFull.slice(-1)[0]) ? colorsFull.slice(-1)[0] : colorsFull) : colorsFull; + const colorsFull = categoricalColorSchemes[option]; + const colors = Array.isArray(colorsFull) ? (Array.isArray(colorsFull.slice(-1)[0]) ? colorsFull.slice(-1)[0] : colorsFull) : colorsFull; return (
{Array.isArray(colors) ? colors.map(element => { return - }) : ""+option - }
) + }) : "" + option + }
) } else { return "" + option @@ -29,7 +29,7 @@ const generateListItem = (label, option) => { * A setting is a generic React component that is rendered dynamically based on the 'type'. */ const NeoSetting = ({ name, value, choices, type, label, defaultValue, disabled = undefined, - helperText = undefined, inverted = false, onChange, onClick=(val)=>{}, + helperText = undefined, inverted = false, onChange, onClick = (val) => { }, style = { width: "100%", marginBottom: "10px", marginRight: "10px", marginLeft: "10px" } }) => { switch (type) { case SELECTION_TYPES.NUMBER: @@ -60,6 +60,21 @@ const NeoSetting = ({ name, value, choices, type, label, defaultValue, disabled onClick={(val) => onClick(val)} onChange={(val) => onChange(val)} />
; + case SELECTION_TYPES.MULTILINE_TEXT: + return
+ onClick(val)} + onChange={(val) => onChange(val)} /> +
; case SELECTION_TYPES.DICTIONARY: return
onClick(val)} - onChange={(val) => onChange(val)} + onChange={(val) => onChange(val)} style={style}>
} diff --git a/src/component/misc/DashboardConnectionUpdateHandler.tsx b/src/component/misc/DashboardConnectionUpdateHandler.tsx index c27b821cc..39e9e3723 100644 --- a/src/component/misc/DashboardConnectionUpdateHandler.tsx +++ b/src/component/misc/DashboardConnectionUpdateHandler.tsx @@ -1,15 +1,13 @@ import { useConnection } from "use-neo4j"; import React from 'react'; -import _ from 'lodash'; - - +import isEqual from 'lodash.isequal'; /** * Updates the Neo4j context when noticing an update in the global connection state. * TODO - there's probably a better way to do this, but I'm not sure how at the moment. */ const NeoDashboardConnectionUpdateHandler = ({ pagenumber, connection, onConnectionUpdate }) => { const [existingConnection, setExistingConnection] = React.useState(null); - if (!_.isEqual(connection, existingConnection)) { + if (!isEqual(connection, existingConnection)) { // Only trigger connection settings refreshes if the connection was once set before. if(existingConnection != null){ useConnection(connection.protocol, connection.url, connection.port, connection.username, connection.password); diff --git a/src/config/CardConfig.ts b/src/config/CardConfig.ts index be03d2b87..c68163147 100644 --- a/src/config/CardConfig.ts +++ b/src/config/CardConfig.ts @@ -1,69 +1,3 @@ - -// A dictionary of available card sizes. -export const CARD_SIZES = [ - { - label: 'Tiny (3x1.5)', - value: "3,1.25", - }, - { - label: 'Little (4x1.5)', - value: "4,1.25", - }, - { - label: 'Compact (6x1.5)', - value: "6,1.25", - }, - { - label: 'Small (3x3)', - value: "3,3", - }, - { - label: 'Medium (4x3)', - value: "4,3", - }, - { - label: 'Large (6x3)', - value: "6,3", - }, - { - label: 'Wide (8x3)', - value: "8,3", - }, - { - label: 'Extra Wide (9x3)', - value: "9,3", - }, - { - label: 'Full-Width (12x3)', - value: "12,3", - }, - { - label: 'Narrow (3x6)', - value: "3,6", - }, - { - label: 'Tall (4x6)', - value: "4,6", - }, - { - label: 'Huge (6x6)', - value: "6,6", - }, - { - label: 'Mega (8x6)', - value: "8,6", - }, - { - label: 'Giant (9x6)', - value: "9,6", - }, - { - label: 'Fullscreen (12x6)', - value: "12,6", - } -]; - - export const CARD_FOOTER_HEIGHT = 64; export const CARD_HEADER_HEIGHT = 72; diff --git a/src/config/ExampleConfig.ts b/src/config/ExampleConfig.ts index 2400d4d69..7c8a485f8 100644 --- a/src/config/ExampleConfig.ts +++ b/src/config/ExampleConfig.ts @@ -1,18 +1,17 @@ -import NeoBarChart from "../chart/BarChart"; -import NeoGraphChart from "../chart/GraphChart"; -import NeoIFrameChart from "../chart/IFrameChart"; -import NeoJSONChart from "../chart/JSONChart"; -import NeoLineChart from "../chart/LineChart"; -import NeoMapChart from "../chart/MapChart"; -import NeoPieChart from "../chart/PieChart"; -import NeoTableChart from "../chart/TableChart"; -import NeoSunburstChart from "../chart/SunburstChart"; -import NeoCirclePackingChart from "../chart/CirclePackingChart"; -import NeoTreeMapChart from "../chart/TreeMapChart"; -import NeoChoroplethMapChart from "../chart/ChoroplethMapChart"; -import NeoSankeyChart from "../chart/SankeyChart"; - - +import NeoBarChart from "../chart/bar/BarChart"; +import NeoGraphChart from "../chart/graph/GraphChart"; +import NeoIFrameChart from "../chart/iframe/IFrameChart"; +import NeoJSONChart from "../chart/json/JSONChart"; +import NeoLineChart from "../chart/line/LineChart"; +import NeoMapChart from "../chart/map/MapChart"; +import NeoPieChart from "../chart/pie/PieChart"; +import NeoTableChart from "../chart/table/TableChart"; +import NeoSunburstChart from "../chart/sunburst/SunburstChart"; +import NeoCirclePackingChart from "../chart/circlepacking/CirclePackingChart"; +import NeoTreeMapChart from "../chart/treemap/TreeMapChart"; +import NeoChoroplethMapChart from "../chart/choropleth/ChoroplethMapChart"; +import NeoSankeyChart from "../chart/sankey/SankeyChart"; +import NeoRadarChart from "../chart/radar/RadarChart"; export const EXAMPLE_REPORTS = [ { @@ -55,7 +54,7 @@ export const EXAMPLE_REPORTS = [ UNWIND data as row RETURN row.path as Path, row.person as Person, row.rating as Rating, row.movie as Movie `, - settings: {columnWidths: "[2,1,1,1]"}, + settings: { columnWidths: "[2,1,1,1]" }, fields: [], selection: {}, type: "table", @@ -101,7 +100,7 @@ export const EXAMPLE_REPORTS = [ UNWIND data as row RETURN row.path as Path `, - settings: {lockable: false}, + settings: { lockable: false }, fields: [], selection: { "Person": "name", @@ -137,9 +136,9 @@ export const EXAMPLE_REPORTS = [ description: "Pie charts can be used to visualize categories and numeric values.", exampleQuery: "// How much fruit is in stock?" + "\n" + "MATCH (p:Product) \nRETURN p.name as Product,\n p.quantity as Quantity", syntheticQuery: 'WITH [["Apple",10], ["Banana",20], ["Coconut",20], ["Pear",40] ] as array UNWIND array as row RETURN row[0] as Product, row[1] as Quantity', - settings: { }, - selection: { index: "Product", value: "Quantity", key: "Product"}, - fields: ["Product","Quantity"], + settings: {}, + selection: { index: "Product", value: "Quantity", key: "Product" }, + fields: ["Product", "Quantity"], type: "pie", chartType: NeoPieChart }, @@ -229,9 +228,9 @@ RETURN value description: "You can iFrame other webpages inside a dashboard, and dynamically pass in your dashboard parameters into the URL.", exampleQuery: `https://neodash.graphapp.io/embed-test.html`, syntheticQuery: `https://neodash.graphapp.io/embed-test.html`, - settings: {"passGlobalParameters": true}, + settings: { "passGlobalParameters": true }, fields: [], - globalParameters: {"neodash_person_name": "Keanu", "neodash_movie_title": "The Matrix"}, + globalParameters: { "neodash_person_name": "Keanu", "neodash_movie_title": "The Matrix" }, selection: {}, type: "iframe", chartType: NeoIFrameChart @@ -240,22 +239,22 @@ RETURN value title: "Sunburst Chart", description: "Sunburst charts can be used to visualize hierarchical data, where each leaf has a numeric value.", exampleQuery: "// How are people distributed in the company?\n" + - "MATCH path=(:Company{name:'NeoDash'})-[:HAS_DEPARTMENT*]->(:Department)\n"+ + "MATCH path=(:Company{name:'NeoDash'})-[:HAS_DEPARTMENT*]->(:Department)\n" + "WITH nodes(path) as no\n" + "WITH no, last(no) as leaf\n" + "WITH [n IN no[..-1] | n.name] AS result, sum(leaf.employees) as val\n" + "RETURN result, val", - syntheticQuery: 'UNWIND [\n'+ - '{path: ["NeoDash", "North"], value: 3},\n'+ - '{path: ["NeoDash", "Center"], value: 5},\n'+ - '{path: ["NeoDash", "South", "South 1"], value: 2},\n'+ - '{path: ["NeoDash", "South", "South 2", "South 2.1"], value: 1},\n'+ - '{path: ["NeoDash", "South", "South 2", "South 2.2"], value: 3}\n'+ - '] as x\n'+ + syntheticQuery: 'UNWIND [\n' + + '{path: ["NeoDash", "North"], value: 3},\n' + + '{path: ["NeoDash", "Center"], value: 5},\n' + + '{path: ["NeoDash", "South", "South 1"], value: 2},\n' + + '{path: ["NeoDash", "South", "South 2", "South 2.1"], value: 1},\n' + + '{path: ["NeoDash", "South", "South 2", "South 2.2"], value: 3}\n' + + '] as x\n' + 'RETURN x.path as path, x.value as value', - settings: { }, - selection: { index: "path", value: "value", key: "path"}, - fields: ["path","value"], + settings: {}, + selection: { index: "path", value: "value", key: "path" }, + fields: ["path", "value"], type: "sunburst", chartType: NeoSunburstChart }, @@ -263,22 +262,22 @@ RETURN value title: "Circle Packing Chart", description: "Circle Packing charts can be used to visualize hierarchical data, where each leaf has a numeric value.", exampleQuery: "// How are people distributed in the company?\n" + - "MATCH path=(:Company{name:'NeoDash'})-[:HAS_DEPARTMENT*]->(:Department)\n"+ + "MATCH path=(:Company{name:'NeoDash'})-[:HAS_DEPARTMENT*]->(:Department)\n" + "WITH nodes(path) as no\n" + "WITH no, last(no) as leaf\n" + "WITH [n IN no[..-1] | n.name] AS result, sum(leaf.employees) as val\n" + "RETURN result, val", - syntheticQuery: 'UNWIND [\n'+ - '{path: ["NeoDash", "North"], value: 3},\n'+ - '{path: ["NeoDash", "Center"], value: 5},\n'+ - '{path: ["NeoDash", "South", "South 1"], value: 2},\n'+ - '{path: ["NeoDash", "South", "South 2", "South 2.1"], value: 1},\n'+ - '{path: ["NeoDash", "South", "South 2", "South 2.2"], value: 3}\n'+ - '] as x\n'+ + syntheticQuery: 'UNWIND [\n' + + '{path: ["NeoDash", "North"], value: 3},\n' + + '{path: ["NeoDash", "Center"], value: 5},\n' + + '{path: ["NeoDash", "South", "South 1"], value: 2},\n' + + '{path: ["NeoDash", "South", "South 2", "South 2.1"], value: 1},\n' + + '{path: ["NeoDash", "South", "South 2", "South 2.2"], value: 3}\n' + + '] as x\n' + 'RETURN x.path as path, x.value as value', - settings: { }, - selection: { index: "path", value: "value", key: "path"}, - fields: ["path","value"], + settings: {}, + selection: { index: "path", value: "value", key: "path" }, + fields: ["path", "value"], type: "circlePacking", chartType: NeoCirclePackingChart }, @@ -286,25 +285,60 @@ RETURN value title: "Treemap Chart", description: "Treemap charts can be used to visualize hierarchical data, where each leaf has a numeric value.", exampleQuery: "// How are people distributed in the company?\n" + - "MATCH path=(:Company{name:'NeoDash'})-[:HAS_DEPARTMENT*]->(:Department)\n"+ + "MATCH path=(:Company{name:'NeoDash'})-[:HAS_DEPARTMENT*]->(:Department)\n" + "WITH nodes(path) as no\n" + "WITH no, last(no) as leaf\n" + "WITH [n IN no[..-1] | n.name] AS result, sum(leaf.employees) as val\n" + "RETURN result, val", - syntheticQuery: 'UNWIND [\n'+ - '{path: ["NeoDash", "North"], value: 3},\n'+ - '{path: ["NeoDash", "Center"], value: 5},\n'+ - '{path: ["NeoDash", "South", "South 1"], value: 2},\n'+ - '{path: ["NeoDash", "South", "South 2", "South 2.1"], value: 1},\n'+ - '{path: ["NeoDash", "South", "South 2", "South 2.2"], value: 3}\n'+ - '] as x\n'+ + syntheticQuery: 'UNWIND [\n' + + '{path: ["NeoDash", "North"], value: 3},\n' + + '{path: ["NeoDash", "Center"], value: 5},\n' + + '{path: ["NeoDash", "South", "South 1"], value: 2},\n' + + '{path: ["NeoDash", "South", "South 2", "South 2.1"], value: 1},\n' + + '{path: ["NeoDash", "South", "South 2", "South 2.2"], value: 3}\n' + + '] as x\n' + 'RETURN x.path as path, x.value as value', - settings: { }, - selection: { index: "path", value: "value", key: "path"}, - fields: ["path","value"], + settings: {}, + selection: { index: "path", value: "value", key: "path" }, + fields: ["path", "value"], type: "treeMap", chartType: NeoTreeMapChart }, + { + title: "Radar Chart", + description: "Radar charts can be used to render multivariate data from an array of nodes into the form of a two dimensional chart of three or more quantitative variables.", + exampleQuery: "// What are FIFA22 players stats?\n" + + "MATCH (s:Skill),\n" + + "(:Player{name:'Messi'})-[h1]->(s),\n" + + "(:Player{name:'Mbappe'})-[h2]->(s),\n" + + "(:Player{name:'Benzema'})-[h3]->(s),\n" + + "(:Player{name:'Ronaldo'})-[h4]->(s),\n" + + "(:Player{name:'Lewandowski'})-[h5]->(s)\n" + + "RETURN s.name as Skill, \n h1.value as Messi,\nh2.value as Mbappe,\n h3.value as Benzema,\n" + + "h4.value as `Ronaldo`,\n h5.value as Lewandowski", + syntheticQuery: 'UNWIND [' + + '{Skill: "PACE", Lewandowski: 78, Messi: 83, Ronaldo: 85, Benzema: 80, Mbappé: 97},' + + ' {Skill: "SHOOTING", Lewandowski: 92, Messi: 90, Ronaldo: 93, Benzema: 88, Mbappé: 88},' + + ' {Skill: "PASSING", Lewandowski: 79, Messi: 91, Ronaldo: 80, Benzema: 83, Mbappé: 80},' + + ' {Skill: "DRIBBLING", Lewandowski: 86, Messi: 95, Ronaldo: 86, Benzema: 87, Mbappé: 92},' + + ' {Skill: "DEFENDING", Lewandowski: 44, Messi: 34, Ronaldo: 34, Benzema: 39, Mbappé: 36},' + + ' {Skill: "PHYSICAL", Lewandowski: 82, Messi: 64, Ronaldo: 75, Benzema: 78, Mbappé: 77}' + + ' ] as data ' + + ' RETURN data.Skill as Skill, data.Lewandowski as Lewandowski, data.Messi as Messi, data.Ronaldo as Ronaldo, data.Benzema as Benzema ,data.Mbappé as Mbappé', + settings: {"colors": "set3"}, + selection: { + index: "Skill", values: [ + "Lewandowski", + "Benzema", + "Mbappé", + "Messi", + "Ronaldo" + ] + }, + fields: ["Skill", 'Lewandowski', 'Messi', 'Ronaldo', 'Benzema', 'Mbappé'], + type: "radar", + chartType: NeoRadarChart + }, { title: "Sankey", description: "A Sankey visualization will compute a diagram from nodes and links. Beware that cyclic dependencies are not supported.", @@ -345,7 +379,7 @@ RETURN value UNWIND data as row RETURN row.path as Path `, - settings: {labelPosition: "outside", labelProperty : "rating", layout : "vertical"}, + settings: { labelPosition: "outside", labelProperty: "rating", layout: "vertical" }, fields: [], selection: { "Person": "name", @@ -358,23 +392,23 @@ RETURN value title: "Choropleth Chart", description: "Choropleth charts can be used to render geographical based information on geoJson polygons.", exampleQuery: "// How are people distributed in the company per country?\n" + - "MATCH (:Company{name:'NeoDash'})-[:HAS_DEPARTMENT]->(:Department)<-[:IN_DEPARTMENT]-(e:Employee),\n"+ + "MATCH (:Company{name:'NeoDash'})-[:HAS_DEPARTMENT]->(:Department)<-[:IN_DEPARTMENT]-(e:Employee),\n" + "(e)-[:LIVES_IN]->(c:Country)\n" + "WITH c.code as code, count(e) as value\n" + "RETURN code, value", - syntheticQuery: 'UNWIND [\n'+ - '{id: "ARG", value: 23},\n'+ - '{id: "BOL", value: 2},\n'+ - '{id: "CAN", value: 100},\n'+ - '{id: "COL", value: 5},\n'+ - '{id: "FRA", value: 40},\n'+ - '{id: "USA", value: 156}\n'+ - '] as x \n'+ + syntheticQuery: 'UNWIND [\n' + + '{id: "ARG", value: 23},\n' + + '{id: "BOL", value: 2},\n' + + '{id: "CAN", value: 100},\n' + + '{id: "COL", value: 5},\n' + + '{id: "FRA", value: 40},\n' + + '{id: "USA", value: 156}\n' + + '] as x \n' + 'RETURN x.id as code, x.value as value', - settings: { colors : "nivo"}, - selection: { index: "code", value: "value", key: "code"}, - fields: ["code","value"], + settings: { colors: "nivo" }, + selection: { index: "code", value: "value", key: "code" }, + fields: ["code", "value"], type: "choropleth", chartType: NeoChoroplethMapChart - }, -] \ No newline at end of file + } +] diff --git a/src/config/ReportConfig.tsx b/src/config/ReportConfig.tsx index f5e06567a..788c2ec07 100644 --- a/src/config/ReportConfig.tsx +++ b/src/config/ReportConfig.tsx @@ -1,28 +1,31 @@ import React from 'react'; import NeoCardSettingsContentPropertySelect from '../card/settings/custom/CardSettingsContentPropertySelect'; -import NeoBarChart from '../chart/BarChart'; -import NeoGraphChart from '../chart/GraphChart'; -import NeoIFrameChart from '../chart/IFrameChart'; -import NeoJSONChart from '../chart/JSONChart'; -import NeoLineChart from '../chart/LineChart'; -import NeoMapChart from '../chart/MapChart'; -import NeoMarkdownChart from '../chart/MarkdownChart'; -import NeoParameterSelectionChart from '../chart/ParameterSelectionChart'; -import NeoPieChart from '../chart/PieChart'; -import NeoSunburstChart from '../chart/SunburstChart'; -import NeoTreeMapChart from '../chart/TreeMapChart'; -import NeoSingleValueChart from '../chart/SingleValueChart'; -import NeoTableChart from '../chart/TableChart'; -import NeoCirclePackingChart from "../chart/CirclePackingChart"; -import NeoChoroplethMapChart from "../chart/ChoroplethMapChart"; -import NeoSankeyChart from "../chart/SankeyChart"; +import NeoBarChart from "../chart/bar/BarChart"; +import NeoGraphChart from "../chart/graph/GraphChart"; +import NeoIFrameChart from "../chart/iframe/IFrameChart"; +import NeoJSONChart from "../chart/json/JSONChart"; +import NeoLineChart from "../chart/line/LineChart"; +import NeoMapChart from "../chart/map/MapChart"; +import NeoPieChart from "../chart/pie/PieChart"; +import NeoTableChart from "../chart/table/TableChart"; +import NeoSunburstChart from "../chart/sunburst/SunburstChart"; +import NeoCirclePackingChart from "../chart/circlepacking/CirclePackingChart"; +import NeoTreeMapChart from "../chart/treemap/TreeMapChart"; +import NeoChoroplethMapChart from "../chart/choropleth/ChoroplethMapChart"; +import NeoSankeyChart from "../chart/sankey/SankeyChart"; +import NeoSingleValueChart from '../chart/single/SingleValueChart'; +import NeoParameterSelectionChart from '../chart/parameter/ParameterSelectionChart'; +import NeoMarkdownChart from '../chart/markdown/MarkdownChart'; +import NeoRadarChart from '../chart/radar/RadarChart'; + export enum SELECTION_TYPES { NUMBER, NUMBER_OR_DATETIME, LIST, TEXT, + MULTILINE_TEXT, DICTIONARY, COLOR, NODE_PROPERTIES @@ -44,7 +47,6 @@ export const REPORT_TYPES = { helperText: "A table will contain all returned data.", component: NeoTableChart, maxRecords: 1000, - settings: { "transposed": { label: "Transpose Rows & Columns", @@ -68,6 +70,11 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, @@ -192,22 +199,28 @@ export const REPORT_TYPES = { values: [true, false], default: false }, + "iconStyle": { + label: "Node Background Image by label, formatted as {label: url}", + type: SELECTION_TYPES.TEXT, + default: "" + }, "autorun": { label: "Auto-run query", type: SELECTION_TYPES.LIST, values: [true, false], default: true }, - "iconStyle": { - label: "Icon Style on format { label : url}", - type: SELECTION_TYPES.TEXT, - default: "" + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, "bar": { label: "Bar Chart", component: NeoBarChart, + useReturnValuesAsFields: true, helperText:
A bar chart expects two fields: a category and a value.
, selection: { "index": { @@ -225,7 +238,6 @@ export const REPORT_TYPES = { optional: true } }, - useRecordMapper: true, maxRecords: 250, settings: { "legend": { @@ -321,12 +333,18 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, "pie": { label: "Pie Chart", component: NeoPieChart, + useReturnValuesAsFields: true, helperText:
A pie chart expects two fields: a category and a value.
, selection: { "index": { @@ -344,7 +362,6 @@ export const REPORT_TYPES = { optional: true } }, - useRecordMapper: true, maxRecords: 250, settings: { "legend": { @@ -448,6 +465,11 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, @@ -455,6 +477,7 @@ export const REPORT_TYPES = { "line": { label: "Line Chart", component: NeoLineChart, + useReturnValuesAsFields: true, helperText:
A line chart expects two fields: an x value and a y value. The x value can be a number or a Neo4j datetime object. Values are automatically selected from your query results.
, selection: { "x": { @@ -469,7 +492,6 @@ export const REPORT_TYPES = { }, }, maxRecords: 250, - useRecordMapper: true, settings: { "legend": { label: "Show Legend", @@ -530,6 +552,16 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.TEXT, default: "every 1 year" }, + "xTickRotationAngle": { + label: "X-axis Tick Rotation (Degrees)", + type: SELECTION_TYPES.NUMBER, + default: 0 + }, + "yTickRotationAngle": { + label: "Y-axis Tick Rotation (Degrees)", + type: SELECTION_TYPES.NUMBER, + default: 0 + }, "curve": { label: "Line Smoothing", type: SELECTION_TYPES.LIST, @@ -583,6 +615,121 @@ export const REPORT_TYPES = { values: [true, false], default: false }, + "autorun": { + label: "Auto-run query", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." + } + } + }, + "radar": { + label: "Radar Chart", + component: NeoRadarChart, + useReturnValuesAsFields: true, + helperText:
A radar chart expects two advanced configurations: a Quantitative Variables and an Index Property.
, + selection: { + "index": { + label: "Index", + type: SELECTION_TYPES.TEXT, + key: true + }, + "values": { + label: "Value", + type: SELECTION_TYPES.NUMBER, + multiple: true, + key: true + }, + }, + maxRecords: 250, + settings: { + "legend": { + label: "Show Legend", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: false + }, + "interactive": { + label: "Enable interactivity", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: true + }, + "animate": { + label: "Enable transitions", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: true + }, + "colors": { + label: "Color Scheme", + type: SELECTION_TYPES.LIST, + values: ["nivo", "category10", "accent", "dark2", "paired", "pastel1", "pastel2", "set1", "set2", "set3"], + default: "set2" + }, + "marginLeft": { + label: "Margin Left (px)", + type: SELECTION_TYPES.NUMBER, + default: 24 + }, + "marginRight": { + label: "Margin Right (px)", + type: SELECTION_TYPES.NUMBER, + default: 24 + }, + "marginTop": { + label: "Margin Top (px)", + type: SELECTION_TYPES.NUMBER, + default: 40 + }, + "marginBottom": { + label: "Margin Bottom (px)", + type: SELECTION_TYPES.NUMBER, + default: 40 + }, + "dotSize": { + label: "Size of the dots (px)", + type: SELECTION_TYPES.NUMBER, + default: 10 + }, + "dotBorderWidth": { + label: "Width of the dots border (px)", + type: SELECTION_TYPES.NUMBER, + default: 2 + }, + "gridLevels": { + label: "Number of levels to display for grid", + type: SELECTION_TYPES.NUMBER, + default: 5 + }, + "gridLabelOffset": { + label: "Label offset from outer radius (px)", + type: SELECTION_TYPES.NUMBER, + default: 16 + }, + "blendMode": { + label: "Blend Mode", + type: SELECTION_TYPES.LIST, + values: ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], + default: "normal" + }, + "motionConfig": { + label: "Motion Configuration", + type: SELECTION_TYPES.LIST, + values: ["default", "gentle", "wobbly", "stiff", "slow","molasses"], + default: "gentle" + }, + "curve": { + label: "Curve interpolation", + type: SELECTION_TYPES.LIST, + values: ["basicClosed", "cardinalClosed", "catmullRomClosed", "linearClosed"], + default: "linearClosed" + }, "autorun": { label: "Auto-run query", type: SELECTION_TYPES.LIST, @@ -664,11 +811,21 @@ export const REPORT_TYPES = { values: [true, false], default: false }, + "providerUrl": { + label: "Map Provider URL", + type: SELECTION_TYPES.TEXT, + default: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" + }, "autorun": { label: "Auto-run query", type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, @@ -710,12 +867,18 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, "sunburst": { label: "Sunburst Chart", component: NeoSunburstChart, + useReturnValuesAsFields: true, helperText:
A Sunburst chart expects two fields: a path (list of strings) and a value.
, selection: { "index": { @@ -733,7 +896,6 @@ export const REPORT_TYPES = { optional: true } }, - useRecordMapper: true, maxRecords: 3000, settings: { "enableArcLabels": { @@ -789,17 +951,29 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.NUMBER, default: 3 }, + "inheritColorFromParent": { + label: "Inherit color from parent", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: true + }, "autorun": { label: "Auto-run query", type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, "circlePacking": { label: "Circle Packing", component: NeoCirclePackingChart, + useReturnValuesAsFields: true, helperText:
A circle packing chart expects two fields: a path (list of strings) and a value.
, selection: { "index": { @@ -817,7 +991,6 @@ export const REPORT_TYPES = { optional: true } }, - useRecordMapper: true, maxRecords: 3000, settings: { "interactive": { @@ -868,12 +1041,18 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, "treeMap": { label: "Treemap", component: NeoTreeMapChart, + useReturnValuesAsFields: true, helperText:
A Tree Map chart expects two fields: a path (list of strings) and a value.
, selection: { "index": { @@ -891,7 +1070,6 @@ export const REPORT_TYPES = { optional: true } }, - useRecordMapper: true, maxRecords: 3000, settings: { "interactive": { @@ -936,6 +1114,115 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." + } + } + }, + "sankey": { + label: "Sankey Chart", + component: NeoSankeyChart, + useNodePropsAsFields: true, + autoAssignSelectedProperties: true, + ignoreLabelColors: true, + helperText:
A Sankey chart expects Neo4j nodes and weighted relationships.
, + selection: { + "nodeProperties": { + label: "Node Properties", + type: SELECTION_TYPES.NODE_PROPERTIES + } + }, + maxRecords: 250, + settings: { + "legend": { + label: "Show legend", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: false + }, + "interactive": { + label: "Enable interactivity", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: true + }, + "layout": { + label: "Sankey layout", + type: SELECTION_TYPES.LIST, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + "colors": { + label: "Color Scheme", + type: SELECTION_TYPES.LIST, + values: ["nivo", "category10", "accent", "dark2", "paired", "pastel1", "pastel2", "set1", "set2", "set3"], + default: "set2" + }, + "labelPosition": { + label: "Control sankey label position", + type: SELECTION_TYPES.LIST, + values: ["inside", "outside"], + default: "inside" + }, + "labelOrientation": { + label: "Control sankey label orientation", + type: SELECTION_TYPES.LIST, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + "nodeBorderWidth": { + label: "Node border width (px)", + type: SELECTION_TYPES.NUMBER, + default: 0 + }, + "marginLeft": { + label: "Margin Left (px)", + type: SELECTION_TYPES.NUMBER, + default: 24 + }, + "marginRight": { + label: "Margin Right (px)", + type: SELECTION_TYPES.NUMBER, + default: 24 + }, + "marginTop": { + label: "Margin Top (px)", + type: SELECTION_TYPES.NUMBER, + default: 24 + }, + "marginBottom": { + label: "Margin Bottom (px)", + type: SELECTION_TYPES.NUMBER, + default: 40 + }, + "labelProperty": { + label: "Relationship value Property", + type: SELECTION_TYPES.TEXT, + default: "value" + }, + "nodeThickness": { + label: "Node thickness (px)", + type: SELECTION_TYPES.NUMBER, + default: 18 + }, + "nodeSpacing": { + label: "Spacing between nodes at an identical level (px)", + type: SELECTION_TYPES.NUMBER, + default: 18 + }, + "autorun": { + label: "Auto-run query", + type: SELECTION_TYPES.LIST, + values: [true, false], + default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, @@ -1041,6 +1328,7 @@ export const REPORT_TYPES = { "choropleth": { label: "Choropleth Map", component: NeoChoroplethMapChart, + useReturnValuesAsFields: true, helperText:
A Choropleth Map chart expects two fields: a country code (three-letter code) and a value.
, selection: { "index": { @@ -1059,7 +1347,6 @@ export const REPORT_TYPES = { optional: true } }, - useRecordMapper: true, maxRecords: 300, settings: { "interactive": { @@ -1130,8 +1417,12 @@ export const REPORT_TYPES = { label: "Tooltip Property", type: SELECTION_TYPES.TEXT, default: "properties.name" + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } - } }, "json": { @@ -1146,6 +1437,11 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: true + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, @@ -1182,6 +1478,11 @@ export const REPORT_TYPES = { values: [true, false], default: true }, + "defaultValue": { + label: "Default Value (Override)", + type: SELECTION_TYPES.TEXT, + default: "" + }, "clearParameterOnFieldClear": { label: "Clear Parameter on Field Reset", type: SELECTION_TYPES.LIST, @@ -1208,6 +1509,11 @@ export const REPORT_TYPES = { label: "Timeout for value updates (ms)", type: SELECTION_TYPES.NUMBER, default: 1000 + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, @@ -1231,6 +1537,11 @@ export const REPORT_TYPES = { type: SELECTION_TYPES.LIST, values: [true, false], default: false + }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." } } }, @@ -1249,6 +1560,11 @@ export const REPORT_TYPES = { values: [true, false], default: false }, + "description": { + label: "Report Description", + type: SELECTION_TYPES.MULTILINE_TEXT, + default: "Enter markdown here..." + } } } } diff --git a/src/dashboard/Dashboard.tsx b/src/dashboard/Dashboard.tsx index 742b0c0c1..ab3efc43d 100644 --- a/src/dashboard/Dashboard.tsx +++ b/src/dashboard/Dashboard.tsx @@ -6,13 +6,12 @@ import NeoDashboardHeader from './header/DashboardHeader'; import { createDriver, Neo4jProvider, useConnection } from 'use-neo4j'; import { applicationGetConnection, applicationHasAboutModalOpen } from '../application/ApplicationSelectors'; import { connect } from 'react-redux'; -import _ from 'lodash'; import NeoDashboardConnectionUpdateHandler from '../component/misc/DashboardConnectionUpdateHandler'; import { forceRefreshPage } from '../page/PageActions'; import { getPageNumber } from '../settings/SettingsSelectors'; import { createNotification } from '../application/ApplicationActions'; import { createNotificationThunk } from '../page/PageThunks'; -import { downloadComponentAsImage } from '../chart/util/ChartUtils'; +import { downloadComponentAsImage } from '../chart/ChartUtils'; diff --git a/src/dashboard/DashboardThunks.ts b/src/dashboard/DashboardThunks.ts index ec803a559..8a155d74f 100644 --- a/src/dashboard/DashboardThunks.ts +++ b/src/dashboard/DashboardThunks.ts @@ -120,16 +120,16 @@ export const saveDashboardToNeo4jThunk = (driver, database, dashboard, date, use const query = (overwrite) ? "OPTIONAL MATCH (n:_Neodash_Dashboard{title:$title}) DELETE n WITH 1 as X LIMIT 1 CREATE (n:_Neodash_Dashboard) SET n.uuid = $uuid, n.title = $title, n.version = $version, n.user = $user, n.content = $content, n.date = datetime($date) RETURN $uuid as uuid" : "CREATE (n:_Neodash_Dashboard) SET n.uuid = $uuid, n.title = $title, n.version = $version, n.user = $user, n.content = $content, n.date = datetime($date) RETURN $uuid as uuid"; - runCypherQuery(driver, database, - query, - { uuid: uuid, title: title, version: version, user: user, content: JSON.stringify(dashboard, null, 2), date: date }, - {}, ["uuid"], 1, () => { return }, (records) => { + + const parameters = { uuid: uuid, title: title, version: version, user: user, content: JSON.stringify(dashboard, null, 2), date: date }; + runCypherQuery(driver, database, query, parameters, 1, + () => { return }, + (records) => { if (records && records[0] && records[0]["_fields"] && records[0]["_fields"][0] && records[0]["_fields"][0] == uuid) { dispatch(createNotificationThunk("🎉 Success!", "Your current dashboard was saved to Neo4j.")); } else { dispatch(createNotificationThunk("Unable to save dashboard", "Do you have write access to the '" + database + "' database?")); } - }); } catch (e) { @@ -139,7 +139,8 @@ export const saveDashboardToNeo4jThunk = (driver, database, dashboard, date, use export const loadDashboardFromNeo4jByUUIDThunk = (driver, database, uuid, callback) => (dispatch: any, getState: any) => { try { - runCypherQuery(driver, database, "MATCH (n:_Neodash_Dashboard) WHERE n.uuid = $uuid RETURN n.content as dashboard", { uuid: uuid }, {}, ["dashboard"], 1, () => { return }, (records) => { + runCypherQuery(driver, database, "MATCH (n:_Neodash_Dashboard) WHERE n.uuid = $uuid RETURN n.content as dashboard", { uuid: uuid }, + 1, () => { return }, (records) => { if (records.length == 0) { dispatch(createNotificationThunk("Unable to load dashboard.", "A dashboard with the provided UUID could not be found.")); } @@ -153,12 +154,18 @@ export const loadDashboardFromNeo4jByUUIDThunk = (driver, database, uuid, callba export const loadDashboardFromNeo4jByNameThunk = (driver, database, name, callback) => (dispatch: any, getState: any) => { try { - runCypherQuery(driver, database, "MATCH (d:_Neodash_Dashboard) WHERE d.title = $name RETURN d.content as dashboard ORDER by d.date DESC LIMIT 1", { name: name }, {}, ["dashboard"], 1, () => { return }, (records) => { - if (records.length == 0) { - dispatch(createNotificationThunk("Unable to load dashboard.", "A dashboard with the provided name could not be found.")); - } - callback(records[0]['_fields'][0]) - }) + const query = "MATCH (d:_Neodash_Dashboard) WHERE d.title = $name RETURN d.content as dashboard ORDER by d.date DESC LIMIT 1"; + runCypherQuery(driver, + database, + query, + { name: name }, 1, + () => { return }, + (records) => { + if (records.length == 0) { + dispatch(createNotificationThunk("Unable to load dashboard.", "A dashboard with the provided name could not be found.")); + } + callback(records[0]['_fields'][0]) + }) } catch (e) { dispatch(createNotificationThunk("Unable to load dashboard from Neo4j", e)); } @@ -168,7 +175,7 @@ export const loadDashboardListFromNeo4jThunk = (driver, database, callback) => ( try { runCypherQuery(driver, database, "MATCH (n:_Neodash_Dashboard) RETURN n.uuid as id, n.title as title, toString(n.date) as date, n.user as author, n.version as version ORDER BY date DESC", - {}, {}, ["id, title, date, user, version"], 1000, () => { return }, (records) => { + {}, 1000, () => { return }, (records) => { if (!records || !records[0] || !records[0]["_fields"]) { callback([]); return @@ -215,7 +222,7 @@ export function upgradeDashboardVersion(dashboard: any, origin: string, target: dashboard["pages"][i]["reports"][j] = { x: xPos, y: yPos, ...dashboard["pages"][i]["reports"][j] }; dashboard["pages"][i]["reports"][j]['height'] = reportHeight / 1.5; xPos += reportWidth; - rowHeight = Math.max(reportHeight /1.5, rowHeight); + rowHeight = Math.max(reportHeight / 1.5, rowHeight); if (xPos >= 12) { xPos = 0; yPos += rowHeight; diff --git a/src/modal/AboutModal.tsx b/src/modal/AboutModal.tsx index 7fb934544..d6f4cd990 100644 --- a/src/modal/AboutModal.tsx +++ b/src/modal/AboutModal.tsx @@ -12,7 +12,7 @@ import BugReportIcon from '@material-ui/icons/BugReport'; export const NeoAboutModal = ({ open, handleClose, getDebugState }) => { const app = "NeoDash - Neo4j Dashboard Builder"; - const version = "2.1.5"; + const version = "2.1.6"; const downloadDebugFile = () => { const element = document.createElement("a"); diff --git a/src/modal/ReportHelpModal.tsx b/src/modal/ReportHelpModal.tsx index 9e4856d79..d0a805dde 100644 --- a/src/modal/ReportHelpModal.tsx +++ b/src/modal/ReportHelpModal.tsx @@ -31,7 +31,7 @@ export const NeoReportHelpModal = ({ open, handleClose }) => { A report is the smallest building block of your dashboard. Each report runs a single Cypher query that loads data from your database. By changing the report type, different visualizations can be created for the data. - See the Documentation for more on reports. + See the Documentation for more on reports.



diff --git a/src/modal/SaveModal.tsx b/src/modal/SaveModal.tsx index 7a3ed7463..b811a5581 100644 --- a/src/modal/SaveModal.tsx +++ b/src/modal/SaveModal.tsx @@ -16,7 +16,7 @@ import useMediaQuery from '@material-ui/core/useMediaQuery'; import { useTheme, withStyles } from '@material-ui/core/styles'; import { connect } from "react-redux"; import { getDashboardJson } from './ModalSelectors'; -import { valueIsArray, valueIsObject } from '../report/ReportRecordProcessing'; +import { valueIsArray, valueIsObject } from '../chart/ChartUtils'; import StorageIcon from '@material-ui/icons/Storage'; import { applicationGetConnection } from '../application/ApplicationSelectors'; import { loadDatabaseListFromNeo4jThunk, saveDashboardToNeo4jThunk } from '../dashboard/DashboardThunks'; diff --git a/src/modal/WelcomeScreenModal.tsx b/src/modal/WelcomeScreenModal.tsx index 84fc05060..b82ecc9bf 100644 --- a/src/modal/WelcomeScreenModal.tsx +++ b/src/modal/WelcomeScreenModal.tsx @@ -8,6 +8,7 @@ import DialogTitle from '@material-ui/core/DialogTitle'; import IconButton from '@material-ui/core/IconButton'; import { Tooltip } from '@material-ui/core'; + /** * Configures setting the current Neo4j database connection for the dashboard. */ @@ -124,7 +125,7 @@ export const NeoWelcomeScreenModal = ({ welcomeScreenOpen, setWelcomeScreenOpen, - NeoDash is a tool for building standalone Neo4j dashboards. Need advice on building an integrated solution? Get in touch! + NeoDash is a tool for building standalone Neo4j dashboards. Need advice on building an integrated solution? Get in touch! diff --git a/src/page/Page.tsx b/src/page/Page.tsx index c63430696..17e89abb6 100644 --- a/src/page/Page.tsx +++ b/src/page/Page.tsx @@ -48,7 +48,6 @@ export const NeoPage = ( const [animated, setAnimated] = React.useState(false); // To turn off animations when cards are dragged around. const availableHandles = () => { - if (dashboardSettings.resizing && dashboardSettings.resizing == "all") { return ["s", "w", "e", "sw", "se"]; } else { diff --git a/src/page/PageReducer.ts b/src/page/PageReducer.ts index 6aec7364e..68ac625a5 100644 --- a/src/page/PageReducer.ts +++ b/src/page/PageReducer.ts @@ -33,8 +33,6 @@ export const FIRST_PAGE_INITIAL_STATE = { "y": 0, "type": "graph", "selection": { - "Person": "name", - "Movie": "title" }, "settings": {} }] diff --git a/src/report/Report.tsx b/src/report/Report.tsx index 7376c2f55..6310d3e69 100644 --- a/src/report/Report.tsx +++ b/src/report/Report.tsx @@ -6,12 +6,12 @@ import debounce from 'lodash/debounce'; import { useCallback } from 'react'; import { Typography, Fab } from '@material-ui/core'; import CircularProgress from "@material-ui/core/CircularProgress"; -import NeoCodeViewerComponent from "../component/editor/CodeViewerComponent"; +import NeoCodeViewerComponent, { NoDrawableDataErrorMessage } from "../component/editor/CodeViewerComponent"; import { DEFAULT_ROW_LIMIT, HARD_ROW_LIMITING, REPORT_TYPES, RUN_QUERY_DELAY_MS, SELECTION_TYPES } from "../config/ReportConfig"; import { MoreVert } from "@material-ui/icons"; import { Neo4jContext, Neo4jContextState } from "use-neo4j/dist/neo4j.context"; import { useContext } from "react"; -import NeoTableChart from "../chart/TableChart"; +import NeoTableChart from "../chart/table/TableChart"; export const NeoReport = ({ database = "neo4j", // The Neo4j database to run queries onto. @@ -70,18 +70,16 @@ export const NeoReport = ({ } const defaultKeyField = (REPORT_TYPES[type].selection) ? Object.keys(REPORT_TYPES[type].selection).find(field => REPORT_TYPES[type].selection[field].key == true) : undefined; - const useRecordMapper = REPORT_TYPES[type].useRecordMapper == true; const useNodePropsAsFields = REPORT_TYPES[type].useNodePropsAsFields == true; + const useReturnValuesAsFields = REPORT_TYPES[type].useReturnValuesAsFields == true; if (debounced) { - setStatus(QueryStatus.RUNNING) - debouncedRunCypherQuery(driver, database, query, parameters, selection, fields, - rowLimit, setStatus, setRecords, setFields, HARD_ROW_LIMITING, useRecordMapper, useNodePropsAsFields, - numericFields, numericOrDatetimeFields, textFields, optionalFields, defaultKeyField, queryTimeLimit); + setStatus(QueryStatus.RUNNING); + debouncedRunCypherQuery(driver, database, query, parameters, + rowLimit, setStatus, setRecords, setFields, fields, useNodePropsAsFields, useReturnValuesAsFields, HARD_ROW_LIMITING, queryTimeLimit); } else { - runCypherQuery(driver, database, query, parameters, selection, fields, - rowLimit, setStatus, setRecords, setFields, HARD_ROW_LIMITING, useRecordMapper, useNodePropsAsFields, - numericFields, numericOrDatetimeFields, textFields, optionalFields, defaultKeyField, queryTimeLimit); + runCypherQuery(driver, database, query, parameters, + rowLimit, setStatus, setRecords, setFields, fields, useNodePropsAsFields, useReturnValuesAsFields, HARD_ROW_LIMITING, queryTimeLimit); } }; @@ -105,19 +103,16 @@ export const NeoReport = ({ }, Math.min(refreshRate, 86400) * 1000.0)); } } - }, REPORT_TYPES[type].useRecordMapper == true ? - [disabled, query, JSON.stringify(parameters), fields ? fields : [], JSON.stringify(selection)] : - [disabled, query, JSON.stringify(parameters), null, null]) + }, [disabled, query, JSON.stringify(parameters)]) // Define query callback to allow reports to get extra data on interactions. const queryCallback = useCallback( (query, parameters, setRecords) => { - runCypherQuery(driver, database, query, parameters, selection, fields, rowLimit, + runCypherQuery(driver, database, query, parameters, rowLimit, (status) => { status == QueryStatus.NO_DATA ? setRecords([]) : null }, (result => setRecords(result)), - () => { return }, HARD_ROW_LIMITING, - REPORT_TYPES[type].useRecordMapper == true, false, - [], [], [], [], null, queryTimeLimit); + () => { return }, + fields, false, false, HARD_ROW_LIMITING, queryTimeLimit); }, [], ); @@ -134,12 +129,7 @@ export const NeoReport = ({ } else if (status == QueryStatus.NO_DATA) { return } else if (status == QueryStatus.NO_DRAWABLE_DATA) { - return + return } else if (status == QueryStatus.COMPLETE) { if (records == null || records.length == 0) { return
Loading...
diff --git a/src/report/ReportQueryRunner.ts b/src/report/ReportQueryRunner.ts index 34486d226..d729378ca 100644 --- a/src/report/ReportQueryRunner.ts +++ b/src/report/ReportQueryRunner.ts @@ -1,5 +1,5 @@ -import { extractNodePropertiesFromRecords, mapRecords } from "./ReportRecordProcessing"; -import _ from 'lodash'; +import { extractNodePropertiesFromRecords } from "./ReportRecordProcessing"; +import isEqual from 'lodash.isequal'; export enum QueryStatus { @@ -20,8 +20,6 @@ export enum QueryStatus { * @param database - optionally, the Neo4j database to run the query against. * @param query - the cypher query to run. * @param parameters - an optional set of query parameters. - * @param selection - optionally, a dynamic set of properties to be mapped. - * @param fields - optionally, the set of fields returned (previously) by the query. * @param rowLimit - optionally, the maximum number of rows to retrieve. * @param setStatus - callback to retrieve query status. * @param setRecords - callback to retrieve query records. @@ -30,27 +28,19 @@ export enum QueryStatus { * @returns */ export async function runCypherQuery(driver, - database = undefined, + database = "", query = "", parameters = {}, - selection = {}, - fields = [], rowLimit = 1000, - setStatus = (status) => { }, - setRecords = (records) => { }, - setFields = (fields) => { }, - useHardRowLimit = false, - useRecordMapper = false, + setStatus = (status) => { console.log("Query runner attempted to set status: " + JSON.stringify(status))}, + setRecords = (records) => { console.log("Query runner attempted to set records: " + JSON.stringify(records))}, + setFields = (fields) => { console.log("Query runner attempted to set fields: " + JSON.stringify(fields))}, + fields = [], useNodePropsAsFields = false, - numericFields = [], - numericOrDatetimeFields = [], - textFields = [], - optionalFields = [], - defaultKeyField = "", + useReturnValuesAsFields = false, + useHardRowLimit = false, queryTimeLimit = 20, ) { - - // If no query specified, we don't do anything. if (query.trim() == "") { setFields([]); @@ -61,7 +51,7 @@ export async function runCypherQuery(driver, const session = (database) ? driver.session({ database: database }) : driver.session(); const transaction = session.beginTransaction({ timeout: queryTimeLimit * 1000, connectionTimeout: 2000 }) - + // For usuability reasons, we can set a hard cap on the query result size by wrapping it a subquery (Neo4j 4.0 and later). // This unfortunately does not preserve ordering on the return fields. // If we are on Neo4j 4.0 or later, we can use subqueries to smartly limit the result set size based on report type. @@ -83,23 +73,20 @@ export async function runCypherQuery(driver, transaction.commit(); return } - if (useRecordMapper == true) { + + if (useReturnValuesAsFields) { // Send a deep copy of the returned record keys as the set of fields. const newFields = (records && records[0] && records[0].keys) ? records[0].keys.slice() : []; - if (!_.isEqual(newFields, fields)) { + + if (!isEqual(newFields, fields)) { setFields(newFields); - transaction.commit(); - return } - }else if (useNodePropsAsFields){ + + } else if (useNodePropsAsFields) { // If we don't use dynamic field mapping, but we do have a selection, use the discovered node properties as fields. const nodePropsAsFields = extractNodePropertiesFromRecords(records); setFields(nodePropsAsFields); } - // Set the records for the visualization, if an explicit field name mapping is provided. - if (useRecordMapper) { - records = mapRecords(records, selection, textFields, numericFields, numericOrDatetimeFields, optionalFields, defaultKeyField) - } if (records == null) { setStatus(QueryStatus.NO_DRAWABLE_DATA) diff --git a/src/report/ReportRecordProcessing.tsx b/src/report/ReportRecordProcessing.tsx index 9bf0c8c7a..ad4a73dc5 100644 --- a/src/report/ReportRecordProcessing.tsx +++ b/src/report/ReportRecordProcessing.tsx @@ -1,206 +1,13 @@ -import _ from 'lodash'; import React from 'react'; import { Chip } from '@material-ui/core'; import { withStyles } from '@material-ui/core/styles'; import Tooltip from '@material-ui/core/Tooltip'; +import { getRecordType, valueIsArray, valueIsNode, valueIsPath, valueIsRelationship } from '../chart/ChartUtils'; const OPTIONAL_FIELD_UNAVAILABLE_IDENTIFIER = "(none)"; -/** - * @deprecated - the record mapper is due to be removed in 2.1. - * Renames records based on a configured property selection. - * @param records : a list of Neo4j records. - * @param selection : a dictionary of record field name mappings. - * @returns records : the same set of records, but with cleaned up and renamed records that the visualization needs. - */ -export function mapRecords(records: any, selection: any, textFields: any, numericFields: any, numericOrDatetimeFields: any, - optionalFields: any, defaultKeyField: string) { - - // if: We have null records, or, an empty result set, or, no specified selection, we return the original record set. - if (!records || records.length == 0 || Object.keys(selection).length == 0) { - return records; - } - - // Use the first row + the selection dict to create a mapping from the actual --> expected fields. - const fieldLookup = createMappedFieldLookup(records[0], selection, optionalFields, numericOrDatetimeFields) - const keys = Object.keys(fieldLookup) - const defaultKey = selection[defaultKeyField] ? selection[defaultKeyField] : ""; - const mappedRecords = records - .map(r => mapSingleRecord(r, fieldLookup, keys, defaultKey, textFields, numericFields, numericOrDatetimeFields, optionalFields)) - .filter(r => r != null); - - // Check if we have non-zero records for all of the numeric fields, if not, we can't visualize anything. - // We have to check this explicitly otherwise some visualizations will break... - if (mappedRecords.every(record => { return numericFields.every(name => record._fields[record._fieldLookup[name]] == 0) })) { - return null; - } - return mappedRecords; -} - -/** - * Create a record fieldlookup array for the mapped set of field names. - * - * Input: - * - record: (fieldlookup={Category=0, Value=1, Group=2}, values=["A",53.2,"X"]) - * - selection {expectedFieldName:actualFieldName}: {index=Category, value=Value, key=Group} - * Output: - * - (fieldlookup={index=0, value=1, key=2} - * - * - * Alternative, for multiple selections: - * - * Input: - * - record: (fieldlookup={X=0, Y1=1, Y2=2}, values=[1,6,66]) - * - selection {expectedFieldName:actualFieldName}: {x=X, y=[Y1,Y2]} - * Output: - * - (fieldlookup={x=0, y1=1, y2=2} - */ -export function createMappedFieldLookup(record: any, selection: any, optionalFieldNames: any, numericOrDateTimeFieldNames) { - const newFieldLookup = {} - Object.keys(selection).forEach(expectedFieldName => { - const actualFieldName = selection[expectedFieldName]; - - if (Array.isArray(actualFieldName)) { - // If we have a multiselected array, we append the expected field name with the index of the actual field in the list. - actualFieldName.forEach((field, index) => { - if (record._fieldLookup[field] != undefined) { - newFieldLookup[expectedFieldName + "(" + field + ")"] = record._fieldLookup[field]; - } - }) - } else if (record._fieldLookup[actualFieldName] != undefined) { - // If we have the actual field name in the record, we swap it out with the new field lookup. - newFieldLookup[expectedFieldName] = record._fieldLookup[actualFieldName]; - } else { - // If we don't have the actual field name in the record, - // and we explicitly specified this as (none), we can infer the value from another field. - // And put at the back of the record array. - // TODO - this might not work if we have more than one optional field specified. - // TODO - this won't work if there's an optional field that is also a multiselect. - if (actualFieldName == OPTIONAL_FIELD_UNAVAILABLE_IDENTIFIER && optionalFieldNames.indexOf(expectedFieldName) != -1) { - newFieldLookup[expectedFieldName] = record._fields.length + optionalFieldNames.indexOf(expectedFieldName); - } - } - }); - return newFieldLookup; -} - -/** - * Maps a single record from original query output to visualization expected output. - * @deprecated - * @param record : a single neo4j data record. - * @param fieldLookup : an (overridden) fieldlookup property for the record. - * @param keys : an (overridden) keys property for the record. - * @param defaultKey : if the record is missing a 'key' field, a default value for the field. - * @returns the mapped record. - */ -export function mapSingleRecord(record, fieldLookup, keys, defaultKey, - textFieldNames, numericFieldNames, numericOrDatetimeFieldNames, optionalFieldNames) { - - record._fieldLookup = fieldLookup; - record.keys = keys; - - // If we don't have a key field available, use the provided keyFieldName as a key value. - // TODO - this might not work for reports with >1 optional values. - optionalFieldNames.forEach(optionalFieldName => { - if (record._fieldLookup[optionalFieldName] >= record._fields.length) { - record._fields.push(defaultKey) - } - }); - - // Ensure that fields specified as numeric contain numbers. If not, return the record as null (invalid) - if (numericFieldNames.some(numericFieldName => (isNaN(record._fields[record._fieldLookup[numericFieldName]])))) { - return null; - } - - - textFieldNames.forEach(textFieldName => { - record._fields[record._fieldLookup[textFieldName]] = - convertRecordObjectToString(record._fields[record._fieldLookup[textFieldName]]); - }) - - numericOrDatetimeFieldNames.forEach(numericOrDatetimeFieldName => { - const value = record._fields[record._fieldLookup[numericOrDatetimeFieldName]]; - const className = getRecordType(value); - if (className == "dateTime") { - if(value.toString().includes(".")){ - // Nivo charts do not support time strings with millisecond accuracy, so we get rid of those. - record._fields[record._fieldLookup[numericOrDatetimeFieldName]] = value.toString().split('.')[0] + "Z"; - }else{ - record._fields[record._fieldLookup[numericOrDatetimeFieldName]] = value.toString(); - } - - } else if (className == "date") { - // Similarly, for dates, we add the suffix - record._fields[record._fieldLookup[numericOrDatetimeFieldName]] = value.toString().split("Z")[0] + "T00:00:00Z"; - } else if (className !== "integer" && className !== "number") { - record = null; - } - }) - - return record; -} - -/** - * Converts a neo4j record entry to a readable string representation. - */ -const convertRecordObjectToString = (entry) => { - if (entry == null || entry == undefined) { - return entry; - } - const className = entry.__proto__.constructor.name; - if (className == "String") { - return entry; - } else if (valueIsNode(entry)) { - return convertNodeToString(entry); - } else if (valueIsRelationship(entry)) { - return convertRelationshipToString(entry); - } else if (valueIsPath(entry)) { - return convertPathToString(entry); - } - return entry.toString(); -} - -/** - * Converts a neo4j node record entry to a readable string representation. - * if it's a fieldType =="Node" - * Then, return - * 1. 'name' property, if it exists, - * 2. the 'title' property, if it exists, - * 3. the 'id' property, if it exists... - * 4. the 'uid' property, if it exists.. - * 5. the ({labels}}, if they exist, - * 6. Node(id). - */ -const convertNodeToString = (nodeEntry => { - if (nodeEntry.properties.name) { - return nodeEntry.labels + "(" + nodeEntry.properties.name + ")"; - } - if (nodeEntry.properties.title) { - return nodeEntry.labels + "(" + nodeEntry.properties.title + ")"; - } - if (nodeEntry.properties.id) { - return nodeEntry.labels + "(" + nodeEntry.properties.id + ")"; - } - if (nodeEntry.properties.uid) { - return nodeEntry.labels + "(" + nodeEntry.properties.uid + ")"; - } - return nodeEntry.labels + "(" + "_id=" + nodeEntry.identity + ")"; -}); - - -// if it's a fieldType == "Relationship" -const convertRelationshipToString = (relEntry => { - return relEntry.toString(); -}); - -// if it's a fieldType == "Path" -const convertPathToString = (pathEntry => { - return pathEntry.toString(); -}); -// Anything else, return the string representation of the object. - /** * Collects all node labels and node properties in a set of Neo4j records. * @param records : a list of Neo4j records. @@ -239,76 +46,6 @@ export function saveNodePropertiesToDictionary(field, fieldsDict) { } } -/* HELPER FUNCTIONS FOR DETERMINING TYPE OF FIELD RETURNED FROM NEO4J */ - -export function valueIsArray(value) { - const className = value.__proto__.constructor.name; - return className == "Array"; -} - -export function valueIsNode(value) { - // const className = value.__proto__.constructor.name; - // return className == "Node"; - return (value && value["labels"] && value["identity"] && value["properties"]); -} - -export function valueIsRelationship(value) { - // const className = value.__proto__.constructor.name; - // return className == "Relationship"; - return (value && value["type"] && value["start"] && value["end"] && value["identity"] && value["properties"]); -} - -export function valueIsPath(value) { - // const className = value.__proto__.constructor.name; - // return className == "Path" - return (value && value["start"] && value["end"] && value["segments"] && value["length"]); -} - -export function valueisPoint(value) { - // Look at the properties and identify the type. - return (value && value["x"] && value["y"] && value["srid"]); -} - -export function valueIsObject(value) { - // TODO - this will not work in production builds. Need alternative. - const className = value.__proto__.constructor.name; - return className == "Object"; -} - -export function getRecordType(value) { - // mui data-grid native column types are: 'string' (default), - // 'number', 'date', 'dateTime', 'boolean' and 'singleSelect' - // https://v4.mui.com/components/data-grid/columns/#column-types - // Type singleSelect is not implemented here - if (value === true || value === false) { - return 'boolean'; - } else if (value === undefined) { - return 'undefined'; - } else if (value === null) { - return 'null'; - } else if (value.__isInteger__) { - return 'integer'; - } else if (typeof (value) == "number") { - return 'number'; - } else if (value.__isDate__) { - return 'date'; - } else if (value.__isDateTime__) { - return 'dateTime'; - } else if (valueIsNode(value)) { - return 'node'; - } else if (valueIsRelationship(value)) { - return 'relationship'; - } else if (valueIsPath(value)) { - return 'path'; - } else if (valueIsArray(value)) { - return 'array'; - } else if (valueIsObject(value)) { - return 'object'; - } - - // Use string as default type - return 'string'; -} /* HELPER FUNCTIONS FOR RENDERING A FIELD BASED ON TYPE */ const HtmlTooltip = withStyles((theme) => ({ diff --git a/src/settings/SettingsThunks.ts b/src/settings/SettingsThunks.ts index 54098d9a3..f9027581a 100644 --- a/src/settings/SettingsThunks.ts +++ b/src/settings/SettingsThunks.ts @@ -9,9 +9,13 @@ const update = (state, mutations) => export const setPageNumberThunk = (number) => (dispatch: any, getState: any) => { try { + const pages = getState().dashboard.pages; + // Make sure the page number is within bounds. + number = Math.max(0, Math.min(pages.length - 1, number)); dispatch(updateDashboardSetting("pagenumber", number)) // Make sure that we don't have weird transitions with the settings popups. - const page = getState().dashboard.pages[number]; + + const page = pages[number]; page.reports.map((report, i) => { dispatch(hardResetCardSettings(number, i)) }); diff --git a/src/store.ts b/src/store.ts index 8482f8166..52ec6fc7b 100644 --- a/src/store.ts +++ b/src/store.ts @@ -3,7 +3,7 @@ import { persistReducer } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; import autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2'; import thunk from 'redux-thunk'; -import { composeWithDevTools } from 'redux-devtools-extension'; +import { composeWithDevTools } from "@redux-devtools/extension"; import { dashboardReducer } from './dashboard/DashboardReducer'; import { applicationReducer } from './application/ApplicationReducer'; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..7c1611b4f --- /dev/null +++ b/yarn.lock @@ -0,0 +1,8302 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd" + integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g== + +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/cli@^7.16.8": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.10.tgz#4211adfc45ffa7d4f3cee6b60bb92e9fe68fe56a" + integrity sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.8" + commander "^4.0.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.1.0" + glob "^7.2.0" + make-dir "^2.1.0" + slash "^2.0.0" + optionalDependencies: + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" + chokidar "^3.4.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.0.tgz#2a592fd89bacb1fcde68de31bee4f2f2dacb0e86" + integrity sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw== + +"@babel/core@^7.16.12": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.0.tgz#d2f5f4f2033c00de8096be3c9f45772563e150c3" + integrity sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-compilation-targets" "^7.19.0" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/generator@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" + integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== + dependencies: + "@babel/types" "^7.19.0" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz#537ec8339d53e806ed422f1e06c8f17d55b96bb0" + integrity sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA== + dependencies: + "@babel/compat-data" "^7.19.0" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.20.2" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" + integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.1.0" + +"@babel/helper-define-polyfill-provider@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== + +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helper-wrap-function@^7.18.9": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" + integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== + dependencies: + "@babel/helper-function-name" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/helpers@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.18.10", "@babel/parser@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" + integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + +"@babel/plugin-proposal-async-generator-functions@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.0.tgz#cf5740194f170467df20581712400487efc79ff1" + integrity sha512-nhEByMUTx3uZueJ/QkJuSlCfN4FGg+xy+vRsfGQGzSauq5ks2Deid2+05Q3KhfaUjvec1IGhw/Zm3cFm8JigTQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" + integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== + dependencies: + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.18.8" + +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" + integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.17.12", "@babel/plugin-syntax-jsx@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" + integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" + +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-classes@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" + integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.19.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-destructuring@^7.18.13": + version "7.18.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" + integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f" + integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-validator-identifier" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.0.tgz#58c52422e4f91a381727faed7d513c89d7f41ada" + integrity sha512-HDSuqOQzkU//kfGdiHBt71/hkDTApw4U/cMVgKgX7PqfB3LOaK+2GtCEsBu1dL9CkswDm0Gwehht1dCr421ULQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-display-name@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" + integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-react-jsx-development@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5" + integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.18.6" + +"@babel/plugin-transform-react-jsx@^7.18.6": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" + integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.19.0" + +"@babel/plugin-transform-react-pure-annotations@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844" + integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" + integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + regenerator-transform "^0.15.0" + +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-runtime@^7.16.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz#37d14d1fa810a368fd635d4d1476c0154144a96f" + integrity sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" + integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typescript@^7.18.6": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.0.tgz#50c3a68ec8efd5e040bde2cd764e8e16bc0cbeaf" + integrity sha512-DOOIywxPpkQHXijXv+s9MDAyZcLp12oYRl3CMWZ6u7TjSoCBq/KqHR/nNFR3+i2xqheZxoF0H2XyL7B6xeSRuA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-typescript" "^7.18.6" + +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.16.11": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.0.tgz#fd18caf499a67d6411b9ded68dc70d01ed1e5da7" + integrity sha512-1YUju1TAFuzjIQqNM9WsF4U6VbD/8t3wEAlw3LFYuuEr+ywqLRcSXxFKz4DCEj+sN94l/XTDiUXYRrsvMpz9WQ== + dependencies: + "@babel/compat-data" "^7.19.0" + "@babel/helper-compilation-targets" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.19.0" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.19.0" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.13" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.18.6" + "@babel/plugin-transform-modules-commonjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.0" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.0" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.19.0" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.19.0" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" + core-js-compat "^3.22.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" + integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-react-display-name" "^7.18.6" + "@babel/plugin-transform-react-jsx" "^7.18.6" + "@babel/plugin-transform-react-jsx-development" "^7.18.6" + "@babel/plugin-transform-react-pure-annotations" "^7.18.6" + +"@babel/preset-typescript@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" + integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-typescript" "^7.18.6" + +"@babel/register@^7.16.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c" + integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== + dependencies: + clone-deep "^4.0.1" + find-cache-dir "^2.0.0" + make-dir "^2.1.0" + pirates "^4.0.5" + source-map-support "^0.5.16" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" + integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.18.9", "@babel/traverse@^7.19.0", "@babel/traverse@^7.4.5": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.0.tgz#eb9c561c7360005c592cc645abafe0c3c4548eed" + integrity sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.19.0" + "@babel/types" "^7.19.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.4.4": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== + dependencies: + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" + to-fast-properties "^2.0.0" + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cypress/request@^2.88.10": + version "2.88.10" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" + integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + http-signature "~1.3.6" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^8.3.2" + +"@cypress/xvfb@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== + dependencies: + debug "^3.1.0" + lodash.once "^4.1.1" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + +"@emotion/babel-plugin@^11.10.0": + version "11.10.2" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz#879db80ba622b3f6076917a1e6f648b1c7d008c7" + integrity sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.17.12" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/serialize" "^1.1.0" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.0.13" + +"@emotion/cache@^11.10.0", "@emotion/cache@^11.10.3": + version "11.10.3" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.3.tgz#c4f67904fad10c945fea5165c3a5a0583c164b87" + integrity sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ== + dependencies: + "@emotion/memoize" "^0.8.0" + "@emotion/sheet" "^1.2.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + stylis "4.0.13" + +"@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/hash@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.0.tgz#c5153d50401ee3c027a57a177bc269b16d889cb7" + integrity sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ== + +"@emotion/is-prop-valid@^1.1.0", "@emotion/is-prop-valid@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" + integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== + dependencies: + "@emotion/memoize" "^0.8.0" + +"@emotion/memoize@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" + integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== + +"@emotion/react@^11.7.1": + version "11.10.4" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.4.tgz#9dc6bccbda5d70ff68fdb204746c0e8b13a79199" + integrity sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.0" + "@emotion/cache" "^11.10.0" + "@emotion/serialize" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.0.tgz#b1f97b1011b09346a40e9796c37a3397b4ea8ea8" + integrity sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA== + dependencies: + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/unitless" "^0.8.0" + "@emotion/utils" "^1.2.0" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.0.tgz#771b1987855839e214fc1741bde43089397f7be5" + integrity sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w== + +"@emotion/styled@^11.6.0": + version "11.10.4" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.10.4.tgz#e93f84a4d54003c2acbde178c3f97b421fce1cd4" + integrity sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.0" + "@emotion/is-prop-valid" "^1.2.0" + "@emotion/serialize" "^1.1.0" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@emotion/unitless@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" + integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" + integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== + +"@emotion/utils@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" + integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== + +"@emotion/weak-memoize@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" + integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== + +"@icons/material@^0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" + integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== + +"@jest/expect-utils@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.2.tgz#00dfcb9e6fe99160c326ba39f7734b984543dea8" + integrity sha512-+wcQF9khXKvAEi8VwROnCWWmHfsJYCZAs5dmuMlJBKk57S6ZN2/FQMIlo01F29fJyT8kV/xblE7g3vkIdTLOjw== + dependencies: + jest-get-type "^29.0.0" + +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/types@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.2.tgz#5a5391fa7f7f41bf4b201d6d2da30e874f95b6c1" + integrity sha512-5WNMesBLmlkt1+fVkoCjHa0X3i3q8zc4QLTDkdHgCa2gyPZc7rdlZBWgVLqwS1860ZW5xJuCDwAzqbGaXIr/ew== + dependencies: + "@jest/schemas" "^29.0.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + +"@material-ui/core@^4.12.3": + version "4.12.4" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.12.4.tgz#4ac17488e8fcaf55eb6a7f5efb2a131e10138a73" + integrity sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/styles" "^4.11.5" + "@material-ui/system" "^4.12.2" + "@material-ui/types" "5.1.0" + "@material-ui/utils" "^4.11.3" + "@types/react-transition-group" "^4.2.0" + clsx "^1.0.4" + hoist-non-react-statics "^3.3.2" + popper.js "1.16.1-lts" + prop-types "^15.7.2" + react-is "^16.8.0 || ^17.0.0" + react-transition-group "^4.4.0" + +"@material-ui/icons@^4.11.2": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.11.3.tgz#b0693709f9b161ce9ccde276a770d968484ecff1" + integrity sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA== + dependencies: + "@babel/runtime" "^7.4.4" + +"@material-ui/lab@^4.0.0-alpha.60": + version "4.0.0-alpha.61" + resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz#9bf8eb389c0c26c15e40933cc114d4ad85e3d978" + integrity sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.11.3" + clsx "^1.0.4" + prop-types "^15.7.2" + react-is "^16.8.0 || ^17.0.0" + +"@material-ui/styles@^4.11.4", "@material-ui/styles@^4.11.5", "@material-ui/styles@^4.8.2": + version "4.11.5" + resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.5.tgz#19f84457df3aafd956ac863dbe156b1d88e2bbfb" + integrity sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA== + dependencies: + "@babel/runtime" "^7.4.4" + "@emotion/hash" "^0.8.0" + "@material-ui/types" "5.1.0" + "@material-ui/utils" "^4.11.3" + clsx "^1.0.4" + csstype "^2.5.2" + hoist-non-react-statics "^3.3.2" + jss "^10.5.1" + jss-plugin-camel-case "^10.5.1" + jss-plugin-default-unit "^10.5.1" + jss-plugin-global "^10.5.1" + jss-plugin-nested "^10.5.1" + jss-plugin-props-sort "^10.5.1" + jss-plugin-rule-value-function "^10.5.1" + jss-plugin-vendor-prefixer "^10.5.1" + prop-types "^15.7.2" + +"@material-ui/system@^4.12.2": + version "4.12.2" + resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.12.2.tgz#f5c389adf3fce4146edd489bf4082d461d86aa8b" + integrity sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw== + dependencies: + "@babel/runtime" "^7.4.4" + "@material-ui/utils" "^4.11.3" + csstype "^2.5.2" + prop-types "^15.7.2" + +"@material-ui/types@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" + integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== + +"@material-ui/utils@^4.11.3": + version "4.11.3" + resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.11.3.tgz#232bd86c4ea81dab714f21edad70b7fdf0253942" + integrity sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg== + dependencies: + "@babel/runtime" "^7.4.4" + prop-types "^15.7.2" + react-is "^16.8.0 || ^17.0.0" + +"@mui/base@5.0.0-alpha.96": + version "5.0.0-alpha.96" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.96.tgz#2189dd1012d0969ace69c3479b0aec2dbe9bbdc1" + integrity sha512-GZf2YguepLFMWGG8vQNLRl7FlXPDeyxQBYgrkHxwNJYeRw55rrGrJxHzL1iCbk71VZ2IIAIs5IAxNpyHK9iqPQ== + dependencies: + "@babel/runtime" "^7.18.9" + "@emotion/is-prop-valid" "^1.2.0" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" + "@popperjs/core" "^2.11.6" + clsx "^1.2.1" + prop-types "^15.8.1" + react-is "^18.2.0" + +"@mui/core-downloads-tracker@^5.10.4": + version "5.10.4" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.4.tgz#6b208687f016e8f583ee14582b8a949d89b2f121" + integrity sha512-VGekVa9dleJ+ii47+gXvKUV5a11T0nsjXN8bk5NqiJRQWRCAhbTHgsfZuctNcMeLW9FSf2gu6U0k2U6rhABKcA== + +"@mui/material@^5.3.0": + version "5.10.4" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.4.tgz#a3a72f438614fe4319a6ee805542bb599fd6ec02" + integrity sha512-uwupjunU3p8XxZU4f2zF1GYlwB9GDxW1H05BMDPSh0u+37yLxuQDMMxwQQPUo9jSA5Y22/eR4Y71ScxKU89QHg== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/base" "5.0.0-alpha.96" + "@mui/core-downloads-tracker" "^5.10.4" + "@mui/system" "^5.10.4" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" + "@types/react-transition-group" "^4.4.5" + clsx "^1.2.1" + csstype "^3.1.0" + prop-types "^15.8.1" + react-is "^18.2.0" + react-transition-group "^4.4.5" + +"@mui/private-theming@^5.10.3": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.10.3.tgz#7325eef3e480caaaa2d866b9057943ec4fbcb8ce" + integrity sha512-LCYIKlkGz2BTSng2BFzzwSJBRZbChIUri2x2Nh8ryk2B1Ho7zpvE7ex6y39LlStG2Frf92NFC/V4YQbmMAjD5A== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/utils" "^5.10.3" + prop-types "^15.8.1" + +"@mui/styled-engine@^5.10.4": + version "5.10.4" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.10.4.tgz#21b3ff3c18a748548b061bccff337a275e1f4861" + integrity sha512-y29qlonPj4wndTjbePk9O6uWp/FBRNXjiMwI64oiYQ+v3E0EkLnADfDn49GAqOJAfN/r7nHbVZBlvLNIcMbgDg== + dependencies: + "@babel/runtime" "^7.18.9" + "@emotion/cache" "^11.10.3" + csstype "^3.1.0" + prop-types "^15.8.1" + +"@mui/system@^5.10.4": + version "5.10.4" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.10.4.tgz#4621cbae1bfc551c95e368d32850160b64034a67" + integrity sha512-fE7LtYStPHPfq7EJXEVLQGvz23pS5YwSI7A4mWEFyyW21hHUh0c1opZXb7caHJsUTiBoC22W7R8GGfbVdSOnZA== + dependencies: + "@babel/runtime" "^7.18.9" + "@mui/private-theming" "^5.10.3" + "@mui/styled-engine" "^5.10.4" + "@mui/types" "^7.2.0" + "@mui/utils" "^5.10.3" + clsx "^1.2.1" + csstype "^3.1.0" + prop-types "^15.8.1" + +"@mui/types@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.0.tgz#91380c2d42420f51f404120f7a9270eadd6f5c23" + integrity sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA== + +"@mui/utils@^5.10.3", "@mui/utils@^5.6.1": + version "5.10.3" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.10.3.tgz#ce2a96f31de2a5e717f507b5383dbabbddbc4dfc" + integrity sha512-4jXMDPfx6bpMVuheLaOpKTjpzw39ogAZLeaLj5+RJec3E37/hAZMYjURfblLfTWMMoGoqkY03mNsZaEwNobBow== + dependencies: + "@babel/runtime" "^7.18.9" + "@types/prop-types" "^15.7.5" + "@types/react-is" "^16.7.1 || ^17.0.0" + prop-types "^15.8.1" + react-is "^18.2.0" + +"@mui/x-data-grid@5.10.0": + version "5.10.0" + resolved "https://registry.yarnpkg.com/@mui/x-data-grid/-/x-data-grid-5.10.0.tgz#22917a8c1a6e95a2d3cde691f53071a838cba0e2" + integrity sha512-+NELUtA+6RAVFHR8sGrSxtJC8+3NQMLflYBm816DXjQvPA8vvCPI50SPKCUYUpBuepQtTBQWcty0Tdm9tjzInA== + dependencies: + "@mui/utils" "^5.6.1" + clsx "^1.1.1" + prop-types "^15.8.1" + reselect "^4.1.5" + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": + version "2.1.8-no-fsevents.3" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== + +"@nivo/annotations@0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/annotations/-/annotations-0.79.1.tgz#c1b93a1facf55e3f32e2af1b8fb0ba1bebc01910" + integrity sha512-lYso9Luu0maSDtIufwvyVt2+Wue7R9Fh3CIjuRDmNR72UjAgAVEcCar27Fy865UXGsj2hRJZ7KY/1s6kT3gu/w== + dependencies: + "@nivo/colors" "0.79.1" + "@react-spring/web" "9.3.1" + lodash "^4.17.21" + +"@nivo/arcs@0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/arcs/-/arcs-0.79.1.tgz#768d5e91356e94199377fbd0ca762bc364353414" + integrity sha512-owScoElMv5EwDbZKJhns282MnXVM4rq9jYwBnFBx872Igi2r6HwKk1m4jDWGfDktJ7MyECvuVzxRaUImWQdufA== + dependencies: + "@nivo/colors" "0.79.1" + "@react-spring/web" "9.3.1" + d3-shape "^1.3.5" + +"@nivo/axes@0.79.0": + version "0.79.0" + resolved "https://registry.yarnpkg.com/@nivo/axes/-/axes-0.79.0.tgz#6f009819b26f93a4126697152aeab5f979f1ab6c" + integrity sha512-EhSeCPxtWEuxqnifeyF/pIJEzL7pRM3rfygL+MpfT5ypu5NcXYRGQo/Bw0Vh+GF1ML+tNAE0rRvCu2jgLSdVNQ== + dependencies: + "@nivo/scales" "0.79.0" + "@react-spring/web" "9.3.1" + d3-format "^1.4.4" + d3-time-format "^3.0.0" + +"@nivo/bar@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/bar/-/bar-0.79.1.tgz#42d28169307e735cb84e57b4b6915195ef1c97fb" + integrity sha512-swJ2FtFeRPWJK9O6aZiqTDi2J6GrU2Z6kIHBBCXBlFmq6+vfd5AqOHytdXPTaN80JsKDBBdtY7tqRjpRPlDZwQ== + dependencies: + "@nivo/annotations" "0.79.1" + "@nivo/axes" "0.79.0" + "@nivo/colors" "0.79.1" + "@nivo/legends" "0.79.1" + "@nivo/scales" "0.79.0" + "@nivo/tooltip" "0.79.0" + "@react-spring/web" "9.3.1" + d3-scale "^3.2.3" + d3-shape "^1.2.2" + lodash "^4.17.21" + +"@nivo/circle-packing@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/circle-packing/-/circle-packing-0.79.1.tgz#7794cf06eb737297cf71f6b4e94f0576e5a98b3f" + integrity sha512-GTUGkvwBPzJB6Cvv3ZQxHZ/+gsnsSj8w+gT7jSRJtHw0IPf+orCc/oEf3pWoSneBXMy5cuzC/WjdjM8f1ctzZQ== + dependencies: + "@nivo/colors" "0.79.1" + "@nivo/tooltip" "0.79.0" + "@react-spring/web" "9.3.1" + d3-hierarchy "^1.1.8" + lodash "^4.17.21" + +"@nivo/colors@0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/colors/-/colors-0.79.1.tgz#0504c08b6a598bc5cb5a8b823d332a73fdc6ef43" + integrity sha512-45huBmz46OoQtfqzHrnqDJ9msebOBX84fTijyOBi8mn8iTDOK2xWgzT7cCYP3hKE58IclkibkzVyWCeJ+rUlqg== + dependencies: + d3-color "^2.0.0" + d3-scale "^3.2.3" + d3-scale-chromatic "^2.0.0" + lodash "^4.17.21" + +"@nivo/core@^0.79.0": + version "0.79.0" + resolved "https://registry.yarnpkg.com/@nivo/core/-/core-0.79.0.tgz#5755212c2058c20899990e7c8ec0e918ac00e5f5" + integrity sha512-e1iGodmGuXkF+QWAjhHVFc+lUnfBoUwaWqVcBXBfebzNc50tTJrTTMHyQczjgOIfTc8gEu23lAY4mVZCDKscig== + dependencies: + "@nivo/recompose" "0.79.0" + "@react-spring/web" "9.3.1" + d3-color "^2.0.0" + d3-format "^1.4.4" + d3-interpolate "^2.0.1" + d3-scale "^3.2.3" + d3-scale-chromatic "^2.0.0" + d3-shape "^1.3.5" + d3-time-format "^3.0.0" + lodash "^4.17.21" + +"@nivo/geo@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/geo/-/geo-0.79.1.tgz#73ed1f651d97c57b797a559f4a6b1ba2416a74eb" + integrity sha512-GAHl8jpbKFkfo6wbM/Mo5/+YQN39LbuPFNux1onwvJozhUY5SbdA8Av7utPA5TPk9XZCZVLpyoTIyuruXXMviA== + dependencies: + "@nivo/colors" "0.79.1" + "@nivo/legends" "0.79.1" + "@nivo/tooltip" "0.79.0" + d3-format "^1.4.4" + d3-geo "^1.11.3" + lodash "^4.17.21" + +"@nivo/legends@0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/legends/-/legends-0.79.1.tgz#60b1806bba547f796e6e5b66943d65153de60c79" + integrity sha512-AoabiLherOAk3/HR/N791fONxNdwNk/gCTJC/6BKUo2nX+JngEYm3nVFmTC1R6RdjwJTeCb9Vtuc4MHA+mcgig== + +"@nivo/line@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/line/-/line-0.79.1.tgz#58c9711b491a7602903c2c41dda5f3fe9a2971cb" + integrity sha512-V+2wY5TGpWiWBcb2LDtNsO79Ix93QtSq1HAdEIsjYtwFT/ekoCUA/OorIjRVUVzyf27vjjlbhmNNKrqIsYQR1Q== + dependencies: + "@nivo/annotations" "0.79.1" + "@nivo/axes" "0.79.0" + "@nivo/colors" "0.79.1" + "@nivo/legends" "0.79.1" + "@nivo/scales" "0.79.0" + "@nivo/tooltip" "0.79.0" + "@nivo/voronoi" "0.79.0" + "@react-spring/web" "9.3.1" + d3-shape "^1.3.5" + +"@nivo/pie@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/pie/-/pie-0.79.1.tgz#4461e5273adabd0ef52bfcb54fbf6604f676d5a5" + integrity sha512-Cm8I6/nrmcpJLwziUhZ3TtwRV6K/7qWJ6alN6bUh8z7w2nScSnD/PhmAPS89p3jzSUEBPOvCViKwdvyThJ8KCg== + dependencies: + "@nivo/arcs" "0.79.1" + "@nivo/colors" "0.79.1" + "@nivo/legends" "0.79.1" + "@nivo/tooltip" "0.79.0" + d3-shape "^1.3.5" + +"@nivo/radar@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/radar/-/radar-0.79.1.tgz#530d3c2db5334615e0f32d7d0b0d4230ef9c254f" + integrity sha512-T91l/905PMjYNFT1ikOxNOVvDzTw4ysIOZcRj+xT7fLMpqd4TKlNUFoQ/t3XyrYFgIlVaSCSQxF/XKlPD8AhCw== + dependencies: + "@nivo/colors" "0.79.1" + "@nivo/legends" "0.79.1" + "@nivo/tooltip" "0.79.0" + "@react-spring/web" "9.3.1" + d3-scale "^3.2.3" + d3-shape "^1.3.5" + +"@nivo/recompose@0.79.0": + version "0.79.0" + resolved "https://registry.yarnpkg.com/@nivo/recompose/-/recompose-0.79.0.tgz#c0c54ecabb2300ce672f3c3199f74629df33cc08" + integrity sha512-2GFnOHfA2jzTOA5mdKMwJ6myCRGoXQQbQvFFQ7B/+hnHfU/yrOVpiGt6TPAn3qReC4dyDYrzy1hr9UeQh677ig== + dependencies: + react-lifecycles-compat "^3.0.4" + +"@nivo/sankey@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/sankey/-/sankey-0.79.1.tgz#86e940856ee76f99ecf5f321aa1cc02d6398243a" + integrity sha512-xwi1yq5jvrHaGq5yJIPGN5jv5psgXnY3qaKJXMVvDjSPSKmcnQ4fLUzi7d/lmJ9E8LkMYt/ZWmv3rjueNUYXpw== + dependencies: + "@nivo/colors" "0.79.1" + "@nivo/legends" "0.79.1" + "@nivo/tooltip" "0.79.0" + "@react-spring/web" "9.3.1" + d3-sankey "^0.12.3" + d3-shape "^1.3.5" + lodash "^4.17.21" + +"@nivo/scales@0.79.0": + version "0.79.0" + resolved "https://registry.yarnpkg.com/@nivo/scales/-/scales-0.79.0.tgz#553b6910288080fbfbbe4d2aab1dd80e2d172e6e" + integrity sha512-5fAt5Wejp8yzAk6qmA3KU+celCxNYrrBhfvOi2ECDG8KQi+orbDnrO6qjVF6+ebfOn9az8ZVukcSeGA5HceiMg== + dependencies: + d3-scale "^3.2.3" + d3-time "^1.0.11" + d3-time-format "^3.0.0" + lodash "^4.17.21" + +"@nivo/sunburst@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/sunburst/-/sunburst-0.79.1.tgz#0d072c6a027799bdbd97404079113bc7505006db" + integrity sha512-1A5ShcQR8zYRmKFTA4h6VKg4ioLRO0kIhepoisRObZXiYdmVCxbYP3jD/KF5ad2iLXxUEY0Ume4GR0JMqC6JZg== + dependencies: + "@nivo/arcs" "0.79.1" + "@nivo/colors" "0.79.1" + "@nivo/tooltip" "0.79.0" + d3-hierarchy "^1.1.8" + lodash "^4.17.21" + +"@nivo/tooltip@0.79.0": + version "0.79.0" + resolved "https://registry.yarnpkg.com/@nivo/tooltip/-/tooltip-0.79.0.tgz#3d46be8734e5d30e5387515db0c83bd1c795f442" + integrity sha512-hsJsvhDVR9P/QqIEDIttaA6aslR3tU9So1s/k2jMdppL7J9ZH/IrVx9TbIP7jDKmnU5AMIP5uSstXj9JiKLhQA== + dependencies: + "@react-spring/web" "9.3.1" + +"@nivo/treemap@^0.79.1": + version "0.79.1" + resolved "https://registry.yarnpkg.com/@nivo/treemap/-/treemap-0.79.1.tgz#8b8a08c018e8454edecb3692762f460ab9bba6bf" + integrity sha512-cLN+MeXTuVyw0bnuOCkTVJ+HyX4Q6hiXWbarMiy2lUhhFUrzU0VzVxXz9NaZ/h7Xe1Ooy77wTZCp73bzQC2xhg== + dependencies: + "@nivo/colors" "0.79.1" + "@nivo/tooltip" "0.79.0" + "@react-spring/web" "9.3.1" + d3-hierarchy "^1.1.8" + lodash "^4.17.21" + +"@nivo/voronoi@0.79.0": + version "0.79.0" + resolved "https://registry.yarnpkg.com/@nivo/voronoi/-/voronoi-0.79.0.tgz#e3388169e2da078a98b18ebadfc75d02ee98fa5b" + integrity sha512-0MrY33MBjLPQsgtf6PU+NUeQVib0g5fR9UBWsbO3YdkgDhXNnbXZ4FZlMAznoDSOxQ/efAuP7jWfnemFCpSwUg== + dependencies: + d3-delaunay "^5.3.0" + d3-scale "^3.2.3" + +"@popperjs/core@^2.11.6": + version "2.11.6" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" + integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== + +"@react-leaflet/core@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-1.1.1.tgz#827fd05bb542cf874116176d8ef48d5b12163f81" + integrity sha512-7PGLWa9MZ5x/cWy8EH2VzI4T8q5WpuHbixzCDXqixP/WyqwIrg5NDUPgYuFnB4IEIZF+6nA265mYzswFo/h1Pw== + +"@react-spring/animated@~9.3.0": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.3.2.tgz#bda85e92e9e9b6861c259f2dacb54270a37b0f39" + integrity sha512-pBvKydRHbTzuyaeHtxGIOvnskZxGo/S5/YK1rtYm88b9NQZuZa95Rgd3O0muFL+99nvBMBL8cvQGD0UJmsqQsg== + dependencies: + "@react-spring/shared" "~9.3.0" + "@react-spring/types" "~9.3.0" + +"@react-spring/core@~9.3.0": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.3.2.tgz#d1dc5810666ac18550db89c58567f28fbe04fb07" + integrity sha512-kMRjkgdQ6LJ0lmb/wQlONpghaMT83UxglXHJC6m9kZS/GKVmN//TYMEK85xN1rC5Gg+BmjG61DtLCSkkLDTfNw== + dependencies: + "@react-spring/animated" "~9.3.0" + "@react-spring/shared" "~9.3.0" + "@react-spring/types" "~9.3.0" + +"@react-spring/rafz@~9.3.0": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.3.2.tgz#0cbd296cd17bbf1e7e49d3b3616884e026d5fb67" + integrity sha512-YtqNnAYp5bl6NdnDOD5TcYS40VJmB+Civ4LPtcWuRPKDAOa/XAf3nep48r0wPTmkK936mpX8aIm7h+luW59u5A== + +"@react-spring/shared@~9.3.0": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.3.2.tgz#967ce1d8a16d820a99e6eeb2a8f7ca9311d9dfa0" + integrity sha512-ypGQQ8w7mWnrELLon4h6mBCBxdd8j1pgLzmHXLpTC/f4ya2wdP+0WIKBWXJymIf+5NiTsXgSJra5SnHP5FBY+A== + dependencies: + "@react-spring/rafz" "~9.3.0" + "@react-spring/types" "~9.3.0" + +"@react-spring/types@~9.3.0": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.3.2.tgz#0277d436e50d7a824897dd7bb880f4842fbcd0fe" + integrity sha512-u+IK9z9Re4hjNkBYKebZr7xVDYTai2RNBsI4UPL/k0B6lCNSwuqWIXfKZUDVlMOeZHtDqayJn4xz6HcSkTj3FQ== + +"@react-spring/web@9.3.1": + version "9.3.1" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.3.1.tgz#5b377ba7ad52e746c2b59e2738c021de3f219d0b" + integrity sha512-sisZIgFGva/Z+xKWPSfXpukF0AP3kR9ALTxlHL87fVotMUCJX5vtH/YlVcywToEFwTHKt3MpI5Wy2M+vgVEeaw== + dependencies: + "@react-spring/animated" "~9.3.0" + "@react-spring/core" "~9.3.0" + "@react-spring/shared" "~9.3.0" + "@react-spring/types" "~9.3.0" + +"@redux-devtools/extension@^3.2.3": + version "3.2.3" + resolved "https://registry.yarnpkg.com/@redux-devtools/extension/-/extension-3.2.3.tgz#589361d9a62326558c39c8a2e09c4acdbe6393e0" + integrity sha512-y90IIqdQF6kIkP4KfBCfiFrnu9KMrEPUmcnb5A3v12tjfwRJUXecX8vCEbFqqJLjOomvVmis0Aal7QdFjk6CRQ== + dependencies: + "@babel/runtime" "^7.18.3" + immutable "^4.0.0" + +"@serverless/utils@^6.0.2": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@serverless/utils/-/utils-6.7.0.tgz#7d09585749ff279f348109400c0a10a7738b547a" + integrity sha512-aUjkkOTJ5wH7f3raSIDeTCR4JsAbd9p5Pjs7yW3sVOmu0qiTPHZOr1x1TIkb3WDHiAoQQY8zGhfzW7zLTcAA3Q== + dependencies: + archive-type "^4.0.0" + chalk "^4.1.2" + ci-info "^3.3.2" + cli-progress-footer "^2.3.2" + content-disposition "^0.5.4" + d "^1.0.1" + decompress "^4.2.1" + event-emitter "^0.3.5" + ext "^1.6.0" + ext-name "^5.0.0" + file-type "^16.5.3" + filenamify "^4.3.0" + get-stream "^6.0.1" + got "^11.8.5" + inquirer "^8.2.4" + js-yaml "^4.1.0" + jwt-decode "^3.1.2" + lodash "^4.17.21" + log "^6.3.1" + log-node "^8.0.3" + make-dir "^3.1.0" + memoizee "^0.4.15" + ncjsm "^4.3.0" + node-fetch "^2.6.7" + open "^7.4.2" + p-event "^4.2.0" + supports-color "^8.1.1" + timers-ext "^0.1.7" + type "^2.6.0" + uni-global "^1.0.0" + uuid "^8.3.2" + write-file-atomic "^4.0.1" + +"@sinclair/typebox@^0.24.1": + version "0.24.37" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.37.tgz#3ea4cf8f3cf8a943c17baf5bb7b33587afa5f76b" + integrity sha512-8xuD57tNMHs7R0YUzFp0xqIVOTJDbFHnEN/JTej5d5o/dTx4OSsURKTT9dkWl6ghMk4zs3AYe1bi7UK0NnJ4oA== + +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@testing-library/jest-dom@^5.11.4": + version "5.16.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" + integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== + dependencies: + "@adobe/css-tools" "^4.0.1" + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@tweenjs/tween.js@18": + version "18.6.4" + resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-18.6.4.tgz#40a3d0a93647124872dec8e0fd1bd5926695b6ca" + integrity sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/cacheable-request@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" + integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/debug@^4.0.0": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.4.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.6.tgz#7976f054c1bccfcf514bff0564c0c41df5c08207" + integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.30" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz#0f2f99617fa8f9696170c46152ccf7500b34ac04" + integrity sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + +"@types/hoist-non-react-statics@^3.3.0": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/http-proxy@^1.17.8": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" + integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.0.tgz#bc66835bf6b09d6a47e22c21d7f5b82692e60e72" + integrity sha512-X6Zjz3WO4cT39Gkl0lZ2baFRaEMqJl5NC1OjElkwtNzAlbkr2K/WJXkBkH5VP0zx4Hgsd2TZYdOEfvp2Dxia+Q== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/keyv@*": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" + +"@types/mdurl@^1.0.0": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== + +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== + +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node@*": + version "18.7.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.15.tgz#20ae1ec80c57ee844b469f968a1cd511d4088b29" + integrity sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ== + +"@types/node@^14.14.31": + version "14.18.27" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.27.tgz#940c1d419143fd9fbdc46ae1320b86077aef8155" + integrity sha512-DcTUcwT9xEcf4rp2UHyGAcmlqG4Mhe7acozl5vY2xzSrwP1z19ZVyjzQ6DsNUrvIadpiyZoQCTHFt4t2omYIZQ== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prop-types@*", "@types/prop-types@^15.0.0", "@types/prop-types@^15.7.5": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/react-is@^16.7.1 || ^17.0.0": + version "17.0.3" + resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-17.0.3.tgz#2d855ba575f2fc8d17ef9861f084acc4b90a137a" + integrity sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw== + dependencies: + "@types/react" "*" + +"@types/react-redux@^7.1.20": + version "7.1.24" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.24.tgz#6caaff1603aba17b27d20f8ad073e4c077e975c0" + integrity sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ== + dependencies: + "@types/hoist-non-react-statics" "^3.3.0" + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + redux "^4.0.0" + +"@types/react-transition-group@^4.2.0", "@types/react-transition-group@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416" + integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.0.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.18.tgz#9f16f33d57bc5d9dca848d12c3572110ff9429ac" + integrity sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/responselike@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-3.0.0.tgz#5ecc1fc88552e5ac03de648a7796f9e125d002dc" + integrity sha512-zfgGLWx5IQOTJgQPD4UfGEhapTKUPC1ra/QCG02y3GUJWrhX05bBf/EfTh3aFj2DKi7cLo+cipXLNclD27tQXQ== + dependencies: + responselike "*" + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== + dependencies: + "@types/express" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== + dependencies: + "@types/mime" "*" + "@types/node" "*" + +"@types/sinonjs__fake-timers@8.1.1": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" + integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== + +"@types/sizzle@^2.3.2": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/testing-library__jest-dom@^5.9.1": + version "5.14.5" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f" + integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ== + dependencies: + "@types/jest" "*" + +"@types/unist@*", "@types/unist@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/ws@^8.5.1": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.8": + version "17.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.12.tgz#0745ff3e4872b4ace98616d4b7e37ccbd75f9526" + integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +accessor-fn@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/accessor-fn/-/accessor-fn-1.3.2.tgz#66074d0127367e996197197822fae846ef0928e7" + integrity sha512-W4/Lj/gry8AHy+IC7Havr7fNbphHDzVAiZd5h10g8LRRz6ZKla3A1/lkFqoV1jh13R0eJLGWjDBlRGK36fcWiw== + +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + +acorn@^8.5.0, acorn@^8.7.1: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.8.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +antlr4@4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.7.0.tgz#297f956ddc06f83397fc0990ecf2e0cf20bfbbee" + integrity sha512-It7yoGEJ4cz918lGlxZk2R0A2l0t7M1IWfj9rHzCrJQ50ZyyfGjUr+xa2+lcBVBnhvqZvfuCp5Lh8hO5I+owVA== + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" + integrity sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA== + dependencies: + file-type "^4.2.0" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.2.tgz#0b8a744295271861e1d933f8feca13f9b70cfdc1" + integrity sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-flatten@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +babel-loader@^8.2.3: + version "8.2.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-polyfill-corejs2@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.2" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" + integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.2" + +"babel-plugin-styled-components@>= 1.12.0": + version "2.0.7" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz#c81ef34b713f9da2b7d3f5550df0d1e19e798086" + integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-module-imports" "^7.16.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + picomatch "^2.3.0" + +babel-plugin-syntax-jsx@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +"bezier-js@3 - 6": + version "6.1.0" + resolved "https://registry.yarnpkg.com/bezier-js/-/bezier-js-6.1.0.tgz#162b7bdbabe866e3a796285a89d71085140755ec" + integrity sha512-oc8fkHqG0R+dQuNiXVbPMB0cc8iDqkLAjbA2gq26QmV8tZqW9GGI7iNEX1ioRWlZperQS7v5BX03+9FLVWZbSw== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blob-util@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.0.14" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7" + integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ== + dependencies: + array-flatten "^2.1.2" + dns-equal "^1.0.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.14.5, browserslist@^4.20.2, browserslist@^4.21.3: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== + dependencies: + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" + node-releases "^2.0.6" + update-browserslist-db "^1.0.5" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +cachedir@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" + integrity sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg== + +caniuse-lite@^1.0.30001370: + version "1.0.30001390" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz#158a43011e7068ef7fc73590e9fd91a7cece5e7f" + integrity sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g== + +canvas-color-tracker@1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/canvas-color-tracker/-/canvas-color-tracker-1.1.6.tgz#f7446e6f8148c4996b3e9a60525eb24c6661ccc8" + integrity sha512-LpKiona7TwN0rpLgGcdvAw/HVV9HGCSSyOoSJkLyUP+VZmTX2uAnunGVoKrEHQ/7i+lyu6HfazdHV93vLrjK5Q== + dependencies: + tinycolor2 "^1.4.2" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +change-emitter@^0.1.2: + version "0.1.6" + resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" + integrity sha512-YXzt1cQ4a2jqazhcuSWEOc1K2q8g9H6eWNsyZgi640LDzRWVQ2eDe+Y/kVdftH+vYdPF2rgDb3dLdpxE1jvAxw== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +check-more-types@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== + +chokidar@^3.4.0, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^3.2.0, ci-info@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== + +classnames@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-color@^2.0.1, cli-color@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-2.0.3.tgz#73769ba969080629670f3f2ef69a4bf4e7cc1879" + integrity sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.61" + es6-iterator "^2.0.3" + memoizee "^0.4.15" + timers-ext "^0.1.7" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-progress-footer@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/cli-progress-footer/-/cli-progress-footer-2.3.2.tgz#1c13ba3c3dd894ef366f4a4f0620b3067284154d" + integrity sha512-uzHGgkKdeA9Kr57eyH1W5HGiNShP8fV1ETq04HDNM1Un6ShXbHhwi/H8LNV9L1fQXKjEw0q5FUkEVNuZ+yZdSw== + dependencies: + cli-color "^2.0.2" + d "^1.0.1" + es5-ext "^0.10.61" + mute-stream "0.0.8" + process-utils "^4.0.0" + timers-ext "^0.1.7" + type "^2.6.0" + +cli-spinners@^2.5.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== + +cli-sprintf-format@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cli-sprintf-format/-/cli-sprintf-format-1.1.1.tgz#ec69955c89ef1c61243b52e68015b75c08fb9188" + integrity sha512-BbEjY9BEdA6wagVwTqPvmAwGB24U93rQPBFZUT8lNCDxXzre5LFHQUTJc70czjgUomVg8u8R5kW8oY9DYRFNeg== + dependencies: + cli-color "^2.0.1" + es5-ext "^0.10.53" + sprintf-kit "^2.0.1" + supports-color "^6.1.0" + +cli-table3@~0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" + integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== + dependencies: + string-width "^4.2.0" + optionalDependencies: + "@colors/colors" "1.5.0" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clsx@^1.0.4, clsx@^1.1.1, clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +codemirror@^5.65.3: + version "5.65.8" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.65.8.tgz#50f145ba7eb725091110c31f3a7c1fdef6bdc721" + integrity sha512-TNGkSkkoAsmZSf6W6g35LMVQJBHKasc2CKwhr/fTxSYun7cn6J+CbtyNjV/MYlFVkNTsqZoviegyCZimWhoMMA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98" + integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== + +commander@^2.20.0, commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +commander@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== + +content-disposition@0.5.4, content-disposition@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +core-js-compat@^3.21.0, core-js-compat@^3.22.1: + version "3.25.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.0.tgz#489affbfbf9cb3fa56192fe2dd9ebaee985a66c5" + integrity sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow== + dependencies: + browserslist "^4.21.3" + semver "7.0.0" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA== + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.0, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-loader@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +css-vendor@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" + integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== + dependencies: + "@babel/runtime" "^7.8.3" + is-in-browser "^1.0.2" + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^2.5.2: + version "2.6.20" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" + integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== + +csstype@^3.0.2, csstype@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" + integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== + +cypher-codemirror@1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/cypher-codemirror/-/cypher-codemirror-1.1.9.tgz#6da06d5384be6238a9fbe6060e75d5d822371ad1" + integrity sha512-nGJ+AHNW1k1zxbHGXaqqZLX44XG2uYGeD1TyfHIMegVAs/J++EhaHxi7Nu47gZOMRFuQThnyiassy0PoZUGWuA== + dependencies: + cypher-editor-support "1.1.9" + +cypher-editor-support@1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/cypher-editor-support/-/cypher-editor-support-1.1.9.tgz#cb862d16d24fba3da7b5c645fe17a00b25c46bee" + integrity sha512-BivzNAmfhEMzPXsQZY1nvGlCU7R00sd8tkokjhlEgiOLx5ZycyfMw+i5KSsDcfGWxIQXSli9yZM6Y6QQpQHDDA== + dependencies: + antlr4 "4.7.0" + fuzzaldrin "2.1.0" + lodash "4.17.15" + +cypress@^9.5.3: + version "9.7.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.7.0.tgz#bf55b2afd481f7a113ef5604aa8b693564b5e744" + integrity sha512-+1EE1nuuuwIt/N1KXRR2iWHU+OiIt7H28jJDyyI4tiUftId/DrXYEwoDa5+kH2pki1zxnA0r6HrUGHV5eLbF5Q== + dependencies: + "@cypress/request" "^2.88.10" + "@cypress/xvfb" "^1.2.4" + "@types/node" "^14.14.31" + "@types/sinonjs__fake-timers" "8.1.1" + "@types/sizzle" "^2.3.2" + arch "^2.2.0" + blob-util "^2.0.2" + bluebird "^3.7.2" + buffer "^5.6.0" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-cursor "^3.1.0" + cli-table3 "~0.6.1" + commander "^5.1.0" + common-tags "^1.8.0" + dayjs "^1.10.4" + debug "^4.3.2" + enquirer "^2.3.6" + eventemitter2 "^6.4.3" + execa "4.1.0" + executable "^4.1.1" + extract-zip "2.0.1" + figures "^3.2.0" + fs-extra "^9.1.0" + getos "^3.2.1" + is-ci "^3.0.0" + is-installed-globally "~0.4.0" + lazy-ass "^1.6.0" + listr2 "^3.8.3" + lodash "^4.17.21" + log-symbols "^4.0.0" + minimist "^1.2.6" + ospath "^1.2.2" + pretty-bytes "^5.6.0" + proxy-from-env "1.0.0" + request-progress "^3.0.0" + semver "^7.3.2" + supports-color "^8.1.1" + tmp "~0.2.1" + untildify "^4.0.0" + yauzl "^2.10.0" + +d3-array@1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +"d3-array@1 - 2", d3-array@2, d3-array@^2.3.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3": + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.0.tgz#15bf96cd9b7333e02eb8de8053d78962eafcff14" + integrity sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g== + dependencies: + internmap "1 - 2" + +d3-binarytree@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/d3-binarytree/-/d3-binarytree-0.2.2.tgz#2b3421a4ac41ddaf3ebd2584f96f8e68ecb7c444" + integrity sha512-TmgSEKWO4lSjX26Rk77hbTdiF3TQ1v5LqL+cmSz6/5RiSxmq6+e6qHE6X/KwrsIESekhEReH63X5yM8dvXaT7A== + +"d3-color@1 - 2", d3-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" + integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== + +"d3-color@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-delaunay@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-5.3.0.tgz#b47f05c38f854a4e7b3cea80e0bb12e57398772d" + integrity sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w== + dependencies: + delaunator "4" + +"d3-dispatch@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3": + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-ease@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +"d3-force-3d@2 - 3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/d3-force-3d/-/d3-force-3d-3.0.3.tgz#ddd0b9120837ef3cd6ffdad668d99d1992483af2" + integrity sha512-8HGTbw6y35UYManGCPU4+b9/PGgnyjzRq80DRsp7zFsRl0leVz2pzwx18dwkPe4rDxTOEpM4BuWQ2krbVaGQQA== + dependencies: + d3-binarytree "^0.2.0" + d3-dispatch "1 - 3" + d3-octree "^0.2.0" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" + integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== + +"d3-format@1 - 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-format@^1.4.4: + version "1.4.5" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" + integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== + +d3-geo@^1.11.3: + version "1.12.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" + integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== + dependencies: + d3-array "1" + +d3-hierarchy@^1.1.8: + version "1.1.9" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" + integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== + +"d3-interpolate@1 - 2", "d3-interpolate@1.2.0 - 2", d3-interpolate@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" + integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== + dependencies: + d3-color "1 - 2" + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-octree@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/d3-octree/-/d3-octree-0.2.2.tgz#24c513d809252d14fd3b0bf7eb5af321c30bd69b" + integrity sha512-ysk9uSPAhZVb0Gq4GXzghl/Yqxu80dHrq55I53qaIMdGB65+0UfO84sr4Fci2JHumcgh6H4WE0r8LwxPagkE+g== + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-quadtree@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-sankey@^0.12.3: + version "0.12.3" + resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.12.3.tgz#b3c268627bd72e5d80336e8de6acbfec9d15d01d" + integrity sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ== + dependencies: + d3-array "1 - 2" + d3-shape "^1.2.0" + +"d3-scale-chromatic@1 - 3", d3-scale-chromatic@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale-chromatic@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz#c13f3af86685ff91323dc2f0ebd2dabbd72d8bab" + integrity sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA== + dependencies: + d3-color "1 - 2" + d3-interpolate "1 - 2" + +"d3-scale@1 - 4": + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +d3-scale@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" + integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== + dependencies: + d3-array "^2.3.0" + d3-format "1 - 2" + d3-interpolate "1.2.0 - 2" + d3-time "^2.1.1" + d3-time-format "2 - 3" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@^1.2.0, d3-shape@^1.2.2, d3-shape@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 3", d3-time-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" + integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== + dependencies: + d3-time "1 - 2" + +"d3-time-format@2 - 4": + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 2", d3-time@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" + integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== + dependencies: + d3-array "2" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3": + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.0.0.tgz#65972cb98ae2d4954ef5c932e8704061335d4975" + integrity sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ== + dependencies: + d3-array "2 - 3" + +d3-time@^1.0.11: + version "1.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" + integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== + +"d3-timer@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +"d3-zoom@2 - 3": + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +dayjs@^1.10.4: + version "1.11.5" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.5.tgz#00e8cc627f231f9499c19b38af49f56dc0ac5e93" + integrity sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA== + +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +deferred@^0.7.11: + version "0.7.11" + resolved "https://registry.yarnpkg.com/deferred/-/deferred-0.7.11.tgz#8c3f272fd5e6ce48a969cb428c0d233ba2146322" + integrity sha512-8eluCl/Blx4YOGwMapBvXRKxHXhA8ejDXYzEaK8+/gtcm8hRMhSLmXSqDmNUKNc/C8HNSmuyyp/hflhqDAvK2A== + dependencies: + d "^1.0.1" + es5-ext "^0.10.50" + event-emitter "^0.3.5" + next-tick "^1.0.0" + timers-ext "^0.1.7" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delaunator@4: + version "4.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957" + integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +diff-sequences@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" + integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== + +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== + +dns-packet@^5.2.2: + version "5.4.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" + integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== + dependencies: + "@leichtgewicht/ip-codec" "^2.0.1" + +dom-accessibility-api@^0.5.6: + version "0.5.14" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56" + integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg== + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-to-image@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/dom-to-image/-/dom-to-image-2.6.0.tgz#8a503608088c87b1c22f9034ae032e1898955867" + integrity sha512-Dt0QdaHmLpjURjU7Tnu3AgYSF2LuOmksSGsUcE6ItvJoCWTBEmiMXcqBdNSAm9+QbbwD7JMoVsuuKX6ZVQv1qA== + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +duration@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/duration/-/duration-0.2.2.tgz#ddf149bc3bc6901150fe9017111d016b3357f529" + integrity sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg== + dependencies: + d "1" + es5-ext "~0.10.46" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.202: + version "1.4.242" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.242.tgz#51284820b0e6f6ce6c60d3945a3c4f9e4bd88f5f" + integrity sha512-nPdgMWtjjWGCtreW/2adkrB2jyHjClo9PtVhR6rW+oxa4E4Wom642Tn+5LslHP3XPL5MCpkn5/UEY60EXylNeQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + +es5-ext@^0.10.12, es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.49, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@^0.10.61, es5-ext@^0.10.62, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.62" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" + integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + next-tick "^1.1.0" + +es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-set@^0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8" + integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + es6-iterator "~2.0.3" + es6-symbol "^3.1.3" + event-emitter "^0.3.5" + type "^2.7.2" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +esniff@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-1.1.0.tgz#c66849229f91464dede2e0d40201ed6abf65f2ac" + integrity sha512-vmHXOeOt7FJLsqofvFk4WB3ejvcHizCd8toXXwADmYfd02p2QwHRgkUbhYDX54y08nqk818CUTWipgZGlyN07g== + dependencies: + d "1" + es5-ext "^0.10.12" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter2@^6.4.3: + version "6.4.8" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.8.tgz#a3dca5a7015b4fca8aa67121386cfe07c38946ff" + integrity sha512-pAJurPyD+Nj/pfz8m0usKF1RW0E9gfY4Dfdem2l6jZbqcZlK8SP93qUMCv9V9FgOn+GSZEW6qeaglpf/vQ9D5A== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +execa@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +executable@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +expect@^29.0.0: + version "29.0.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.2.tgz#22c7132400f60444b427211f1d6bb604a9ab2420" + integrity sha512-JeJlAiLKn4aApT4pzUXBVxl3NaZidWIOdg//smaIlP9ZMBDkHZGFd9ubphUZP9pUyDEo7bC6M0IIZR51o75qQw== + dependencies: + "@jest/expect-utils" "^29.0.2" + jest-get-type "^29.0.0" + jest-matcher-utils "^29.0.2" + jest-message-util "^29.0.2" + jest-util "^29.0.2" + +express@^4.17.3: + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + +ext@^1.1.2, ext@^1.4.0, ext@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^0.8.1: + version "0.8.18" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.18.tgz#9835e0addb9aca2eff53295cd79ca1cfc7c9662a" + integrity sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA== + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.30" + +fbjs@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" + integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.30" + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + +figures@^3.0.0, figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-saver@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" + integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== + +file-type@^16.5.3: + version "16.5.4" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.4.tgz#474fb4f704bee427681f98dd390058a172a6c2fd" + integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" + integrity sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ== + +file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-requires@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-requires/-/find-requires-1.0.0.tgz#a4a750ed37133dee8a9cc8efd2cc56aca01dd96d" + integrity sha512-UME7hNwBfzeISSFQcBEDemEEskpOjI/shPrpJM5PI4DSdn6hX0dmz+2dL70blZER2z8tSnTRL+2rfzlYgtbBoQ== + dependencies: + es5-ext "^0.10.49" + esniff "^1.1.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +follow-redirects@^1.0.0: + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== + +force-graph@^1.42: + version "1.42.13" + resolved "https://registry.yarnpkg.com/force-graph/-/force-graph-1.42.13.tgz#f9ac023de52f438d94426c9b77a4fb121e812648" + integrity sha512-/Zi0Y/CN7yrHLqmnDcMf7H6RMq46m7oIi4s6Lb2dZORAPMmrksJyWWAoEL85ak6FRA8mXPrbpK8Glcpy/4u77g== + dependencies: + "@tweenjs/tween.js" "18" + accessor-fn "1" + bezier-js "3 - 6" + canvas-color-tracker "1" + d3-array "1 - 3" + d3-drag "2 - 3" + d3-force-3d "2 - 3" + d3-scale "1 - 4" + d3-scale-chromatic "1 - 3" + d3-selection "2 - 3" + d3-zoom "2 - 3" + index-array-by "1" + kapsule "^1.13" + lodash.throttle "4" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fromentries@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" + integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-monkey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + +fs-readdir-recursive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fs2@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/fs2/-/fs2-0.3.9.tgz#3869e5b2ec7e0622eaa5f4373df540d3d427a9fb" + integrity sha512-WsOqncODWRlkjwll+73bAxVW3JPChDgaPX3DT4iTTm73UmG4VgALa7LaFblP232/DN60itkOrPZ8kaP1feksGQ== + dependencies: + d "^1.0.1" + deferred "^0.7.11" + es5-ext "^0.10.53" + event-emitter "^0.3.5" + ignore "^5.1.8" + memoizee "^0.4.14" + type "^2.1.0" + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +fuzzaldrin@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fuzzaldrin/-/fuzzaldrin-2.1.0.tgz#90204c3e2fdaa6941bb28d16645d418063a90e9b" + integrity sha512-zgllBYwfHR5P3CncJiGbGVPpa3iFYW1yuPaIv8DiTVRrcg5/6uETNL5zvIoKflG1aifXVUZTlIroDehw4WygGA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0, get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== + dependencies: + async "^3.2.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.3, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +global@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +got@^11.8.5: + version "11.8.5" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" + integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hast-util-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz#4fc1086467cc1ef5ba20673cb6b03cec3a970f1c" + integrity sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg== + +hoist-non-react-statics@^2.3.1: + version "2.5.5" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" + integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== + +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-entities@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.5.1: + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== + +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + dependencies: + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" + integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== + dependencies: + assert-plus "^1.0.0" + jsprim "^2.0.2" + sshpk "^1.14.1" + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +hyphenate-style-name@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.1.8: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +immutable@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +index-array-by@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/index-array-by/-/index-array-by-1.3.3.tgz#6881ae680a44af2c344db5e18eac6c5dc1ccea47" + integrity sha512-dpqV1sX+hx4s0RqAT97ypk9xzcAXJ0XK27p3bTgPy8bjbJAX6Kf7RU3pPXgmg9hhO7f5/WxO354v2f/A0/fz3Q== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +inquirer@^8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" + integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-in-browser@^1.0.2, is-in-browser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + integrity sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g== + +is-installed-globally@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +is_js@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/is_js/-/is_js-0.9.0.tgz#0ab94540502ba7afa24c856aa985561669e9c52d" + integrity sha512-8Y5EHSH+TonfUHX2g3pMJljdbGavg55q4jmHzghJCdqYDbdNROC8uw/YFQwIRCRqRJT1EY3pJefz+kglw+o7sg== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA== + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +jerrypick@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/jerrypick/-/jerrypick-1.0.5.tgz#808a2a53acd332b1d972a097c510c5d28fb8e3e2" + integrity sha512-95dIyL2QXqevDDJ70rmiqKLsTi+riZftLQo708tSFR/O5pQOf6VscDhjnN8mkNQwqnQmGhw+6dfZ5d4bmH/yww== + +jest-diff@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.2.tgz#1a99419efda66f9ee72f91e580e774df95de5ddc" + integrity sha512-b9l9970sa1rMXH1owp2Woprmy42qIwwll/htsw4Gf7+WuSp5bZxNhkKHDuCGKL+HoHn1KhcC+tNEeAPYBkD2Jg== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.2" + +jest-get-type@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" + integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== + +jest-matcher-utils@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.2.tgz#0ffdcaec340a9810caee6c73ff90fb029b446e10" + integrity sha512-s62YkHFBfAx0JLA2QX1BlnCRFwHRobwAv2KP1+YhjzF6ZCbCVrf1sG8UJyn62ZUsDaQKpoo86XMTjkUyO5aWmQ== + dependencies: + chalk "^4.0.0" + jest-diff "^29.0.2" + jest-get-type "^29.0.0" + pretty-format "^29.0.2" + +jest-message-util@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.2.tgz#b2781dfb6a2d1c63830d9684c5148ae3155c6154" + integrity sha512-kcJAgms3ckJV0wUoLsAM40xAhY+pb9FVSZwicjFU9PFkaTNmqh9xd99/CzKse48wPM1ANUQKmp03/DpkY+lGrA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.0.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.0.2" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-util@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.2.tgz#c75c5cab7f3b410782f9570a60c5558b5dfb6e3a" + integrity sha512-ozk8ruEEEACxqpz0hN9UOgtPZS0aN+NffwQduR5dVlhN+eN47vxurtvgZkYZYMpYrsmlAEx1XabkB3BnN0GfKQ== + dependencies: + "@jest/types" "^29.0.2" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" + integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +jss-plugin-camel-case@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.2.tgz#76dddfa32f9e62d17daa4e3504991fd0933b89e1" + integrity sha512-wgBPlL3WS0WDJ1lPJcgjux/SHnDuu7opmgQKSraKs4z8dCCyYMx9IDPFKBXQ8Q5dVYij1FFV0WdxyhuOOAXuTg== + dependencies: + "@babel/runtime" "^7.3.1" + hyphenate-style-name "^1.0.3" + jss "10.9.2" + +jss-plugin-default-unit@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.2.tgz#3e7f4a1506b18d8fe231554fd982439feb2a9c53" + integrity sha512-pYg0QX3bBEFtTnmeSI3l7ad1vtHU42YEEpgW7pmIh+9pkWNWb5dwS/4onSfAaI0kq+dOZHzz4dWe+8vWnanoSg== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.2" + +jss-plugin-global@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.9.2.tgz#e7f2ad4a5e8e674fb703b04b57a570b8c3e5c2c2" + integrity sha512-GcX0aE8Ef6AtlasVrafg1DItlL/tWHoC4cGir4r3gegbWwF5ZOBYhx04gurPvWHC8F873aEGqge7C17xpwmp2g== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.2" + +jss-plugin-nested@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.9.2.tgz#3aa2502816089ecf3981e1a07c49b276d67dca63" + integrity sha512-VgiOWIC6bvgDaAL97XCxGD0BxOKM0K0zeB/ECyNaVF6FqvdGB9KBBWRdy2STYAss4VVA7i5TbxFZN+WSX1kfQA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.2" + tiny-warning "^1.0.2" + +jss-plugin-props-sort@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.2.tgz#645f6c8f179309667b3e6212f66b59a32fb3f01f" + integrity sha512-AP1AyUTbi2szylgr+O0OB7gkIxEGzySLITZ2GpsaoX72YMCGI2jYAc+WUhPfvUnZYiauF4zTnN4V4TGuvFjJlw== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.2" + +jss-plugin-rule-value-function@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.2.tgz#9afe07596e477123cbf11120776be6a64494541f" + integrity sha512-vf5ms8zvLFMub6swbNxvzsurHfUZ5Shy5aJB2gIpY6WNA3uLinEcxYyraQXItRHi5ivXGqYciFDRM2ZoVoRZ4Q== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.9.2" + tiny-warning "^1.0.2" + +jss-plugin-vendor-prefixer@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.2.tgz#410a0f3b9f8dbbfba58f4d329134df4849aa1237" + integrity sha512-SxcEoH+Rttf9fEv6KkiPzLdXRmI6waOTcMkbbEFgdZLDYNIP9UKNHFy6thhbRKqv0XMQZdrEsbDyV464zE/dUA== + dependencies: + "@babel/runtime" "^7.3.1" + css-vendor "^2.0.8" + jss "10.9.2" + +jss@10.9.2, jss@^10.5.1: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.9.2.tgz#9379be1f195ef98011dfd31f9448251bd61b95a9" + integrity sha512-b8G6rWpYLR4teTUbGd4I4EsnWjg7MN0Q5bSsjKhVkJVjhQDy2KzkbD2AW3TuT0RYZVmZZHKIrXDn6kjU14qkUg== + dependencies: + "@babel/runtime" "^7.3.1" + csstype "^3.0.2" + is-in-browser "^1.1.3" + tiny-warning "^1.0.2" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kapsule@^1.13: + version "1.13.8" + resolved "https://registry.yarnpkg.com/kapsule/-/kapsule-1.13.8.tgz#1f43f8111b1b78d13e45daeff35dbef1e81114c2" + integrity sha512-Y1lLt1htHNofIM5kxS5OdEqDm7WFqHF4hm6DrrvNEKIJugfQrxDBycV41QI5FpnBGHqyBD99VpTB5ARnlufP6w== + dependencies: + debounce "^1.2.1" + +keyv@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" + integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + +lazy-ass@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== + +leaflet.markercluster@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz#9cdb52a4eab92671832e1ef9899669e80efc4056" + integrity sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA== + +leaflet@^1.7.1: + version "1.8.0" + resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.8.0.tgz#4615db4a22a304e8e692cae9270b983b38a2055e" + integrity sha512-gwhMjFCQiYs3x/Sf+d49f10ERXaEFCPr+nVTryhAW8DWbMGqJqt9G4XuIaHmFW08zYvhgdzqXGr8AlW8v8dQkA== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +listr2@^3.8.3: + version "3.14.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.1" + through "^2.3.8" + wrap-ansi "^7.0.0" + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash-es@^4.17.15: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.isequal@^4.0.0, lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + +lodash.throttle@4: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== + +lodash@4.17.15: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-node@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/log-node/-/log-node-8.0.3.tgz#441bf1a72f9f1c28b62f5bf42e9eb3765af74d73" + integrity sha512-1UBwzgYiCIDFs8A0rM2QdBFo8Wd8UQ0HrSTu/MNI+/2zN3NoHRj2fhplurAyuxTYUXu3Oohugq1jAn5s05u1MQ== + dependencies: + ansi-regex "^5.0.1" + cli-color "^2.0.1" + cli-sprintf-format "^1.1.1" + d "^1.0.1" + es5-ext "^0.10.53" + sprintf-kit "^2.0.1" + supports-color "^8.1.1" + type "^2.5.0" + +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +log@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/log/-/log-6.3.1.tgz#fcf9bd71fe2274a51ad608dc95c549dd7512146b" + integrity sha512-McG47rJEWOkXTDioZzQNydAVvZNeEkSyLJ1VWkFwfW+o1knW+QSi8D1KjPn/TnctV+q99lkvJNe1f0E1IjfY2A== + dependencies: + d "^1.0.1" + duration "^0.2.2" + es5-ext "^0.10.53" + event-emitter "^0.3.5" + sprintf-kit "^2.0.1" + type "^2.5.0" + uni-global "^1.0.0" + +longest-streak@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" + integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +markdown-table@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.2.tgz#9b59eb2c1b22fe71954a65ff512887065a7bb57c" + integrity sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA== + +material-colors@^1.2.1: + version "1.2.6" + resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" + integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== + +material-ui-color-picker@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/material-ui-color-picker/-/material-ui-color-picker-3.5.1.tgz#2f33f02a0a22647b135af848662409cad15f56e5" + integrity sha512-0mxnmfpl31m6ton13SbwWy3uUqQtmzV0bZl+pEK9lD+4daYB4+FeM05IW0wNU9pAum6JNT7ddYBUQ0tyDA1kvQ== + dependencies: + "@material-ui/styles" "^4.8.2" + prop-types "^15.7.2" + react-color "^2.18.0" + recompose "^0.30.0" + +mdast-util-definitions@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-find-and-replace@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz#249901ef43c5f41d6e8a8d446b3b63b17e592d7c" + integrity sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw== + dependencies: + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" + integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz#4032dcbaddaef7d4f2f3768ed830475bb22d3970" + integrity sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz#11d2d40a1a673a399c459e467fa85e00223191fe" + integrity sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-util-normalize-identifier "^1.0.0" + +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz#a4a74c36864ec6a6e3bbd31e1977f29beb475789" + integrity sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-table@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.4.tgz#0dbb25f04fd9c0877dc63b76203ecbdf5d945755" + integrity sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w== + dependencies: + markdown-table "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz#6f35f09c6e2bcbe88af62fdea02ac199cc802c5c" + integrity sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-gfm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz#16fcf70110ae689a06d77e8f4e346223b64a0ea6" + integrity sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-to-hast@^12.1.0: + version "12.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz#5bba5e8234abcf66ae474cace5d0372c0dc4bfd7" + integrity sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + "@types/mdurl" "^1.0.0" + mdast-util-definitions "^5.0.0" + mdurl "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + trim-lines "^3.0.0" + unist-builder "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" + integrity sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" + integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== + +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.4.3: + version "3.4.7" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.7.tgz#e5252ad2242a724f938cb937e3c4f7ceb1f70e5a" + integrity sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw== + dependencies: + fs-monkey "^1.0.3" + +memoizee@^0.4.14, memoizee@^0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" + integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz#dc589f9c37eaff31a175bab49f12290edcf96058" + integrity sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-footnote@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz#cbfd8873b983e820c494498c6dac0105920818d5" + integrity sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz#162232c284ffbedd8c74e59c1525bda217295e18" + integrity sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-table@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz#7b708b728f8dc4d95d486b9e7a2262f9cddbcbb4" + integrity sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz#fb2e303f7daf616db428bb6a26e18fda14a90a4d" + integrity sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz#7683641df5d4a09795f353574d7f7f66e47b7fc4" + integrity sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz#40f3209216127a96297c54c67f5edc7ef2d1a2a2" + integrity sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" + integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" + integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" + integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" + integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" + integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" + integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" + integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" + integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" + integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" + integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" + integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" + integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== + +micromark-util-html-tag-name@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== + +micromark-util-normalize-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" + integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" + integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" + integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" + integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" + integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" + integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== + +micromark@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" + integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== + dependencies: + dns-packet "^5.2.2" + thunky "^1.0.2" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +ncjsm@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ncjsm/-/ncjsm-4.3.1.tgz#794cd307c877f2dad1e2d71bf7e36074b1bde6d9" + integrity sha512-5hy/Mr7KKLS/AFyY4Be8q0aXz8wYd2PN3cSSMBeQHfcrK6Sbd0EGoQxiNrUoKMAYhl67v4A975f6Gy1oEqfJlA== + dependencies: + builtin-modules "^3.3.0" + deferred "^0.7.11" + es5-ext "^0.10.61" + es6-set "^0.1.5" + ext "^1.6.0" + find-requires "^1.0.0" + fs2 "^0.3.9" + type "^2.6.0" + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +neo4j-client-sso@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/neo4j-client-sso/-/neo4j-client-sso-1.2.2.tgz#146f96ca8e23654c70e5bd5a7f98a3acb286ce2c" + integrity sha512-JFF7QUOFCEsjkCg/ok22cvA0WDSR1Yr+5x9Q1DfOeU0kpajObnwzpYbZZXrCliECO/Nd83lzXzSJ4OEOCdf/Pg== + dependencies: + file-saver "^2.0.5" + jwt-decode "^3.1.2" + lodash.pick "^4.4.0" + +neo4j-driver-bolt-connection@^4.4.7: + version "4.4.7" + resolved "https://registry.yarnpkg.com/neo4j-driver-bolt-connection/-/neo4j-driver-bolt-connection-4.4.7.tgz#0582d54de1f213e60c374209193d1f645ba523ea" + integrity sha512-6Q4hCtvWE6gzN64N09UqZqf/3rDl7FUWZZXiVQL0ZRbaMkJpZNC2NmrDIgGXYE05XEEbRBexf2tVv5OTYZYrow== + dependencies: + buffer "^6.0.3" + neo4j-driver-core "^4.4.7" + string_decoder "^1.3.0" + +neo4j-driver-core@^4.4.7: + version "4.4.7" + resolved "https://registry.yarnpkg.com/neo4j-driver-core/-/neo4j-driver-core-4.4.7.tgz#d2475e107b3fea2b9d1c36b0c273da5c5a291c37" + integrity sha512-NhvVuQYgG7eO/vXxRaoJfkWUNkjvIpmCIS9UWU9Bbhb4V+wCOyX/MVOXqD0Yizhs4eyIkD7x90OXb79q+vi+oA== + +neo4j-driver@^4.4.5: + version "4.4.7" + resolved "https://registry.yarnpkg.com/neo4j-driver/-/neo4j-driver-4.4.7.tgz#51b3fb48241e66eb3be94e90032cc494c44e59f3" + integrity sha512-N7GddPhp12gVJe4eB84u5ik5SmrtRv8nH3rK47Qy7IUKnJkVEos/F1QjOJN6zt1jLnDXwDcGzCKK8XklYpzogw== + dependencies: + "@babel/runtime" "^7.5.5" + neo4j-driver-bolt-connection "^4.4.7" + neo4j-driver-core "^4.4.7" + rxjs "^6.6.3" + +next-tick@1, next-tick@^1.0.0, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +node-fetch@2.6.7, node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +open@^8.0.9: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +ospath@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-event@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.1.0.tgz#4ece1111bf5c2ad8867c314c81356847e8a62e72" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.2.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +popper.js@1.16.1-lts: + version "1.16.1-lts" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" + integrity sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA== + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^7.0.14, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +pretty-bytes@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-format@^29.0.0, pretty-format@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.2.tgz#7f7666a7bf05ba2bcacde61be81c6db64f6f3be6" + integrity sha512-wp3CdtUa3cSJVFn3Miu5a1+pxc1iPIQTenOAn+x5erXeN1+ryTcLesV5pbK/rlW5EKwp27x38MoYfNGaNXDDhg== + dependencies: + "@jest/schemas" "^29.0.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/process-utils/-/process-utils-4.0.0.tgz#3e5b204e1d38e62fe39ef3144664a1fe94097b9e" + integrity sha512-fMyMQbKCxX51YxR7YGCzPjLsU3yDzXFkP4oi1/Mt5Ixnk7GO/7uUTj8mrCHUwuvozWzI+V7QSJR9cZYnwNOZPg== + dependencies: + ext "^1.4.0" + fs2 "^0.3.9" + memoizee "^0.4.14" + type "^2.1.0" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prop-types@15.x, prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +property-information@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" + integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-color@^2.18.0: + version "2.19.3" + resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.19.3.tgz#ec6c6b4568312a3c6a18420ab0472e146aa5683d" + integrity sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA== + dependencies: + "@icons/material" "^0.2.4" + lodash "^4.17.15" + lodash-es "^4.17.15" + material-colors "^1.2.1" + prop-types "^15.5.10" + reactcss "^1.2.0" + tinycolor2 "^1.4.1" + +react-cool-dimensions@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/react-cool-dimensions/-/react-cool-dimensions-2.0.7.tgz#2fe6657608f034cd7c89f149ed14e79cf1cb2d50" + integrity sha512-z1VwkAAJ5d8QybDRuYIXTE41RxGr5GYsv1bQhbOBE8cMfoZQZpcF0odL64vdgrQVzat2jayedj1GoYi80FWcbA== + +react-dom@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-draggable@^4.0.0, react-draggable@^4.0.3: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.5.tgz#9e37fe7ce1a4cf843030f521a0a4cc41886d7e7c" + integrity sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g== + dependencies: + clsx "^1.1.1" + prop-types "^15.8.1" + +react-force-graph-2d@^1.23.8: + version "1.23.11" + resolved "https://registry.yarnpkg.com/react-force-graph-2d/-/react-force-graph-2d-1.23.11.tgz#fdd22e3ef679fc02b52f4c9eb2404158e5f6e169" + integrity sha512-tk5l3y+iDGR3V3JQl0ORmY6dQWPZT4BgFnHu2Fkd+s19jggegcauezNW+khPRDFoorIZtFLUFSjTgIBFFe8f0A== + dependencies: + force-graph "^1.42" + prop-types "^15.8" + react-kapsule "^2.2" + +react-grid-layout@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-1.3.4.tgz#4fa819be24a1ba9268aa11b82d63afc4762a32ff" + integrity sha512-sB3rNhorW77HUdOjB4JkelZTdJGQKuXLl3gNg+BI8gJkTScspL1myfZzW/EM0dLEn+1eH+xW+wNqk0oIM9o7cw== + dependencies: + clsx "^1.1.1" + lodash.isequal "^4.0.0" + prop-types "^15.8.1" + react-draggable "^4.0.0" + react-resizable "^3.0.4" + +react-hot-loader@^4.13.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.13.0.tgz#c27e9408581c2a678f5316e69c061b226dc6a202" + integrity sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA== + dependencies: + fast-levenshtein "^2.0.6" + global "^4.3.0" + hoist-non-react-statics "^3.3.0" + loader-utils "^1.1.0" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + shallowequal "^1.1.0" + source-map "^0.7.3" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +"react-is@^16.8.0 || ^17.0.0", react-is@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0, react-is@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-kapsule@^2.2: + version "2.2.5" + resolved "https://registry.yarnpkg.com/react-kapsule/-/react-kapsule-2.2.5.tgz#f65e747818e49150215c0678cf7fa1b6bf7543fe" + integrity sha512-79fLQAx0GBRsXsZMbayI+to//RrBkbxPH9//wZgmCp32lTefMShrncOpHg59BlWzEana9c3tPAltv6j9nI2iiQ== + dependencies: + fromentries "^1.3.2" + jerrypick "^1.0.5" + +react-leaflet-cluster@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/react-leaflet-cluster/-/react-leaflet-cluster-1.0.4.tgz#23559c18cc974ab5e56f4d9aeb627358e534cb39" + integrity sha512-7sUtH35vf0JQIgiRHl4DWWy9JumEAhqDHfrjOlxIfCoHdeFFtnmHvdCetz/HJswHLLatwNZicCLx5DOFZzhL6g== + dependencies: + leaflet.markercluster "^1.5.3" + +react-leaflet-enhanced-marker@^1.0.21: + version "1.0.21" + resolved "https://registry.yarnpkg.com/react-leaflet-enhanced-marker/-/react-leaflet-enhanced-marker-1.0.21.tgz#a705a1eb917862b9e9ad533cdcf3979aafb66aee" + integrity sha512-F8m1SXuOlTQ5tD0vi4DXWOYwfwLg/9ft7/6tewPE658eRXp3CrgittpMKA55EN8mPxIzeRyOwypSEQTdwY0WKw== + dependencies: + fbjs "^3.0.0" + +react-leaflet-heatmap-layer-v3@^3.0.3-beta-1: + version "3.0.3-beta-1" + resolved "https://registry.yarnpkg.com/react-leaflet-heatmap-layer-v3/-/react-leaflet-heatmap-layer-v3-3.0.3-beta-1.tgz#4c4fa264a6fdef23d5ab4565be6553b72c5b47d5" + integrity sha512-oNv6ul6JHxMIuBXqaGc5P/VM/P6bpiUYAeg1CMCmyeYxWkHfl2YiT4m8VdaJC4TjSxVoi/Ry2ChRTFjF5UsPsg== + dependencies: + simpleheat "^0.4.0" + +react-leaflet@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-3.2.5.tgz#bec0bfab9dd8c2b030ea630f7a0687a60322ca7d" + integrity sha512-Z3KZ+4SijsRbbrt2I1a3ZDY6+V6Pm91eYTdxTN18G6IOkFRsJo1BuSPLFnyFrlF3WDjQFPEcTPkEgD1VEeAoBg== + dependencies: + "@react-leaflet/core" "^1.1.1" + +react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-markdown@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.3.tgz#e8aba0d2f5a1b2124d476ee1fff9448a2f57e4b3" + integrity sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A== + dependencies: + "@types/hast" "^2.0.0" + "@types/prop-types" "^15.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^2.0.0" + prop-types "^15.0.0" + property-information "^6.0.0" + react-is "^18.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.3.0" + unified "^10.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + +react-redux@^7.2.6: + version "7.2.8" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.8.tgz#a894068315e65de5b1b68899f9c6ee0923dd28de" + integrity sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw== + dependencies: + "@babel/runtime" "^7.15.4" + "@types/react-redux" "^7.1.20" + hoist-non-react-statics "^3.3.2" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-is "^17.0.2" + +react-resizable@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-3.0.4.tgz#aa20108eff28c52c6fddaa49abfbef8abf5e581b" + integrity sha512-StnwmiESiamNzdRHbSSvA65b0ZQJ7eVQpPusrSmcpyGKzC0gojhtO62xxH6YOBmepk9dQTBi9yxidL3W4s3EBA== + dependencies: + prop-types "15.x" + react-draggable "^4.0.3" + +react-testing-library@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/react-testing-library/-/react-testing-library-8.0.1.tgz#b3dd43bce3fa88423cf0a23292fb819023c227cc" + integrity sha512-Gq4JC9r3prA4hYwo7afcbHHMFckO29+5Nrh2KblAEPuK/DWaU0bJE1vtpAgLhzhY9bBirmcgjjIHljHEwGAXKw== + +react-transition-group@^4.4.0, react-transition-group@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +reactcss@^1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/reactcss/-/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd" + integrity sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A== + dependencies: + lodash "^4.0.1" + +readable-stream@^2.0.1, readable-stream@^2.3.0, readable-stream@^2.3.5: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +recompose@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" + integrity sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w== + dependencies: + "@babel/runtime" "^7.0.0" + change-emitter "^0.1.2" + fbjs "^0.8.1" + hoist-non-react-statics "^2.3.1" + react-lifecycles-compat "^3.0.2" + symbol-observable "^1.0.4" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redux-persist@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-6.0.0.tgz#b4d2972f9859597c130d40d4b146fecdab51b3a8" + integrity sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ== + +redux-thunk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.1.tgz#0dd8042cf47868f4b29699941de03c9301a75714" + integrity sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q== + +redux@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13" + integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA== + dependencies: + "@babel/runtime" "^7.9.2" + +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" + integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== + dependencies: + jsesc "~0.5.0" + +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-parse@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" + integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== + dependencies: + throttleit "^1.0.0" + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +reselect@^4.1.5: + version "4.1.6" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.6.tgz#19ca2d3d0b35373a74dc1c98692cdaffb6602656" + integrity sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.14.2, resolve@^1.19.0, resolve@^1.9.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +responselike@*: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^6.6.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +rxjs@^7.5.1, rxjs@^7.5.5: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== + dependencies: + tslib "^2.1.0" + +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^2.6.5, schema-utils@^2.7.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== + dependencies: + node-forge "^1" + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +serverless-finch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serverless-finch/-/serverless-finch-4.0.0.tgz#f5f3be76e819ebb8dc6e3ddbef31ef85205f1467" + integrity sha512-/1w8uwX0693XFie1d7shoIlPI5eupH3W12OxFqT4Mf221561q0qvTdkGO201IqOQeEcbOi6bq237jwMFa+rYTA== + dependencies: + "@serverless/utils" "^6.0.2" + is_js "^0.9.0" + mime "^3.0.0" + minimatch "^5.0.1" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simpleheat@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/simpleheat/-/simpleheat-0.4.0.tgz#e2de8d4548fcf1a6960b636bfa939d05bcd49a7b" + integrity sha512-tdg3I1NvzMdPKscWBrHbF0LBf+VWuBBazzGUPtFJjG5Q12VQX6gPY8jLy9hx5CbgAIVc5nfnePwJvAYK6z1rAA== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +sockjs@^0.3.24: + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== + dependencies: + faye-websocket "^0.11.3" + uuid "^8.3.2" + websocket-driver "^0.7.4" + +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== + dependencies: + sort-keys "^1.0.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-loader@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.0.tgz#bdc6b118bc6c87ee4d8d851f2d4efcc5abdb2ef5" + integrity sha512-i3KVgM3+QPAHNbGavK+VBq03YoJl24m9JWNbLgsjTj8aJzXG9M61bantBTNBt7CNwY2FYf+RJRYJ3pzalKjIrw== + dependencies: + abab "^2.0.6" + iconv-lite "^0.6.3" + source-map-js "^1.0.2" + +source-map-support@^0.5.16, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +space-separated-tokens@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" + integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +sprintf-kit@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/sprintf-kit/-/sprintf-kit-2.0.1.tgz#bb837e8fa4b28f094531d8e33669120027236bb8" + integrity sha512-2PNlcs3j5JflQKcg4wpdqpZ+AjhQJ2OZEo34NXDtlB0tIPG84xaaXhpA8XFacFiwjKA4m49UOYG83y3hbMn/gQ== + dependencies: + es5-ext "^0.10.53" + +sshpk@^1.14.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.3.0.tgz#358b80ffe6d5d5620e19a073aa78ce947a90f9a0" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + +style-loader@^1.1.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + +styled-components@^5.3.3: + version "5.3.5" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.5.tgz#a750a398d01f1ca73af16a241dec3da6deae5ec4" + integrity sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^1.1.0" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1.12.0" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +stylis@4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" + integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== + +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +symbol-observable@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +terser-webpack-plugin@^5.1.3: + version "5.3.6" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c" + integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.14" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + terser "^5.14.1" + +terser@^5.14.1: + version "5.15.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425" + integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g== + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tinycolor2@^1.4.1, tinycolor2@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.2.1.tgz#0f897f03665846982806e138977dbe72d44df753" + integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.1.0, type@^2.5.0, type@^2.6.0, type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + +ua-parser-js@^0.7.30: + version "0.7.31" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6" + integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ== + +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +uni-global@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/uni-global/-/uni-global-1.0.0.tgz#3583c449e87a2d9dc270ea221410a649bcdad040" + integrity sha512-WWM3HP+siTxzIWPNUg7hZ4XO8clKi6NoCAJJWnuRL+BAqyFXF8gC03WNyTefGoUXYc47uYgXxpKLIEvo65PEHw== + dependencies: + type "^2.5.0" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + +unist-builder@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-3.0.0.tgz#728baca4767c0e784e1e64bb44b5a5a753021a04" + integrity sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-generated@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz#86fafb77eb6ce9bfa6b663c3f5ad4f8e56a60113" + integrity sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw== + +unist-util-is@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" + integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== + +unist-util-position@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.3.tgz#5290547b014f6222dff95c48d5c3c13a88fadd07" + integrity sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-stringify-position@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz#5c6aa07c90b1deffd9153be170dce628a869a447" + integrity sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +update-browserslist-db@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz#16279639cff1d0f800b14792de43d97df2d11b7d" + integrity sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +use-neo4j@^0.3.13: + version "0.3.13" + resolved "https://registry.yarnpkg.com/use-neo4j/-/use-neo4j-0.3.13.tgz#3a8188a10ce9be172082443ffb09c25ed7cb4329" + integrity sha512-gxXD+oAxiWm7pRASOwO6nUCh/xQ96lN8fYnFDlmk7g5CPsUS4ELpZDI4gRjWkZ1Mlj0W2gECCxwxvuzjECTPvQ== + dependencies: + "@testing-library/jest-dom" "^5.11.4" + neo4j-driver "^4.4.5" + react-testing-library "^8.0.1" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vfile-message@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" + integrity sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^5.0.0: + version "5.3.4" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.4.tgz#bbb8c96b956693bbf70b2c67fdb5781dff769b93" + integrity sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webpack-cli@^4.9.1: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== + dependencies: + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.7.3: + version "4.10.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.10.1.tgz#124ac9ac261e75303d74d95ab6712b4aec3e12ed" + integrity sha512-FIzMq3jbBarz3ld9l7rbM7m6Rj1lOsgq/DyLGMX/fPEB1UBUPtf5iL/4eNfhx8YYJTRlzfv107UfWSWcBK5Odw== + dependencies: + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.0.1" + serve-index "^1.9.1" + sockjs "^0.3.24" + spdy "^4.0.2" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" + +webpack-merge@^5.7.3: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + +webpack@^5.67.0: + version "5.74.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" + integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.10.0" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-fetch@>=0.10.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +ws@^8.4.2: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yauzl@^2.10.0, yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +zwitch@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" + integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== From 0e82907e75a8699aa036032ed7abb0f96febaf4b Mon Sep 17 00:00:00 2001 From: Niels de Jong Date: Tue, 4 Oct 2022 09:55:21 +0200 Subject: [PATCH 2/2] Hotfix for broken deployment script --- .github/workflows/master-deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/master-deployment.yml b/.github/workflows/master-deployment.yml index b9735df1b..a23edaaa2 100644 --- a/.github/workflows/master-deployment.yml +++ b/.github/workflows/master-deployment.yml @@ -86,7 +86,7 @@ jobs: node-version: ${{ matrix.node-version }} - run: rm -rf docs - run: yarn install - - run: yarn run-script build + - run: yarn run build - run: curl ${{ secrets.INDEX_HTML_DEPLOYMENT_URL }} > dist/index.html - run: yarn pack - run: rm -rf target