From a1753d1c6406c0b7d48daee7629909e79d827cd2 Mon Sep 17 00:00:00 2001 From: Darren Janeczek <38694490+darrenjaneczek@users.noreply.github.com> Date: Thu, 3 Aug 2023 16:50:33 -0400 Subject: [PATCH] chore: integrate og/webapp into public/app (wip) (#2169) * chore: move code from `og/webapp` to `public/app` --- .eslintignore | 8 + .eslintrc.js | 17 +- .swcrc | 12 + og/globalSetup.js => globalSetup.js | 0 og/globalTeardown.js => globalTeardown.js | 0 ...js => jest-css-modules-transform-config.js | 0 jest.config.js | 11 +- og/jest.config.js | 2 +- og/package.json | 6 +- .../FlameGraphComponent/ContextMenu.spec.tsx | 2 +- .../FlameGraphComponent/ContextMenu.tsx | 2 +- .../DiffLegendPaletteDropdown.tsx | 4 +- .../FlameGraph/FlameGraphComponent/index.tsx | 2 +- .../src/FlameGraph/FlameGraphRenderer.tsx | 2 +- .../src/ProfilerTable.tsx | 2 +- .../src/SharedQueryInput.tsx | 4 +- .../pyroscope-flamegraph/src/Toolbar.tsx | 4 +- .../pyroscope-flamegraph/src/format/format.ts | 8 +- .../pyroscope-flamegraph/src/index.node.ts | 2 +- .../pyroscope-flamegraph/src/index.tsx | 2 +- .../src/sass/flamegraph.scss | 7 +- og/tsconfig.json | 3 +- og/webapp/README.md | 2 +- .../AppSelector/AppSelector.spec.tsx | 97 - .../components/AppSelector/Label.tsx | 7 - .../components/AppSelector/SelectButton.tsx | 85 - .../components/AppSelector/index.tsx | 212 - .../EnhancedAppSelector.module.scss | 119 - .../EnhancedAppSelector.tsx | 284 - .../SelectButton.module.scss | 55 - .../EnhancedAppSelector/SelectButton.tsx | 84 - .../EnhancedAppSelector/SpyNameIcons.tsx | 471 -- .../EnhancedAppSelector/useFilters.ts | 104 - .../EnhancedAppSelector/useFiltersValues.ts | 49 - .../javascript/components/ExportData.tsx | 408 - .../Heatmap/useHeatmapSelection.hook.ts | 228 - .../javascript/components/Sidebar.module.css | 33 - og/webapp/javascript/components/Sidebar.tsx | 350 - .../TimelineChart/ContextMenu.plugin.tsx | 84 - .../TimelineChart/Tooltip.plugin.tsx | 157 - og/webapp/javascript/components/Toolbar.tsx | 72 - og/webapp/javascript/models/app.ts | 13 - og/webapp/javascript/models/query.ts | 32 - og/webapp/javascript/redux/hooks.ts | 6 - og/webapp/javascript/redux/store.ts | 160 - og/webapp/javascript/services/apps.ts | 37 - og/webapp/javascript/services/base.ts | 223 - .../javascript/types}/alias.d.ts | 0 og/webapp/package.json | 2 +- og/webapp/tsconfig.json | 4 +- package.json | 94 +- .../symdb/testdata/symbols/index.symdb | Bin 0 -> 420 bytes .../symdb/testdata/symbols/stacktraces.symdb | Bin 0 -> 80 bytes {og => public/app}/.storybook/main.js | 6 +- {og => public/app}/.storybook/preview.js | 0 public/app/app.tsx | 6 +- .../AppSelector/AppSelector.module.scss | 2 +- .../AppSelector/AppSelector.spec.tsx | 99 +- .../components/AppSelector/AppSelector.tsx | 16 +- .../components/AppSelector/Label.tsx | 0 .../AppSelector/SelectButton.module.scss | 0 .../components/AppSelector/SelectButton.tsx | 6 +- public/app/components/AppSelector/index.tsx | 1 + .../app}/components/ChartTitle.module.scss | 0 .../app}/components/ChartTitle.tsx | 0 .../app}/components/CheckIcon.tsx | 0 .../app}/components/Continuous.tsx | 8 +- .../components/CustomDatePicker.module.scss | 0 .../app}/components/CustomDatePicker.tsx | 12 +- .../app}/components/DateRangePicker.tsx | 12 +- .../app}/components/ExportData.module.scss | 0 .../app}/components/ExportData.spec.tsx | 41 +- .../{overrides => }/components/ExportData.tsx | 37 +- .../app}/components/FileList.module.scss | 0 .../app}/components/FileList.tsx | 10 +- .../app}/components/Footer.spec.tsx | 0 .../app}/components/Footer.tsx | 0 .../components/Heatmap/Heatmap.module.scss | 0 .../app}/components/Heatmap/Heatmap.spec.tsx | 0 .../Heatmap/HeatmapTooltip.module.scss | 0 .../Heatmap/HeatmapTooltip.spec.tsx | 0 .../components/Heatmap/HeatmapTooltip.tsx | 51 +- .../app}/components/Heatmap/constants.ts | 0 .../app}/components/Heatmap/index.tsx | 7 +- .../Heatmap/useHeatmapSelection.hook.spec.tsx | 7 +- .../Heatmap/useHeatmapSelection.hook.ts | 278 + .../app}/components/Heatmap/utils.ts | 4 +- .../components/Modals/ConfirmDelete/index.tsx | 2 +- .../Modals/ModalWithInput/index.tsx | 2 +- .../app}/components/Notifications.jsx | 0 .../app}/components/PageTitle.spec.tsx | 8 +- .../app}/components/PageTitle.tsx | 0 .../app}/components/ProfilerHeader.module.css | 0 .../app}/components/Protected.tsx | 8 +- .../QueryInput/QueryInput.module.scss | 0 .../components/QueryInput/QueryInput.spec.tsx | 2 +- .../app}/components/QueryInput/QueryInput.tsx | 10 +- .../app}/components/RefreshButton.tsx | 6 +- .../app}/components/ServerNotifications.tsx | 4 +- .../Settings/APIKeys/APIKeyAddForm.tsx | 20 +- .../Settings/APIKeys/APIKeyForm.module.css | 0 .../components/Settings/APIKeys/index.tsx | 16 +- .../Settings/Apps/AppTableItem.module.css | 0 .../components/Settings/Apps/Apps.module.css | 0 .../Settings/Apps/getAppTableRows.tsx | 12 +- .../app}/components/Settings/Apps/index.tsx | 16 +- .../components/Settings/Preferences/index.tsx | 17 +- .../Settings/Security/ChangePasswordForm.tsx | 12 +- .../components/Settings/Security/index.tsx | 6 +- .../components/Settings/Settings.module.css | 0 .../Settings/SettingsTable.module.scss | 0 .../components/Settings/Users/UserAddForm.tsx | 12 +- .../Settings/Users/UserTableItem.module.css | 0 .../Settings/Users/Users.module.css | 0 .../Settings/Users/getUserTableRows.tsx | 18 +- .../app}/components/Settings/Users/index.tsx | 22 +- .../app}/components/Settings/index.tsx | 14 +- .../SideTimelineComparator/index.tsx | 10 +- .../SideTimelineComparator/periods.ts | 0 .../SideTimelineComparator/styles.module.scss | 0 .../app}/components/Sidebar.spec.tsx | 10 +- public/app/components/Sidebar.tsx | 14 +- .../app}/components/SidebarCustomIcons.tsx | 0 public/app/components/SidebarTenant.tsx | 12 +- .../app}/components/TagsBar.module.scss | 0 .../app}/components/TagsBar.tsx | 16 +- public/app/components/TenantWall.tsx | 12 +- .../TimelineChart/AnnotationMark/index.tsx | 4 +- .../AnnotationMark/styles.module.scss | 2 +- .../TimelineChart/Annotations.plugin.tsx | 17 +- .../TimelineChart/ContextMenu.plugin.ts | 0 .../TimelineChart/CrosshairSync.plugin.ts | 13 +- .../TimelineChart/ExploreTooltip/index.tsx | 0 .../TimelineChart/Selection.plugin.ts | 48 +- .../SyncTimelines/SyncTimelines.spec.tsx | 0 .../SyncTimelines/getSelectionBoundaries.ts | 2 +- .../TimelineChart/SyncTimelines/index.tsx | 6 +- .../SyncTimelines/styles.module.scss | 0 .../TimelineChart/SyncTimelines/useSync.ts | 8 +- .../TimelineChart/TimelineChart.tsx | 12 +- .../TimelineChart/TimelineChartPlugin.ts | 8 +- .../TimelineChartWrapper.module.css | 0 .../TimelineChart/TimelineChartWrapper.tsx | 35 +- .../TimelineChart/Tooltip.plugin.ts | 0 .../TimelineChart/TooltipWrapper/index.tsx | 4 +- .../TooltipWrapper/styles.module.scss | 0 .../TimelineChart/centerTimelineData.ts | 2 +- .../components/TimelineChart/clamp.spec.ts | 0 .../app}/components/TimelineChart/clamp.ts | 0 .../components/TimelineChart/extractRange.ts | 0 .../TimelineChart/getFormatLabel.spec.ts | 0 .../TimelineChart/getFormatLabel.ts | 2 +- .../components/TimelineChart/injectTooltip.ts | 0 .../components/TimelineChart/markings.spec.ts | 8 +- .../app}/components/TimelineChart/markings.ts | 6 +- .../components/TimelineTooltip.module.css | 0 .../app}/components/TimelineTooltip.tsx | 4 +- .../app}/components/Toolbar.module.css | 0 .../{overrides => }/components/Toolbar.tsx | 16 +- .../exportToFlamegraphDotCom.hook.ts | 6 +- .../app}/hooks/colorMode.hook.ts | 16 +- .../app}/hooks/flamegraphSharedQuery.hook.ts | 0 .../app}/hooks/navigateUserIntroPages.hook.ts | 10 +- .../app}/hooks/populateLeftRightQuery.hook.ts | 8 +- .../app}/hooks/tags.hook.ts | 10 +- .../app}/hooks/timeZone.hook.ts | 6 +- .../app}/hooks/timeline.hook.ts | 6 +- public/app/hooks/useAppNames.ts | 6 +- {og/webapp => public/app}/images/comment.svg | 0 {og/webapp => public/app}/images/favicon.ico | Bin .../app}/images/logo-v3-small.png | Bin .../app}/images/logo-v3-small.svg | 0 .../types => public/app/lib}/flot.d.ts | 0 public/app/lib/global.d.ts | 2 + public/app/lib/globals.tsx | 10 + public/app/lib/types.d.ts | 36 + .../javascript => public/app}/models/adhoc.ts | 0 .../app}/models/annotation.ts | 0 .../app}/models/apikeys.ts | 0 public/app/{overrides => }/models/app.spec.ts | 2 +- public/app/{overrides => }/models/app.ts | 16 +- .../app}/models/appNames.ts | 0 .../app}/models/flamebearer.ts | 2 +- .../app}/models/flamegraphDotComResponse.ts | 2 +- .../app/{overrides => }/models/query.spec.ts | 2 +- public/app/{overrides => }/models/query.ts | 37 +- .../javascript => public/app}/models/tags.ts | 0 .../app}/models/targets.ts | 0 .../app}/models/timeline.ts | 0 .../javascript => public/app}/models/users.ts | 2 +- .../app}/models/utils.spec.ts | 4 +- .../javascript => public/app}/models/utils.ts | 2 +- public/app/overrides/services/base.ts | 194 - public/app/overrides/services/render.ts | 156 - public/app/overrides/ui/Sidebar.tsx | 78 - public/app/pages/ComparisonView.tsx | 2 +- .../pages/ContinuousComparison.module.css | 0 .../app}/pages/ContinuousComparisonView.tsx | 40 +- .../app}/pages/ContinuousDiffView.tsx | 37 +- .../app}/pages/ContinuousSingleView.tsx | 55 +- public/app/pages/DiffView.tsx | 2 +- public/app/pages/ExploreView.tsx | 2 +- .../IntroPages/Divider/Divider.module.css | 0 .../app}/pages/IntroPages/Divider/index.tsx | 0 .../app}/pages/IntroPages/Forbidden/index.tsx | 1 - .../app}/pages/IntroPages/Icons.tsx | 0 .../pages/IntroPages/InputGroup.module.css | 0 .../pages/IntroPages/IntroPages.module.css | 0 .../app}/pages/IntroPages/NotFound/index.tsx | 1 - .../IntroPages/SignIn/buttons.module.css | 0 .../app}/pages/IntroPages/SignIn/index.tsx | 14 +- .../app}/pages/IntroPages/SignUp/index.tsx | 14 +- .../app}/pages/ServiceDiscovery.module.scss | 0 .../app}/pages/ServiceDiscovery.tsx | 10 +- public/app/pages/SingleView.tsx | 2 +- .../app}/pages/TagExplorerView.module.scss | 0 .../app}/pages/TagExplorerView.tsx | 56 +- .../app}/pages/TracingSingleView.module.scss | 0 .../app}/pages/TracingSingleView.tsx | 18 +- .../app}/pages/adhoc/Adhoc.module.scss | 0 .../pages/adhoc/AdhocComparison.module.scss | 0 .../app}/pages/adhoc/AdhocComparison.tsx | 18 +- .../app}/pages/adhoc/AdhocDiff.tsx | 33 +- .../app}/pages/adhoc/AdhocSingle.tsx | 16 +- .../adhoc/components/FileUploader.module.scss | 0 .../pages/adhoc/components/FileUploader.tsx | 10 +- .../pages/adhoc/components/UploadIcon.tsx | 0 .../app}/pages/adhoc/components/humanize.ts | 0 .../app}/pages/constants.ts | 0 .../AddAnnotation.menuitem.module.css | 0 .../contextMenu/AddAnnotation.menuitem.tsx | 12 +- .../continuous/contextMenu/AnnotationInfo.tsx | 12 +- .../continuous/contextMenu/ContextMenu.tsx | 6 +- .../contextMenu/useAnnotationForm.ts | 2 +- .../exemplars/ExemplarsSingleView.module.scss | 0 .../pages/exemplars/ExemplarsSingleView.tsx | 79 +- .../app}/pages/exemplars/HeatmapIcons.tsx | 0 .../app}/pages/exemplars/filterNonCPU.ts | 0 .../app}/pages/exemplars/filterNonCpu.spec.ts | 0 .../exemplars/heatmapSelectionPreview.gif | Bin .../app}/pages/formatTableData.spec.ts | 0 .../app}/pages/formatTableData.ts | 0 .../app}/pages/formatTitle.spec.ts | 2 +- .../app}/pages/formatTitle.ts | 2 +- .../app}/pages/loading.ts | 0 .../app}/pages/math.spec.ts | 0 .../javascript => public/app}/pages/math.ts | 0 .../tagExplorer/components/Legend.module.scss | 0 .../tagExplorer/components/Legend.spec.tsx | 2 +- .../pages/tagExplorer/components/Legend.tsx | 4 +- .../components/TagsSelector.module.scss | 0 .../components/TagsSelector.spec.tsx | 16 +- .../tagExplorer/components/TagsSelector.tsx | 12 +- .../PieChart/Interactivity.plugin.tsx | 36 +- .../TotalSamplesChart/PieChart/index.tsx | 8 +- .../PieChart/styles.module.scss | 0 .../PieChartTooltip/index.tsx | 0 .../PieChartTooltip/styles.module.scss | 0 .../TotalSamplesChart/index.module.scss | 0 .../components/TotalSamplesChart/index.tsx | 4 +- .../app}/redux/async-thunk.ts | 0 public/app/redux/hooks.ts | 2 +- .../app}/redux/reducers/adhoc.ts | 10 +- .../reducers/continuous/annotations.thunks.ts | 2 +- .../continuous/comparisonView.thunks.ts | 4 +- .../reducers/continuous/diffView.thunks.ts | 4 +- .../app/redux/reducers/continuous/index.ts | 87 +- .../redux/reducers/continuous/selectors.ts | 4 +- .../reducers/continuous/singleView.thunks.ts | 4 +- .../app}/redux/reducers/continuous/state.ts | 6 +- .../reducers/continuous/tagExplorer.thunks.ts | 6 +- .../redux/reducers/continuous/tags.thunks.ts | 8 +- .../reducers/continuous/timelines.thunks.ts | 4 +- .../app}/redux/reducers/notifications.ts | 4 +- .../app}/redux/reducers/serviceDiscovery.ts | 4 +- .../app}/redux/reducers/settings.ts | 14 +- public/app/redux/reducers/tenant.ts | 22 +- .../app}/redux/reducers/tracing.ts | 28 +- .../app}/redux/reducers/ui.ts | 2 +- .../app}/redux/reducers/user.ts | 9 +- public/app/redux/store.ts | 69 +- {og/webapp => public/app}/sass/common.scss | 0 .../app}/sass/components/button.scss | 0 .../app}/sass/components/daterangepicker.scss | 0 .../app}/sass/components/labels.scss | 0 .../app}/sass/components/tagsbar.scss | 0 {og/webapp => public/app}/sass/login.scss | 0 .../app}/sass/mixins/outline.scss | 0 {og/webapp => public/app}/sass/prism.scss | 0 {og/webapp => public/app}/sass/profile.scss | 0 {og/webapp => public/app}/sass/reset.scss | 0 .../app}/sass/sanitize.css/CHANGELOG.md | 0 .../app}/sass/sanitize.css/LICENSE.md | 0 .../app}/sass/sanitize.css/README.md | 0 .../app}/sass/sanitize.css/forms.css | 0 .../app}/sass/sanitize.css/package.json | 0 .../app}/sass/sanitize.css/page.css | 0 .../app}/sass/sanitize.css/sanitize.css | 0 .../app}/sass/sanitize.css/typography.css | 0 .../app}/sass/standalone.scss | 0 {og/webapp => public/app}/sass/variables.css | 0 {og/webapp => public/app}/sass/variables.scss | 0 .../app}/services/TestData.ts | 0 .../app}/services/adhoc.ts | 6 +- .../app}/services/annotations.ts | 4 +- .../app}/services/apiKeys.ts | 4 +- .../app/{overrides => }/services/apps.spec.ts | 34 +- public/app/{overrides => }/services/apps.ts | 45 +- .../app/{overrides => }/services/base.spec.ts | 14 +- public/app/services/base.ts | 404 + .../app}/services/exemplarsTestData.ts | 0 public/app/services/flamegraphcom.ts | 11 +- .../app}/services/render.ts | 232 +- .../app}/services/serviceDiscovery.ts | 8 +- .../app}/services/share.spec.ts | 2 +- .../app}/services/share.ts | 8 +- public/app/services/storage.ts | 15 + .../app/{overrides => }/services/tags.spec.ts | 2 +- public/app/{overrides => }/services/tags.ts | 8 +- public/app/services/tenant.ts | 7 +- .../app}/services/testUtils.ts | 0 .../app}/services/testdata/example.html | 0 .../app}/services/tsconfig.json | 0 .../app}/services/users.ts | 6 +- {og => public/app}/stories/Box.stories.tsx | 6 +- {og => public/app}/stories/Button.stories.tsx | 4 +- {og => public/app}/stories/Dialog.stories.tsx | 6 +- .../app}/stories/Dropdown.stories.tsx | 4 +- .../app}/stories/Flamegraph.stories.tsx | 6 +- {og => public/app}/stories/Form.stories.tsx | 6 +- {og => public/app}/stories/Icon.stories.tsx | 4 +- .../app}/stories/InputField.stories.tsx | 6 +- .../app}/stories/LoadingSpinner.stories.tsx | 4 +- .../app}/stories/ModalWithToggle.stories.tsx | 6 +- {og => public/app}/stories/Modals.stories.tsx | 6 +- {og => public/app}/stories/NoData.stories.tsx | 6 +- .../app}/stories/Notifications.stories.tsx | 6 +- .../app}/stories/Sidebar.stories.tsx | 6 +- .../app}/stories/StatusMessage.stories.tsx | 4 +- {og => public/app}/stories/Table.stories.tsx | 8 +- {og => public/app}/stories/Tabs.stories.tsx | 4 +- .../app}/stories/Tooltip.stories.tsx | 6 +- public/app/types/alias.d.ts | 3 + .../app}/types/custom.d.ts | 0 public/app/{ => types}/types.d.ts | 0 .../app}/ui/Box.module.scss | 0 .../javascript => public/app}/ui/Box.tsx | 0 .../app}/ui/Button.module.scss | 0 .../javascript => public/app}/ui/Button.tsx | 2 +- .../app}/ui/Dialog/Dialog.module.css | 0 .../app}/ui/Dialog/Dialog.tsx | 13 +- .../app}/ui/Dialog/index.ts | 0 .../app}/ui/Dropdown.module.scss | 0 .../javascript => public/app}/ui/Dropdown.tsx | 4 +- .../app}/ui/Form/TextField/index.module.scss | 2 +- .../app}/ui/Form/TextField/index.tsx | 0 .../ui/Form/ValidationError/index.module.css | 0 .../app}/ui/Form/ValidationError/index.tsx | 4 +- .../javascript => public/app}/ui/Icon.tsx | 0 .../app}/ui/Input.module.scss | 2 +- .../javascript => public/app}/ui/Input.tsx | 1 + .../app}/ui/InputField/InputField.module.css | 0 .../app}/ui/InputField/index.tsx | 4 +- .../app}/ui/LoadingOverlay.module.css | 0 .../app}/ui/LoadingOverlay.tsx | 4 +- .../app}/ui/LoadingSpinner.tsx | 0 .../javascript => public/app}/ui/Menu.tsx | 0 .../app}/ui/Modals/Modal.module.css | 0 .../ui/Modals/ModalWithToggle.module.scss | 0 .../app}/ui/Modals/ModalWithToggle.tsx | 0 .../app}/ui/Modals/ModalWithToggler.spec.tsx | 0 .../app}/ui/Modals/index.ts | 0 .../app}/ui/NoData/NoData.module.scss | 0 .../app}/ui/NoData/NoData.spec.tsx | 0 .../app}/ui/NoData/index.tsx | 0 .../app}/ui/Notifications.module.scss | 0 .../app}/ui/Notifications.tsx | 0 .../app}/ui/Popover.module.scss | 0 .../javascript => public/app}/ui/Popover.tsx | 0 .../javascript => public/app}/ui/Portal.tsx | 0 .../app}/ui/Select.module.scss | 2 +- .../javascript => public/app}/ui/Select.tsx | 14 +- .../javascript => public/app}/ui/Sidebar.scss | 0 .../javascript => public/app}/ui/Sidebar.tsx | 4 +- .../StatusMessage/StatusMessage.module.scss | 0 .../app}/ui/StatusMessage/index.tsx | 0 .../app}/ui/Table.module.scss | 0 .../app}/ui/Table.spec.tsx | 4 +- .../javascript => public/app}/ui/Table.tsx | 6 +- .../app}/ui/Tabs.module.scss | 0 .../app}/ui/Tabs.spec.tsx | 7 +- .../javascript => public/app}/ui/Tabs.tsx | 0 .../app}/ui/Tooltip.module.scss | 0 .../javascript => public/app}/ui/Tooltip.tsx | 5 - .../app}/ui/TooltipInfoIcon.module.scss | 0 .../app}/ui/TooltipInfoIcon.tsx | 2 +- .../app/{overrides => }/util/baseurl.spec.ts | 2 +- public/app/{overrides => }/util/baseurl.ts | 0 .../app}/util/buildInfo.ts | 2 +- .../app}/util/features.ts | 0 .../app}/util/flamebearer.ts | 0 .../app}/util/formatDate.spec.ts | 3 +- .../app}/util/formatDate.ts | 0 .../javascript => public/app}/util/fp.ts | 0 .../app}/util/handleError.ts | 6 +- public/app/util/history.ts | 2 +- .../javascript => public/app}/util/prism.ts | 0 .../javascript => public/app}/util/query.ts | 0 .../app}/util/randomId.spec.ts | 0 .../app}/util/randomId.ts | 0 .../app}/util/testData.ts | 0 .../app}/util/timerange.ts | 0 .../app}/util/updateRequests.ts | 0 scripts/webpack/webpack.common.js | 3 - og/setupAfterEnv.ts => setupAfterEnv.ts | 1 + og/svg-transform.js => svg-transform.js | 0 testSetupFile.js | 1 - tsconfig.json | 49 +- tsconfig.test.json | 8 + yarn.lock | 7005 ++--------------- 420 files changed, 2720 insertions(+), 11440 deletions(-) create mode 100644 .swcrc rename og/globalSetup.js => globalSetup.js (100%) rename og/globalTeardown.js => globalTeardown.js (100%) rename og/jest-css-modules-transform-config.js => jest-css-modules-transform-config.js (100%) delete mode 100644 og/webapp/javascript/components/AppSelector/AppSelector.spec.tsx delete mode 100644 og/webapp/javascript/components/AppSelector/Label.tsx delete mode 100644 og/webapp/javascript/components/AppSelector/SelectButton.tsx delete mode 100644 og/webapp/javascript/components/AppSelector/index.tsx delete mode 100644 og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.module.scss delete mode 100644 og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.tsx delete mode 100644 og/webapp/javascript/components/EnhancedAppSelector/SelectButton.module.scss delete mode 100644 og/webapp/javascript/components/EnhancedAppSelector/SelectButton.tsx delete mode 100644 og/webapp/javascript/components/EnhancedAppSelector/SpyNameIcons.tsx delete mode 100644 og/webapp/javascript/components/EnhancedAppSelector/useFilters.ts delete mode 100644 og/webapp/javascript/components/EnhancedAppSelector/useFiltersValues.ts delete mode 100644 og/webapp/javascript/components/ExportData.tsx delete mode 100644 og/webapp/javascript/components/Heatmap/useHeatmapSelection.hook.ts delete mode 100644 og/webapp/javascript/components/Sidebar.module.css delete mode 100644 og/webapp/javascript/components/Sidebar.tsx delete mode 100644 og/webapp/javascript/components/TimelineChart/ContextMenu.plugin.tsx delete mode 100644 og/webapp/javascript/components/TimelineChart/Tooltip.plugin.tsx delete mode 100644 og/webapp/javascript/components/Toolbar.tsx delete mode 100644 og/webapp/javascript/models/app.ts delete mode 100644 og/webapp/javascript/models/query.ts delete mode 100644 og/webapp/javascript/redux/hooks.ts delete mode 100644 og/webapp/javascript/redux/store.ts delete mode 100644 og/webapp/javascript/services/apps.ts rename og/{lib => webapp/javascript/types}/alias.d.ts (100%) create mode 100644 pkg/phlaredb/symdb/testdata/symbols/index.symdb create mode 100644 pkg/phlaredb/symdb/testdata/symbols/stacktraces.symdb rename {og => public/app}/.storybook/main.js (89%) rename {og => public/app}/.storybook/preview.js (100%) rename {og/webapp/javascript => public/app}/components/AppSelector/AppSelector.module.scss (94%) rename public/app/{overrides => }/components/AppSelector/Label.tsx (100%) rename {og/webapp/javascript => public/app}/components/AppSelector/SelectButton.module.scss (100%) create mode 100644 public/app/components/AppSelector/index.tsx rename {og/webapp/javascript => public/app}/components/ChartTitle.module.scss (100%) rename {og/webapp/javascript => public/app}/components/ChartTitle.tsx (100%) rename {og/webapp/javascript => public/app}/components/CheckIcon.tsx (100%) rename {og/webapp/javascript => public/app}/components/Continuous.tsx (77%) rename {og/webapp/javascript => public/app}/components/CustomDatePicker.module.scss (100%) rename {og/webapp/javascript => public/app}/components/CustomDatePicker.tsx (93%) rename {og/webapp/javascript => public/app}/components/DateRangePicker.tsx (92%) rename {og/webapp/javascript => public/app}/components/ExportData.module.scss (100%) rename {og/webapp/javascript => public/app}/components/ExportData.spec.tsx (95%) rename public/app/{overrides => }/components/ExportData.tsx (91%) rename {og/webapp/javascript => public/app}/components/FileList.module.scss (100%) rename {og/webapp/javascript => public/app}/components/FileList.tsx (92%) rename {og/webapp/javascript => public/app}/components/Footer.spec.tsx (100%) rename {og/webapp/javascript => public/app}/components/Footer.tsx (100%) rename {og/webapp/javascript => public/app}/components/Heatmap/Heatmap.module.scss (100%) rename {og/webapp/javascript => public/app}/components/Heatmap/Heatmap.spec.tsx (100%) rename {og/webapp/javascript => public/app}/components/Heatmap/HeatmapTooltip.module.scss (100%) rename {og/webapp/javascript => public/app}/components/Heatmap/HeatmapTooltip.spec.tsx (100%) rename {og/webapp/javascript => public/app}/components/Heatmap/HeatmapTooltip.tsx (81%) rename {og/webapp/javascript => public/app}/components/Heatmap/constants.ts (100%) rename {og/webapp/javascript => public/app}/components/Heatmap/index.tsx (97%) rename {og/webapp/javascript => public/app}/components/Heatmap/useHeatmapSelection.hook.spec.tsx (89%) create mode 100644 public/app/components/Heatmap/useHeatmapSelection.hook.ts rename {og/webapp/javascript => public/app}/components/Heatmap/utils.ts (96%) rename {og/webapp/javascript => public/app}/components/Modals/ConfirmDelete/index.tsx (94%) rename {og/webapp/javascript => public/app}/components/Modals/ModalWithInput/index.tsx (84%) rename {og/webapp/javascript => public/app}/components/Notifications.jsx (100%) rename {og/webapp/javascript => public/app}/components/PageTitle.spec.tsx (78%) rename {og/webapp/javascript => public/app}/components/PageTitle.tsx (100%) rename {og/webapp/javascript => public/app}/components/ProfilerHeader.module.css (100%) rename {og/webapp/javascript => public/app}/components/Protected.tsx (80%) rename {og/webapp/javascript => public/app}/components/QueryInput/QueryInput.module.scss (100%) rename {og/webapp/javascript => public/app}/components/QueryInput/QueryInput.spec.tsx (96%) rename {og/webapp/javascript => public/app}/components/QueryInput/QueryInput.tsx (90%) rename {og/webapp/javascript => public/app}/components/RefreshButton.tsx (68%) rename {og/webapp/javascript => public/app}/components/ServerNotifications.tsx (88%) rename {og/webapp/javascript => public/app}/components/Settings/APIKeys/APIKeyAddForm.tsx (88%) rename {og/webapp/javascript => public/app}/components/Settings/APIKeys/APIKeyForm.module.css (100%) rename {og/webapp/javascript => public/app}/components/Settings/APIKeys/index.tsx (87%) rename {og/webapp/javascript => public/app}/components/Settings/Apps/AppTableItem.module.css (100%) rename {og/webapp/javascript => public/app}/components/Settings/Apps/Apps.module.css (100%) rename {og/webapp/javascript => public/app}/components/Settings/Apps/getAppTableRows.tsx (84%) rename {og/webapp/javascript => public/app}/components/Settings/Apps/index.tsx (88%) rename {og/webapp/javascript => public/app}/components/Settings/Preferences/index.tsx (81%) rename {og/webapp/javascript => public/app}/components/Settings/Security/ChangePasswordForm.tsx (87%) rename {og/webapp/javascript => public/app}/components/Settings/Security/index.tsx (72%) rename {og/webapp/javascript => public/app}/components/Settings/Settings.module.css (100%) rename {og/webapp/javascript => public/app}/components/Settings/SettingsTable.module.scss (100%) rename {og/webapp/javascript => public/app}/components/Settings/Users/UserAddForm.tsx (87%) rename {og/webapp/javascript => public/app}/components/Settings/Users/UserTableItem.module.css (100%) rename {og/webapp/javascript => public/app}/components/Settings/Users/Users.module.css (100%) rename {og/webapp/javascript => public/app}/components/Settings/Users/getUserTableRows.tsx (86%) rename {og/webapp/javascript => public/app}/components/Settings/Users/index.tsx (88%) rename {og/webapp/javascript => public/app}/components/Settings/index.tsx (94%) rename {og/webapp/javascript => public/app}/components/SideTimelineComparator/index.tsx (96%) rename {og/webapp/javascript => public/app}/components/SideTimelineComparator/periods.ts (100%) rename {og/webapp/javascript => public/app}/components/SideTimelineComparator/styles.module.scss (100%) rename {og/webapp/javascript => public/app}/components/Sidebar.spec.tsx (89%) rename {og/webapp/javascript => public/app}/components/SidebarCustomIcons.tsx (100%) rename {og/webapp/javascript => public/app}/components/TagsBar.module.scss (100%) rename {og/webapp/javascript => public/app}/components/TagsBar.tsx (92%) rename {og/webapp/javascript => public/app}/components/TimelineChart/AnnotationMark/index.tsx (94%) rename {og/webapp/javascript => public/app}/components/TimelineChart/AnnotationMark/styles.module.scss (84%) rename {og/webapp/javascript => public/app}/components/TimelineChart/Annotations.plugin.tsx (88%) rename public/app/{overrides => }/components/TimelineChart/ContextMenu.plugin.ts (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/CrosshairSync.plugin.ts (88%) rename {og/webapp/javascript => public/app}/components/TimelineChart/ExploreTooltip/index.tsx (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/Selection.plugin.ts (95%) rename {og/webapp/javascript => public/app}/components/TimelineChart/SyncTimelines/SyncTimelines.spec.tsx (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/SyncTimelines/getSelectionBoundaries.ts (90%) rename {og/webapp/javascript => public/app}/components/TimelineChart/SyncTimelines/index.tsx (89%) rename {og/webapp/javascript => public/app}/components/TimelineChart/SyncTimelines/styles.module.scss (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/SyncTimelines/useSync.ts (91%) rename {og/webapp/javascript => public/app}/components/TimelineChart/TimelineChart.tsx (77%) rename {og/webapp/javascript => public/app}/components/TimelineChart/TimelineChartPlugin.ts (98%) rename {og/webapp/javascript => public/app}/components/TimelineChart/TimelineChartWrapper.module.css (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/TimelineChartWrapper.tsx (92%) rename public/app/{overrides => }/components/TimelineChart/Tooltip.plugin.ts (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/TooltipWrapper/index.tsx (93%) rename {og/webapp/javascript => public/app}/components/TimelineChart/TooltipWrapper/styles.module.scss (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/centerTimelineData.ts (93%) rename {og/webapp/javascript => public/app}/components/TimelineChart/clamp.spec.ts (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/clamp.ts (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/extractRange.ts (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/getFormatLabel.spec.ts (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/getFormatLabel.ts (88%) rename {og/webapp/javascript => public/app}/components/TimelineChart/injectTooltip.ts (100%) rename {og/webapp/javascript => public/app}/components/TimelineChart/markings.spec.ts (95%) rename {og/webapp/javascript => public/app}/components/TimelineChart/markings.ts (95%) rename {og/webapp/javascript => public/app}/components/TimelineTooltip.module.css (100%) rename {og/webapp/javascript => public/app}/components/TimelineTooltip.tsx (98%) rename {og/webapp/javascript => public/app}/components/Toolbar.module.css (100%) rename public/app/{overrides => }/components/Toolbar.tsx (78%) rename {og/webapp/javascript => public/app}/components/exportToFlamegraphDotCom.hook.ts (78%) rename {og/webapp/javascript => public/app}/hooks/colorMode.hook.ts (73%) rename {og/webapp/javascript => public/app}/hooks/flamegraphSharedQuery.hook.ts (100%) rename {og/webapp/javascript => public/app}/hooks/navigateUserIntroPages.hook.ts (75%) rename {og/webapp/javascript => public/app}/hooks/populateLeftRightQuery.hook.ts (81%) rename {og/webapp/javascript => public/app}/hooks/tags.hook.ts (75%) rename {og/webapp/javascript => public/app}/hooks/timeZone.hook.ts (89%) rename {og/webapp/javascript => public/app}/hooks/timeline.hook.ts (85%) rename {og/webapp => public/app}/images/comment.svg (100%) rename {og/webapp => public/app}/images/favicon.ico (100%) rename {og/webapp => public/app}/images/logo-v3-small.png (100%) rename {og/webapp => public/app}/images/logo-v3-small.svg (100%) rename {og/webapp/javascript/types => public/app/lib}/flot.d.ts (100%) create mode 100644 public/app/lib/global.d.ts create mode 100644 public/app/lib/globals.tsx create mode 100644 public/app/lib/types.d.ts rename {og/webapp/javascript => public/app}/models/adhoc.ts (100%) rename {og/webapp/javascript => public/app}/models/annotation.ts (100%) rename {og/webapp/javascript => public/app}/models/apikeys.ts (100%) rename public/app/{overrides => }/models/app.spec.ts (93%) rename public/app/{overrides => }/models/app.ts (87%) rename {og/webapp/javascript => public/app}/models/appNames.ts (100%) rename {og/webapp/javascript => public/app}/models/flamebearer.ts (97%) rename {og/webapp/javascript => public/app}/models/flamegraphDotComResponse.ts (90%) rename public/app/{overrides => }/models/query.spec.ts (95%) rename public/app/{overrides => }/models/query.ts (53%) rename {og/webapp/javascript => public/app}/models/tags.ts (100%) rename {og/webapp/javascript => public/app}/models/targets.ts (100%) rename {og/webapp/javascript => public/app}/models/timeline.ts (100%) rename {og/webapp/javascript => public/app}/models/users.ts (96%) rename {og/webapp/javascript => public/app}/models/utils.spec.ts (85%) rename {og/webapp/javascript => public/app}/models/utils.ts (91%) delete mode 100644 public/app/overrides/services/base.ts delete mode 100644 public/app/overrides/services/render.ts delete mode 100644 public/app/overrides/ui/Sidebar.tsx rename {og/webapp/javascript => public/app}/pages/ContinuousComparison.module.css (100%) rename {og/webapp/javascript => public/app}/pages/ContinuousComparisonView.tsx (91%) rename {og/webapp/javascript => public/app}/pages/ContinuousDiffView.tsx (88%) rename {og/webapp/javascript => public/app}/pages/ContinuousSingleView.tsx (82%) rename {og/webapp/javascript => public/app}/pages/IntroPages/Divider/Divider.module.css (100%) rename {og/webapp/javascript => public/app}/pages/IntroPages/Divider/index.tsx (100%) rename {og/webapp/javascript => public/app}/pages/IntroPages/Forbidden/index.tsx (89%) rename {og/webapp/javascript => public/app}/pages/IntroPages/Icons.tsx (100%) rename {og/webapp/javascript => public/app}/pages/IntroPages/InputGroup.module.css (100%) rename {og/webapp/javascript => public/app}/pages/IntroPages/IntroPages.module.css (100%) rename {og/webapp/javascript => public/app}/pages/IntroPages/NotFound/index.tsx (89%) rename {og/webapp/javascript => public/app}/pages/IntroPages/SignIn/buttons.module.css (100%) rename {og/webapp/javascript => public/app}/pages/IntroPages/SignIn/index.tsx (93%) rename {og/webapp/javascript => public/app}/pages/IntroPages/SignUp/index.tsx (90%) rename {og/webapp/javascript => public/app}/pages/ServiceDiscovery.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/ServiceDiscovery.tsx (96%) rename {og/webapp/javascript => public/app}/pages/TagExplorerView.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/TagExplorerView.tsx (93%) rename {og/webapp/javascript => public/app}/pages/TracingSingleView.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/TracingSingleView.tsx (85%) rename {og/webapp/javascript => public/app}/pages/adhoc/Adhoc.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/adhoc/AdhocComparison.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/adhoc/AdhocComparison.tsx (91%) rename {og/webapp/javascript => public/app}/pages/adhoc/AdhocDiff.tsx (85%) rename {og/webapp/javascript => public/app}/pages/adhoc/AdhocSingle.tsx (85%) rename {og/webapp/javascript => public/app}/pages/adhoc/components/FileUploader.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/adhoc/components/FileUploader.tsx (93%) rename {og/webapp/javascript => public/app}/pages/adhoc/components/UploadIcon.tsx (100%) rename {og/webapp/javascript => public/app}/pages/adhoc/components/humanize.ts (100%) rename {og/webapp/javascript => public/app}/pages/constants.ts (100%) rename {og/webapp/javascript => public/app}/pages/continuous/contextMenu/AddAnnotation.menuitem.module.css (100%) rename {og/webapp/javascript => public/app}/pages/continuous/contextMenu/AddAnnotation.menuitem.tsx (89%) rename {og/webapp/javascript => public/app}/pages/continuous/contextMenu/AnnotationInfo.tsx (87%) rename {og/webapp/javascript => public/app}/pages/continuous/contextMenu/ContextMenu.tsx (79%) rename {og/webapp/javascript => public/app}/pages/continuous/contextMenu/useAnnotationForm.ts (93%) rename {og/webapp/javascript => public/app}/pages/exemplars/ExemplarsSingleView.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/exemplars/ExemplarsSingleView.tsx (85%) rename {og/webapp/javascript => public/app}/pages/exemplars/HeatmapIcons.tsx (100%) rename {og/webapp/javascript => public/app}/pages/exemplars/filterNonCPU.ts (100%) rename {og/webapp/javascript => public/app}/pages/exemplars/filterNonCpu.spec.ts (100%) rename {og/webapp/javascript => public/app}/pages/exemplars/heatmapSelectionPreview.gif (100%) rename {og/webapp/javascript => public/app}/pages/formatTableData.spec.ts (100%) rename {og/webapp/javascript => public/app}/pages/formatTableData.ts (100%) rename {og/webapp/javascript => public/app}/pages/formatTitle.spec.ts (94%) rename {og/webapp/javascript => public/app}/pages/formatTitle.ts (95%) rename {og/webapp/javascript => public/app}/pages/loading.ts (100%) rename {og/webapp/javascript => public/app}/pages/math.spec.ts (100%) rename {og/webapp/javascript => public/app}/pages/math.ts (100%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/Legend.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/Legend.spec.tsx (96%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/Legend.tsx (90%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TagsSelector.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TagsSelector.spec.tsx (85%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TagsSelector.tsx (91%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TotalSamplesChart/PieChart/Interactivity.plugin.tsx (68%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TotalSamplesChart/PieChart/index.tsx (90%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TotalSamplesChart/PieChart/styles.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/index.tsx (100%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/styles.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TotalSamplesChart/index.module.scss (100%) rename {og/webapp/javascript => public/app}/pages/tagExplorer/components/TotalSamplesChart/index.tsx (93%) rename {og/webapp/javascript => public/app}/redux/async-thunk.ts (100%) rename {og/webapp/javascript => public/app}/redux/reducers/adhoc.ts (96%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/annotations.thunks.ts (91%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/comparisonView.thunks.ts (94%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/diffView.thunks.ts (91%) rename og/webapp/javascript/redux/reducers/continuous.ts => public/app/redux/reducers/continuous/index.ts (86%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/selectors.ts (96%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/singleView.thunks.ts (89%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/state.ts (95%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/tagExplorer.thunks.ts (95%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/tags.thunks.ts (94%) rename {og/webapp/javascript => public/app}/redux/reducers/continuous/timelines.thunks.ts (94%) rename {og/webapp/javascript => public/app}/redux/reducers/notifications.ts (84%) rename {og/webapp/javascript => public/app}/redux/reducers/serviceDiscovery.ts (92%) rename {og/webapp/javascript => public/app}/redux/reducers/settings.ts (96%) rename {og/webapp/javascript => public/app}/redux/reducers/tracing.ts (94%) rename {og/webapp/javascript => public/app}/redux/reducers/ui.ts (98%) rename {og/webapp/javascript => public/app}/redux/reducers/user.ts (93%) rename {og/webapp => public/app}/sass/common.scss (100%) rename {og/webapp => public/app}/sass/components/button.scss (100%) rename {og/webapp => public/app}/sass/components/daterangepicker.scss (100%) rename {og/webapp => public/app}/sass/components/labels.scss (100%) rename {og/webapp => public/app}/sass/components/tagsbar.scss (100%) rename {og/webapp => public/app}/sass/login.scss (100%) rename {og/webapp => public/app}/sass/mixins/outline.scss (100%) rename {og/webapp => public/app}/sass/prism.scss (100%) rename {og/webapp => public/app}/sass/profile.scss (100%) rename {og/webapp => public/app}/sass/reset.scss (100%) rename {og/webapp => public/app}/sass/sanitize.css/CHANGELOG.md (100%) rename {og/webapp => public/app}/sass/sanitize.css/LICENSE.md (100%) rename {og/webapp => public/app}/sass/sanitize.css/README.md (100%) rename {og/webapp => public/app}/sass/sanitize.css/forms.css (100%) rename {og/webapp => public/app}/sass/sanitize.css/package.json (100%) rename {og/webapp => public/app}/sass/sanitize.css/page.css (100%) rename {og/webapp => public/app}/sass/sanitize.css/sanitize.css (100%) rename {og/webapp => public/app}/sass/sanitize.css/typography.css (100%) rename {og/webapp => public/app}/sass/standalone.scss (100%) rename {og/webapp => public/app}/sass/variables.css (100%) rename {og/webapp => public/app}/sass/variables.scss (100%) rename {og/webapp/javascript => public/app}/services/TestData.ts (100%) rename {og/webapp/javascript => public/app}/services/adhoc.ts (96%) rename {og/webapp/javascript => public/app}/services/annotations.ts (83%) rename {og/webapp/javascript => public/app}/services/apiKeys.ts (93%) rename public/app/{overrides => }/services/apps.spec.ts (98%) rename public/app/{overrides => }/services/apps.ts (75%) rename public/app/{overrides => }/services/base.spec.ts (77%) create mode 100644 public/app/services/base.ts rename {og/webapp/javascript => public/app}/services/exemplarsTestData.ts (100%) rename {og/webapp/javascript => public/app}/services/render.ts (77%) rename {og/webapp/javascript => public/app}/services/serviceDiscovery.ts (61%) rename {og/webapp/javascript => public/app}/services/share.spec.ts (96%) rename {og/webapp/javascript => public/app}/services/share.ts (85%) create mode 100644 public/app/services/storage.ts rename public/app/{overrides => }/services/tags.spec.ts (94%) rename public/app/{overrides => }/services/tags.ts (90%) rename {og/webapp/javascript => public/app}/services/testUtils.ts (100%) rename {og/webapp/javascript => public/app}/services/testdata/example.html (100%) rename {og/webapp/javascript => public/app}/services/tsconfig.json (100%) rename {og/webapp/javascript => public/app}/services/users.ts (97%) rename {og => public/app}/stories/Box.stories.tsx (86%) rename {og => public/app}/stories/Button.stories.tsx (93%) rename {og => public/app}/stories/Dialog.stories.tsx (94%) rename {og => public/app}/stories/Dropdown.stories.tsx (93%) rename {og => public/app}/stories/Flamegraph.stories.tsx (95%) rename {og => public/app}/stories/Form.stories.tsx (87%) rename {og => public/app}/stories/Icon.stories.tsx (83%) rename {og => public/app}/stories/InputField.stories.tsx (89%) rename {og => public/app}/stories/LoadingSpinner.stories.tsx (68%) rename {og => public/app}/stories/ModalWithToggle.stories.tsx (92%) rename {og => public/app}/stories/Modals.stories.tsx (85%) rename {og => public/app}/stories/NoData.stories.tsx (77%) rename {og => public/app}/stories/Notifications.stories.tsx (90%) rename {og => public/app}/stories/Sidebar.stories.tsx (94%) rename {og => public/app}/stories/StatusMessage.stories.tsx (85%) rename {og => public/app}/stories/Table.stories.tsx (77%) rename {og => public/app}/stories/Tabs.stories.tsx (86%) rename {og => public/app}/stories/Tooltip.stories.tsx (75%) create mode 100644 public/app/types/alias.d.ts rename {og/webapp/javascript => public/app}/types/custom.d.ts (100%) rename public/app/{ => types}/types.d.ts (100%) rename {og/webapp/javascript => public/app}/ui/Box.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Box.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Button.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Button.tsx (97%) rename {og/webapp/javascript => public/app}/ui/Dialog/Dialog.module.css (100%) rename {og/webapp/javascript => public/app}/ui/Dialog/Dialog.tsx (87%) rename {og/webapp/javascript => public/app}/ui/Dialog/index.ts (100%) rename {og/webapp/javascript => public/app}/ui/Dropdown.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Dropdown.tsx (96%) rename {og/webapp/javascript => public/app}/ui/Form/TextField/index.module.scss (91%) rename {og/webapp/javascript => public/app}/ui/Form/TextField/index.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Form/ValidationError/index.module.css (100%) rename {og/webapp/javascript => public/app}/ui/Form/ValidationError/index.tsx (75%) rename {og/webapp/javascript => public/app}/ui/Icon.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Input.module.scss (86%) rename {og/webapp/javascript => public/app}/ui/Input.tsx (97%) rename {og/webapp/javascript => public/app}/ui/InputField/InputField.module.css (100%) rename {og/webapp/javascript => public/app}/ui/InputField/index.tsx (89%) rename {og/webapp/javascript => public/app}/ui/LoadingOverlay.module.css (100%) rename {og/webapp/javascript => public/app}/ui/LoadingOverlay.tsx (94%) rename {og/webapp/javascript => public/app}/ui/LoadingSpinner.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Menu.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Modals/Modal.module.css (100%) rename {og/webapp/javascript => public/app}/ui/Modals/ModalWithToggle.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Modals/ModalWithToggle.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Modals/ModalWithToggler.spec.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Modals/index.ts (100%) rename {og/webapp/javascript => public/app}/ui/NoData/NoData.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/NoData/NoData.spec.tsx (100%) rename {og/webapp/javascript => public/app}/ui/NoData/index.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Notifications.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Notifications.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Popover.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Popover.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Portal.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Select.module.scss (90%) rename {og/webapp/javascript => public/app}/ui/Select.tsx (75%) rename {og/webapp/javascript => public/app}/ui/Sidebar.scss (100%) rename {og/webapp/javascript => public/app}/ui/Sidebar.tsx (95%) rename {og/webapp/javascript => public/app}/ui/StatusMessage/StatusMessage.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/StatusMessage/index.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Table.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Table.spec.tsx (96%) rename {og/webapp/javascript => public/app}/ui/Table.tsx (97%) rename {og/webapp/javascript => public/app}/ui/Tabs.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Tabs.spec.tsx (86%) rename {og/webapp/javascript => public/app}/ui/Tabs.tsx (100%) rename {og/webapp/javascript => public/app}/ui/Tooltip.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/Tooltip.tsx (82%) rename {og/webapp/javascript => public/app}/ui/TooltipInfoIcon.module.scss (100%) rename {og/webapp/javascript => public/app}/ui/TooltipInfoIcon.tsx (93%) rename public/app/{overrides => }/util/baseurl.spec.ts (96%) rename public/app/{overrides => }/util/baseurl.ts (100%) rename {og/webapp/javascript => public/app}/util/buildInfo.ts (94%) rename {og/webapp/javascript => public/app}/util/features.ts (100%) rename {og/webapp/javascript => public/app}/util/flamebearer.ts (100%) rename {og/webapp/javascript => public/app}/util/formatDate.spec.ts (97%) rename {og/webapp/javascript => public/app}/util/formatDate.ts (100%) rename {og/webapp/javascript => public/app}/util/fp.ts (100%) rename {og/webapp/javascript => public/app}/util/handleError.ts (79%) rename {og/webapp/javascript => public/app}/util/prism.ts (100%) rename {og/webapp/javascript => public/app}/util/query.ts (100%) rename {og/webapp/javascript => public/app}/util/randomId.spec.ts (100%) rename {og/webapp/javascript => public/app}/util/randomId.ts (100%) rename {og/webapp/javascript => public/app}/util/testData.ts (100%) rename {og/webapp/javascript => public/app}/util/timerange.ts (100%) rename {og/webapp/javascript => public/app}/util/updateRequests.ts (100%) rename og/setupAfterEnv.ts => setupAfterEnv.ts (89%) rename og/svg-transform.js => svg-transform.js (100%) delete mode 100644 testSetupFile.js create mode 100644 tsconfig.test.json diff --git a/.eslintignore b/.eslintignore index 3c27edf100..575f9713e3 100644 --- a/.eslintignore +++ b/.eslintignore @@ -9,3 +9,11 @@ cypress.config.ts testSetupFile.js og/** examples/** +public/app/util/** +public/app/stories/** +**.spec.ts* +svg-transform.js +setupAfterEnv.ts +globalSetup.js +globalTeardown.js +jest-css-modules-transform-config.js diff --git a/.eslintrc.js b/.eslintrc.js index f8b963cd32..6cc3798824 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,4 +1,5 @@ module.exports = { + plugins: ['@typescript-eslint', 'css-modules'], extends: [ '@grafana/eslint-config', 'plugin:import/recommended', @@ -9,6 +10,10 @@ module.exports = { 'react/react-in-jsx-scope': 'error', 'react-hooks/exhaustive-deps': 'error', 'no-duplicate-imports': 'off', + '@typescript-eslint/naming-convention': [ + 'warn', + { selector: 'function', format: ['PascalCase', 'camelCase'] }, + ], '@typescript-eslint/no-duplicate-imports': 'error', '@typescript-eslint/no-unused-vars': 'off', 'unused-imports/no-unused-imports': 'error', @@ -26,14 +31,16 @@ module.exports = { 'error', { patterns: [ - { - group: ['../*', './*'], - message: - 'Usage of relative parent imports is not allowed. Please use absolute(use alias) imports instead.', - }, + // Dialing back this restriction for now + // { + // group: ['../*', './*'], + // message: + // 'Usage of relative parent imports is not allowed. Please use absolute(use alias) imports instead.', + // }, ], }, ], + 'react/prop-types': ['off'], }, env: { browser: true, diff --git a/.swcrc b/.swcrc new file mode 100644 index 0000000000..823405229d --- /dev/null +++ b/.swcrc @@ -0,0 +1,12 @@ +{ + "jsc": { + "parser": { + "syntax": "typescript", + "decorators": true + }, + "transform": { + "legacyDecorator": true, + "decoratorMetadata": true + } + } +} diff --git a/og/globalSetup.js b/globalSetup.js similarity index 100% rename from og/globalSetup.js rename to globalSetup.js diff --git a/og/globalTeardown.js b/globalTeardown.js similarity index 100% rename from og/globalTeardown.js rename to globalTeardown.js diff --git a/og/jest-css-modules-transform-config.js b/jest-css-modules-transform-config.js similarity index 100% rename from og/jest-css-modules-transform-config.js rename to jest-css-modules-transform-config.js diff --git a/jest.config.js b/jest.config.js index ba0ae636ba..8b1a1e4c3e 100644 --- a/jest.config.js +++ b/jest.config.js @@ -7,16 +7,16 @@ module.exports = { testEnvironment: 'jsdom', testMatch: ['**/?(*.)+(spec|test).+(ts|tsx|js)'], transform: { - '^.+\\.(t|j)sx?$': ['@swc/jest'], '\\.module\\.(css|scss)$': 'jest-css-modules-transform', '\\.(css|scss)$': 'jest-css-modules-transform', + '\\.svg$': path.join(__dirname, 'svg-transform.js'), + '^.+\\.(t|j)sx?$': ['@swc/jest'], }, - setupFilesAfterEnv: ['/testSetupFile.js'], transformIgnorePatterns: [ // force us to transpile these dependencies // https://stackoverflow.com/a/69150188 - 'node_modules/(?!(true-myth|d3|d3-array|internmap|d3-scale|react-notifications-component|graphviz-react|pyroscope-oss))', + 'node_modules/(?!(true-myth|d3|d3-array|internmap|d3-scale|react-notifications-component|graphviz-react|@react-hook))', ], testPathIgnorePatterns: ['/node_modules/', '/og/'], @@ -24,5 +24,10 @@ module.exports = { // Reuse the same modules from typescript moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '', + '@phlare/(.*)$': path.join(__dirname, 'public/app/$1'), }), + + globalSetup: '/globalSetup.js', + globalTeardown: '/globalTeardown.js', + setupFilesAfterEnv: [path.join(__dirname, 'setupAfterEnv.ts')], }; diff --git a/og/jest.config.js b/og/jest.config.js index 782be72678..720271fdff 100644 --- a/og/jest.config.js +++ b/og/jest.config.js @@ -20,7 +20,7 @@ module.exports = { transformIgnorePatterns: [ // force us to not transpile these dependencies // https://stackoverflow.com/a/69150188 - 'node_modules/(?!(true-myth|d3|d3-array|internmap|d3-scale|react-notifications-component|graphviz-react))', + 'node_modules/(?!(true-myth|d3|d3-array|internmap|d3-scale|react-notifications-component|graphviz-react|@react-hook))', ], globalSetup: '/globalSetup.js', globalTeardown: '/globalTeardown.js', diff --git a/og/package.json b/og/package.json index c9bc2e3547..140e12aee2 100644 --- a/og/package.json +++ b/og/package.json @@ -272,9 +272,5 @@ "d3-graphviz": "5.0.2", "d3-selection": "3.0.0", "semver": "^7.5.2" - }, - "workspaces": [ - "packages/*", - "webapp" - ] + } } diff --git a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.spec.tsx b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.spec.tsx index 1238b47ccb..6f940a71bd 100644 --- a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.spec.tsx +++ b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.spec.tsx @@ -1,7 +1,7 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; import { render, screen } from '@testing-library/react'; -import { MenuItem } from '@webapp/ui/Menu'; +import { MenuItem } from '@phlare/ui/Menu'; import userEvent from '@testing-library/user-event'; import ContextMenu, { ContextMenuProps } from './ContextMenu'; diff --git a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.tsx b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.tsx index 10c37257c8..5dec32cc4d 100644 --- a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.tsx +++ b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/ContextMenu.tsx @@ -1,6 +1,6 @@ /* eslint-disable react/jsx-props-no-spreading, import/no-extraneous-dependencies */ import React from 'react'; -import { ControlledMenu, useMenuState } from '@webapp/ui/Menu'; +import { ControlledMenu, useMenuState } from '@phlare/ui/Menu'; import styles from './ContextMenu.module.scss'; type xyToMenuItems = (x: number, y: number) => JSX.Element[]; diff --git a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.tsx b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.tsx index ab39d94f60..6454b83415 100644 --- a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.tsx +++ b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/DiffLegendPaletteDropdown.tsx @@ -10,9 +10,9 @@ import DiffLegend from './DiffLegend'; import CheckIcon from './CheckIcon'; // Until we migrate ui to its own package this should do it // eslint-disable-next-line -import Dropdown, { MenuItem, MenuButton } from '@webapp/ui/Dropdown'; +import Dropdown, { MenuItem, MenuButton } from '@phlare/ui/Dropdown'; // eslint-disable-next-line -import dropdownStyles from '@webapp/ui/Dropdown.module.scss'; +import dropdownStyles from '@phlare/ui/Dropdown.module.scss'; import styles from './DiffLegendPaletteDropdown.module.css'; diff --git a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/index.tsx b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/index.tsx index 171d9fabef..c5b37a3927 100644 --- a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/index.tsx +++ b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphComponent/index.tsx @@ -6,7 +6,7 @@ import { faRedo } from '@fortawesome/free-solid-svg-icons/faRedo'; import { faCopy } from '@fortawesome/free-solid-svg-icons/faCopy'; import { faHighlighter } from '@fortawesome/free-solid-svg-icons/faHighlighter'; import { faCompressAlt } from '@fortawesome/free-solid-svg-icons/faCompressAlt'; -import { MenuItem } from '@webapp/ui/Menu'; +import { MenuItem } from '@phlare/ui/Menu'; import useResizeObserver from '@react-hook/resize-observer'; import { Maybe } from 'true-myth'; import debounce from 'lodash.debounce'; diff --git a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphRenderer.tsx b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphRenderer.tsx index b74c65485b..448640dda9 100644 --- a/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphRenderer.tsx +++ b/og/packages/pyroscope-flamegraph/src/FlameGraph/FlameGraphRenderer.tsx @@ -10,7 +10,7 @@ import React, { Dispatch, SetStateAction, ReactNode, Component } from 'react'; import clsx from 'clsx'; import { Maybe } from 'true-myth'; import { createFF, Flamebearer, Profile } from '@pyroscope/models/src'; -import NoData from '@pyroscope/webapp/javascript/ui/NoData'; +import NoData from '@phlare/ui/NoData'; import Graph from './FlameGraphComponent'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment diff --git a/og/packages/pyroscope-flamegraph/src/ProfilerTable.tsx b/og/packages/pyroscope-flamegraph/src/ProfilerTable.tsx index ebe8a3fae3..1efb655e24 100644 --- a/og/packages/pyroscope-flamegraph/src/ProfilerTable.tsx +++ b/og/packages/pyroscope-flamegraph/src/ProfilerTable.tsx @@ -9,7 +9,7 @@ import TableUI, { useTableSort, BodyRow, TableBodyType, -} from '@webapp/ui/Table'; +} from '@phlare/ui/Table'; import TableTooltip from './Tooltip/TableTooltip'; import { getFormatter, ratioToPercent, diffPercent } from './format/format'; import { diff --git a/og/packages/pyroscope-flamegraph/src/SharedQueryInput.tsx b/og/packages/pyroscope-flamegraph/src/SharedQueryInput.tsx index 33353992e8..544ed103f3 100644 --- a/og/packages/pyroscope-flamegraph/src/SharedQueryInput.tsx +++ b/og/packages/pyroscope-flamegraph/src/SharedQueryInput.tsx @@ -2,8 +2,8 @@ import React, { useEffect, useMemo, ChangeEvent, useRef } from 'react'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faLink } from '@fortawesome/free-solid-svg-icons/faLink'; -import Input from '@pyroscope/webapp/javascript/ui/Input'; -import { Tooltip } from '@pyroscope/webapp/javascript/ui/Tooltip'; +import Input from '@phlare/ui/Input'; +import { Tooltip } from '@phlare/ui/Tooltip'; import styles from './SharedQueryInput.module.scss'; import type { ProfileHeaderProps } from './Toolbar'; diff --git a/og/packages/pyroscope-flamegraph/src/Toolbar.tsx b/og/packages/pyroscope-flamegraph/src/Toolbar.tsx index af956a1ad1..a08de9def4 100644 --- a/og/packages/pyroscope-flamegraph/src/Toolbar.tsx +++ b/og/packages/pyroscope-flamegraph/src/Toolbar.tsx @@ -17,9 +17,9 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import useResizeObserver from '@react-hook/resize-observer'; // until ui is moved to its own package this should do it // eslint-disable-next-line import/no-extraneous-dependencies -import Button from '@webapp/ui/Button'; +import Button from '@phlare/ui/Button'; // eslint-disable-next-line import/no-extraneous-dependencies -import { Tooltip } from '@pyroscope/webapp/javascript/ui/Tooltip'; +import { Tooltip } from '@phlare/ui/Tooltip'; import { FitModes } from './fitMode/fitMode'; import SharedQueryInput from './SharedQueryInput'; import type { ViewTypes } from './FlameGraph/FlameGraphComponent/viewTypes'; diff --git a/og/packages/pyroscope-flamegraph/src/format/format.ts b/og/packages/pyroscope-flamegraph/src/format/format.ts index 5257cfac3a..f7d556ae35 100644 --- a/og/packages/pyroscope-flamegraph/src/format/format.ts +++ b/og/packages/pyroscope-flamegraph/src/format/format.ts @@ -53,7 +53,7 @@ export class DurationFormatter { suffix = 'second'; - durations: [number, string][] = [ + durations: Array<[number, string]> = [ [60, 'minute'], [60, 'hour'], [24, 'day'], @@ -139,7 +139,7 @@ export class NanosecondsFormatter { suffix = 'second'; - durations: [number, string][] = [ + durations: Array<[number, string]> = [ [60, 'minute'], [60, 'hour'], [24, 'day'], @@ -193,7 +193,7 @@ export class ObjectsFormatter { suffix = ''; - objects: [number, string][] = [ + objects: Array<[number, string]> = [ [1000, 'K'], [1000, 'M'], [1000, 'G'], @@ -247,7 +247,7 @@ export class BytesFormatter { suffix = 'bytes'; - bytes: [number, string][] = [ + bytes: Array<[number, string]> = [ [1024, 'KB'], [1024, 'MB'], [1024, 'GB'], diff --git a/og/packages/pyroscope-flamegraph/src/index.node.ts b/og/packages/pyroscope-flamegraph/src/index.node.ts index 8ab17a9ddd..ecc6bcbb68 100644 --- a/og/packages/pyroscope-flamegraph/src/index.node.ts +++ b/og/packages/pyroscope-flamegraph/src/index.node.ts @@ -1,6 +1,6 @@ /* eslint-disable import/prefer-default-export */ // eslint-disable-next-line import/no-extraneous-dependencies -import Box from '@webapp/ui/Box'; +import Box from '@phlare/ui/Box'; import Flamegraph from './FlameGraph/FlameGraphComponent/Flamegraph'; import { DefaultPalette } from './FlameGraph/FlameGraphComponent/colorPalette'; import { FlamegraphRenderer } from './FlamegraphRenderer'; diff --git a/og/packages/pyroscope-flamegraph/src/index.tsx b/og/packages/pyroscope-flamegraph/src/index.tsx index 2c7c2e450b..033d9a7e8a 100644 --- a/og/packages/pyroscope-flamegraph/src/index.tsx +++ b/og/packages/pyroscope-flamegraph/src/index.tsx @@ -1,5 +1,5 @@ // eslint-disable-next-line import/no-extraneous-dependencies -import Box from '@webapp/ui/Box'; +import Box from '@phlare/ui/Box'; import Flamegraph from './FlameGraph/FlameGraphComponent/Flamegraph'; import { FlamegraphRenderer } from './FlamegraphRenderer'; import { DefaultPalette } from './FlameGraph/FlameGraphComponent/colorPalette'; diff --git a/og/packages/pyroscope-flamegraph/src/sass/flamegraph.scss b/og/packages/pyroscope-flamegraph/src/sass/flamegraph.scss index 53a66253a2..c2f021a3ae 100644 --- a/og/packages/pyroscope-flamegraph/src/sass/flamegraph.scss +++ b/og/packages/pyroscope-flamegraph/src/sass/flamegraph.scss @@ -1,11 +1,12 @@ -@import '../../../../webapp/sass/variables.css'; +@import '../../../../../public/app/sass/variables.css'; + // Scope all css rules, specially the global ones // It's important to use a html element (as opposed to a class) // So that classes generated by CSS modules still have higher specificity // And therefore overwrite these global rules (specially the reset ones) pyro-flamegraph { - @import '../../../../webapp/sass/common'; - @import '../../../../webapp/sass/reset.scss'; + @import '../../../../../public/app/sass/common'; + @import '../../../../../public/app/sass/reset.scss'; color: var(--ps-neutral-2); -webkit-font-smoothing: antialiased; diff --git a/og/tsconfig.json b/og/tsconfig.json index db6e139c28..88375084e5 100644 --- a/og/tsconfig.json +++ b/og/tsconfig.json @@ -10,8 +10,7 @@ "allowSyntheticDefaultImports": true, "skipLibCheck": true, "paths": { - "@webapp/*": ["./webapp/javascript/*"], - "@ui/*": ["./webapp/javascript/ui/*"] + "@phlare/*": ["../public/app/*"], }, "types": ["node"], "plugins": [{ "name": "typescript-plugin-css-modules" }], diff --git a/og/webapp/README.md b/og/webapp/README.md index e0b8f4e26d..f2b5eabc5c 100644 --- a/og/webapp/README.md +++ b/og/webapp/README.md @@ -30,7 +30,7 @@ Linting, testing etc is assumed to be ran in a different CI step. # Using alias imports Alias imports allow importing as if it was an external package, for example: ```javascript -import Button from '@ui/Button'; +import Button from '@phlare/ui/Button'; ``` To be able to do that, you need to add the alias to the following files: diff --git a/og/webapp/javascript/components/AppSelector/AppSelector.spec.tsx b/og/webapp/javascript/components/AppSelector/AppSelector.spec.tsx deleted file mode 100644 index 3f341e4a3c..0000000000 --- a/og/webapp/javascript/components/AppSelector/AppSelector.spec.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import React from 'react'; -import { App } from '@webapp/models/app'; -import { render, screen, fireEvent, waitFor } from '@testing-library/react'; -import AppSelector from '.'; -import { MENU_ITEM_ROLE } from './SelectButton'; - -jest.mock('@webapp/services/apps'); - -const { getByTestId, queryByRole } = screen; -const mockApps: App[] = [ - { name: 'single', units: 'unknown', spyName: 'unknown' }, - { name: 'double.cpu', units: 'unknown', spyName: 'unknown' }, - { name: 'double.space', units: 'unknown', spyName: 'unknown' }, - { name: 'triple.app.cpu', units: 'unknown', spyName: 'unknown' }, - { name: 'triple.app.objects', units: 'unknown', spyName: 'unknown' }, -]; - -describe('AppSelector', () => { - it('gets the list of apps, iterracts with it', async () => { - const onSelected = jest.fn(); - - render( - - ); - - getByTestId('toggler').click(); - - // checks that there are 3 groups - expect(queryByRole(MENU_ITEM_ROLE, { name: 'single' })).toBeInTheDocument(); - expect(queryByRole(MENU_ITEM_ROLE, { name: 'double' })).toBeInTheDocument(); - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'triple.app' }) - ).toBeInTheDocument(); - - fireEvent.click(screen.getByRole(MENU_ITEM_ROLE, { name: 'single' })); - expect(onSelected).toHaveBeenCalledWith('single'); - - getByTestId('toggler').click(); - - // checks if 'triple' group expands 2 profile types - fireEvent.click(screen.getByRole(MENU_ITEM_ROLE, { name: 'triple.app' })); - await waitFor(() => { - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'triple.app.cpu' }) - ).toBeInTheDocument(); - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'triple.app.objects' }) - ).toBeInTheDocument(); - }); - // checks if 'double' group expands 2 profile types - fireEvent.click(screen.getByRole(MENU_ITEM_ROLE, { name: 'double' })); - await waitFor(() => { - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'double.space' }) - ).toBeInTheDocument(); - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'double.cpu' }) - ).toBeInTheDocument(); - }); - }); -}); - -describe('AppSelector', () => { - it('filters apps by query input', async () => { - const onSelected = jest.fn(); - - render( - - ); - - getByTestId('toggler').click(); - - const input = screen.getByTestId('application-search'); - fireEvent.change(input, { target: { value: 'triple.app' } }); - - // picks groups, which either should be rendered or not - await waitFor(() => { - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'single' }) - ).not.toBeInTheDocument(); - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'double' }) - ).not.toBeInTheDocument(); - expect( - queryByRole(MENU_ITEM_ROLE, { name: 'triple.app' }) - ).toBeInTheDocument(); - }); - }); -}); diff --git a/og/webapp/javascript/components/AppSelector/Label.tsx b/og/webapp/javascript/components/AppSelector/Label.tsx deleted file mode 100644 index bacdb82f37..0000000000 --- a/og/webapp/javascript/components/AppSelector/Label.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; - -export function Label() { - return <>Application: ; -} - -export const LabelString = 'Select Application'; diff --git a/og/webapp/javascript/components/AppSelector/SelectButton.tsx b/og/webapp/javascript/components/AppSelector/SelectButton.tsx deleted file mode 100644 index c0c259704b..0000000000 --- a/og/webapp/javascript/components/AppSelector/SelectButton.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import React from 'react'; -import { faFolder } from '@fortawesome/free-solid-svg-icons/faFolder'; -import { faFolderOpen } from '@fortawesome/free-solid-svg-icons/faFolderOpen'; -import { faAngleRight } from '@fortawesome/free-solid-svg-icons/faAngleRight'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import classNames from 'classnames/bind'; -// eslint-disable-next-line css-modules/no-unused-class -import styles from './SelectButton.module.scss'; - -const cx = classNames.bind(styles); - -export const MENU_ITEM_ROLE = 'menuitem'; - -interface SelectButtonProps { - name: string; - fullList: string[]; - isSelected: boolean; - onClick: () => void; -} - -function Logo({ className }: { className: string }) { - return ( - - - - - - - - - ); -} - -const Icon = ({ - isFolder, - isSelected, -}: { - isFolder: boolean; - isSelected: boolean; -}) => { - if (isFolder) { - return ( - - ); - } - return ; -}; - -const SelectButton = ({ - name, - fullList, - isSelected, - onClick, -}: SelectButtonProps) => { - const isFolder = fullList.indexOf(name) === -1; - - return ( - - ); -}; - -export default SelectButton; diff --git a/og/webapp/javascript/components/AppSelector/index.tsx b/og/webapp/javascript/components/AppSelector/index.tsx deleted file mode 100644 index 3fee18f6ff..0000000000 --- a/og/webapp/javascript/components/AppSelector/index.tsx +++ /dev/null @@ -1,212 +0,0 @@ -import React, { useState, useEffect, useMemo } from 'react'; -import ModalWithToggle from '@webapp/ui/Modals/ModalWithToggle'; -import Input from '@webapp/ui/Input'; -import { App } from '@webapp/models/app'; -import SelectButton from '@webapp/components/AppSelector/SelectButton'; -import { Label, LabelString } from '@webapp/components/AppSelector/Label'; -import styles from './AppSelector.module.scss'; - -interface AppSelectorProps { - /** Triggered when an app is selected */ - onSelected: (name: string) => void; - - /** List of all applications */ - apps: Pick[]; - - selectedAppName: string; -} - -const AppSelector = ({ - onSelected, - selectedAppName, - apps, -}: AppSelectorProps) => { - const selectAppName = (name: string) => { - onSelected(name); - }; - - const appNames = apps.map((a) => a.name); - - return ( -
-
- ); -}; - -export default AppSelector; - -const DELIMITER = '.'; -const isGroupMember = (groupName: string, name: string) => - name.indexOf(groupName) === 0 && - (name[groupName.length] === DELIMITER || name.length === groupName.length); - -const getGroupMembers = (names: string[], name: string) => - names.filter((a) => isGroupMember(name, a)); - -const getGroupNameFromAppName = (groups: string[], fullName: string) => - groups.filter((g) => isGroupMember(g, fullName))[0] || ''; - -const getGroups = (filteredAppNames: string[]) => { - const allGroups = filteredAppNames.map((i) => { - const arr = i.split(DELIMITER); - const cutProfileType = arr.length > 1 ? arr.slice(0, -1) : arr; - return cutProfileType.join(DELIMITER); - }); - - const uniqGroups = Array.from(new Set(allGroups)); - - const dedupedUniqGroups = uniqGroups.filter((x) => { - return !uniqGroups.find((y) => x !== y && isGroupMember(y, x)); - }); - - const groupOrApp = dedupedUniqGroups.map((u) => { - const appNamesEntries = getGroupMembers(filteredAppNames, u); - - return appNamesEntries.length > 1 ? u : appNamesEntries?.[0]; - }); - - return groupOrApp; -}; - -interface SelectorModalWithTogglerProps { - appNames: string[]; - selectAppName: (name: string) => void; - appName: string; -} - -export const SelectorModalWithToggler = ({ - appNames, - selectAppName, - appName, -}: SelectorModalWithTogglerProps) => { - const [filter, setFilter] = useState(''); - const [isModalOpen, setModalOpenStatus] = useState(false); - - // selected is an array of strings - // 0 corresponds to string of group / app name selected in the left pane - // 1 corresponds to string of app name selected in the right pane - const [selected, setSelected] = useState([]); - const filteredAppNames = useMemo( - // filtered names by search input - () => - appNames.filter((n: string) => - n.toLowerCase().includes(filter.trim().toLowerCase()) - ), - [filter, appNames] - ); - - const groups = useMemo(() => getGroups(filteredAppNames), [filteredAppNames]); - - const profileTypes = useMemo(() => { - if (!selected?.[0]) { - return []; - } - - const filtered = getGroupMembers(filteredAppNames, selected?.[0]); - - if (filtered.length > 1) { - return filtered; - } - - return []; - }, [selected, groups, filteredAppNames]); - - const onSelect = ({ index, name }: { index: number; name: string }) => { - const filtered = getGroupMembers(filteredAppNames, name); - - if (filtered.length === 1 || index === 1) { - selectAppName(filtered?.[0]); - setModalOpenStatus(false); - } - - const arr = Array.from(selected); - - if (index === 0 && arr?.length > 1) { - arr.pop(); - } - - arr[index] = name; - - setSelected(arr); - }; - - useEffect(() => { - if (appName && !selected.length && groups.length) { - if (groups.indexOf(appName) !== -1) { - setSelected([appName]); - setModalOpenStatus(false); - } else { - setSelected([getGroupNameFromAppName(groups, appName), appName]); - } - } - }, [appName, selected, groups]); - - const listHeight = useMemo(() => { - const height = (window?.innerHeight || 0) - 160; - - const listRequiredHeight = - // 35 is list item height - Math.max(groups?.length || 0, profileTypes?.length || 0) * 35; - - if (height && listRequiredHeight) { - return height >= listRequiredHeight ? 'auto' : `${height}px`; - } - - return 'auto'; - }, [groups, profileTypes]); - - return ( - - No Data - - ) : null - } - toggleText={appName || LabelString} - headerEl={ - <> -
{LabelString}
- setFilter(e.target.value)} - className={styles.search} - testId="application-search" - /> - - } - leftSideEl={groups.map((name) => ( - onSelect({ index: 0, name })} - fullList={appNames} - isSelected={selected?.[0] === name} - key={name} - /> - ))} - rightSideEl={profileTypes.map((name) => ( - onSelect({ index: 1, name })} - fullList={appNames} - isSelected={selected?.[1] === name} - key={name} - /> - ))} - /> - ); -}; diff --git a/og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.module.scss b/og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.module.scss deleted file mode 100644 index 27cf18819c..0000000000 --- a/og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.module.scss +++ /dev/null @@ -1,119 +0,0 @@ -@use '../../../sass/mixins/outline.scss' as *; - -.container { - display: flex; - align-items: center; - position: relative; -} - -.appSelectorModal { - height: auto; - width: auto; - right: unset; - left: -100px; - z-index: 999; -} - -.header { - display: flex; -} - -.headerTitle { - position: relative; - margin-left: 10px; - color: var(--ps-select-modal-title); - font-weight: 700; - font-size: 0.8em; -} - -.searchInput { - height: 40px; - background: var(--ps-immutable-off-white); - color: var(--ps-immutable-placeholder-text); - border: 1px solid var(--ps-ui-border); - margin: 10px 0 10px 10px; -} - -.filter { - margin: 10px; - min-height: 40px; - display: flex; -} - -.filterName { - margin: 0; - padding: 0; - min-width: 100px; - line-height: 40px; - color: var(--ps-select-modal-title); -} - -.iconsContainer, -.profileTypesContainer { - display: flex; - flex-wrap: wrap; - min-width: 400px; -} - -.profileTypesContainer { - flex-wrap: wrap; -} - -.icon { - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; - border-color: var(--ps-app-selector-filter); - width: 40px; - height: 40px; - margin: 0 5px 5px 0; - line-height: 40px; - - &.active { - background-color: var(--ps-blue-primary); - } - - svg { - width: 100%; - height: 100%; - } -} - -.profileType { - border: none; - line-height: 25px; - cursor: pointer; - border-radius: 10px; - background-color: var(--ps-app-selector-filter); - margin: 0 5px 5px 0; - padding: 0 10px; - color: var(--ps-tooltip-text); - - &.active { - background-color: var(--ps-blue-primary); - color: var(--ps-immutable-white); - } -} - -.noData { - width: 100%; - height: 300px; - display: flex; - justify-content: center; - align-items: center; -} - -.resetFilters { - position: absolute; - left: 100px; - top: -5px; - border: none; - color: var(--ps-immutable-white); - cursor: pointer; - - &:disabled { - cursor: not-allowed; - color: var(--ps-disabled-button-text); - } -} diff --git a/og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.tsx b/og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.tsx deleted file mode 100644 index f8ef9577eb..0000000000 --- a/og/webapp/javascript/components/EnhancedAppSelector/EnhancedAppSelector.tsx +++ /dev/null @@ -1,284 +0,0 @@ -import React, { useState, useMemo } from 'react'; -import { App } from '@webapp/models/app'; -import ModalWithToggle from '@webapp/ui/Modals/ModalWithToggle'; -import Input from '@webapp/ui/Input'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faSlidersH } from '@fortawesome/free-solid-svg-icons/faSlidersH'; -import { faUndo } from '@fortawesome/free-solid-svg-icons/faUndo'; -import { Tooltip } from '@webapp/ui/Tooltip'; -import { SpyNameFirstClassType } from '@pyroscope/models/src'; -import cl from 'classnames'; -import SelectButton from '../AppSelector/SelectButton'; -import useFilters from './useFilters'; -import { SPY_NAMES_TOOLTIPS, SPY_NAMES_ICONS } from './SpyNameIcons'; -import styles from './EnhancedAppSelector.module.scss'; - -export interface EnhancedAppSelector { - /** Triggered when an app is selected */ - onSelected: (name: string) => void; - - apps: App[]; - - selectedAppName: string; -} - -// TODO: this file has a lot of repetition with AppSelector -// We should remove the old implementation (AppSelector) -// When this one actually gets used -function EnhancedAppSelector({ - onSelected, - selectedAppName, - apps, -}: EnhancedAppSelector) { - return ( -
- Application:  - -
- ); -} - -const DELIMITER = '.'; -const isGroupMember = (groupName: string, name: string) => - name.indexOf(groupName) === 0 && - (name[groupName.length] === DELIMITER || name.length === groupName.length); - -const getGroupMembers = (names: string[], name: string) => - names.filter((a) => isGroupMember(name, a)); - -const getGroupNameFromAppName = (groups: string[], fullName: string) => - groups.filter((g) => isGroupMember(g, fullName))[0] || ''; - -const getGroups = (filteredAppNames: string[]) => { - const allGroups = filteredAppNames.map((i) => { - const arr = i.split(DELIMITER); - const cutProfileType = arr.length > 1 ? arr.slice(0, -1) : arr; - return cutProfileType.join(DELIMITER); - }); - - const uniqGroups = Array.from(new Set(allGroups)); - - const dedupedUniqGroups = uniqGroups.filter((x) => { - return !uniqGroups.find((y) => x !== y && isGroupMember(y, x)); - }); - - const groupOrApp = dedupedUniqGroups.map((u) => { - const appNamesEntries = getGroupMembers(filteredAppNames, u); - - return appNamesEntries.length > 1 ? u : appNamesEntries?.[0]; - }); - - return groupOrApp; -}; - -const getSelectedApp = ( - appName: string, - groups: string[], - selected: string[] -) => { - const isFirstLevel = !!(groups.indexOf(appName) !== -1); - - if (selected.length !== 0) { - return selected; - } - - if (isFirstLevel) { - return [appName]; - } - return [getGroupNameFromAppName(groups, appName), appName]; -}; - -interface SelectorModalWithTogglerProps { - appName: string; - apps: App[]; - selectAppName: (name: string) => void; -} - -const SelectorModalWithToggler = ({ - appName, - apps, - selectAppName, -}: SelectorModalWithTogglerProps) => { - const [isModalOpen, setModalOpenStatus] = useState(false); - const { - filters, - filteredAppNames, - spyNameValues, - profileTypeValues, - handleFilterChange, - resetClickableFilters, - } = useFilters(apps); - - // selected is an array of strings - // 0 corresponds to string of group / app name selected in the left pane - // 1 corresponds to string of app name selected in the right pane - const [selected, setSelected] = useState([]); - - const groups = useMemo(() => getGroups(filteredAppNames), [filteredAppNames]); - const selectedApp = getSelectedApp(appName, groups, selected); - - const profilesNames = useMemo(() => { - if (!selectedApp?.[0]) { - return []; - } - - const filtered = getGroupMembers(filteredAppNames, selectedApp?.[0]); - - if (filtered.length > 1) { - return filtered; - } - - return []; - }, [selectedApp, groups, filteredAppNames]); - - const onSelect = ({ index, name }: { index: number; name: string }) => { - const filtered = getGroupMembers(filteredAppNames, name); - - if (filtered.length === 1 || index === 1) { - selectAppName(filtered?.[0]); - setModalOpenStatus(false); - } - - const arr = Array.from(selectedApp); - - if (index === 0 && arr?.length > 1) { - arr.pop(); - } - - arr[index] = name; - - setSelected(arr); - }; - - const listHeight = useMemo(() => { - const height = (window?.innerHeight || 0) - 160; - - const listRequiredHeight = - // 35 is list item height - Math.max(groups?.length || 0, profilesNames?.length || 0) * 35; - - if (height && listRequiredHeight) { - return height >= listRequiredHeight ? 'auto' : `${height}px`; - } - - return 'auto'; - }, [groups, profilesNames]); - - return ( - - No Data - - ) : null - } - toggleText={appName || 'Select application'} - headerEl={ -
-
-
SELECT APPLICATION
- handleFilterChange('search', e.target.value)} - className={styles.searchInput} - testId="application-search" - /> -
-
-
- FILTERS - -
-
-
-
Language
-
- {spyNameValues.map((v) => ( - - - - ))} -
-
-
-
Profile type
-
- {profileTypeValues.map((v) => ( - - ))} -
-
-
-
-
- } - leftSideEl={groups.map((name) => ( - onSelect({ index: 0, name })} - fullList={filteredAppNames} - isSelected={selectedApp?.[0] === name} - key={name} - /> - ))} - rightSideEl={profilesNames.map((name) => ( - onSelect({ index: 1, name })} - fullList={filteredAppNames} - isSelected={selectedApp?.[1] === name} - key={name} - /> - ))} - /> - ); -}; - -export default EnhancedAppSelector; diff --git a/og/webapp/javascript/components/EnhancedAppSelector/SelectButton.module.scss b/og/webapp/javascript/components/EnhancedAppSelector/SelectButton.module.scss deleted file mode 100644 index 1c5076c4ce..0000000000 --- a/og/webapp/javascript/components/EnhancedAppSelector/SelectButton.module.scss +++ /dev/null @@ -1,55 +0,0 @@ -.button { - display: flex; - flex-direction: row; - align-items: center; - flex-shrink: 0; - white-space: nowrap; - cursor: pointer; - border: none; - outline: none; - width: 100%; - justify-content: space-between; - padding-left: 10px; - padding-right: 10px; - overflow: hidden; - height: 35px; - - & > div { - display: flex; - align-items: center; - max-width: 100%; - } - - &:hover { - background-color: var(--ps-ui-element-bg-highlight); - } - - &.isSelected { - background-color: var(--ps-blue-primary); - } -} - -.itemIcon { - width: 18px !important; - display: flex; - flex-shrink: 0; - margin-right: 10px; -} - -.pyroscopeLogo { - width: 18px; - height: 18px; - margin-right: 10px; - display: flex; - flex-shrink: 0; -} - -.appName { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.chevron { - margin-left: 10px; -} diff --git a/og/webapp/javascript/components/EnhancedAppSelector/SelectButton.tsx b/og/webapp/javascript/components/EnhancedAppSelector/SelectButton.tsx deleted file mode 100644 index abd4a5ae9b..0000000000 --- a/og/webapp/javascript/components/EnhancedAppSelector/SelectButton.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React from 'react'; -import { faFolder } from '@fortawesome/free-solid-svg-icons/faFolder'; -import { faFolderOpen } from '@fortawesome/free-solid-svg-icons/faFolderOpen'; -import { faAngleRight } from '@fortawesome/free-solid-svg-icons/faAngleRight'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import classNames from 'classnames/bind'; -// eslint-disable-next-line css-modules/no-unused-class -import styles from './SelectButton.module.scss'; - -const cx = classNames.bind(styles); - -export const MENU_ITEM_ROLE = 'menuitem'; - -interface SelectButtonProps { - name: string; - fullList: string[]; - isSelected: boolean; - onClick: () => void; -} - -function Logo({ className }: { className: string }) { - return ( - - - - - - - - - ); -} - -const Icon = ({ - isFolder, - isSelected, -}: { - isFolder: boolean; - isSelected: boolean; -}) => { - if (isFolder) { - return ( - - ); - } - return ; -}; - -const SelectButton = ({ - name, - fullList, - isSelected, - onClick, -}: SelectButtonProps) => { - const isFolder = fullList.indexOf(name) === -1; - - return ( - - ); -}; - -export default SelectButton; diff --git a/og/webapp/javascript/components/EnhancedAppSelector/SpyNameIcons.tsx b/og/webapp/javascript/components/EnhancedAppSelector/SpyNameIcons.tsx deleted file mode 100644 index 0ab643d070..0000000000 --- a/og/webapp/javascript/components/EnhancedAppSelector/SpyNameIcons.tsx +++ /dev/null @@ -1,471 +0,0 @@ -import React, { ReactNode } from 'react'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faQuestion } from '@fortawesome/free-solid-svg-icons/faQuestion'; - -import type { SpyNameFirstClassType } from '@pyroscope/models/src/spyName'; - -const GoIcon = () => { - return ( - - - - - - - - - - - - - - - - - ); -}; - -const JavaIcon = () => { - return ( - - - - - - - - - - - - ); -}; - -const RubyIcon = () => { - return ( - - - - - - - - ); -}; - -const NodeIcon = () => { - return ( - - - - - - - - ); -}; - -const RustIcon = () => { - return ( - - - - ); -}; - -const PythonIcon = () => { - return ( - - - - - - - - - - - - - ); -}; - -const DotNetIcon = () => { - return ( - - - - - - - - - - - - - ); -}; - -const PhpIcon = () => { - return ( - - - - - - - - - ); -}; - -const EbpfIcon = () => { - return ( - - {' '} - - - ); -}; - -export const SPY_NAMES_TOOLTIPS = { - rbspy: 'Ruby', - 'pyroscope-rs': 'Rust', - pyspy: 'Python', - javaspy: 'Java', - phpspy: 'Php', - nodespy: 'Nodejs', - gospy: 'Go', - dotnetspy: '.Net', - ebpfspy: 'eBPF', - unknown: 'unknown', -}; - -export const SPY_NAMES_ICONS: { - [k in SpyNameFirstClassType | 'unknown']: ReactNode; -} = { - rbspy: , - 'pyroscope-rs': , - pyspy: , - javaspy: , - phpspy: , - nodespy: , - gospy: , - dotnetspy: , - ebpfspy: , - unknown: , -}; diff --git a/og/webapp/javascript/components/EnhancedAppSelector/useFilters.ts b/og/webapp/javascript/components/EnhancedAppSelector/useFilters.ts deleted file mode 100644 index 721d021a82..0000000000 --- a/og/webapp/javascript/components/EnhancedAppSelector/useFilters.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { useMemo } from 'react'; -import { Maybe } from 'true-myth'; - -import type { App } from '@webapp/models/app'; -import type { - SpyName, - SpyNameFirstClassType, -} from '@pyroscope/models/src/spyName'; -import useFiltersValues from './useFiltersValues'; - -const useFilters = (apps: App[]) => { - const { filters, setFilters, spyNameValues, profileTypeValues } = - useFiltersValues(apps); - - const handleFilterChange = ( - k: 'search' | 'spyNames' | 'profileTypes', - v: SpyName | string - ) => { - setFilters((prevFilters) => { - if (k === 'search') { - return { ...prevFilters, [k]: Maybe.just(v) }; - } - - const prevFilterValue: Maybe<(SpyName | string)[]> = prevFilters[k]; - - if (prevFilterValue.isJust && prevFilterValue.value.length > 0) { - const { newValue, shouldAddValue } = prevFilterValue.value.reduce( - (acc, prevV) => { - if (v === prevV) { - acc.shouldAddValue = false; - return acc; - } - - acc.newValue.push(prevV); - return acc; - }, - { newValue: [] as (SpyName | string)[], shouldAddValue: true } - ); - - const existingValue = shouldAddValue ? [...newValue, v] : newValue; - - return { - ...prevFilters, - [k]: - existingValue.length > 0 - ? Maybe.just(existingValue) - : Maybe.nothing(), - }; - } - - return { ...prevFilters, [k]: Maybe.just([v]) }; - }); - }; - - const resetClickableFilters = () => { - setFilters((v) => ({ - ...v, - spyNames: Maybe.nothing(), - profileTypes: Maybe.nothing(), - })); - }; - - const filteredApps = useMemo( - () => - apps.filter((n) => { - const { search, spyNames, profileTypes } = filters; - let matchFilters = true; - - if (search.isJust && matchFilters) { - matchFilters = n.name - .toLowerCase() - .includes(search.value.trim().toLowerCase()); - } - if (spyNames.isJust && matchFilters) { - matchFilters = - spyNames.value.indexOf(n.spyName as SpyNameFirstClassType) !== -1; - } - - if (profileTypes.isJust && matchFilters) { - for (let i = 0; i < profileTypes.value.length; i += 1) { - matchFilters = !!n.name.includes(profileTypes.value[i]); - - if (matchFilters) { - return matchFilters; - } - } - } - - return matchFilters; - }), - [filters, apps] - ); - - return { - filters, - handleFilterChange, - filteredAppNames: filteredApps.map((v) => v.name), - spyNameValues, - profileTypeValues, - resetClickableFilters, - }; -}; - -export default useFilters; diff --git a/og/webapp/javascript/components/EnhancedAppSelector/useFiltersValues.ts b/og/webapp/javascript/components/EnhancedAppSelector/useFiltersValues.ts deleted file mode 100644 index 1f151c0cf7..0000000000 --- a/og/webapp/javascript/components/EnhancedAppSelector/useFiltersValues.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { useState } from 'react'; -import { Maybe } from 'true-myth'; - -import type { App } from '@webapp/models/app'; -import type { SpyNameFirstClassType } from '@pyroscope/models/src/spyName'; - -type FiltersType = { - search: Maybe; - spyNames: Maybe<(SpyNameFirstClassType | 'unknown')[]>; - profileTypes: Maybe; -}; - -const useFiltersValues = (apps: App[]) => { - const [filters, setFilters] = useState({ - search: Maybe.nothing(), - spyNames: Maybe.nothing(), - profileTypes: Maybe.nothing(), - }); - - const { spyNameValues, profileTypeValues } = apps.reduce( - (acc, v) => { - // use as SpyNameFirstClassType because for now we support only first class types - const appSpyName = v.spyName as SpyNameFirstClassType; - if (acc.spyNameValues.indexOf(appSpyName) === -1) { - acc.spyNameValues.push(appSpyName); - } - - const propfileType = v.name.split('.').pop() as string; - if (acc.profileTypeValues.indexOf(propfileType) === -1) { - acc.profileTypeValues.push(propfileType); - } - - return acc; - }, - { - spyNameValues: [] as SpyNameFirstClassType[], - profileTypeValues: [] as string[], - } - ); - - return { - filters, - setFilters, - spyNameValues, - profileTypeValues, - }; -}; - -export default useFiltersValues; diff --git a/og/webapp/javascript/components/ExportData.tsx b/og/webapp/javascript/components/ExportData.tsx deleted file mode 100644 index 155cbd882c..0000000000 --- a/og/webapp/javascript/components/ExportData.tsx +++ /dev/null @@ -1,408 +0,0 @@ -/* eslint-disable react/destructuring-assignment */ -import React, { useState } from 'react'; -import { format } from 'date-fns'; -import OutsideClickHandler from 'react-outside-click-handler'; -import { Tooltip } from '@pyroscope/webapp/javascript/ui/Tooltip'; -import Button from '@webapp/ui/Button'; -import { faShareSquare } from '@fortawesome/free-solid-svg-icons/faShareSquare'; -import { buildRenderURL } from '@webapp/util/updateRequests'; -import { convertPresetsToDate } from '@webapp/util/formatDate'; -import { Profile } from '@pyroscope/models/src'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import basename from '@webapp/util/baseurl'; -import showModalWithInput from './Modals/ModalWithInput'; -import styles from './ExportData.module.scss'; - -// These are modeled individually since each condition may have different values -// For example, a exportPprof: true may accept a custom export function -// For cases like grafana -type exportJSON = { - exportJSON?: boolean; - flamebearer: Profile; -}; - -type exportPprof = { - exportPprof?: boolean; - flamebearer: Profile; -}; - -type exportHTML = { - exportHTML?: boolean; - fetchUrlFunc?: () => string; - flamebearer: Profile; -}; - -type exportFlamegraphDotCom = { - exportFlamegraphDotCom?: boolean; - exportFlamegraphDotComFn?: (name?: string) => Promise; - flamebearer: Profile; -}; - -type exportPNG = { - exportPNG?: boolean; - flamebearer: Profile; -}; - -type ExportDataProps = exportPprof & - exportHTML & - exportFlamegraphDotCom & - exportPNG & - exportJSON; - -function ExportData(props: ExportDataProps) { - const { - exportPprof = false, - exportJSON = false, - exportPNG = false, - exportHTML = false, - exportFlamegraphDotCom = false, - } = props; - if ( - !exportPNG && - !exportJSON && - !exportPprof && - !exportHTML && - !exportFlamegraphDotCom - ) { - throw new Error('At least one export button should be enabled'); - } - - const [toggleMenu, setToggleMenu] = useState(false); - - const downloadJSON = async () => { - if (!props.exportJSON) { - return; - } - - // TODO additional check this won't be needed once we use strictNullChecks - if (props.exportJSON) { - const { flamebearer } = props; - - const defaultExportName = getFilename( - flamebearer.metadata.appName, - flamebearer.metadata.startTime, - flamebearer.metadata.endTime - ); - // get user input from modal - const customExportName = await getCustomExportName(defaultExportName); - // return if user cancels the modal - if (!customExportName) return; - - const filename = `${customExportName}.json`; - - const dataStr = `data:text/json;charset=utf-8,${encodeURIComponent( - JSON.stringify(flamebearer) - )}`; - const downloadAnchorNode = document.createElement('a'); - downloadAnchorNode.setAttribute('href', dataStr); - downloadAnchorNode.setAttribute('download', filename); - document.body.appendChild(downloadAnchorNode); // required for firefox - downloadAnchorNode.click(); - downloadAnchorNode.remove(); - } - }; - - const downloadFlamegraphDotCom = async () => { - if (!props.exportFlamegraphDotCom) { - return; - } - - // TODO additional check this won't be needed once we use strictNullChecks - if (props.exportFlamegraphDotCom && props.exportFlamegraphDotComFn) { - const { flamebearer } = props; - - const defaultExportName = getFilename( - flamebearer.metadata.appName, - flamebearer.metadata.startTime, - flamebearer.metadata.endTime - ); - // get user input from modal - const customExportName = await getCustomExportName(defaultExportName); - // return if user cancels the modal - if (!customExportName) return; - - props.exportFlamegraphDotComFn(customExportName).then((url) => { - // there has been an error which should've been handled - // so we just ignore it - if (!url) { - return; - } - - const dlLink = document.createElement('a'); - dlLink.target = '_blank'; - dlLink.href = url; - - document.body.appendChild(dlLink); - dlLink.click(); - document.body.removeChild(dlLink); - }); - } - }; - - const downloadPNG = async () => { - if (props.exportPNG) { - const { flamebearer } = props; - - const defaultExportName = getFilename( - flamebearer.metadata.appName, - flamebearer.metadata.startTime, - flamebearer.metadata.endTime - ); - // get user input from modal - const customExportName = await getCustomExportName(defaultExportName); - // return if user cancels the modal - if (!customExportName) return; - - const filename = `${customExportName}.png`; - - const mimeType = 'png'; - // TODO use ref - // this won't work for comparison side by side - const canvasElement = document.querySelector( - '.flamegraph-canvas' - ) as HTMLCanvasElement; - const MIME_TYPE = `image/${mimeType}`; - const imgURL = canvasElement.toDataURL(); - const dlLink = document.createElement('a'); - - dlLink.download = filename; - dlLink.href = imgURL; - dlLink.dataset.downloadurl = [ - MIME_TYPE, - dlLink.download, - dlLink.href, - ].join(':'); - - document.body.appendChild(dlLink); - dlLink.click(); - document.body.removeChild(dlLink); - setToggleMenu(!toggleMenu); - } - }; - - const handleToggleMenu = (event: React.MouseEvent) => { - event.preventDefault(); - setToggleMenu(!toggleMenu); - }; - - const downloadPprof = function () { - if (!props.exportPprof) { - return; - } - - if (props.exportPprof) { - const { flamebearer } = props; - - if ( - !flamebearer.metadata.startTime || - !flamebearer.metadata.endTime || - !flamebearer.metadata.query || - !flamebearer.metadata.maxNodes - ) { - throw new Error( - 'Missing one of the required parameters "flamebearer.metadata.startTime", "flamebearer.metadata.endTime", "flamebearer.metadata.query", "flamebearer.metadata.maxNodes"' - ); - } - - // TODO - // This build url won't work in the following cases: - // * absence of a public server (grafana, standalone) - // * diff mode - let url = `${buildRenderURL({ - from: flamebearer.metadata.startTime.toString(), - until: flamebearer.metadata.endTime.toString(), - query: flamebearer.metadata.query, - maxNodes: flamebearer.metadata.maxNodes, - })}&format=pprof`; - url = baseURLCompatible(url); - const downloadAnchorNode = document.createElement('a'); - downloadAnchorNode.setAttribute('href', url); - document.body.appendChild(downloadAnchorNode); // required for firefox - downloadAnchorNode.click(); - downloadAnchorNode.remove(); - setToggleMenu(false); - } - }; - - const downloadHTML = async function () { - if (props.exportHTML) { - const { flamebearer } = props; - - if ( - !flamebearer.metadata.startTime || - !flamebearer.metadata.endTime || - !flamebearer.metadata.query || - !flamebearer.metadata.maxNodes - ) { - throw new Error( - 'Missing one of the required parameters "flamebearer.metadata.startTime", "flamebearer.metadata.endTime", "flamebearer.metadata.query", "flamebearer.metadata.maxNodes"' - ); - } - - const url = - typeof props.fetchUrlFunc === 'function' - ? props.fetchUrlFunc() - : buildRenderURL({ - from: flamebearer.metadata.startTime.toString(), - until: flamebearer.metadata.endTime.toString(), - query: flamebearer.metadata.query, - maxNodes: flamebearer.metadata.maxNodes, - }); - let urlWithFormat = `${url}&format=html`; - urlWithFormat = baseURLCompatible(urlWithFormat); - const defaultExportName = getFilename( - flamebearer.metadata.appName, - flamebearer.metadata.startTime, - flamebearer.metadata.endTime - ); - // get user input from modal - const customExportName = await getCustomExportName(defaultExportName); - // return if user cancels the modal - if (!customExportName) return; - - const filename = `${customExportName}.html`; - - const downloadAnchorNode = document.createElement('a'); - downloadAnchorNode.setAttribute('href', urlWithFormat); - downloadAnchorNode.setAttribute('download', filename); - document.body.appendChild(downloadAnchorNode); // required for firefox - downloadAnchorNode.click(); - downloadAnchorNode.remove(); - } - }; - - async function getCustomExportName(defaultExportName: string) { - return showModalWithInput({ - title: 'Enter export name', - confirmButtonText: 'Export', - input: 'text', - inputValue: defaultExportName, - inputPlaceholder: 'Export name', - type: 'normal', - validationMessage: 'Name must not be empty', - onConfirm: (value: ShamefulAny) => value, - }); - } - - return ( -
- setToggleMenu(false)}> - - - -
- {exportPNG && ( - - )} - {exportJSON && ( - - )} - {exportPprof && ( - - )} - {exportHTML && ( - - )} - {exportFlamegraphDotCom && ( - - )} -
-
-
- ); -} - -function baseURLCompatible(url: string) { - const base = basename(); - if (base) { - url = `${base}${url}`; - } - return url; -} - -const dateFormat = 'yyyy-MM-dd_HHmm'; - -function dateForExportFilename(from: string, until: string) { - let start = new Date(Math.round(parseInt(from, 10) * 1000)); - let end = new Date(Math.round(parseInt(until, 10) * 1000)); - - if (/^now-/.test(from) && until === 'now') { - const { _from } = convertPresetsToDate(from); - - start = new Date(Math.round(parseInt(_from.toString(), 10) * 1000)); - end = new Date(); - } - - return `${format(start, dateFormat)}-to-${format(end, dateFormat)}`; -} - -export function getFilename( - appName?: string, - startTime?: number, - endTime?: number -) { - // const appname = flamebearer.metadata.appName; - let date = ''; - - if (startTime && endTime) { - date = dateForExportFilename(startTime.toString(), endTime.toString()); - } - - // both name and date are available - if (appName && date) { - return [appName, date].join('_'); - } - - // only fullname - if (appName) { - return appName; - } - - // only date - if (date) { - return ['flamegraph', date].join('_'); - } - - // nothing is available, use a generic name - return `flamegraph`; -} - -export default ExportData; diff --git a/og/webapp/javascript/components/Heatmap/useHeatmapSelection.hook.ts b/og/webapp/javascript/components/Heatmap/useHeatmapSelection.hook.ts deleted file mode 100644 index e9ff3dbc50..0000000000 --- a/og/webapp/javascript/components/Heatmap/useHeatmapSelection.hook.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { useState, useEffect, RefObject } from 'react'; - -import type { Heatmap } from '@webapp/services/render'; -import { HEATMAP_HEIGHT } from './constants'; -import { clearRect, drawRect, getSelectionData } from './utils'; - -const DEFAULT_SELECTED_COORDINATES = { start: null, end: null }; -let startCoords: SelectedAreaCoordsType | null = null; -let endCoords: SelectedAreaCoordsType | null = null; -let selectedAreaToHeatmapRatio = 1; - -export type SelectedAreaCoordsType = Record<'x' | 'y', number>; -interface SelectedCoordinates { - start: SelectedAreaCoordsType | null; - end: SelectedAreaCoordsType | null; -} -interface UseHeatmapSelectionProps { - canvasRef: RefObject; - resizedSelectedAreaRef: RefObject; - heatmapW: number; - heatmap: Heatmap; - onSelection: ( - minV: number, - maxV: number, - startT: number, - endT: number - ) => void; -} -interface UseHeatmapSelection { - selectedCoordinates: SelectedCoordinates; - selectedAreaToHeatmapRatio: number; - resetSelection: () => void; -} - -export const useHeatmapSelection = ({ - canvasRef, - resizedSelectedAreaRef, - heatmapW, - heatmap, - onSelection, -}: UseHeatmapSelectionProps): UseHeatmapSelection => { - const [selectedCoordinates, setSelectedCoordinates] = - useState(DEFAULT_SELECTED_COORDINATES); - - const resetSelection = () => { - setSelectedCoordinates(DEFAULT_SELECTED_COORDINATES); - startCoords = null; - endCoords = null; - }; - - const handleCellClick = (x: number, y: number) => { - const cellW = heatmapW / heatmap.timeBuckets; - const cellH = HEATMAP_HEIGHT / heatmap.valueBuckets; - - const matrixCoords = [ - Math.trunc(x / cellW), - Math.trunc((HEATMAP_HEIGHT - y) / cellH), - ]; - - if (heatmap.values[matrixCoords[0]][matrixCoords[1]] === 0) { - return; - } - - // set startCoords and endCoords to draw selection rectangle for single cell - startCoords = { - x: (matrixCoords[0] + 1) * cellW, - y: HEATMAP_HEIGHT - matrixCoords[1] * cellH, - }; - endCoords = { - x: matrixCoords[0] * cellW, - y: HEATMAP_HEIGHT - (matrixCoords[1] + 1) * cellH, - }; - - const { - selectionMinValue, - selectionMaxValue, - selectionStartTime, - selectionEndTime, - } = getSelectionData( - heatmap, - heatmapW, - startCoords, - endCoords, - startCoords.y === HEATMAP_HEIGHT - ); - - onSelection( - selectionMinValue, - selectionMaxValue, - selectionStartTime, - selectionEndTime - ); - }; - - const startDrawing = (e: MouseEvent) => { - window.addEventListener('mousemove', handleDrawingEvent); - window.addEventListener('mouseup', endDrawing); - - const canvas = canvasRef.current as HTMLCanvasElement; - const { left, top } = canvas.getBoundingClientRect(); - resetSelection(); - - startCoords = { x: e.clientX - left, y: e.clientY - top }; - }; - - const endDrawing = (e: MouseEvent) => { - if (startCoords) { - const canvas = canvasRef.current as HTMLCanvasElement; - const { left, top, width, height } = canvas.getBoundingClientRect(); - clearRect(canvas); - - const xCursorPosition = e.clientX - left; - const yCursorPosition = e.clientY - top; - let xEnd; - let yEnd; - - if (xCursorPosition < 0) { - xEnd = 0; - } else if (xCursorPosition > width) { - xEnd = width; - } else { - xEnd = xCursorPosition; - } - - if (yCursorPosition < 0) { - yEnd = 0; - } else if (yCursorPosition > height) { - yEnd = parseInt(height.toFixed(0), 10); - } else { - yEnd = yCursorPosition; - } - - endCoords = { x: xEnd, y: yEnd }; - const isClickEvent = startCoords.x === xEnd && startCoords.y === yEnd; - - if (isClickEvent) { - handleCellClick(xEnd, yEnd); - } else { - const { - selectionMinValue, - selectionMaxValue, - selectionStartTime, - selectionEndTime, - } = getSelectionData(heatmap, heatmapW, startCoords, endCoords); - - onSelection( - selectionMinValue, - selectionMaxValue, - selectionStartTime, - selectionEndTime - ); - } - - window.removeEventListener('mousemove', handleDrawingEvent); - window.removeEventListener('mouseup', endDrawing); - - const selectedAreaW = endCoords.x - startCoords.x; - if (selectedAreaW) { - selectedAreaToHeatmapRatio = Math.abs(width / selectedAreaW); - } else { - selectedAreaToHeatmapRatio = 1; - } - } - }; - - const handleDrawingEvent = (e: MouseEvent) => { - const canvas = canvasRef.current as HTMLCanvasElement; - - if (canvas && startCoords) { - const { left, top } = canvas.getBoundingClientRect(); - - /** - * Cursor coordinates inside canvas - * @cursorXCoordinate - e.clientX - left - * @cursorYCoordinate - e.clientY - top - */ - const width = e.clientX - left - startCoords.x; - const h = e.clientY - top - startCoords.y; - - drawRect(canvas, startCoords.x, startCoords.y, width, h); - } - }; - - useEffect(() => { - if (canvasRef.current) { - canvasRef.current.addEventListener('mousedown', startDrawing); - } - - if (resizedSelectedAreaRef.current) { - resizedSelectedAreaRef.current.addEventListener( - 'mousedown', - startDrawing - ); - } - - return () => { - if (canvasRef.current) { - canvasRef.current.removeEventListener('mousedown', startDrawing); - } - - if (resizedSelectedAreaRef.current) { - resizedSelectedAreaRef.current.removeEventListener( - 'mousedown', - startDrawing - ); - } - - window.removeEventListener('mousemove', handleDrawingEvent); - window.removeEventListener('mouseup', endDrawing); - }; - }, [heatmap, heatmapW]); - - // set coordinates to display resizable selection rectangle (div element) - useEffect(() => { - if (startCoords && endCoords) { - setSelectedCoordinates({ - start: { x: startCoords.x, y: startCoords.y }, - end: { x: endCoords.x, y: endCoords.y }, - }); - } - }, [startCoords, endCoords]); - - return { - selectedCoordinates, - selectedAreaToHeatmapRatio, - resetSelection, - }; -}; diff --git a/og/webapp/javascript/components/Sidebar.module.css b/og/webapp/javascript/components/Sidebar.module.css deleted file mode 100644 index 43b7551aee..0000000000 --- a/og/webapp/javascript/components/Sidebar.module.css +++ /dev/null @@ -1,33 +0,0 @@ -.logo { - display: flex; - align-items: center; - padding: 11px 0 9.2px 9.2px; - margin: 0; -} - -.logoText { - color: var(--ps-neutral-2); - font-weight: 600; - height: 30px; - line-height: 30px; - font-size: 20px; - margin-left: 0; -} - -.logoTextCollapsed { - display: none; -} - -.collapseIcon svg { - animation: swing ease-in-out 0.5s 1 alternate; - transition: transform 0.3s; -} - -.collapsedIconCollapsed svg { - transform: rotate(-180deg); -} - -.collapsedHeader { - padding: 10px 0; - text-align: center; -} diff --git a/og/webapp/javascript/components/Sidebar.tsx b/og/webapp/javascript/components/Sidebar.tsx deleted file mode 100644 index bcbedd0fd0..0000000000 --- a/og/webapp/javascript/components/Sidebar.tsx +++ /dev/null @@ -1,350 +0,0 @@ -import React, { useMemo } from 'react'; -import { faWindowMaximize } from '@fortawesome/free-regular-svg-icons'; -import { faChartBar } from '@fortawesome/free-solid-svg-icons/faChartBar'; -import { faColumns } from '@fortawesome/free-solid-svg-icons/faColumns'; -import { faFileAlt } from '@fortawesome/free-solid-svg-icons/faFileAlt'; -import { faCog } from '@fortawesome/free-solid-svg-icons/faCog'; -import { faInfoCircle } from '@fortawesome/free-solid-svg-icons/faInfoCircle'; -import { faSlack } from '@fortawesome/free-brands-svg-icons/faSlack'; -import { faGithub } from '@fortawesome/free-brands-svg-icons/faGithub'; -import { faChevronLeft } from '@fortawesome/free-solid-svg-icons/faChevronLeft'; -import { faSignOutAlt } from '@fortawesome/free-solid-svg-icons/faSignOutAlt'; -import { faSync } from '@fortawesome/free-solid-svg-icons/faSync'; -import { faSearch } from '@fortawesome/free-solid-svg-icons/faSearch'; - -import Sidebar, { - MenuItem, - SidebarHeader, - SidebarFooter, - SidebarContent, - SubMenu, - Menu, -} from '@webapp/ui/Sidebar'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; -import { - selectSidebarCollapsed, - collapseSidebar, - uncollapseSidebar, - recalculateSidebar, -} from '@webapp/redux/reducers/ui'; -// import useColorMode from '@webapp/hooks/colorMode.hook'; -import { useLocation, NavLink } from 'react-router-dom'; -import { - isAdhocUIEnabled, - isAuthRequired, - isExemplarsPageEnabled, -} from '@webapp/util/features'; -import Icon from '@webapp/ui/Icon'; -import clsx from 'clsx'; -import { useWindowWidth } from '@react-hook/window-size'; -import { - AdhocIcon, - ExemplarsIcon, - MergeExemplarsIcon, -} from './SidebarCustomIcons'; -import styles from './Sidebar.module.css'; -import { PAGES } from '../pages/constants'; -import { mountURL } from '../services/base'; - -function signOut() { - // By visiting /logout we're clearing jwtCookie - window.location.href = mountURL('/logout'); -} - -export function SidebarComponent() { - const collapsed = useAppSelector(selectSidebarCollapsed); - // const { changeColorMode, colorMode } = useColorMode(); - const dispatch = useAppDispatch(); - - const { search, pathname } = useLocation(); - const windowWidth = useWindowWidth(); - const authEnabled = isAuthRequired; - - // the component doesn't seem to support setting up an active item - // so we must set it up manually - // https://github.com/azouaoui-med/react-pro-sidebar/issues/84 - const isRouteActive = (route: string) => { - if ( - route === PAGES.CONTINOUS_SINGLE_VIEW || - route === PAGES.COMPARISON_VIEW || - route === PAGES.ADHOC_COMPARISON || - route === PAGES.TRACING_EXEMPLARS_SINGLE || - route === PAGES.TRACING_EXEMPLARS_MERGE - ) { - return pathname === route; - } - - return pathname.startsWith(route); - }; - - const isSidebarVisible = useMemo( - () => - ( - [ - PAGES.CONTINOUS_SINGLE_VIEW, - PAGES.COMPARISON_VIEW, - PAGES.ADHOC_COMPARISON, - PAGES.COMPARISON_DIFF_VIEW, - PAGES.SETTINGS, - PAGES.SERVICE_DISCOVERY, - PAGES.ADHOC_SINGLE, - PAGES.ADHOC_COMPARISON, - PAGES.ADHOC_COMPARISON_DIFF, - PAGES.TAG_EXPLORER, - PAGES.TRACING_EXEMPLARS_MERGE, - PAGES.TRACING_EXEMPLARS_SINGLE, - ] as string[] - ).includes(pathname) || pathname.startsWith(PAGES.SETTINGS), - [pathname] - ); - - React.useLayoutEffect(() => { - dispatch(recalculateSidebar()); - }, [windowWidth]); - - // TODO - // simplify this - const isContinuousActive = - isRouteActive(PAGES.CONTINOUS_SINGLE_VIEW) || - isRouteActive(PAGES.COMPARISON_VIEW) || - isRouteActive(PAGES.COMPARISON_DIFF_VIEW) || - isRouteActive(PAGES.TAG_EXPLORER); - const isAdhocActive = - isRouteActive(PAGES.ADHOC_SINGLE) || - isRouteActive(PAGES.ADHOC_COMPARISON) || - isRouteActive(PAGES.ADHOC_COMPARISON_DIFF); - const isTracingActive = - isRouteActive(PAGES.TRACING_EXEMPLARS_MERGE) || - isRouteActive(PAGES.TRACING_EXEMPLARS_SINGLE); - const isSettingsActive = isRouteActive(PAGES.SETTINGS); - - const adhoc = ( - } - active={isAdhocActive} - defaultOpen={isAdhocActive} - data-testid="sidebar-adhoc" - > - {collapsed && ( - - Adhoc Profiling - - )} - } - > - Single View - - - } - > - Comparison View - - - } - > - Diff View - - - - ); - - const toggleCollapse = () => { - const action = collapsed ? uncollapseSidebar : collapseSidebar; - dispatch(action()); - }; - - return isSidebarVisible ? ( - - -
-
- - Pyroscope - -
- - - - } - active={isContinuousActive} - defaultOpen={isContinuousActive} - data-testid="sidebar-continuous" - > - {collapsed && ( - - Continuous Profiling - - )} - } - > - Tag explorer - - - } - > - Single View - - - } - > - Comparison View - - - } - > - Diff View - - - - {isAdhocUIEnabled && adhoc} - {isExemplarsPageEnabled && ( - } - active={isTracingActive} - defaultOpen={isTracingActive} - > - {collapsed && ( - - Tracing Exemplars - - )} - } - > - Exemplars - - - } - > - Merge Exemplars - - - - )} - - - - - {authEnabled && ( - } - > - Settings - - - )} - }> - Scrape Targets - - - }> - - Documentation - - - }> - - Slack - - - }> - - Github - - - {isAuthRequired && ( - signOut()} - icon={} - > - Sign out - - )} - } - > - Collapse Sidebar - - - - {/* */} - - ) : null; -} - -export default SidebarComponent; diff --git a/og/webapp/javascript/components/TimelineChart/ContextMenu.plugin.tsx b/og/webapp/javascript/components/TimelineChart/ContextMenu.plugin.tsx deleted file mode 100644 index 17da3902ea..0000000000 --- a/og/webapp/javascript/components/TimelineChart/ContextMenu.plugin.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React from 'react'; -import * as ReactDOM from 'react-dom'; -import { randomId } from '@webapp/util/randomId'; - -// Pre calculated once -// TODO(eh-am): does this work with multiple contextMenus? -const WRAPPER_ID = randomId('context_menu'); - -export interface ContextMenuProps { - click: { - /** The X position in the window where the click originated */ - pageX: number; - /** The Y position in the window where the click originated */ - pageY: number; - }; - timestamp: number; - containerEl: HTMLElement; -} - -(function ($: JQueryStatic) { - function init(plot: jquery.flot.plot & jquery.flot.plotOptions) { - const placeholder = plot.getPlaceholder(); - - function onClick( - event: unknown, - pos: { x: number; pageX: number; pageY: number } - ) { - const options: jquery.flot.plotOptions & { - ContextMenu?: React.FC; - } = plot.getOptions(); - const container = inject($); - const containerEl = container?.[0]; - - // unmount any previous menus - ReactDOM.unmountComponentAtNode(containerEl); - - const ContextMenu = options?.ContextMenu; - - if (ContextMenu && containerEl) { - ReactDOM.render( - , - containerEl - ); - } - } - - // Register events and shutdown - // It's important to bind/unbind to the SAME element - // Since a plugin may be register/unregistered multiple times due to react re-rendering - plot.hooks!.bindEvents!.push(function () { - placeholder.bind('plotclick', onClick); - }); - - plot.hooks!.shutdown!.push(function () { - placeholder.unbind('plotclick', onClick); - - const container = inject($); - - ReactDOM.unmountComponentAtNode(container?.[0]); - }); - } - - $.plot.plugins.push({ - init, - options: {}, - name: 'context_menu', - version: '1.0', - }); -})(jQuery); - -function inject($: JQueryStatic) { - const alreadyInitialized = $(`#${WRAPPER_ID}`).length > 0; - - if (alreadyInitialized) { - return $(`#${WRAPPER_ID}`); - } - - const body = $('body'); - return $(`
`).appendTo(body); -} diff --git a/og/webapp/javascript/components/TimelineChart/Tooltip.plugin.tsx b/og/webapp/javascript/components/TimelineChart/Tooltip.plugin.tsx deleted file mode 100644 index 521fb8fb4c..0000000000 --- a/og/webapp/javascript/components/TimelineChart/Tooltip.plugin.tsx +++ /dev/null @@ -1,157 +0,0 @@ -import React from 'react'; -import * as ReactDOM from 'react-dom'; -import getFormatLabel from './getFormatLabel'; -import clamp from './clamp'; -import injectTooltip from './injectTooltip'; -import { ITooltipWrapperProps } from './TooltipWrapper'; - -const TOOLTIP_WRAPPER_ID = 'explore_tooltip_parent'; - -// TooltipCallbackProps refers to the data available for the tooltip body construction -export interface TooltipCallbackProps { - timeLabel: string; - values: Array<{ - closest: number[]; - color: number[]; - // TODO: remove this - tagName: string; - }>; - coordsToCanvasPos?: jquery.flot.axis['p2c']; - canvasX?: number; -} - -(function ($: JQueryStatic) { - function init(plot: jquery.flot.plot & jquery.flot.plotOptions) { - const exploreTooltip = injectTooltip($, TOOLTIP_WRAPPER_ID); - - const params = { - canvasX: -1, - canvasY: -1, - pageX: -1, - pageY: -1, - xToTime: -1, - }; - - function onMouseMove(e: { pageX: number; pageY: number; which?: number }) { - const offset = plot.getPlaceholder().offset()!; - const plotOffset = plot.getPlotOffset(); - - params.canvasX = clamp( - 0, - plot.width(), - e.pageX - offset.left - plotOffset.left - ); - params.canvasY = clamp( - 0, - plot.height(), - e.pageY - offset.top - plotOffset.top - ); - params.pageX = e.pageX; - params.pageY = e.pageY; - } - - function onMouseLeave() { - params.canvasX = -1; - params.canvasY = -1; - params.pageX = -1; - params.pageY = -1; - } - - function onPlotHover(e: unknown, position: { x?: number }) { - if (position.x) { - params.xToTime = position.x; - } - } - - plot.hooks!.drawOverlay!.push(() => { - const options = plot.getOptions() as jquery.flot.plotOptions & { - onHoverDisplayTooltip?: ( - data: Omit - ) => React.ReactElement; - }; - const { onHoverDisplayTooltip } = options; - const { xaxis } = plot.getAxes() as ShamefulAny; - const data = plot.getData(); - - if (onHoverDisplayTooltip && exploreTooltip?.length) { - const align = params.canvasX > plot.width() / 2 ? 'left' : 'right'; - const { timezone } = options.xaxis!; - - const timeLabel = getFormatLabel({ - date: params.xToTime, - xaxis, - timezone, - }); - - const values = data?.map((dataSeries, i) => { - // Sometimes we also pass a tagName/color - // Eg in tagExplorer page - // TODO: use generics - const d = dataSeries as jquery.flot.dataSeries & { - tagName: string; - color: { color: number[] }; - }; - - let closest = null; - let color = null; - let tagName = String(i); - - if (d?.data?.length && params.xToTime && params.pageX > 0) { - color = d?.color?.color; - tagName = d.tagName; - closest = (d?.data || []).reduce(function (prev, curr) { - return Math.abs(curr?.[0] - params.xToTime) < - Math.abs(prev?.[0] - params.xToTime) - ? curr - : prev; - }); - } - - return { - closest, - color, - tagName, - }; - }); - - if (!values?.length) { - return; - } - - // Returns an element - const Tooltip = onHoverDisplayTooltip({ - pageX: params.pageX, - pageY: params.pageY, - timeLabel, - values, - align, - canvasX: params.canvasX, - - coordsToCanvasPos: plot.p2c.bind(plot), - }); - - // Type checking will be wrong if a React 18 app tries to use this code - ReactDOM.render(Tooltip as ShamefulAny, exploreTooltip?.[0]); - } - }); - - plot.hooks!.bindEvents!.push((p, eventHolder) => { - eventHolder.mousemove(onMouseMove); - eventHolder.mouseleave(onMouseLeave); - plot.getPlaceholder().bind('plothover', onPlotHover); - }); - - plot.hooks!.shutdown!.push((p, eventHolder) => { - eventHolder.unbind('mousemove', onMouseMove); - eventHolder.unbind('mouseleave', onMouseLeave); - plot.getPlaceholder().unbind('plothover', onPlotHover); - }); - } - - $.plot.plugins.push({ - init, - options: {}, - name: 'rich_tooltip', - version: '1.0', - }); -})(jQuery); diff --git a/og/webapp/javascript/components/Toolbar.tsx b/og/webapp/javascript/components/Toolbar.tsx deleted file mode 100644 index 44e943c382..0000000000 --- a/og/webapp/javascript/components/Toolbar.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import React from 'react'; -import 'react-dom'; - -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; -import { Query, queryToAppName, queryFromAppName } from '@webapp/models/query'; -import { - selectApps, - reloadAppNames, - selectQueries, - selectAppNamesState, -} from '@webapp/redux/reducers/continuous'; -import { faSyncAlt } from '@fortawesome/free-solid-svg-icons/faSyncAlt'; -import Button from '@webapp/ui/Button'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; -import DateRangePicker from '@webapp/components/DateRangePicker'; -import RefreshButton from '@webapp/components/RefreshButton'; -import AppSelector from '@webapp/components/AppSelector'; -import styles from './Toolbar.module.css'; - -interface ToolbarProps { - /** callback to be called when an app is selected via the dropdown */ - onSelectedApp: (name: Query) => void; - - filterApp?: (names: string) => boolean; -} -function Toolbar({ onSelectedApp, filterApp = () => true }: ToolbarProps) { - const dispatch = useAppDispatch(); - const appNamesState = useAppSelector(selectAppNamesState); - const apps = useAppSelector(selectApps).filter((a) => filterApp(a.name)); - const appNames = apps.map((a) => a.name); - const { query } = useAppSelector(selectQueries); - const selectedAppName = queryToAppName(query).mapOr('', (q) => - appNames.indexOf(q) !== -1 ? q : '' - ); - - const onSelected = (appName: string) => { - const query = queryFromAppName(appName); - onSelectedApp(query); - }; - - const appNamesLoading = - appNamesState.type === 'reloading' ? ( - - ) : null; - - return ( - <> -
-
- -
-
- -   - -
- - ); -} - -export default Toolbar; diff --git a/og/webapp/javascript/models/app.ts b/og/webapp/javascript/models/app.ts deleted file mode 100644 index ada09aa1ca..0000000000 --- a/og/webapp/javascript/models/app.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { SpyNameSchema } from '@pyroscope/models/src'; -import { UnitsSchema } from '@pyroscope/models/src/units'; -import { z } from 'zod'; - -export const appModel = z.object({ - name: z.string(), - spyName: SpyNameSchema, - units: UnitsSchema, -}); - -export const appsModel = z.array(appModel); - -export type App = z.infer; diff --git a/og/webapp/javascript/models/query.ts b/og/webapp/javascript/models/query.ts deleted file mode 100644 index ef490f23ea..0000000000 --- a/og/webapp/javascript/models/query.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Maybe } from '@webapp/util/fp'; - -// Nominal typing -// https://basarat.gitbook.io/typescript/main-1/nominaltyping -enum QueryBrand { - _ = '', -} -export type Query = QueryBrand & string; - -export function brandQuery(query: string) { - return query as unknown as Query; -} - -export function queryFromAppName(appName: string): Query { - return `${appName}{}` as unknown as Query; -} - -export function queryToAppName(q: Query): Maybe { - const query: string = q; - - if (!query || !query.length) { - return Maybe.nothing(); - } - - const rep = query.replace(/\{.*/g, ''); - - if (!rep.length) { - return Maybe.nothing(); - } - - return Maybe.just(rep); -} diff --git a/og/webapp/javascript/redux/hooks.ts b/og/webapp/javascript/redux/hooks.ts deleted file mode 100644 index 520e84ed52..0000000000 --- a/og/webapp/javascript/redux/hooks.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'; -import type { RootState, AppDispatch } from './store'; - -// Use throughout your app instead of plain `useDispatch` and `useSelector` -export const useAppDispatch = () => useDispatch(); -export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/og/webapp/javascript/redux/store.ts b/og/webapp/javascript/redux/store.ts deleted file mode 100644 index 21091cdd4e..0000000000 --- a/og/webapp/javascript/redux/store.ts +++ /dev/null @@ -1,160 +0,0 @@ -import { - persistStore, - persistReducer, - FLUSH, - REHYDRATE, - PAUSE, - PERSIST, - PURGE, - REGISTER, -} from 'redux-persist'; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore: Until we rewrite FlamegraphRenderer in typescript this will do -import ReduxQuerySync from 'redux-query-sync'; -import { configureStore, combineReducers, Middleware } from '@reduxjs/toolkit'; - -import history from '../util/history'; - -import settingsReducer from './reducers/settings'; -import userReducer from './reducers/user'; -import continuousReducer, { - actions as continuousActions, -} from './reducers/continuous'; -import tracingReducer, { actions as tracingActions } from './reducers/tracing'; -import serviceDiscoveryReducer from './reducers/serviceDiscovery'; -import adhocReducer from './reducers/adhoc'; -import uiStore, { persistConfig as uiPersistConfig } from './reducers/ui'; - -const reducer = combineReducers({ - settings: settingsReducer, - user: userReducer, - serviceDiscovery: serviceDiscoveryReducer, - ui: persistReducer(uiPersistConfig, uiStore), - continuous: continuousReducer, - tracing: tracingReducer, - adhoc: adhocReducer, -}); - -// Most times we will display a (somewhat) user friendly message toast -// But it's still useful to have the actual error logged to the console -export const logErrorMiddleware: Middleware = () => (next) => (action) => { - next(action); - if (action?.error) { - console.error(action.error); - } -}; - -const store = configureStore({ - reducer, - // https://github.com/reduxjs/redux-toolkit/issues/587#issuecomment-824927971 - middleware: (getDefaultMiddleware) => - getDefaultMiddleware({ - serializableCheck: { - ignoredActionPaths: ['error'], - - // Based on this issue: https://github.com/rt2zz/redux-persist/issues/988 - // and this guide https://redux-toolkit.js.org/usage/usage-guide#use-with-redux-persist - ignoredActions: [ - FLUSH, - REHYDRATE, - PAUSE, - PERSIST, - PURGE, - REGISTER, - 'adhoc/uploadFile/pending', - 'adhoc/uploadFile/fulfilled', - ], - }, - }).concat([logErrorMiddleware]), -}); - -export const persistor = persistStore(store); - -// This is a bi-directional sync between the query parameters and the redux store -// It works as follows: -// * When URL query changes, It will dispatch the action -// * When the store changes (the field set in selector), the query param is updated -// For more info see the implementation at -// https://github.com/Treora/redux-query-sync/blob/master/src/redux-query-sync.js -ReduxQuerySync({ - store, - params: { - from: { - defaultValue: 'now-1h', - selector: (state: RootState) => state.continuous.from, - action: continuousActions.setFrom, - }, - until: { - defaultValue: 'now', - selector: (state: RootState) => state.continuous.until, - action: continuousActions.setUntil, - }, - leftFrom: { - defaultValue: 'now-1h', - selector: (state: RootState) => state.continuous.leftFrom, - action: continuousActions.setLeftFrom, - }, - leftUntil: { - defaultValue: 'now-30m', - selector: (state: RootState) => state.continuous.leftUntil, - action: continuousActions.setLeftUntil, - }, - rightFrom: { - defaultValue: 'now-30m', - selector: (state: RootState) => state.continuous.rightFrom, - action: continuousActions.setRightFrom, - }, - rightUntil: { - defaultValue: 'now', - selector: (state: RootState) => state.continuous.rightUntil, - action: continuousActions.setRightUntil, - }, - query: { - defaultvalue: '', - selector: (state: RootState) => state.continuous.query, - action: continuousActions.setQuery, - }, - queryID: { - defaultvalue: '', - selector: (state: RootState) => state.tracing.queryID, - action: tracingActions.setQueryID, - }, - rightQuery: { - defaultvalue: '', - selector: (state: RootState) => state.continuous.rightQuery, - action: continuousActions.setRightQuery, - }, - leftQuery: { - defaultvalue: '', - selector: (state: RootState) => state.continuous.leftQuery, - action: continuousActions.setLeftQuery, - }, - maxNodes: { - defaultValue: '0', - selector: (state: RootState) => state.continuous.maxNodes, - action: continuousActions.setMaxNodes, - }, - groupBy: { - defaultValue: '', - selector: (state: RootState) => - state.continuous.tagExplorerView.groupByTag, - action: continuousActions.setTagExplorerViewGroupByTag, - }, - groupByValue: { - defaultValue: '', - selector: (state: RootState) => - state.continuous.tagExplorerView.groupByTagValue, - action: continuousActions.setTagExplorerViewGroupByTagValue, - }, - }, - initialTruth: 'location', - replaceState: false, - history, -}); -export default store; - -// Infer the `RootState` and `AppDispatch` types from the store itself -export type RootState = ReturnType; -// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState} -export type AppDispatch = typeof store.dispatch; diff --git a/og/webapp/javascript/services/apps.ts b/og/webapp/javascript/services/apps.ts deleted file mode 100644 index 8cc5d5f9ed..0000000000 --- a/og/webapp/javascript/services/apps.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { App, appsModel } from '@webapp/models/app'; -import { Result } from '@webapp/util/fp'; -import type { ZodError } from 'zod'; -import type { RequestError } from './base'; -import { parseResponse, request } from './base'; - -export interface FetchAppsError { - message?: string; -} - -export async function fetchApps(): Promise< - Result -> { - const response = await request('/api/apps'); - - if (response.isOk) { - return parseResponse(response, appsModel); - } - - return Result.err(response.error); -} - -export async function deleteApp(data: { - name: string; -}): Promise> { - const { name } = data; - const response = await request(`/api/apps`, { - method: 'DELETE', - body: JSON.stringify({ name }), - }); - - if (response.isOk) { - return Result.ok(true); - } - - return Result.err(response.error); -} diff --git a/og/webapp/javascript/services/base.ts b/og/webapp/javascript/services/base.ts index 28f71c20cc..e69de29bb2 100644 --- a/og/webapp/javascript/services/base.ts +++ b/og/webapp/javascript/services/base.ts @@ -1,223 +0,0 @@ -/* eslint-disable max-classes-per-file */ -/* eslint-disable import/prefer-default-export */ -import { Result } from '@webapp/util/fp'; -import type { ZodError } from 'zod'; -import { modelToResult } from '@webapp/models/utils'; -import { CustomError } from 'ts-custom-error'; -import basename from '@webapp/util/baseurl'; - -// RequestNotOkError refers to when the Response is not within the 2xx range -export class RequestNotOkError extends CustomError { - public constructor(public code: number, public description: string) { - super( - `Request failed with statusCode: '${code}' and description: '${description}'` - ); - } -} - -export class RequestAbortedError extends CustomError { - public constructor(public description: string) { - super(`Request was aborted by user. Description: '${description}'`); - } -} - -// RequestError refers to when the request is not completed -// For example CORS errors or timeouts -// or simply the address is wrong -export class RequestIncompleteError extends CustomError { - public constructor(public description: string) { - super(`Request failed to be completed. Description: '${description}'`); - } -} - -// When the server returns a list of errors -export class RequestNotOkWithErrorsList extends CustomError { - public constructor(public code: number, public errors: string[]) { - super(`Error(s) were found: ${errors.map((e) => `"${e}"`).join(', ')}`); - } -} - -export class ResponseNotOkInHTMLFormat extends CustomError { - public constructor(public code: number, public body: string) { - super( - `Server returned with code: '${code}'. The body contains an HTML page` - ); - } -} - -export class ResponseOkNotInJSONFormat extends CustomError { - public constructor(public code: number, public body: string) { - super( - `Server returned with code: '${code}'. The body that could not be parsed contains '${body}'` - ); - } -} - -export type RequestError = - | RequestNotOkError - | RequestNotOkWithErrorsList - | RequestIncompleteError - | ResponseOkNotInJSONFormat - | ResponseNotOkInHTMLFormat; - -function join(base: string, path: string): string { - path = path.replace(/^\/+/, ''); - base = base.replace(/\/+$/, ''); - return `${base}/${path}`; -} - -export function mountURL(req: RequestInfo): string { - const baseName = basename(); - - if (baseName) { - if (typeof req === 'string') { - return new URL(join(baseName, req), window.location.href).href; - } - - // req is an object - return new URL(join(baseName, req.url), window.location.href).href; - } - - // no basename - if (typeof req === 'string') { - return new URL(`${req}`, window.location.href).href; - } - return new URL(`${req}`, window.location.href).href; -} - -export function mountRequest(req: RequestInfo): RequestInfo { - const url = mountURL(req); - - if (typeof req === 'string') { - return url; - } - - return { - ...req, - url: new URL(req.url, url).href, - }; -} - -export async function request( - request: RequestInfo, - config?: RequestInit -): Promise> { - const req = mountRequest(request); - let response: Response; - try { - response = await fetch(req, config); - } catch (e) { - // 'e' is unknown, but most cases it should be an Error - let message = ''; - if (e instanceof Error) { - message = e.message; - } - - if (e instanceof Error && e.name === 'AbortError') { - return Result.err(new RequestAbortedError(message)); - } - - return Result.err(new RequestIncompleteError(message)); - } - - if (!response.ok) { - const textBody = await response.text(); - - // There's nothing in the body, so let's use a default message - if (!textBody || !textBody.length) { - return Result.err( - new RequestNotOkError(response.status, 'No description available') - ); - } - - // We know there's data, so let's check if it's in JSON format - try { - const data = JSON.parse(textBody); - - // Check if it's 401 unauthorized error - if (response.status === 401) { - // TODO: Introduce some kind of interceptor (?) - // if (!/\/(login|signup)$/.test(window?.location?.pathname)) { - // window.location.href = mountURL('/login'); - // } - return Result.err(new RequestNotOkError(response.status, data.error)); - } - - // Usually it's a feedback on user's actions like form validation - if ('errors' in data && Array.isArray(data.errors)) { - return Result.err( - new RequestNotOkWithErrorsList(response.status, data.errors) - ); - } - - // Error message may come in an 'error' field - if ('error' in data && typeof data.error === 'string') { - return Result.err(new RequestNotOkError(response.status, data.error)); - } - - // Error message may come in an 'message' field - if ('message' in data && typeof data.message === 'string') { - return Result.err(new RequestNotOkError(response.status, data.message)); - } - - return Result.err( - new RequestNotOkError( - response.status, - `Could not identify an error message. Payload is ${JSON.stringify( - data - )}` - ) - ); - } catch (e) { - // We couldn't parse, but there's definitly some data - // We must handle this case since the go server sometimes responds with plain text - - // It's HTML - // Which normally happens when hitting a broken URL, which makes the server return the SPA - // Poor heuristic for identifying it's a html file - if (/<\/?[a-z][\s\S]*>/i.test(textBody)) { - return Result.err( - new ResponseNotOkInHTMLFormat(response.status, textBody) - ); - } - return Result.err(new RequestNotOkError(response.status, textBody)); - } - } - - // Server responded with 2xx - const textBody = await response.text(); - - // There's nothing in the body - if (!textBody || !textBody.length) { - return Result.ok({ - statusCode: response.status, - }); - } - - // We know there's data, so let's check if it's in JSON format - try { - const data = JSON.parse(textBody); - - // We could parse the response - return Result.ok(data); - } catch (e) { - // We couldn't parse, but there's definitly some data - return Result.err(new ResponseOkNotInJSONFormat(response.status, textBody)); - } -} - -// We have to call it something else otherwise it will conflict with the global "Response" -type ResponseFromRequest = Awaited>; -type Schema = Parameters[0]; - -// parseResponse parses a response with given schema if the request has not failed -export function parseResponse( - res: ResponseFromRequest, - schema: Schema -): Result { - if (res.isErr) { - return Result.err(res.error); - } - - return modelToResult(schema, res.value) as Result>; -} diff --git a/og/lib/alias.d.ts b/og/webapp/javascript/types/alias.d.ts similarity index 100% rename from og/lib/alias.d.ts rename to og/webapp/javascript/types/alias.d.ts diff --git a/og/webapp/package.json b/og/webapp/package.json index a7500331c5..5b3586da06 100644 --- a/og/webapp/package.json +++ b/og/webapp/package.json @@ -1,5 +1,5 @@ { - "name": "@pyroscope/webapp", + "name": "@pyroscope/legacy-webapp", "version": "1.68.22", "private": true, "license": "Apache-2.0", diff --git a/og/webapp/tsconfig.json b/og/webapp/tsconfig.json index 8305217033..3a9aa0b682 100644 --- a/og/webapp/tsconfig.json +++ b/og/webapp/tsconfig.json @@ -6,11 +6,11 @@ "./javascript/**/*.ts", "./javascript/**/*.js", "./javascript/**/*.jsx" - ], +, "../../public/app/components/Sidebar.spec.tsx", "../../public/app/models/appNames.ts", "../../public/app/models/flamebearer.ts", "../../public/app/models/tags.ts", "../../public/app/models/adhoc.ts", "../../public/app/redux/reducers/continuous/adhoc.ts", "../../public/app/services/serviceDiscovery.ts", "../../public/app/services/exemplarsTestData.ts", "../../public/app/services/TestData.ts", "../../public/app/redux/reducers/tracing.ts", "../../public/app/components/TimelineChart/TimelineChartWrapper.tsx" ], "compilerOptions": { "baseUrl": ".", "paths": { - "@webapp/*": ["./javascript/*"] + "@phlare/*": ["./javascript/*"] } } } diff --git a/package.json b/package.json index cd58566412..167ab1e903 100644 --- a/package.json +++ b/package.json @@ -14,94 +14,164 @@ "lint": "eslint . --ext .js,.tsx,.ts --cache", "lint:fix": "yarn lint --fix", "format": "prettier --check .", - "format:fix": "prettier --write ." + "format:fix": "prettier --write .", + "storybook": "start-storybook -p 6006", + "build-storybook": "build-storybook" }, "devDependencies": { + "@babel/core": "^7.22.9", "@emotion/react": "^11.10.6", "@emotion/styled": "^11.10.6", + "@fortawesome/fontawesome-common-types": "~0.2.36", "@grafana/eslint-config": "^5.1.0", - "@swc/core": "^1.3.55", - "@swc/jest": "^0.2.26", + "@size-limit/file": "^6.0.3", + "@size-limit/time": "^6.0.3", + "@storybook/addon-actions": "~6.5.0", + "@storybook/addon-essentials": "~6.5.0", + "@storybook/addon-links": "~6.5.0", + "@storybook/builder-webpack5": "~6.5.0", + "@storybook/manager-webpack5": "~6.5.0", + "@storybook/react": "~6.5.0", + "@swc/core": "^1.3.74", + "@swc/jest": "^0.2.27", "@testing-library/cypress": "^9.0.0", - "@testing-library/jest-dom": "^5.16.5", + "@testing-library/dom": "^9.3.1", + "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^14.0.0", + "@testing-library/react-hooks": "^8.0.1", + "@testing-library/user-event": "^13.2.1", "@types/color": "^3.0.2", "@types/d3-scale": "^4.0.2", + "@types/d3-scale-chromatic": "^3.0.0", "@types/flot": "^0.0.32", "@types/history": "4.7.11", "@types/jest": "^29.5.0", + "@types/jest-image-snapshot": "^4.3.1", "@types/jquery": "^3.5.13", "@types/lodash.debounce": "^4.0.6", "@types/lodash.groupby": "^4.6.7", "@types/lodash.map": "^4.6.13", + "@types/mocha": "^10.0.1", "@types/prismjs": "^1.26.0", "@types/react": "^18.0.0", + "@types/react-copy-to-clipboard": "^5.0.2", "@types/react-datepicker": "^4.3.4", "@types/react-dom": "^18.0.11", "@types/react-helmet": "^6.1.5", + "@types/react-notifications-component": "~3.1.0", "@types/react-outside-click-handler": "^1.3.1", "@types/react-router-dom": "5.3.0", + "@types/testing-library__jest-dom": "^5.14.9", "@typescript-eslint/eslint-plugin": "^5.59.5", "@typescript-eslint/parser": "^5.59.5", + "clean-webpack-plugin": "^3.0.0", + "contributor-faces": "^1.1.0", + "conventional-changelog-cli": "^2.1.1", "copy-webpack-plugin": "^11.0.0", "cypress": "^12.11.0", + "cypress-image-snapshot": "^4.0.1", + "d3-scale": "^4.0.2", + "d3-scale-chromatic": "^3.0.0", "esbuild-loader": "^3.0.1", "eslint": "^8.40.0", + "eslint-config-airbnb": "18.2.1", + "eslint-config-airbnb-typescript": "^14.0.0", + "eslint-config-airbnb-typescript-prettier": "^4.2.0", + "eslint-import-resolver-lerna": "^2.0.0", "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-css-modules": "^2.11.0", + "eslint-plugin-cypress": "^2.12.1", "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jest": "^25.3.4", "eslint-plugin-jsdoc": "^44.2.2", - "eslint-plugin-react": "^7.32.2", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-prettier": "^3.3.1", + "eslint-plugin-react": "^7.33.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-unused-imports": "^2.0.0", "expose-loader": "^4.1.0", "html-webpack-plugin": "^5.5.0", - "jest": "^29.5.0", + "jest": "^27.5.1", + "jest-canvas-mock": "^2.3.1", "jest-css-modules-transform": "^4.4.2", - "jest-environment-jsdom": "^29.5.0", + "jest-environment-jsdom": "^27.5.1", + "jest-fetch-mock": "^3.0.3", "mini-css-extract-plugin": "^2.7.5", + "msw": "^0.36.3", + "optimize-css-assets-webpack-plugin": "^6.0.1", "prettier": "2.8.8", "react-svg-loader": "^3.0.3", + "regenerator-runtime": "^0.13.9", + "replace-in-file-webpack-plugin": "^1.0.6", "sass": "^1.60.0", + "size-limit": "^6.0.3", "ts-jest": "^29.1.0", "tsconfig-paths-webpack-plugin": "^4.0.1", + "typescript": "^4.5.2", + "typescript-plugin-css-modules": "^3.4.0", + "web-streams-polyfill": "^3.2.1", "webpack": "^5.77.0", + "webpack-bundle-analyzer": "^4.4.2", "webpack-cli": "^5.0.1", "webpack-dev-server": "^4.13.1", + "webpack-livereload-plugin": "^3.0.2", "webpack-merge": "^5.8.0" }, "dependencies": { + "@fortawesome/fontawesome-svg-core": "~1.2.30", + "@fortawesome/free-brands-svg-icons": "~5.15.1", + "@fortawesome/free-regular-svg-icons": "~5.15.2", + "@fortawesome/free-solid-svg-icons": "~5.14.0", "@fortawesome/react-fontawesome": "~0.1.11", + "@hookform/resolvers": "^2.9.8", "@mui/base": "5.0.0-alpha.98", "@mui/material": "5.10.11", "@mui/types": "7.2.0", - "@react-hook/resize-observer": "^1.2.4", - "@react-hook/window-size": "^3.0.7", + "@react-hook/resize-observer": "^1.2.6", + "@react-hook/window-size": "^3.1.1", "@reduxjs/toolkit": "^1.6.2", "@szhsin/react-menu": "3.5.2", "@types/file-saver": "^2.0.5", + "color": "^3.1.3", "compression-streams-polyfill": "^0.1.4", "css-loader": "^4.0.0", "file-saver": "^2.0.5", "graphviz-react": "^1.2.5", "jquery": "^3.6.4", + "jquery.flot.tooltip": "^0.9.0", + "lodash.groupby": "^4.6.0", + "lodash.map": "^4.6.0", + "prismjs": "^1.27.0", "protobufjs": "^7.2.4", "react": "^18.2.0", + "react-copy-to-clipboard": "^5.0.4", "react-datepicker": "^4.7.0", "react-debounce-input": "^3.2.5", "react-dom": "^18.2.0", + "react-dropzone": "^11.4.2", "react-flatten-children": "^1.1.2", "react-flot": "^1.3.0", "react-helmet": "^6.1.0", + "react-hook-form": "^7.36.0", "react-notifications-component": "~3.1.0", "react-outside-click-handler": "^1.3.0", "react-pro-sidebar": "^0.7.1", "react-redux": "^7.2.1", "react-router-dom": "5.3.0", + "react-svg-spinner": "^1.0.4", "react-textarea-autosize": "8.3.0", + "redux-persist": "^6.0.0", + "redux-query-sync": "^0.1.10", "sass-loader": "^9.0.2", + "sweetalert2": "^11.4.0, <11.4.9", + "sweetalert2-react-content": "^4.2.0", + "timezone-mock": "^1.3.0", + "true-myth": "~5.2.0", + "ts-custom-error": "^3.2.0", + "ts-essentials": "^9.0.0", "zod": "^3.21.4" }, - "workspaces": [ - "og" - ] + "optionalDependencies": { + "@pyroscope/nodejs": "^0.2.5" + } } diff --git a/pkg/phlaredb/symdb/testdata/symbols/index.symdb b/pkg/phlaredb/symdb/testdata/symbols/index.symdb new file mode 100644 index 0000000000000000000000000000000000000000..fe0e610b26f4452551d4fadd67b9a826c22f5ddb GIT binary patch literal 420 zcmXS}%r#_SU| { describe('when no query exists / is invalid', () => { @@ -85,3 +103,78 @@ describe('AppSelector', () => { // TODO: test // * interaction }); + +describe('AppSelector', () => { + // TODO copied from og + it.skip('gets the list of apps, interacts with it -- naming convention changed', async () => { + const onSelected = jest.fn(); + + render( + + ); + + act(() => getByTestId('toggler').click()); + + // checks that there are 3 groups + expect(queryByRole(MENU_ITEM_ROLE, { name: 'single' })).toBeInTheDocument(); + expect(queryByRole(MENU_ITEM_ROLE, { name: 'double' })).toBeInTheDocument(); + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'triple.app' }) + ).toBeInTheDocument(); + + fireEvent.click(screen.getByRole(MENU_ITEM_ROLE, { name: 'single' })); + expect(onSelected).toHaveBeenCalledWith('single'); + + act(() => getByTestId('toggler').click()); + + // checks if 'triple' group expands 2 profile types + fireEvent.click(screen.getByRole(MENU_ITEM_ROLE, { name: 'triple.app' })); + await waitFor(() => { + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'triple.app.cpu' }) + ).toBeInTheDocument(); + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'triple.app.objects' }) + ).toBeInTheDocument(); + }); + // checks if 'double' group expands 2 profile types + fireEvent.click(screen.getByRole(MENU_ITEM_ROLE, { name: 'double' })); + await waitFor(() => { + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'double.space' }) + ).toBeInTheDocument(); + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'double.cpu' }) + ).toBeInTheDocument(); + }); + }); +}); + +describe('AppSelector', () => { + // TODO copied from og + it.skip('filters apps by query input -- naming conventions changed', async () => { + const onSelected = jest.fn(); + + render( + + ); + + act(() => getByTestId('toggler').click()); + + const input = screen.getByTestId('app-selector-search'); + act(() => fireEvent.change(input, { target: { value: 'triple.app' } })); + + // picks groups, which either should be rendered or not + await waitFor(() => { + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'single' }) + ).not.toBeInTheDocument(); + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'double' }) + ).not.toBeInTheDocument(); + expect( + queryByRole(MENU_ITEM_ROLE, { name: 'triple.app' }) + ).toBeInTheDocument(); + }); + }); +}); diff --git a/public/app/components/AppSelector/AppSelector.tsx b/public/app/components/AppSelector/AppSelector.tsx index 0fdf2a6e7d..e295b0fbf9 100644 --- a/public/app/components/AppSelector/AppSelector.tsx +++ b/public/app/components/AppSelector/AppSelector.tsx @@ -1,13 +1,13 @@ import React, { useState, useEffect, useMemo } from 'react'; -import ModalWithToggle from '@webapp/ui/Modals/ModalWithToggle'; -import { App, appFromQuery, appToQuery } from '@webapp/models/app'; -import { Query } from '@webapp/models/query'; +import ModalWithToggle from '@phlare/ui/Modals/ModalWithToggle'; +import { App, appFromQuery, appToQuery } from '@phlare/models/app'; +import { Query } from '@phlare/models/query'; import cx from 'classnames'; -import { SelectButton } from '@phlare/components/AppSelector/SelectButton'; -import ogStyles from '@pyroscope/webapp/javascript/components/AppSelector/AppSelector.module.scss'; -import styles from '@phlare/components/AppSelector/AppSelector.module.css'; +import SelectButton from '@phlare/components/AppSelector/SelectButton'; +import ogStyles from './AppSelector.module.scss'; +import styles from './AppSelector.module.css'; -//type App = Omit; +// type App = Omit; interface AppSelectorProps { /** Triggered when an app is selected */ @@ -223,5 +223,3 @@ export const SelectorModalWithToggler = ({ /> ); }; - -export default AppSelector; diff --git a/public/app/overrides/components/AppSelector/Label.tsx b/public/app/components/AppSelector/Label.tsx similarity index 100% rename from public/app/overrides/components/AppSelector/Label.tsx rename to public/app/components/AppSelector/Label.tsx diff --git a/og/webapp/javascript/components/AppSelector/SelectButton.module.scss b/public/app/components/AppSelector/SelectButton.module.scss similarity index 100% rename from og/webapp/javascript/components/AppSelector/SelectButton.module.scss rename to public/app/components/AppSelector/SelectButton.module.scss diff --git a/public/app/components/AppSelector/SelectButton.tsx b/public/app/components/AppSelector/SelectButton.tsx index 38d22c8eaf..1c58ad0da1 100644 --- a/public/app/components/AppSelector/SelectButton.tsx +++ b/public/app/components/AppSelector/SelectButton.tsx @@ -4,7 +4,7 @@ import { faFolderOpen } from '@fortawesome/free-solid-svg-icons/faFolderOpen'; import { faAngleRight } from '@fortawesome/free-solid-svg-icons/faAngleRight'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import classNames from 'classnames/bind'; -import styles from '@pyroscope/webapp/javascript/components/AppSelector/SelectButton.module.scss'; +import styles from './SelectButton.module.scss'; const cx = classNames.bind(styles); @@ -53,7 +53,7 @@ const Icon = ({ return ; }; -export const SelectButton = ({ +const SelectButton = ({ icon, name, isSelected, @@ -79,3 +79,5 @@ export const SelectButton = ({ ); }; + +export default SelectButton; diff --git a/public/app/components/AppSelector/index.tsx b/public/app/components/AppSelector/index.tsx new file mode 100644 index 0000000000..b95f43abd0 --- /dev/null +++ b/public/app/components/AppSelector/index.tsx @@ -0,0 +1 @@ +export { AppSelector } from './AppSelector'; diff --git a/og/webapp/javascript/components/ChartTitle.module.scss b/public/app/components/ChartTitle.module.scss similarity index 100% rename from og/webapp/javascript/components/ChartTitle.module.scss rename to public/app/components/ChartTitle.module.scss diff --git a/og/webapp/javascript/components/ChartTitle.tsx b/public/app/components/ChartTitle.tsx similarity index 100% rename from og/webapp/javascript/components/ChartTitle.tsx rename to public/app/components/ChartTitle.tsx diff --git a/og/webapp/javascript/components/CheckIcon.tsx b/public/app/components/CheckIcon.tsx similarity index 100% rename from og/webapp/javascript/components/CheckIcon.tsx rename to public/app/components/CheckIcon.tsx diff --git a/og/webapp/javascript/components/Continuous.tsx b/public/app/components/Continuous.tsx similarity index 77% rename from og/webapp/javascript/components/Continuous.tsx rename to public/app/components/Continuous.tsx index 25847e8e4b..63f3c90491 100644 --- a/og/webapp/javascript/components/Continuous.tsx +++ b/public/app/components/Continuous.tsx @@ -1,12 +1,12 @@ import React, { useEffect } from 'react'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; +import { useAppSelector, useAppDispatch } from '@phlare/redux/hooks'; import { reloadAppNames, selectAppNames, setQuery, selectApplicationName, -} from '@webapp/redux/reducers/continuous'; -import { queryFromAppName } from '@webapp/models/query'; +} from '@phlare/redux/reducers/continuous'; +import { queryFromAppName } from '@phlare/models/query'; export default function Continuous({ children, @@ -30,7 +30,7 @@ export default function Continuous({ if (!selectedAppName && appNames.length > 0) { dispatch(setQuery(queryFromAppName(appNames[0]))); } - }, [appNames, selectedAppName]); + }, [dispatch, appNames, selectedAppName]); return children; } diff --git a/og/webapp/javascript/components/CustomDatePicker.module.scss b/public/app/components/CustomDatePicker.module.scss similarity index 100% rename from og/webapp/javascript/components/CustomDatePicker.module.scss rename to public/app/components/CustomDatePicker.module.scss diff --git a/og/webapp/javascript/components/CustomDatePicker.tsx b/public/app/components/CustomDatePicker.tsx similarity index 93% rename from og/webapp/javascript/components/CustomDatePicker.tsx rename to public/app/components/CustomDatePicker.tsx index cc3632bac9..3473bd1aa9 100644 --- a/og/webapp/javascript/components/CustomDatePicker.tsx +++ b/public/app/components/CustomDatePicker.tsx @@ -1,11 +1,11 @@ import React, { useState, useEffect } from 'react'; import { isAfter, isSameSecond } from 'date-fns'; import DatePicker from 'react-datepicker'; -import Button from '@webapp/ui/Button'; -import { formatAsOBject, getUTCdate } from '@webapp/util/formatDate'; -import useTimeZone from '@webapp/hooks/timeZone.hook'; -import Select from '@webapp/ui/Select'; -import TextField from '@webapp/ui/Form/TextField'; +import Button from '@phlare/ui/Button'; +import { formatAsOBject, getUTCdate } from '@phlare/util/formatDate'; +import useTimeZone from '@phlare/hooks/timeZone.hook'; +import Select from '@phlare/ui/Select'; +import TextField from '@phlare/ui/Form/TextField'; import styles from './CustomDatePicker.module.scss'; interface CustomDatePickerProps { @@ -48,7 +48,7 @@ function CustomDatePicker({ from, until, onSubmit }: CustomDatePickerProps) { from: formatAsOBject(from), until: formatAsOBject(until), }); - }, [from, until]); + }, [selectedDate, from, until]); const selectFromAsDate = getUTCdate(selectedDate.from, offset); const selectUntilAsDate = getUTCdate(selectedDate.until, offset); diff --git a/og/webapp/javascript/components/DateRangePicker.tsx b/public/app/components/DateRangePicker.tsx similarity index 92% rename from og/webapp/javascript/components/DateRangePicker.tsx rename to public/app/components/DateRangePicker.tsx index 98835cb33f..2cdbdda39b 100644 --- a/og/webapp/javascript/components/DateRangePicker.tsx +++ b/public/app/components/DateRangePicker.tsx @@ -1,17 +1,17 @@ import React, { useState } from 'react'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { setDateRange, selectContinuousState, actions, -} from '@webapp/redux/reducers/continuous'; +} from '@phlare/redux/reducers/continuous'; import cx from 'classnames'; -import Button from '@webapp/ui/Button'; -import { readableRange } from '@webapp/util/formatDate'; +import Button from '@phlare/ui/Button'; +import { readableRange } from '@phlare/util/formatDate'; import { faClock } from '@fortawesome/free-solid-svg-icons/faClock'; import OutsideClickHandler from 'react-outside-click-handler'; -import useTimeZone from '@webapp/hooks/timeZone.hook'; +import useTimeZone from '@phlare/hooks/timeZone.hook'; import CustomDatePicker from './CustomDatePicker'; import CheckIcon from './CheckIcon'; @@ -82,7 +82,7 @@ function DateRangePicker() { } }; - const isPresetSelected = (preset: typeof defaultPresets[0][0]) => { + const isPresetSelected = (preset: (typeof defaultPresets)[0][0]) => { return preset.label === dateToLabel(from, until, offset); }; diff --git a/og/webapp/javascript/components/ExportData.module.scss b/public/app/components/ExportData.module.scss similarity index 100% rename from og/webapp/javascript/components/ExportData.module.scss rename to public/app/components/ExportData.module.scss diff --git a/og/webapp/javascript/components/ExportData.spec.tsx b/public/app/components/ExportData.spec.tsx similarity index 95% rename from og/webapp/javascript/components/ExportData.spec.tsx rename to public/app/components/ExportData.spec.tsx index de40cfd0c0..fc3a9d1314 100644 --- a/og/webapp/javascript/components/ExportData.spec.tsx +++ b/public/app/components/ExportData.spec.tsx @@ -1,11 +1,46 @@ import React from 'react'; // import { SimpleSingle as TestData } from '@utils/testData'; -import { render, screen } from '@testing-library/react'; +import { render as testRender, screen } from '@testing-library/react'; import { Profile } from '@pyroscope/models/src'; +import 'web-streams-polyfill'; import ExportData, { getFilename } from './ExportData'; +import { BrowserRouter } from 'react-router-dom'; +import { Provider } from 'react-redux'; +import { configureStore } from '@reduxjs/toolkit'; +import { setStore } from '@phlare/services/storage'; +import { continuousReducer } from '../redux/reducers/continuous'; + +function createStore(preloadedState: any) { + const store = configureStore({ + reducer: { + continuous: continuousReducer, + }, + preloadedState, + }); + setStore(store); + return store; +} + +function render(component: any) { + const store = createStore({ + continuous: { + from: 'now-1h', + until: 'now', + leftFrom: 'now-1h', + leftUntil: 'now-30m', + rightFrom: 'now-30m', + rightUntil: 'now', + query: 'simple.golang.app.cpu{}', + }, + }); + + return testRender({component}, { + wrapper: BrowserRouter as any, + }); +} describe('ExportData', () => { - it('fails if theres not a single export mode', () => { + it.skip('fails if theres not a single export mode -- Since we force some exports, this never happens', () => { // ignore console.error since jsdom will complain jest.spyOn(global.console, 'error').mockImplementation(() => jest.fn()); @@ -32,7 +67,7 @@ describe('ExportData', () => { screen.getByRole('button', { name: /png/i }); }); - it('supports a download html button', () => { + it.skip('supports a download html button -- no -- exportHTML is explicitly set to false', () => { render(); screen.getByRole('button', { name: /html/i }); }); diff --git a/public/app/overrides/components/ExportData.tsx b/public/app/components/ExportData.tsx similarity index 91% rename from public/app/overrides/components/ExportData.tsx rename to public/app/components/ExportData.tsx index 3fd4bba17e..99cd7cac7e 100644 --- a/public/app/overrides/components/ExportData.tsx +++ b/public/app/components/ExportData.tsx @@ -1,14 +1,14 @@ -import Button from '@webapp/ui/Button'; -import handleError from '@webapp/util/handleError'; +import Button from '@phlare/ui/Button'; +import handleError from '@phlare/util/handleError'; import OutsideClickHandler from 'react-outside-click-handler'; import React, { useState } from 'react'; import saveAs from 'file-saver'; -import showModalWithInput from '@pyroscope/webapp/javascript/components/Modals/ModalWithInput'; -import styles from '@pyroscope/webapp/javascript/components/ExportData.module.scss'; -import { ContinuousState } from '@pyroscope/webapp/javascript/redux/reducers/continuous/state'; -import { convertPresetsToDate, formatAsOBject } from '@webapp/util/formatDate'; -import { createBiggestInterval } from '@webapp/util/timerange'; -import { downloadWithOrgID } from '@webapp/services/base'; +import showModalWithInput from '@phlare/components/Modals/ModalWithInput'; +import styles from './ExportData.module.scss'; +import { ContinuousState } from '@phlare/redux/reducers/continuous'; +import { convertPresetsToDate, formatAsOBject } from '@phlare/util/formatDate'; +import { createBiggestInterval } from '@phlare/util/timerange'; +import { downloadWithOrgID } from '@phlare/services/base'; import { faShareSquare } from '@fortawesome/free-solid-svg-icons/faShareSquare'; import { Field, Message } from 'protobufjs/light'; import { flameGraphUpload } from '@phlare/services/flamegraphcom'; @@ -16,8 +16,8 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { format } from 'date-fns'; import { isRouteActive, ROUTES } from '@phlare/pages/routes'; import { Profile } from '@pyroscope/models/src'; -import { Tooltip } from '@pyroscope/webapp/javascript/ui/Tooltip'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { Tooltip } from '@phlare/ui/Tooltip'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { useLocation } from 'react-router-dom'; import 'compression-streams-polyfill'; @@ -66,12 +66,16 @@ export class PprofRequest extends Message { this.start = start; this.end = end; } + @Field.d(1, 'string') profile_typeID: string; + @Field.d(2, 'string') label_selector: string; + @Field.d(3, 'int64') start: number; + @Field.d(4, 'int64') end: number; } @@ -104,10 +108,10 @@ function buildPprofQuery(state: ContinuousState) { function ExportData(props: ExportDataProps) { const { exportJSON = false } = props; - let exportPprof = props.exportPprof; - let exportFlamegraphDotCom = true; - let exportPNG = true; - let exportHTML = false; + let { exportPprof } = props; + const exportFlamegraphDotCom = true; + const exportPNG = true; + const exportHTML = false; const { pathname } = useLocation(); const dispatch = useAppDispatch(); const pprofQuery = useAppSelector((state: { continuous: ContinuousState }) => @@ -246,7 +250,7 @@ function ExportData(props: ExportDataProps) { if (!customExportName) { return; } - let response = await downloadWithOrgID( + const response = await downloadWithOrgID( '/querier.v1.QuerierService/SelectMergeProfile', { headers: { @@ -260,11 +264,10 @@ function ExportData(props: ExportDataProps) { handleError(dispatch, 'Failed to export to pprof', response.error); return; } - let data = await new Response( + const data = await new Response( response.value.body?.pipeThrough(new CompressionStream('gzip')) ).blob(); saveAs(data, customExportName); - return; } }; diff --git a/og/webapp/javascript/components/FileList.module.scss b/public/app/components/FileList.module.scss similarity index 100% rename from og/webapp/javascript/components/FileList.module.scss rename to public/app/components/FileList.module.scss diff --git a/og/webapp/javascript/components/FileList.tsx b/public/app/components/FileList.tsx similarity index 92% rename from og/webapp/javascript/components/FileList.tsx rename to public/app/components/FileList.tsx index e2ce84b59e..08b15c9aea 100644 --- a/og/webapp/javascript/components/FileList.tsx +++ b/public/app/components/FileList.tsx @@ -1,9 +1,9 @@ import React, { useMemo } from 'react'; import { format, parseISO } from 'date-fns'; -import { Maybe } from '@webapp/util/fp'; -import { AllProfiles } from '@webapp/models/adhoc'; -import TableUI, { useTableSort, BodyRow } from '@webapp/ui/Table'; +import { Maybe } from '@phlare/util/fp'; +import { AllProfiles } from '@phlare/models/adhoc'; +import TableUI, { useTableSort, BodyRow } from '@phlare/ui/Table'; import CheckIcon from './CheckIcon'; import styles from './FileList.module.scss'; @@ -20,7 +20,7 @@ const headRow = [ ]; const getBodyRows = ( - sortedProfilesIds: AllProfiles[0][], + sortedProfilesIds: Array, onProfileSelected: (id: string) => void, selectedProfileId: Maybe ): BodyRow[] => { @@ -84,7 +84,7 @@ function FileList(props: FileListProps) { const sortedProfilesIds = useMemo(() => { const m = sortByDirection === 'asc' ? 1 : -1; - let sorted: AllProfiles[number][] = []; + let sorted: Array = []; if (profiles) { const filesInfo = Object.values(profiles); diff --git a/og/webapp/javascript/components/Footer.spec.tsx b/public/app/components/Footer.spec.tsx similarity index 100% rename from og/webapp/javascript/components/Footer.spec.tsx rename to public/app/components/Footer.spec.tsx diff --git a/og/webapp/javascript/components/Footer.tsx b/public/app/components/Footer.tsx similarity index 100% rename from og/webapp/javascript/components/Footer.tsx rename to public/app/components/Footer.tsx diff --git a/og/webapp/javascript/components/Heatmap/Heatmap.module.scss b/public/app/components/Heatmap/Heatmap.module.scss similarity index 100% rename from og/webapp/javascript/components/Heatmap/Heatmap.module.scss rename to public/app/components/Heatmap/Heatmap.module.scss diff --git a/og/webapp/javascript/components/Heatmap/Heatmap.spec.tsx b/public/app/components/Heatmap/Heatmap.spec.tsx similarity index 100% rename from og/webapp/javascript/components/Heatmap/Heatmap.spec.tsx rename to public/app/components/Heatmap/Heatmap.spec.tsx diff --git a/og/webapp/javascript/components/Heatmap/HeatmapTooltip.module.scss b/public/app/components/Heatmap/HeatmapTooltip.module.scss similarity index 100% rename from og/webapp/javascript/components/Heatmap/HeatmapTooltip.module.scss rename to public/app/components/Heatmap/HeatmapTooltip.module.scss diff --git a/og/webapp/javascript/components/Heatmap/HeatmapTooltip.spec.tsx b/public/app/components/Heatmap/HeatmapTooltip.spec.tsx similarity index 100% rename from og/webapp/javascript/components/Heatmap/HeatmapTooltip.spec.tsx rename to public/app/components/Heatmap/HeatmapTooltip.spec.tsx diff --git a/og/webapp/javascript/components/Heatmap/HeatmapTooltip.tsx b/public/app/components/Heatmap/HeatmapTooltip.tsx similarity index 81% rename from og/webapp/javascript/components/Heatmap/HeatmapTooltip.tsx rename to public/app/components/Heatmap/HeatmapTooltip.tsx index 366b8beddb..f6248f3e52 100644 --- a/og/webapp/javascript/components/Heatmap/HeatmapTooltip.tsx +++ b/public/app/components/Heatmap/HeatmapTooltip.tsx @@ -7,8 +7,8 @@ import React, { } from 'react'; import { getFormatter } from '@pyroscope/flamegraph/src/format/format'; -import TooltipWrapper from '@webapp/components/TimelineChart/TooltipWrapper'; -import type { Heatmap } from '@webapp/services/render'; +import TooltipWrapper from '@phlare/components/TimelineChart/TooltipWrapper'; +import type { Heatmap } from '@phlare/services/render'; import { getTimeDataByXCoord, getBucketsDurationByYCoord, @@ -82,25 +82,37 @@ function HeatmapTooltip({ count: heatmap.values[matrixCoords[0]][matrixCoords[1]], }); }, - [tooltipRef, setTooltipParams, heatmapW, heatmap, timezone, dataSourceElRef] + [ + formatter, + sampleRate, + valueFormatter, + tooltipRef, + setTooltipParams, + heatmapW, + heatmap, + dataSourceElRef, + ] ); // to show tooltip when move mouse over selected area - const handleWindowMouseMove = (e: MouseEvent) => { - if ( - (e.target as HTMLCanvasElement).id !== 'selectionCanvas' && - (e.target as HTMLCanvasElement).id !== 'selectionArea' - ) { - window.removeEventListener('mousemove', memoizedOnMouseMove); - setTooltipParams(undefined); - } else { - memoizedOnMouseMove(e); - } - }; + const handleWindowMouseMove = useCallback( + (e: MouseEvent) => { + if ( + (e.target as HTMLCanvasElement).id !== 'selectionCanvas' && + (e.target as HTMLCanvasElement).id !== 'selectionArea' + ) { + window.removeEventListener('mousemove', memoizedOnMouseMove); + setTooltipParams(undefined); + } else { + memoizedOnMouseMove(e); + } + }, + [memoizedOnMouseMove] + ); - const handleMouseEnter = () => { + const handleMouseEnter = useCallback(() => { window.addEventListener('mousemove', handleWindowMouseMove); - }; + }, [handleWindowMouseMove]); useEffect(() => { // use closure to "cache" the current dataSourceRef(canvas/table) reference @@ -118,7 +130,12 @@ function HeatmapTooltip({ window.removeEventListener('mousemove', memoizedOnMouseMove); window.removeEventListener('mousemove', handleWindowMouseMove); }; - }, [dataSourceElRef.current, memoizedOnMouseMove]); + }, [ + dataSourceElRef, + handleMouseEnter, + handleWindowMouseMove, + memoizedOnMouseMove, + ]); return (
diff --git a/og/webapp/javascript/components/Heatmap/constants.ts b/public/app/components/Heatmap/constants.ts similarity index 100% rename from og/webapp/javascript/components/Heatmap/constants.ts rename to public/app/components/Heatmap/constants.ts diff --git a/og/webapp/javascript/components/Heatmap/index.tsx b/public/app/components/Heatmap/index.tsx similarity index 97% rename from og/webapp/javascript/components/Heatmap/index.tsx rename to public/app/components/Heatmap/index.tsx index 5a5de627b8..b9b61d7d0f 100644 --- a/og/webapp/javascript/components/Heatmap/index.tsx +++ b/public/app/components/Heatmap/index.tsx @@ -5,7 +5,7 @@ import cl from 'classnames'; import { interpolateViridis } from 'd3-scale-chromatic'; import { getFormatter } from '@pyroscope/flamegraph/src/format/format'; -import type { Heatmap as HeatmapType } from '@webapp/services/render'; +import type { Heatmap as HeatmapType } from '@phlare/services/render'; import { SelectedAreaCoordsType, useHeatmapSelection, @@ -14,7 +14,6 @@ import HeatmapTooltip from './HeatmapTooltip'; import { HEATMAP_HEIGHT, HEATMAP_COLORS } from './constants'; import { getTicks } from './utils'; -// eslint-disable-next-line css-modules/no-unused-class import styles from './Heatmap.module.scss'; interface HeatmapProps { @@ -192,7 +191,7 @@ export function Heatmap({ ); } -interface ResizedSelectedArea { +interface ResizedSelectedAreaProps { resizedSelectedAreaRef: RefObject; containerW: number; start: SelectedAreaCoordsType; @@ -208,7 +207,7 @@ function ResizedSelectedArea({ end, resizeRatio, handleClick, -}: ResizedSelectedArea) { +}: ResizedSelectedAreaProps) { const top = start.y > end.y ? end.y : start.y; const originalLeftOffset = start.x > end.x ? end.x : start.x; diff --git a/og/webapp/javascript/components/Heatmap/useHeatmapSelection.hook.spec.tsx b/public/app/components/Heatmap/useHeatmapSelection.hook.spec.tsx similarity index 89% rename from og/webapp/javascript/components/Heatmap/useHeatmapSelection.hook.spec.tsx rename to public/app/components/Heatmap/useHeatmapSelection.hook.spec.tsx index af85f3a904..9790f2b4eb 100644 --- a/og/webapp/javascript/components/Heatmap/useHeatmapSelection.hook.spec.tsx +++ b/public/app/components/Heatmap/useHeatmapSelection.hook.spec.tsx @@ -2,12 +2,12 @@ import React, { RefObject } from 'react'; import { renderHook } from '@testing-library/react-hooks'; import { Provider } from 'react-redux'; import { configureStore } from '@reduxjs/toolkit'; -import continuousReducer from '@webapp/redux/reducers/continuous'; -import tracingReducer from '@webapp/redux/reducers/tracing'; +import { continuousReducer } from '@phlare/redux/reducers/continuous'; +import tracingReducer from '@phlare/redux/reducers/tracing'; import { useHeatmapSelection } from './useHeatmapSelection.hook'; import { heatmapMockData } from '../../services/exemplarsTestData'; - +import { setStore } from '@phlare/services/storage'; const canvasEl = document.createElement('canvas'); const divEl = document.createElement('div'); const canvasRef = { current: canvasEl } as RefObject; @@ -22,6 +22,7 @@ function createStore(preloadedState: any) { preloadedState, }); + setStore(store); return store; } diff --git a/public/app/components/Heatmap/useHeatmapSelection.hook.ts b/public/app/components/Heatmap/useHeatmapSelection.hook.ts new file mode 100644 index 0000000000..8c27a82bf1 --- /dev/null +++ b/public/app/components/Heatmap/useHeatmapSelection.hook.ts @@ -0,0 +1,278 @@ +import { useState, useEffect, RefObject, useCallback } from 'react'; + +import type { Heatmap } from '@phlare/services/render'; +import { HEATMAP_HEIGHT } from './constants'; +import { clearRect, drawRect, getSelectionData } from './utils'; + +const DEFAULT_SELECTED_COORDINATES = { start: null, end: null }; + +export type SelectedAreaCoordsType = Record<'x' | 'y', number>; +interface SelectedCoordinates { + start: SelectedAreaCoordsType | null; + end: SelectedAreaCoordsType | null; +} +interface UseHeatmapSelectionProps { + canvasRef: RefObject; + resizedSelectedAreaRef: RefObject; + heatmapW: number; + heatmap: Heatmap; + onSelection: ( + minV: number, + maxV: number, + startT: number, + endT: number + ) => void; +} +interface UseHeatmapSelection { + selectedCoordinates: SelectedCoordinates; + selectedAreaToHeatmapRatio: number; + resetSelection: () => void; +} + +export const useHeatmapSelection = ({ + canvasRef, + resizedSelectedAreaRef, + heatmapW, + heatmap, + onSelection, +}: UseHeatmapSelectionProps): UseHeatmapSelection => { + const [selectedCoordinates, setSelectedCoordinates] = + useState(DEFAULT_SELECTED_COORDINATES); + + const [selectedAreaToHeatmapRatio, setSelectedAreaToHeatmapRatio] = + useState(1); + + const resetSelection = useCallback(() => { + setSelectedCoordinates(DEFAULT_SELECTED_COORDINATES); + }, [setSelectedCoordinates]); + + const handleCellClick = useCallback( + (x: number, y: number) => { + const cellW = heatmapW / heatmap.timeBuckets; + const cellH = HEATMAP_HEIGHT / heatmap.valueBuckets; + + const matrixCoords = [ + Math.trunc(x / cellW), + Math.trunc((HEATMAP_HEIGHT - y) / cellH), + ]; + + if (heatmap.values[matrixCoords[0]][matrixCoords[1]] === 0) { + return; + } + + // set startCoords and endCoords to draw selection rectangle for single cell + const startCoords = { + x: (matrixCoords[0] + 1) * cellW, + y: HEATMAP_HEIGHT - matrixCoords[1] * cellH, + }; + const endCoords = { + x: matrixCoords[0] * cellW, + y: HEATMAP_HEIGHT - (matrixCoords[1] + 1) * cellH, + }; + + setSelectedCoordinates({ start: startCoords, end: endCoords }); + + const { + selectionMinValue, + selectionMaxValue, + selectionStartTime, + selectionEndTime, + } = getSelectionData( + heatmap, + heatmapW, + startCoords, + endCoords, + startCoords.y === HEATMAP_HEIGHT + ); + + onSelection( + selectionMinValue, + selectionMaxValue, + selectionStartTime, + selectionEndTime + ); + }, + [heatmap, heatmapW, onSelection] + ); + + const handleDrawingEvent = useCallback( + (e: MouseEvent) => { + const canvas = canvasRef.current as HTMLCanvasElement; + if (canvas && selectedCoordinates.start) { + const { left, top } = canvas.getBoundingClientRect(); + const { x, y } = selectedCoordinates.start; + + /** + * Cursor coordinates inside canvas + * @cursorXCoordinate - e.clientX - left + * @cursorYCoordinate - e.clientY - top + */ + const width = e.clientX - left - x; + const h = e.clientY - top - y; + + drawRect(canvas, x, y, width, h); + } + }, + [selectedCoordinates.start, canvasRef] + ); + + const endDrawing = useCallback( + (e: MouseEvent) => { + if (selectedCoordinates.start) { + const canvas = canvasRef.current as HTMLCanvasElement; + const { left, top, width, height } = canvas.getBoundingClientRect(); + clearRect(canvas); + + const xCursorPosition = e.clientX - left; + const yCursorPosition = e.clientY - top; + let xEnd; + let yEnd; + + if (xCursorPosition < 0) { + xEnd = 0; + } else if (xCursorPosition > width) { + xEnd = width; + } else { + xEnd = xCursorPosition; + } + + if (yCursorPosition < 0) { + yEnd = 0; + } else if (yCursorPosition > height) { + yEnd = parseInt(height.toFixed(0), 10); + } else { + yEnd = yCursorPosition; + } + + const end = { x: xEnd, y: yEnd }; + const { start } = selectedCoordinates; + + const isClickEvent = start.x === xEnd && start.y === end.y; + + if (isClickEvent) { + handleCellClick(xEnd, yEnd); + } else { + const { + selectionMinValue, + selectionMaxValue, + selectionStartTime, + selectionEndTime, + } = getSelectionData(heatmap, heatmapW, start, end); + + onSelection( + selectionMinValue, + selectionMaxValue, + selectionStartTime, + selectionEndTime + ); + } + + window.removeEventListener('mousemove', handleDrawingEvent); + window.removeEventListener('mouseup', endDrawing); + + const selectedAreaW = end.x - start.x; + if (selectedAreaW) { + setSelectedAreaToHeatmapRatio(Math.abs(width / selectedAreaW)); + } else { + setSelectedAreaToHeatmapRatio(1); + } + } + }, + [ + selectedCoordinates, + canvasRef, + handleCellClick, + handleDrawingEvent, + heatmap, + heatmapW, + onSelection, + ] + ); + + const startDrawing = useCallback( + (e: MouseEvent) => { + window.addEventListener('mousemove', handleDrawingEvent); + window.addEventListener('mouseup', endDrawing); + + const canvas = canvasRef.current as HTMLCanvasElement; + const { left, top } = canvas.getBoundingClientRect(); + resetSelection(); + + const start = { x: e.clientX - left, y: e.clientY - top }; + + setSelectedCoordinates({ ...selectedCoordinates, start }); + + return () => { + // Clean up old event listeners before adding new ones + window.removeEventListener('mousemove', handleDrawingEvent); + window.removeEventListener('mouseup', endDrawing); + }; + }, + [ + canvasRef, + resetSelection, + endDrawing, + handleDrawingEvent, + selectedCoordinates, + ] + ); + + useEffect( + () => { + const currentCanvasRef = canvasRef.current; + const currentResizedSelectedAreaRef = resizedSelectedAreaRef.current; + + if (currentCanvasRef) { + currentCanvasRef.addEventListener('mousedown', startDrawing); + } + + if (currentResizedSelectedAreaRef) { + currentResizedSelectedAreaRef.addEventListener( + 'mousedown', + startDrawing + ); + } + + return () => { + if (currentCanvasRef) { + currentCanvasRef.removeEventListener('mousedown', startDrawing); + } + + if (currentResizedSelectedAreaRef) { + currentResizedSelectedAreaRef.removeEventListener( + 'mousedown', + startDrawing + ); + } + + window.removeEventListener('mousemove', handleDrawingEvent); + window.removeEventListener('mouseup', endDrawing); + }; + }, + [ + heatmap, + heatmapW, + canvasRef, + endDrawing, + handleDrawingEvent, + resizedSelectedAreaRef, + startDrawing, + ] // + ); + + // // set coordinates to display resizable selection rectangle (div element) + // useEffect(() => { + // if (selectedCoordinates) { + // setSelectedCoordinates({ + // start: { x: startCoords.x, y: startCoords.y }, + // end: { x: endCoords.x, y: endCoords.y }, + // }); + // } + // }, [selectedCoordinates]); + + return { + selectedCoordinates, + selectedAreaToHeatmapRatio, + resetSelection, + }; +}; diff --git a/og/webapp/javascript/components/Heatmap/utils.ts b/public/app/components/Heatmap/utils.ts similarity index 96% rename from og/webapp/javascript/components/Heatmap/utils.ts rename to public/app/components/Heatmap/utils.ts index 0fe51e6009..b2153b37c8 100644 --- a/og/webapp/javascript/components/Heatmap/utils.ts +++ b/public/app/components/Heatmap/utils.ts @@ -1,6 +1,6 @@ -import type { Heatmap } from '@webapp/services/render'; +import type { Heatmap } from '@phlare/services/render'; -import { getTimelineFormatDate, getUTCdate } from '@webapp/util/formatDate'; +import { getTimelineFormatDate, getUTCdate } from '@phlare/util/formatDate'; import { SELECTED_AREA_BACKGROUND, HEATMAP_HEIGHT } from './constants'; import type { SelectedAreaCoordsType } from './useHeatmapSelection.hook'; diff --git a/og/webapp/javascript/components/Modals/ConfirmDelete/index.tsx b/public/app/components/Modals/ConfirmDelete/index.tsx similarity index 94% rename from og/webapp/javascript/components/Modals/ConfirmDelete/index.tsx rename to public/app/components/Modals/ConfirmDelete/index.tsx index f8b9ecf4f9..4e81132813 100644 --- a/og/webapp/javascript/components/Modals/ConfirmDelete/index.tsx +++ b/public/app/components/Modals/ConfirmDelete/index.tsx @@ -1,4 +1,4 @@ -import ShowModal, { ShowModalParams } from '@webapp/ui/Modals'; +import ShowModal, { ShowModalParams } from '@phlare/ui/Modals'; interface ConfirmDeleteProps { objectType: string; diff --git a/og/webapp/javascript/components/Modals/ModalWithInput/index.tsx b/public/app/components/Modals/ModalWithInput/index.tsx similarity index 84% rename from og/webapp/javascript/components/Modals/ModalWithInput/index.tsx rename to public/app/components/Modals/ModalWithInput/index.tsx index b7a2029c7e..6a9476ef62 100644 --- a/og/webapp/javascript/components/Modals/ModalWithInput/index.tsx +++ b/public/app/components/Modals/ModalWithInput/index.tsx @@ -1,4 +1,4 @@ -import ShowModal, { ShowModalParams } from '@webapp/ui/Modals'; +import ShowModal, { ShowModalParams } from '@phlare/ui/Modals'; type ModalWithInputParams = Pick< ShowModalParams, diff --git a/og/webapp/javascript/components/Notifications.jsx b/public/app/components/Notifications.jsx similarity index 100% rename from og/webapp/javascript/components/Notifications.jsx rename to public/app/components/Notifications.jsx diff --git a/og/webapp/javascript/components/PageTitle.spec.tsx b/public/app/components/PageTitle.spec.tsx similarity index 78% rename from og/webapp/javascript/components/PageTitle.spec.tsx rename to public/app/components/PageTitle.spec.tsx index 5c822a825a..23dd46f20e 100644 --- a/og/webapp/javascript/components/PageTitle.spec.tsx +++ b/public/app/components/PageTitle.spec.tsx @@ -1,6 +1,6 @@ import React from 'react'; +import { render, waitFor } from '@testing-library/react'; import PageTitle, { AppNameContext } from './PageTitle'; -import { render, screen, waitFor } from '@testing-library/react'; // Default is 1000, try a few more times since it was failing in ci const waitForOpts = { @@ -10,7 +10,7 @@ const waitForOpts = { describe('PageTitle', () => { describe("there's no app name in context", () => { it('defaults to Pyroscope', async () => { - render(); + render(); await waitFor( () => expect(document.title).toEqual('mypage | Pyroscope'), @@ -22,8 +22,8 @@ describe('PageTitle', () => { describe("there's an app name in context", () => { it('suffixes the title with it', async () => { render( - - + + ); diff --git a/og/webapp/javascript/components/PageTitle.tsx b/public/app/components/PageTitle.tsx similarity index 100% rename from og/webapp/javascript/components/PageTitle.tsx rename to public/app/components/PageTitle.tsx diff --git a/og/webapp/javascript/components/ProfilerHeader.module.css b/public/app/components/ProfilerHeader.module.css similarity index 100% rename from og/webapp/javascript/components/ProfilerHeader.module.css rename to public/app/components/ProfilerHeader.module.css diff --git a/og/webapp/javascript/components/Protected.tsx b/public/app/components/Protected.tsx similarity index 80% rename from og/webapp/javascript/components/Protected.tsx rename to public/app/components/Protected.tsx index ba6f417b4e..9e4ed38239 100644 --- a/og/webapp/javascript/components/Protected.tsx +++ b/public/app/components/Protected.tsx @@ -1,10 +1,10 @@ import React, { useEffect } from 'react'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; +import { useAppSelector, useAppDispatch } from '@phlare/redux/hooks'; import { loadCurrentUser, selectCurrentUser, -} from '@webapp/redux/reducers/user'; -import { isAuthRequired } from '@webapp/util/features'; +} from '@phlare/redux/reducers/user'; +import { isAuthRequired } from '@phlare/util/features'; import { useHistory, useLocation } from 'react-router-dom'; export default function Protected({ @@ -25,7 +25,7 @@ export default function Protected({ } }); } - }, [dispatch]); + }, [dispatch, history, location]); if (!isAuthRequired || currentUser) { return <>{children}; diff --git a/og/webapp/javascript/components/QueryInput/QueryInput.module.scss b/public/app/components/QueryInput/QueryInput.module.scss similarity index 100% rename from og/webapp/javascript/components/QueryInput/QueryInput.module.scss rename to public/app/components/QueryInput/QueryInput.module.scss diff --git a/og/webapp/javascript/components/QueryInput/QueryInput.spec.tsx b/public/app/components/QueryInput/QueryInput.spec.tsx similarity index 96% rename from og/webapp/javascript/components/QueryInput/QueryInput.spec.tsx rename to public/app/components/QueryInput/QueryInput.spec.tsx index c3f5037649..8ee00b3fa6 100644 --- a/og/webapp/javascript/components/QueryInput/QueryInput.spec.tsx +++ b/public/app/components/QueryInput/QueryInput.spec.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { brandQuery } from '@webapp/models/query'; +import { brandQuery } from '@phlare/models/query'; import { render, screen, fireEvent } from '@testing-library/react'; import QueryInput from './QueryInput'; diff --git a/og/webapp/javascript/components/QueryInput/QueryInput.tsx b/public/app/components/QueryInput/QueryInput.tsx similarity index 90% rename from og/webapp/javascript/components/QueryInput/QueryInput.tsx rename to public/app/components/QueryInput/QueryInput.tsx index 5a22c4528e..123cb80fbf 100644 --- a/og/webapp/javascript/components/QueryInput/QueryInput.tsx +++ b/public/app/components/QueryInput/QueryInput.tsx @@ -3,9 +3,9 @@ import { useWindowWidth } from '@react-hook/window-size'; import TextareaAutosize from 'react-textarea-autosize'; import cx from 'classnames'; -import { Query, brandQuery } from '@webapp/models/query'; -import { Prism } from '@webapp/util/prism'; -import Button from '@webapp/ui/Button'; +import { Query, brandQuery } from '@phlare/models/query'; +import { Prism } from '@phlare/util/prism'; +import Button from '@phlare/ui/Button'; import styles from './QueryInput.module.scss'; @@ -41,8 +41,8 @@ export default function QueryInput({ useEffect(() => { setTextAreaSize({ - width: textareaRef?.current?.['offsetWidth'] || 0, - height: textareaRef?.current?.['offsetHeight'] || 0, + width: textareaRef?.current?.offsetWidth || 0, + height: textareaRef?.current?.offsetHeight || 0, }); }, [query, windowWidth, onSubmit]); diff --git a/og/webapp/javascript/components/RefreshButton.tsx b/public/app/components/RefreshButton.tsx similarity index 68% rename from og/webapp/javascript/components/RefreshButton.tsx rename to public/app/components/RefreshButton.tsx index 6f631807bd..e34f1dfbd5 100644 --- a/og/webapp/javascript/components/RefreshButton.tsx +++ b/public/app/components/RefreshButton.tsx @@ -1,9 +1,9 @@ import React from 'react'; -import Button from '@webapp/ui/Button'; +import Button from '@phlare/ui/Button'; import { faSyncAlt } from '@fortawesome/free-solid-svg-icons/faSyncAlt'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import { actions } from '@webapp/redux/reducers/continuous'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import { actions } from '@phlare/redux/reducers/continuous'; function RefreshButton() { const dispatch = useAppDispatch(); diff --git a/og/webapp/javascript/components/ServerNotifications.tsx b/public/app/components/ServerNotifications.tsx similarity index 88% rename from og/webapp/javascript/components/ServerNotifications.tsx rename to public/app/components/ServerNotifications.tsx index 296ce2605b..bd562f1d79 100644 --- a/og/webapp/javascript/components/ServerNotifications.tsx +++ b/public/app/components/ServerNotifications.tsx @@ -1,6 +1,6 @@ import { useEffect } from 'react'; import { useDispatch } from 'react-redux'; -import { addNotification } from '@webapp/redux/reducers/notifications'; +import { addNotification } from '@phlare/redux/reducers/notifications'; export default function ServerNotifications() { const dispatch = useDispatch(); @@ -24,7 +24,7 @@ export default function ServerNotifications() { }) ); } - }, []); + }, [dispatch]); return null; } diff --git a/og/webapp/javascript/components/Settings/APIKeys/APIKeyAddForm.tsx b/public/app/components/Settings/APIKeys/APIKeyAddForm.tsx similarity index 88% rename from og/webapp/javascript/components/Settings/APIKeys/APIKeyAddForm.tsx rename to public/app/components/Settings/APIKeys/APIKeyAddForm.tsx index 842fc72ba5..9360277688 100644 --- a/og/webapp/javascript/components/Settings/APIKeys/APIKeyAddForm.tsx +++ b/public/app/components/Settings/APIKeys/APIKeyAddForm.tsx @@ -1,17 +1,17 @@ import React, { useState } from 'react'; -import Button from '@webapp/ui/Button'; -import InputField from '@webapp/ui/InputField'; -import { TooltipInfoIcon } from '@webapp/ui/TooltipInfoIcon'; +import Button from '@phlare/ui/Button'; +import InputField from '@phlare/ui/InputField'; +import { TooltipInfoIcon } from '@phlare/ui/TooltipInfoIcon'; import { CopyToClipboard } from 'react-copy-to-clipboard'; import { faCopy } from '@fortawesome/free-solid-svg-icons/faCopy'; import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck'; -import { createAPIKey } from '@webapp/redux/reducers/settings'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import { type APIKey } from '@webapp/models/apikeys'; -import Dropdown, { MenuItem } from '@webapp/ui/Dropdown'; -import { Tooltip } from '@webapp/ui/Tooltip'; -import StatusMessage from '@webapp/ui/StatusMessage'; -import { addNotification } from '@webapp/redux/reducers/notifications'; +import { createAPIKey } from '@phlare/redux/reducers/settings'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import { type APIKey } from '@phlare/models/apikeys'; +import Dropdown, { MenuItem } from '@phlare/ui/Dropdown'; +import { Tooltip } from '@phlare/ui/Tooltip'; +import StatusMessage from '@phlare/ui/StatusMessage'; +import { addNotification } from '@phlare/redux/reducers/notifications'; import styles from './APIKeyForm.module.css'; // Extend the API key, but add form validation errors and ttlSeconds diff --git a/og/webapp/javascript/components/Settings/APIKeys/APIKeyForm.module.css b/public/app/components/Settings/APIKeys/APIKeyForm.module.css similarity index 100% rename from og/webapp/javascript/components/Settings/APIKeys/APIKeyForm.module.css rename to public/app/components/Settings/APIKeys/APIKeyForm.module.css diff --git a/og/webapp/javascript/components/Settings/APIKeys/index.tsx b/public/app/components/Settings/APIKeys/index.tsx similarity index 87% rename from og/webapp/javascript/components/Settings/APIKeys/index.tsx rename to public/app/components/Settings/APIKeys/index.tsx index a1c451d78b..b81518d660 100644 --- a/og/webapp/javascript/components/Settings/APIKeys/index.tsx +++ b/public/app/components/Settings/APIKeys/index.tsx @@ -4,17 +4,17 @@ import { formatDistance, formatRelative } from 'date-fns/fp'; import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes'; import { faPlus } from '@fortawesome/free-solid-svg-icons/faPlus'; -import Button from '@webapp/ui/Button'; -import Icon from '@webapp/ui/Icon'; -import TableUI, { BodyRow } from '@webapp/ui/Table'; -import type { APIKey, APIKeys } from '@webapp/models/apikeys'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import Button from '@phlare/ui/Button'; +import Icon from '@phlare/ui/Icon'; +import TableUI, { BodyRow } from '@phlare/ui/Table'; +import type { APIKey, APIKeys } from '@phlare/models/apikeys'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { reloadApiKeys, selectAPIKeys, deleteAPIKey, -} from '@webapp/redux/reducers/settings'; -import confirmDelete from '@webapp/components/Modals/ConfirmDelete'; +} from '@phlare/redux/reducers/settings'; +import confirmDelete from '@phlare/components/Modals/ConfirmDelete'; import styles from '../SettingsTable.module.scss'; const getBodyRows = ( @@ -78,7 +78,7 @@ const ApiKeys = () => { useEffect(() => { dispatch(reloadApiKeys()); - }, []); + }, [dispatch]); const onDelete = (key: APIKey) => { dispatch(deleteAPIKey(key)) diff --git a/og/webapp/javascript/components/Settings/Apps/AppTableItem.module.css b/public/app/components/Settings/Apps/AppTableItem.module.css similarity index 100% rename from og/webapp/javascript/components/Settings/Apps/AppTableItem.module.css rename to public/app/components/Settings/Apps/AppTableItem.module.css diff --git a/og/webapp/javascript/components/Settings/Apps/Apps.module.css b/public/app/components/Settings/Apps/Apps.module.css similarity index 100% rename from og/webapp/javascript/components/Settings/Apps/Apps.module.css rename to public/app/components/Settings/Apps/Apps.module.css diff --git a/og/webapp/javascript/components/Settings/Apps/getAppTableRows.tsx b/public/app/components/Settings/Apps/getAppTableRows.tsx similarity index 84% rename from og/webapp/javascript/components/Settings/Apps/getAppTableRows.tsx rename to public/app/components/Settings/Apps/getAppTableRows.tsx index 186b909bdc..6538aa7903 100644 --- a/og/webapp/javascript/components/Settings/Apps/getAppTableRows.tsx +++ b/public/app/components/Settings/Apps/getAppTableRows.tsx @@ -1,12 +1,12 @@ import React from 'react'; import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes'; -import Button from '@webapp/ui/Button'; -import Icon from '@webapp/ui/Icon'; -import { App } from '@webapp/models/app'; -import type { BodyRow } from '@webapp/ui/Table'; -import confirmDelete from '@webapp/components/Modals/ConfirmDelete'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; +import Button from '@phlare/ui/Button'; +import Icon from '@phlare/ui/Icon'; +import { App } from '@phlare/models/app'; +import type { BodyRow } from '@phlare/ui/Table'; +import confirmDelete from '@phlare/components/Modals/ConfirmDelete'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; import styles from './AppTableItem.module.css'; diff --git a/og/webapp/javascript/components/Settings/Apps/index.tsx b/public/app/components/Settings/Apps/index.tsx similarity index 88% rename from og/webapp/javascript/components/Settings/Apps/index.tsx rename to public/app/components/Settings/Apps/index.tsx index cebeec32e1..77ddf9ce09 100644 --- a/og/webapp/javascript/components/Settings/Apps/index.tsx +++ b/public/app/components/Settings/Apps/index.tsx @@ -1,17 +1,17 @@ import React, { useEffect, useState } from 'react'; import cl from 'classnames'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { selectApps, reloadApps, deleteApp, selectIsLoadingApps, -} from '@webapp/redux/reducers/settings'; -import { addNotification } from '@webapp/redux/reducers/notifications'; -import { type App } from '@webapp/models/app'; -import Input from '@webapp/ui/Input'; -import TableUI from '@webapp/ui/Table'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; +} from '@phlare/redux/reducers/settings'; +import { addNotification } from '@phlare/redux/reducers/notifications'; +import { type App } from '@phlare/models/app'; +import Input from '@phlare/ui/Input'; +import TableUI from '@phlare/ui/Table'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; import { getAppTableRows } from './getAppTableRows'; import appsStyles from './Apps.module.css'; @@ -32,7 +32,7 @@ function Apps() { useEffect(() => { dispatch(reloadApps()); - }, []); + }, [dispatch]); const displayApps = (apps && diff --git a/og/webapp/javascript/components/Settings/Preferences/index.tsx b/public/app/components/Settings/Preferences/index.tsx similarity index 81% rename from og/webapp/javascript/components/Settings/Preferences/index.tsx rename to public/app/components/Settings/Preferences/index.tsx index 88176e5f17..f4edb044d8 100644 --- a/og/webapp/javascript/components/Settings/Preferences/index.tsx +++ b/public/app/components/Settings/Preferences/index.tsx @@ -1,13 +1,12 @@ -/* eslint-disable prettier/prettier */ import React, { useState } from 'react'; -import Button from '@webapp/ui/Button'; -import { useAppDispatch } from '@webapp/redux/hooks'; +import Button from '@phlare/ui/Button'; +import { useAppDispatch } from '@phlare/redux/hooks'; -import { editMe, withCurrentUser } from '@webapp/redux/reducers/user'; -import { addNotification } from '@webapp/redux/reducers/notifications'; +import { editMe, withCurrentUser } from '@phlare/redux/reducers/user'; +import { addNotification } from '@phlare/redux/reducers/notifications'; -import StatusMessage from '@webapp/ui/StatusMessage'; -import InputField from '@webapp/ui/InputField'; +import StatusMessage from '@phlare/ui/StatusMessage'; +import InputField from '@phlare/ui/InputField'; function Preferences(props: ShamefulAny) { const { currentUser } = props; @@ -39,7 +38,9 @@ function Preferences(props: ShamefulAny) { const isEditDisabled = !!(currentUser && currentUser.isExternal); - if (!currentUser) return <>; + if (!currentUser) { + return <>; + } return ( <>

Edit profile

diff --git a/og/webapp/javascript/components/Settings/Security/ChangePasswordForm.tsx b/public/app/components/Settings/Security/ChangePasswordForm.tsx similarity index 87% rename from og/webapp/javascript/components/Settings/Security/ChangePasswordForm.tsx rename to public/app/components/Settings/Security/ChangePasswordForm.tsx index 13785b5976..97f59fdfdd 100644 --- a/og/webapp/javascript/components/Settings/Security/ChangePasswordForm.tsx +++ b/public/app/components/Settings/Security/ChangePasswordForm.tsx @@ -1,12 +1,12 @@ import React, { useState } from 'react'; -import Button from '@webapp/ui/Button'; +import Button from '@phlare/ui/Button'; -import { useAppDispatch } from '@webapp/redux/hooks'; +import { useAppDispatch } from '@phlare/redux/hooks'; -import { changeMyPassword } from '@webapp/redux/reducers/user'; -import { addNotification } from '@webapp/redux/reducers/notifications'; -import StatusMessage from '@webapp/ui/StatusMessage'; -import InputField from '@webapp/ui/InputField'; +import { changeMyPassword } from '@phlare/redux/reducers/user'; +import { addNotification } from '@phlare/redux/reducers/notifications'; +import StatusMessage from '@phlare/ui/StatusMessage'; +import InputField from '@phlare/ui/InputField'; function ChangePasswordForm(props: ShamefulAny) { const { user } = props; diff --git a/og/webapp/javascript/components/Settings/Security/index.tsx b/public/app/components/Settings/Security/index.tsx similarity index 72% rename from og/webapp/javascript/components/Settings/Security/index.tsx rename to public/app/components/Settings/Security/index.tsx index 836638f3b4..c02d293c00 100644 --- a/og/webapp/javascript/components/Settings/Security/index.tsx +++ b/public/app/components/Settings/Security/index.tsx @@ -1,12 +1,14 @@ import React from 'react'; -import { withCurrentUser } from '@webapp/redux/reducers/user'; +import { withCurrentUser } from '@phlare/redux/reducers/user'; import ChangePasswordForm from './ChangePasswordForm'; function Security(props: ShamefulAny) { const { currentUser } = props; - if (!currentUser) return <>; + if (!currentUser) { + return <>; + } return ( <> diff --git a/og/webapp/javascript/components/Settings/Settings.module.css b/public/app/components/Settings/Settings.module.css similarity index 100% rename from og/webapp/javascript/components/Settings/Settings.module.css rename to public/app/components/Settings/Settings.module.css diff --git a/og/webapp/javascript/components/Settings/SettingsTable.module.scss b/public/app/components/Settings/SettingsTable.module.scss similarity index 100% rename from og/webapp/javascript/components/Settings/SettingsTable.module.scss rename to public/app/components/Settings/SettingsTable.module.scss diff --git a/og/webapp/javascript/components/Settings/Users/UserAddForm.tsx b/public/app/components/Settings/Users/UserAddForm.tsx similarity index 87% rename from og/webapp/javascript/components/Settings/Users/UserAddForm.tsx rename to public/app/components/Settings/Users/UserAddForm.tsx index d500ccf0fe..f37001540f 100644 --- a/og/webapp/javascript/components/Settings/Users/UserAddForm.tsx +++ b/public/app/components/Settings/Users/UserAddForm.tsx @@ -1,12 +1,12 @@ import React, { useState } from 'react'; -import Button from '@webapp/ui/Button'; -import InputField from '@webapp/ui/InputField'; +import Button from '@phlare/ui/Button'; +import InputField from '@phlare/ui/InputField'; import { useHistory } from 'react-router-dom'; import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck'; -import { createUser } from '@webapp/redux/reducers/settings'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import { addNotification } from '@webapp/redux/reducers/notifications'; -import { passwordEncode, type User } from '@webapp/models/users'; +import { createUser } from '@phlare/redux/reducers/settings'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import { addNotification } from '@phlare/redux/reducers/notifications'; +import { passwordEncode, type User } from '@phlare/models/users'; export type UserAddProps = User & { password?: string }; diff --git a/og/webapp/javascript/components/Settings/Users/UserTableItem.module.css b/public/app/components/Settings/Users/UserTableItem.module.css similarity index 100% rename from og/webapp/javascript/components/Settings/Users/UserTableItem.module.css rename to public/app/components/Settings/Users/UserTableItem.module.css diff --git a/og/webapp/javascript/components/Settings/Users/Users.module.css b/public/app/components/Settings/Users/Users.module.css similarity index 100% rename from og/webapp/javascript/components/Settings/Users/Users.module.css rename to public/app/components/Settings/Users/Users.module.css diff --git a/og/webapp/javascript/components/Settings/Users/getUserTableRows.tsx b/public/app/components/Settings/Users/getUserTableRows.tsx similarity index 86% rename from og/webapp/javascript/components/Settings/Users/getUserTableRows.tsx rename to public/app/components/Settings/Users/getUserTableRows.tsx index 6f3b590f29..61bc0f9d89 100644 --- a/og/webapp/javascript/components/Settings/Users/getUserTableRows.tsx +++ b/public/app/components/Settings/Users/getUserTableRows.tsx @@ -1,19 +1,19 @@ import React, { useState } from 'react'; -import type { ClickEvent } from '@webapp/ui/Menu'; +import type { ClickEvent } from '@phlare/ui/Menu'; import { formatRelative } from 'date-fns'; import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes'; import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck'; import { faToggleOff } from '@fortawesome/free-solid-svg-icons/faToggleOff'; import { faToggleOn } from '@fortawesome/free-solid-svg-icons/faToggleOn'; -import Button from '@webapp/ui/Button'; -import Icon from '@webapp/ui/Icon'; -import Dropdown, { MenuItem } from '@webapp/ui/Dropdown'; -import { reloadUsers, changeUserRole } from '@webapp/redux/reducers/settings'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import confirmDelete from '@webapp/components/Modals/ConfirmDelete'; -import type { User, Users } from '@webapp/models/users'; -import type { BodyRow } from '@webapp/ui/Table'; +import Button from '@phlare/ui/Button'; +import Icon from '@phlare/ui/Icon'; +import Dropdown, { MenuItem } from '@phlare/ui/Dropdown'; +import { reloadUsers, changeUserRole } from '@phlare/redux/reducers/settings'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import confirmDelete from '@phlare/components/Modals/ConfirmDelete'; +import type { User, Users } from '@phlare/models/users'; +import type { BodyRow } from '@phlare/ui/Table'; import styles from './UserTableItem.module.css'; function DisableButton(props: { onDisable: (user: User) => void; user: User }) { diff --git a/og/webapp/javascript/components/Settings/Users/index.tsx b/public/app/components/Settings/Users/index.tsx similarity index 88% rename from og/webapp/javascript/components/Settings/Users/index.tsx rename to public/app/components/Settings/Users/index.tsx index 2b4342b78a..bed68be012 100644 --- a/og/webapp/javascript/components/Settings/Users/index.tsx +++ b/public/app/components/Settings/Users/index.tsx @@ -3,20 +3,20 @@ import { useHistory } from 'react-router-dom'; import cl from 'classnames'; import { faPlus } from '@fortawesome/free-solid-svg-icons/faPlus'; -import Button from '@webapp/ui/Button'; -import TableUI from '@webapp/ui/Table'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import Button from '@phlare/ui/Button'; +import TableUI from '@phlare/ui/Table'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { reloadUsers, selectUsers, enableUser, disableUser, deleteUser, -} from '@webapp/redux/reducers/settings'; -import { selectCurrentUser } from '@webapp/redux/reducers/user'; -import { addNotification } from '@webapp/redux/reducers/notifications'; -import { type User } from '@webapp/models/users'; -import Input from '@webapp/ui/Input'; +} from '@phlare/redux/reducers/settings'; +import { selectCurrentUser } from '@phlare/redux/reducers/user'; +import { addNotification } from '@phlare/redux/reducers/notifications'; +import { type User } from '@phlare/models/users'; +import Input from '@phlare/ui/Input'; import { getUserTableRows } from './getUserTableRows'; import userStyles from './Users.module.css'; @@ -41,7 +41,7 @@ function Users() { useEffect(() => { dispatch(reloadUsers()); - }, []); + }, [dispatch]); const displayUsers = (users && users.filter( @@ -50,7 +50,9 @@ function Users() { )) || []; - if (!currentUser) return null; + if (!currentUser) { + return null; + } const handleDisableUser = (user: User) => { if (user.isDisabled) { diff --git a/og/webapp/javascript/components/Settings/index.tsx b/public/app/components/Settings/index.tsx similarity index 94% rename from og/webapp/javascript/components/Settings/index.tsx rename to public/app/components/Settings/index.tsx index 8f15c3a12c..0bbd726970 100644 --- a/og/webapp/javascript/components/Settings/index.tsx +++ b/public/app/components/Settings/index.tsx @@ -1,17 +1,17 @@ import React from 'react'; import { Switch, Route, useRouteMatch, NavLink } from 'react-router-dom'; -import Box from '@webapp/ui/Box'; -import Icon from '@webapp/ui/Icon'; +import Box from '@phlare/ui/Box'; +import Icon from '@phlare/ui/Icon'; import { faKey } from '@fortawesome/free-solid-svg-icons/faKey'; import { faLock } from '@fortawesome/free-solid-svg-icons/faLock'; import { faSlidersH } from '@fortawesome/free-solid-svg-icons/faSlidersH'; import { faUserAlt } from '@fortawesome/free-solid-svg-icons/faUserAlt'; import { faNetworkWired } from '@fortawesome/free-solid-svg-icons/faNetworkWired'; import cx from 'classnames'; -import { useAppSelector } from '@webapp/redux/hooks'; -import { selectCurrentUser } from '@webapp/redux/reducers/user'; -import { User } from '@webapp/models/users'; -import PageTitle from '@webapp/components/PageTitle'; +import { useAppSelector } from '@phlare/redux/hooks'; +import { selectCurrentUser } from '@phlare/redux/reducers/user'; +import { User } from '@phlare/models/users'; +import PageTitle from '@phlare/components/PageTitle'; import Preferences from './Preferences'; import Security from './Security'; import Users from './Users'; @@ -36,7 +36,7 @@ function Settings() {
  • cx({ [styles.navLink]: true, [styles.navLinkActive]: isActive }) diff --git a/og/webapp/javascript/components/SideTimelineComparator/index.tsx b/public/app/components/SideTimelineComparator/index.tsx similarity index 96% rename from og/webapp/javascript/components/SideTimelineComparator/index.tsx rename to public/app/components/SideTimelineComparator/index.tsx index 01d32b9455..69eb4038f8 100644 --- a/og/webapp/javascript/components/SideTimelineComparator/index.tsx +++ b/public/app/components/SideTimelineComparator/index.tsx @@ -1,12 +1,12 @@ import React, { useRef, useState } from 'react'; import classNames from 'classnames/bind'; -import Button from '@webapp/ui/Button'; -import { Popover, PopoverBody } from '@webapp/ui/Popover'; -import { Portal } from '@webapp/ui/Portal'; +import Button from '@phlare/ui/Button'; +import { Popover, PopoverBody } from '@phlare/ui/Popover'; +import { Portal } from '@phlare/ui/Portal'; import { faChevronDown } from '@fortawesome/free-solid-svg-icons/faChevronDown'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { Selection } from '@webapp/components/TimelineChart/markings'; -import { getSelectionBoundaries } from '@webapp/components/TimelineChart/SyncTimelines/getSelectionBoundaries'; +import { Selection } from '@phlare/components/TimelineChart/markings'; +import { getSelectionBoundaries } from '@phlare/components/TimelineChart/SyncTimelines/getSelectionBoundaries'; import { comparisonPeriods } from './periods'; import styles from './styles.module.scss'; diff --git a/og/webapp/javascript/components/SideTimelineComparator/periods.ts b/public/app/components/SideTimelineComparator/periods.ts similarity index 100% rename from og/webapp/javascript/components/SideTimelineComparator/periods.ts rename to public/app/components/SideTimelineComparator/periods.ts diff --git a/og/webapp/javascript/components/SideTimelineComparator/styles.module.scss b/public/app/components/SideTimelineComparator/styles.module.scss similarity index 100% rename from og/webapp/javascript/components/SideTimelineComparator/styles.module.scss rename to public/app/components/SideTimelineComparator/styles.module.scss diff --git a/og/webapp/javascript/components/Sidebar.spec.tsx b/public/app/components/Sidebar.spec.tsx similarity index 89% rename from og/webapp/javascript/components/Sidebar.spec.tsx rename to public/app/components/Sidebar.spec.tsx index 4464717296..a5f1c06389 100644 --- a/og/webapp/javascript/components/Sidebar.spec.tsx +++ b/public/app/components/Sidebar.spec.tsx @@ -3,9 +3,10 @@ import { MemoryRouter } from 'react-router-dom'; import { render, screen } from '@testing-library/react'; import { configureStore } from '@reduxjs/toolkit'; import { Provider } from 'react-redux'; -import uiReducer from '@webapp/redux/reducers/ui'; +import uiReducer from '@phlare/redux/reducers/ui'; -import { SidebarComponent } from './Sidebar'; +import { Sidebar } from '@phlare/components/Sidebar'; +import { setStore } from '@phlare/services/storage'; // TODO: figure out the types here function createStore(preloadedState: any) { @@ -16,6 +17,7 @@ function createStore(preloadedState: any) { preloadedState, }); + setStore(store); return store; } @@ -40,7 +42,7 @@ describe('Sidebar', () => { }, })} > - + ); @@ -64,7 +66,7 @@ describe('Sidebar', () => { }, })} > - + ); diff --git a/public/app/components/Sidebar.tsx b/public/app/components/Sidebar.tsx index 0635b0f838..1e37a8d0bb 100644 --- a/public/app/components/Sidebar.tsx +++ b/public/app/components/Sidebar.tsx @@ -11,21 +11,21 @@ import SidebarUI, { SidebarFooter, SidebarContent, Menu, -} from '@webapp/ui/Sidebar'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; +} from '@phlare/ui/Sidebar'; +import { useAppSelector, useAppDispatch } from '@phlare/redux/hooks'; import { selectSidebarCollapsed, collapseSidebar, uncollapseSidebar, recalculateSidebar, -} from '@webapp/redux/reducers/ui'; +} from '@phlare/redux/reducers/ui'; import { useLocation, NavLink } from 'react-router-dom'; -import Icon from '@webapp/ui/Icon'; +import Icon from '@phlare/ui/Icon'; import clsx from 'clsx'; import { useWindowWidth } from '@react-hook/window-size'; import { isRouteActive, ROUTES } from '@phlare/pages/routes'; import Logo from '@phlare/static/logo.svg'; -import styles from '@phlare/components/Sidebar.module.css'; +import styles from './Sidebar.module.css'; import { SidebarTenant } from '@phlare/components/SidebarTenant'; export function Sidebar() { @@ -61,6 +61,7 @@ export function Sidebar() { } > @@ -72,6 +73,7 @@ export function Sidebar() { /> } > @@ -83,6 +85,7 @@ export function Sidebar() { /> } > @@ -90,6 +93,7 @@ export function Sidebar() { } > diff --git a/og/webapp/javascript/components/SidebarCustomIcons.tsx b/public/app/components/SidebarCustomIcons.tsx similarity index 100% rename from og/webapp/javascript/components/SidebarCustomIcons.tsx rename to public/app/components/SidebarCustomIcons.tsx diff --git a/public/app/components/SidebarTenant.tsx b/public/app/components/SidebarTenant.tsx index f822d99bd6..5075309af4 100644 --- a/public/app/components/SidebarTenant.tsx +++ b/public/app/components/SidebarTenant.tsx @@ -2,17 +2,17 @@ import React from 'react'; import { faCog } from '@fortawesome/free-solid-svg-icons/faCog'; import { faUser } from '@fortawesome/free-solid-svg-icons/faUser'; import { MenuButton, MenuProps, MenuHeader } from '@szhsin/react-menu'; -import Dropdown, { MenuItem as DropdownMenuItem } from '@webapp/ui/Dropdown'; +import Dropdown, { MenuItem as DropdownMenuItem } from '@phlare/ui/Dropdown'; import flattenChildren from 'react-flatten-children'; -import Icon from '@webapp/ui/Icon'; -import { MenuItem } from '@webapp/ui/Sidebar'; +import Icon from '@phlare/ui/Icon'; +import { MenuItem } from '@phlare/ui/Sidebar'; import { selectIsMultiTenant, selectTenantID, actions, } from '@phlare/redux/reducers/tenant'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; -import styles from '@phlare/components/SidebarTenant.module.css'; +import { useAppSelector, useAppDispatch } from '@phlare/redux/hooks'; +import styles from './SidebarTenant.module.css'; import cx from 'classnames'; export interface DropdownProps { @@ -42,7 +42,7 @@ function FlatDropdown({ label={label} className={className} menuButton={menuButton} - portal={true} + portal > {flattenChildren(children) as unknown as JSX.Element} diff --git a/og/webapp/javascript/components/TagsBar.module.scss b/public/app/components/TagsBar.module.scss similarity index 100% rename from og/webapp/javascript/components/TagsBar.module.scss rename to public/app/components/TagsBar.module.scss diff --git a/og/webapp/javascript/components/TagsBar.tsx b/public/app/components/TagsBar.tsx similarity index 92% rename from og/webapp/javascript/components/TagsBar.tsx rename to public/app/components/TagsBar.tsx index 4699ae1750..4f7ec1b099 100644 --- a/og/webapp/javascript/components/TagsBar.tsx +++ b/public/app/components/TagsBar.tsx @@ -1,17 +1,17 @@ import React, { useState } from 'react'; import 'react-dom'; -import { TagsState } from '@webapp/redux/reducers/continuous'; +import { TagsState } from '@phlare/redux/reducers/continuous'; import Dropdown, { SubMenu, MenuItem, FocusableItem, MenuGroup, -} from '@webapp/ui/Dropdown'; -import { Query, brandQuery } from '@webapp/models/query'; -import Input from '@webapp/ui/Input'; -import { appendLabelToQuery } from '@webapp/util/query'; -import QueryInput from '@webapp/components/QueryInput/QueryInput'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; +} from '@phlare/ui/Dropdown'; +import { Query, brandQuery } from '@phlare/models/query'; +import Input from '@phlare/ui/Input'; +import { appendLabelToQuery } from '@phlare/util/query'; +import QueryInput from '@phlare/components/QueryInput/QueryInput'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; import styles from './TagsBar.module.scss'; interface TagsBarProps { @@ -119,7 +119,7 @@ function LabelsSubmenu({ // TODO: type this properly const [filter, setFilter] = useState>({}); - const GetTagValues = (labelName: string, t: typeof tags[1]) => { + const GetTagValues = (labelName: string, t: (typeof tags)[1]) => { const { type } = t; switch (type) { case 'loading': { diff --git a/public/app/components/TenantWall.tsx b/public/app/components/TenantWall.tsx index 64d97c1859..7cecc9ae0a 100644 --- a/public/app/components/TenantWall.tsx +++ b/public/app/components/TenantWall.tsx @@ -1,13 +1,13 @@ import React, { useEffect, useState } from 'react'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import TextField from '@webapp/ui/Form/TextField'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import TextField from '@phlare/ui/Form/TextField'; import { Dialog, DialogBody, DialogFooter, DialogHeader, -} from '@webapp/ui/Dialog'; -import Button from '@webapp/ui/Button'; +} from '@phlare/ui/Dialog'; +import Button from '@phlare/ui/Button'; import { checkTenancyIsRequired, selectTenancy, @@ -61,6 +61,8 @@ export function TenantWall({ children }: { children: React.ReactNode }) { return <>{memoedChildren}; } } + + return <>; } function SelectTenantIDDialog({ @@ -102,7 +104,7 @@ function SelectTenantIDDialog({

    Notice that if you migrated from a non-multitenant version, - data can be found under Tenant ID {'"'}anonymous{'"'}. + data can be found under Tenant ID {`"anonymous"`}.

    - , - document.getElementById(annotationMarkElementId) + ); } diff --git a/public/app/overrides/components/TimelineChart/ContextMenu.plugin.ts b/public/app/components/TimelineChart/ContextMenu.plugin.ts similarity index 100% rename from public/app/overrides/components/TimelineChart/ContextMenu.plugin.ts rename to public/app/components/TimelineChart/ContextMenu.plugin.ts diff --git a/og/webapp/javascript/components/TimelineChart/CrosshairSync.plugin.ts b/public/app/components/TimelineChart/CrosshairSync.plugin.ts similarity index 88% rename from og/webapp/javascript/components/TimelineChart/CrosshairSync.plugin.ts rename to public/app/components/TimelineChart/CrosshairSync.plugin.ts index 1feeeb447c..c11aa0f93e 100644 --- a/og/webapp/javascript/components/TimelineChart/CrosshairSync.plugin.ts +++ b/public/app/components/TimelineChart/CrosshairSync.plugin.ts @@ -13,9 +13,8 @@ type PlotWithCrosshairsSupport = jquery.flot.plot & (function ($) { function init(plot: PlotWithCrosshairsSupport) { function getOptions() { - return plot.getOptions() as jquery.flot.plotOptions & { - syncCrosshairsWith: typeof defaultOptions['syncCrosshairsWith']; - }; + return plot.getOptions() as jquery.flot.plotOptions & + typeof defaultOptions; } function accessExternalInstance(id: string) { @@ -26,7 +25,7 @@ type PlotWithCrosshairsSupport = jquery.flot.plot & } function onPlotHover( - syncCrosshairsWith: typeof defaultOptions['syncCrosshairsWith'], + syncCrosshairsWith: (typeof defaultOptions)['syncCrosshairsWith'], e: unknown, position: { x: number; y: number } ) { @@ -36,7 +35,7 @@ type PlotWithCrosshairsSupport = jquery.flot.plot & } function clearCrosshairs( - syncCrosshairsWith: typeof defaultOptions['syncCrosshairsWith'] + syncCrosshairsWith: (typeof defaultOptions)['syncCrosshairsWith'] ) { syncCrosshairsWith.forEach((id) => accessExternalInstance(id).clearCrosshair() @@ -87,6 +86,6 @@ type PlotWithCrosshairsSupport = jquery.flot.plot & }); })(jQuery); -// TS1208: 'CrosshairSync.plugin.ts' cannot be compiled under '--isolatedModules' because it is considered a global script file. +// TS1208: 'CrosshairSync.plugin.ts' cannot be compiled under '--isolatedModules' because it is considered a global script file. // Add an import, export, or an empty 'export {}' statement to make it a module. -export {}; \ No newline at end of file +export {}; diff --git a/og/webapp/javascript/components/TimelineChart/ExploreTooltip/index.tsx b/public/app/components/TimelineChart/ExploreTooltip/index.tsx similarity index 100% rename from og/webapp/javascript/components/TimelineChart/ExploreTooltip/index.tsx rename to public/app/components/TimelineChart/ExploreTooltip/index.tsx diff --git a/og/webapp/javascript/components/TimelineChart/Selection.plugin.ts b/public/app/components/TimelineChart/Selection.plugin.ts similarity index 95% rename from og/webapp/javascript/components/TimelineChart/Selection.plugin.ts rename to public/app/components/TimelineChart/Selection.plugin.ts index d27f7b4d9b..ed97b95bd7 100644 --- a/og/webapp/javascript/components/TimelineChart/Selection.plugin.ts +++ b/public/app/components/TimelineChart/Selection.plugin.ts @@ -133,9 +133,10 @@ type EventType = { pageX: number; pageY: number; which?: number }; function onMouseDown(e: EventType) { const options: IFlotOptions = plot.getOptions(); - if (e.which != 1) + if (e.which != 1) { // only accept left-click return; + } // cancel out any text selections document.body.focus(); @@ -205,16 +206,20 @@ type EventType = { pageX: number; pageY: number; which?: number }; mouseUpHandler = null; // revert drag stuff for old-school browsers - if (document.onselectstart !== undefined) + if (document.onselectstart !== undefined) { document.onselectstart = savedhandlers.onselectstart; - if (document.ondrag !== undefined) document.ondrag = savedhandlers.ondrag; + } + if (document.ondrag !== undefined) { + document.ondrag = savedhandlers.ondrag; + } // no more dragging selection.active = false; updateSelection(e); - if (selectionIsSane()) triggerSelectedEvent(); - else { + if (selectionIsSane()) { + triggerSelectedEvent(); + } else { // this counts as a clear placeholder.trigger('plotunselected', []); placeholder.trigger('plotselecting', [null]); @@ -226,9 +231,13 @@ type EventType = { pageX: number; pageY: number; which?: number }; } function getSelection() { - if (!selectionIsSane()) return null; + if (!selectionIsSane()) { + return null; + } - if (!selection.show) return null; + if (!selection.show) { + return null; + } const r: ShamefulAny = {}; const c1 = selection.first; @@ -249,7 +258,7 @@ type EventType = { pageX: number; pageY: number; which?: number }; placeholder.trigger('plotselected', [r]); // backwards-compat stuff, to be removed in future - if (r.xaxis && r.yaxis) + if (r.xaxis && r.yaxis) { placeholder.trigger('selected', [ { x1: r.xaxis.from, @@ -258,6 +267,7 @@ type EventType = { pageX: number; pageY: number; which?: number }; y2: r.yaxis.to, }, ]); + } } function setSelectionPos(pos: { x: number; y: number }, e: EventType) { @@ -267,28 +277,36 @@ type EventType = { pageX: number; pageY: number; which?: number }; pos.x = clamp(0, plot.width(), e.pageX - offset!.left - plotOffset.left); pos.y = clamp(0, plot.height(), e.pageY - offset!.top - plotOffset.top); - if (options?.selection?.mode == 'y') + if (options?.selection?.mode == 'y') { pos.x = pos == selection.first ? 0 : plot.width(); + } - if (options?.selection?.mode == 'x') + if (options?.selection?.mode == 'x') { pos.y = pos == selection.first ? 0 : plot.height(); + } } function updateSelection(pos: EventType) { - if (pos.pageX == null) return; + if (pos.pageX == null) { + return; + } setSelectionPos(selection.second, pos); if (selectionIsSane()) { selection.show = true; plot.triggerRedrawOverlay(); - } else clearSelection(true); + } else { + clearSelection(true); + } } function clearSelection(preventEvent: boolean) { if (selection.show) { selection.show = false; plot.triggerRedrawOverlay(); - if (!preventEvent) placeholder.trigger('plotunselected', []); + if (!preventEvent) { + placeholder.trigger('plotunselected', []); + } } } @@ -418,7 +436,9 @@ type EventType = { pageX: number; pageY: number; which?: number }; eventHolder.unbind('mousemove', onMouseMove); eventHolder.unbind('mousedown', onMouseDown); - if (mouseUpHandler) $(document).unbind('mouseup', mouseUpHandler); + if (mouseUpHandler) { + $(document).unbind('mouseup', mouseUpHandler); + } }); } diff --git a/og/webapp/javascript/components/TimelineChart/SyncTimelines/SyncTimelines.spec.tsx b/public/app/components/TimelineChart/SyncTimelines/SyncTimelines.spec.tsx similarity index 100% rename from og/webapp/javascript/components/TimelineChart/SyncTimelines/SyncTimelines.spec.tsx rename to public/app/components/TimelineChart/SyncTimelines/SyncTimelines.spec.tsx diff --git a/og/webapp/javascript/components/TimelineChart/SyncTimelines/getSelectionBoundaries.ts b/public/app/components/TimelineChart/SyncTimelines/getSelectionBoundaries.ts similarity index 90% rename from og/webapp/javascript/components/TimelineChart/SyncTimelines/getSelectionBoundaries.ts rename to public/app/components/TimelineChart/SyncTimelines/getSelectionBoundaries.ts index 4808da9272..a7da6c93f9 100644 --- a/og/webapp/javascript/components/TimelineChart/SyncTimelines/getSelectionBoundaries.ts +++ b/public/app/components/TimelineChart/SyncTimelines/getSelectionBoundaries.ts @@ -1,4 +1,4 @@ -import { formatAsOBject } from '@webapp/util/formatDate'; +import { formatAsOBject } from '@phlare/util/formatDate'; import { Selection } from '../markings'; export const getSelectionBoundaries = (selection: Selection) => { diff --git a/og/webapp/javascript/components/TimelineChart/SyncTimelines/index.tsx b/public/app/components/TimelineChart/SyncTimelines/index.tsx similarity index 89% rename from og/webapp/javascript/components/TimelineChart/SyncTimelines/index.tsx rename to public/app/components/TimelineChart/SyncTimelines/index.tsx index f660b8e248..0e7a8d5c8d 100644 --- a/og/webapp/javascript/components/TimelineChart/SyncTimelines/index.tsx +++ b/public/app/components/TimelineChart/SyncTimelines/index.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import Button from '@webapp/ui/Button'; -import { TimelineData } from '@webapp/components/TimelineChart/TimelineChartWrapper'; -import StatusMessage from '@webapp/ui/StatusMessage'; +import Button from '@phlare/ui/Button'; +import { TimelineData } from '@phlare/components/TimelineChart/TimelineChartWrapper'; +import StatusMessage from '@phlare/ui/StatusMessage'; import { useSync } from './useSync'; import styles from './styles.module.scss'; diff --git a/og/webapp/javascript/components/TimelineChart/SyncTimelines/styles.module.scss b/public/app/components/TimelineChart/SyncTimelines/styles.module.scss similarity index 100% rename from og/webapp/javascript/components/TimelineChart/SyncTimelines/styles.module.scss rename to public/app/components/TimelineChart/SyncTimelines/styles.module.scss diff --git a/og/webapp/javascript/components/TimelineChart/SyncTimelines/useSync.ts b/public/app/components/TimelineChart/SyncTimelines/useSync.ts similarity index 91% rename from og/webapp/javascript/components/TimelineChart/SyncTimelines/useSync.ts rename to public/app/components/TimelineChart/SyncTimelines/useSync.ts index 1910c7f761..d6ae909a97 100644 --- a/og/webapp/javascript/components/TimelineChart/SyncTimelines/useSync.ts +++ b/public/app/components/TimelineChart/SyncTimelines/useSync.ts @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; -import { centerTimelineData } from '@webapp/components/TimelineChart/centerTimelineData'; -import { TimelineData } from '@webapp/components/TimelineChart/TimelineChartWrapper'; -import { getSelectionBoundaries } from '@webapp/components/TimelineChart/SyncTimelines/getSelectionBoundaries'; +import { centerTimelineData } from '@phlare/components/TimelineChart/centerTimelineData'; +import { TimelineData } from '@phlare/components/TimelineChart/TimelineChartWrapper'; +import { getSelectionBoundaries } from '@phlare/components/TimelineChart/SyncTimelines/getSelectionBoundaries'; import { Selection } from '../markings'; interface UseSyncParams { @@ -51,7 +51,7 @@ export function useSync({ if (isIgnoring) { setIgnoring(false); } - }, [leftSelection, rightSelection, timeline]); + }, [isIgnoring, leftSelection, rightSelection, timeline]); const { from: leftFrom, to: leftTo } = getSelectionBoundaries( leftSelection as Selection diff --git a/og/webapp/javascript/components/TimelineChart/TimelineChart.tsx b/public/app/components/TimelineChart/TimelineChart.tsx similarity index 77% rename from og/webapp/javascript/components/TimelineChart/TimelineChart.tsx rename to public/app/components/TimelineChart/TimelineChart.tsx index be1129a544..9174e7acb7 100644 --- a/og/webapp/javascript/components/TimelineChart/TimelineChart.tsx +++ b/public/app/components/TimelineChart/TimelineChart.tsx @@ -4,13 +4,13 @@ import React from 'react'; import ReactFlot from 'react-flot'; import 'react-flot/flot/jquery.flot.time.min'; -import '@webapp/components/TimelineChart/Selection.plugin'; +import '@phlare/components/TimelineChart/Selection.plugin'; import 'react-flot/flot/jquery.flot.crosshair'; -import '@webapp/components/TimelineChart/TimelineChartPlugin'; -import '@webapp/components/TimelineChart/Tooltip.plugin'; -import '@webapp/components/TimelineChart/Annotations.plugin'; -import '@webapp/components/TimelineChart/ContextMenu.plugin'; -import '@webapp/components/TimelineChart/CrosshairSync.plugin'; +import '@phlare/components/TimelineChart/TimelineChartPlugin'; +import '@phlare/components/TimelineChart/Tooltip.plugin'; +import '@phlare/components/TimelineChart/Annotations.plugin'; +import '@phlare/components/TimelineChart/ContextMenu.plugin'; +import '@phlare/components/TimelineChart/CrosshairSync.plugin'; interface TimelineChartProps { onSelect: (from: string, until: string) => void; diff --git a/og/webapp/javascript/components/TimelineChart/TimelineChartPlugin.ts b/public/app/components/TimelineChart/TimelineChartPlugin.ts similarity index 98% rename from og/webapp/javascript/components/TimelineChart/TimelineChartPlugin.ts rename to public/app/components/TimelineChart/TimelineChartPlugin.ts index 4ed78a51bf..3e31fff59c 100644 --- a/og/webapp/javascript/components/TimelineChart/TimelineChartPlugin.ts +++ b/public/app/components/TimelineChart/TimelineChartPlugin.ts @@ -27,7 +27,9 @@ import getFormatLabel from './getFormatLabel'; const { xaxis } = plot.getAxes(); this.tooltipY = target.currentTarget.getBoundingClientRect().bottom - 28; - if (!position.x) return; + if (!position.x) { + return; + } if (!this.selecting) { this.selectingFrom = { label: getFormatLabel({ @@ -142,7 +144,9 @@ import getFormatLabel from './getFormatLabel'; }; const createDomElement = () => { - if (this.$tooltip) return; + if (this.$tooltip) { + return; + } const tooltipStyle = { background: '#fff', color: 'black', diff --git a/og/webapp/javascript/components/TimelineChart/TimelineChartWrapper.module.css b/public/app/components/TimelineChart/TimelineChartWrapper.module.css similarity index 100% rename from og/webapp/javascript/components/TimelineChart/TimelineChartWrapper.module.css rename to public/app/components/TimelineChart/TimelineChartWrapper.module.css diff --git a/og/webapp/javascript/components/TimelineChart/TimelineChartWrapper.tsx b/public/app/components/TimelineChart/TimelineChartWrapper.tsx similarity index 92% rename from og/webapp/javascript/components/TimelineChart/TimelineChartWrapper.tsx rename to public/app/components/TimelineChart/TimelineChartWrapper.tsx index 9ab6cb6792..566173d5c9 100644 --- a/og/webapp/javascript/components/TimelineChart/TimelineChartWrapper.tsx +++ b/public/app/components/TimelineChart/TimelineChartWrapper.tsx @@ -4,19 +4,19 @@ import React, { ReactNode } from 'react'; import Color from 'color'; import type { Group } from '@pyroscope/models/src'; -import type { Timeline } from '@webapp/models/timeline'; -import { Annotation } from '@webapp/models/annotation'; -import Legend from '@webapp/pages/tagExplorer/components/Legend'; -import type { TooltipCallbackProps } from '@webapp/components/TimelineChart/Tooltip.plugin'; -import TooltipWrapper from '@webapp/components/TimelineChart/TooltipWrapper'; -import type { ITooltipWrapperProps } from '@webapp/components/TimelineChart/TooltipWrapper'; -import TimelineChart from '@webapp/components/TimelineChart/TimelineChart'; -import { ContextMenuProps } from '@webapp/components/TimelineChart/ContextMenu.plugin'; +import type { Timeline } from '@phlare/models/timeline'; +import { Annotation } from '@phlare/models/annotation'; +import Legend from '@phlare/pages/tagExplorer/components/Legend'; +import type { TooltipCallbackProps } from '@phlare/components/TimelineChart/Tooltip.plugin'; +import TooltipWrapper from '@phlare/components/TimelineChart/TooltipWrapper'; +import type { TooltipWrapperProps } from '@phlare/components/TimelineChart/TooltipWrapper'; +import TimelineChart from '@phlare/components/TimelineChart/TimelineChart'; +import { ContextMenuProps } from '@phlare/components/TimelineChart/ContextMenu.plugin'; import { markingsFromSelection, ANNOTATION_COLOR, -} from '@webapp/components/TimelineChart/markings'; -import { centerTimelineData } from '@webapp/components/TimelineChart/centerTimelineData'; +} from '@phlare/components/TimelineChart/markings'; +import { centerTimelineData } from '@phlare/components/TimelineChart/centerTimelineData'; import styles from './TimelineChartWrapper.module.css'; export interface TimelineGroupData { @@ -132,13 +132,12 @@ class TimelineChartWrapper extends React.Component< overlayColor: props.selectionType === 'double' ? undefined - : props?.selection?.['right']?.overlayColor || - props?.selection?.['left']?.overlayColor, + : props?.selection?.right?.overlayColor || + props?.selection?.left?.overlayColor, boundaryColor: props.selectionType === 'double' ? undefined - : props?.selection?.['right']?.color || - props?.selection?.['left']?.color, + : props?.selection?.right?.color || props?.selection?.left?.color, }, crosshair: { mode: 'x', @@ -255,7 +254,7 @@ class TimelineChartWrapper extends React.Component< }; setOnHoverDisplayTooltip = ( - data: ITooltipWrapperProps & TooltipCallbackProps + data: TooltipWrapperProps & TooltipCallbackProps ) => { const tooltipContent = []; @@ -294,7 +293,7 @@ class TimelineChartWrapper extends React.Component< // TODO: unify with renderSingle const onHoverDisplayTooltip = ( - data: ITooltipWrapperProps & TooltipCallbackProps + data: TooltipWrapperProps & TooltipCallbackProps ) => this.setOnHoverDisplayTooltip(data); const customFlotOptions = { @@ -341,7 +340,7 @@ class TimelineChartWrapper extends React.Component< // TODO: unify with renderMultiple const onHoverDisplayTooltip = ( - data: ITooltipWrapperProps & TooltipCallbackProps + data: TooltipWrapperProps & TooltipCallbackProps ) => this.setOnHoverDisplayTooltip(data); const customFlotOptions = { @@ -403,7 +402,7 @@ class TimelineChartWrapper extends React.Component< }; timelineChart = ( - data: ({ data: number[][]; color?: string | Color } | undefined)[], + data: Array<{ data: number[][]; color?: string | Color } | undefined>, customFlotOptions: ShamefulAny ) => { return ( diff --git a/public/app/overrides/components/TimelineChart/Tooltip.plugin.ts b/public/app/components/TimelineChart/Tooltip.plugin.ts similarity index 100% rename from public/app/overrides/components/TimelineChart/Tooltip.plugin.ts rename to public/app/components/TimelineChart/Tooltip.plugin.ts diff --git a/og/webapp/javascript/components/TimelineChart/TooltipWrapper/index.tsx b/public/app/components/TimelineChart/TooltipWrapper/index.tsx similarity index 93% rename from og/webapp/javascript/components/TimelineChart/TooltipWrapper/index.tsx rename to public/app/components/TimelineChart/TooltipWrapper/index.tsx index 4e7ffc2e81..c7342716c6 100644 --- a/og/webapp/javascript/components/TimelineChart/TooltipWrapper/index.tsx +++ b/public/app/components/TimelineChart/TooltipWrapper/index.tsx @@ -6,7 +6,7 @@ const cx = classNames.bind(styles); const EXPLORE_TOOLTIP_WRAPPER_ID = 'explore_tooltip_wrapper'; -export interface ITooltipWrapperProps { +export interface TooltipWrapperProps { pageX: number; pageY: number; align: 'left' | 'right'; @@ -20,7 +20,7 @@ const TooltipWrapper = ({ pageY, align, children, -}: ITooltipWrapperProps) => { +}: TooltipWrapperProps) => { const isHidden = useMemo(() => pageX < 0 || pageY < 0, [pageX, pageY]); const style = diff --git a/og/webapp/javascript/components/TimelineChart/TooltipWrapper/styles.module.scss b/public/app/components/TimelineChart/TooltipWrapper/styles.module.scss similarity index 100% rename from og/webapp/javascript/components/TimelineChart/TooltipWrapper/styles.module.scss rename to public/app/components/TimelineChart/TooltipWrapper/styles.module.scss diff --git a/og/webapp/javascript/components/TimelineChart/centerTimelineData.ts b/public/app/components/TimelineChart/centerTimelineData.ts similarity index 93% rename from og/webapp/javascript/components/TimelineChart/centerTimelineData.ts rename to public/app/components/TimelineChart/centerTimelineData.ts index 0eebc3f0ee..7786114b6d 100644 --- a/og/webapp/javascript/components/TimelineChart/centerTimelineData.ts +++ b/public/app/components/TimelineChart/centerTimelineData.ts @@ -1,4 +1,4 @@ -import type { Timeline } from '@webapp/models/timeline'; +import type { Timeline } from '@phlare/models/timeline'; export interface TimelineData { data?: Timeline; diff --git a/og/webapp/javascript/components/TimelineChart/clamp.spec.ts b/public/app/components/TimelineChart/clamp.spec.ts similarity index 100% rename from og/webapp/javascript/components/TimelineChart/clamp.spec.ts rename to public/app/components/TimelineChart/clamp.spec.ts diff --git a/og/webapp/javascript/components/TimelineChart/clamp.ts b/public/app/components/TimelineChart/clamp.ts similarity index 100% rename from og/webapp/javascript/components/TimelineChart/clamp.ts rename to public/app/components/TimelineChart/clamp.ts diff --git a/og/webapp/javascript/components/TimelineChart/extractRange.ts b/public/app/components/TimelineChart/extractRange.ts similarity index 100% rename from og/webapp/javascript/components/TimelineChart/extractRange.ts rename to public/app/components/TimelineChart/extractRange.ts diff --git a/og/webapp/javascript/components/TimelineChart/getFormatLabel.spec.ts b/public/app/components/TimelineChart/getFormatLabel.spec.ts similarity index 100% rename from og/webapp/javascript/components/TimelineChart/getFormatLabel.spec.ts rename to public/app/components/TimelineChart/getFormatLabel.spec.ts diff --git a/og/webapp/javascript/components/TimelineChart/getFormatLabel.ts b/public/app/components/TimelineChart/getFormatLabel.ts similarity index 88% rename from og/webapp/javascript/components/TimelineChart/getFormatLabel.ts rename to public/app/components/TimelineChart/getFormatLabel.ts index 4fddef5c3e..d8b0c58668 100644 --- a/og/webapp/javascript/components/TimelineChart/getFormatLabel.ts +++ b/public/app/components/TimelineChart/getFormatLabel.ts @@ -1,4 +1,4 @@ -import { getUTCdate, getTimelineFormatDate } from '@webapp/util/formatDate'; +import { getUTCdate, getTimelineFormatDate } from '@phlare/util/formatDate'; function getFormatLabel({ date, diff --git a/og/webapp/javascript/components/TimelineChart/injectTooltip.ts b/public/app/components/TimelineChart/injectTooltip.ts similarity index 100% rename from og/webapp/javascript/components/TimelineChart/injectTooltip.ts rename to public/app/components/TimelineChart/injectTooltip.ts diff --git a/og/webapp/javascript/components/TimelineChart/markings.spec.ts b/public/app/components/TimelineChart/markings.spec.ts similarity index 95% rename from og/webapp/javascript/components/TimelineChart/markings.spec.ts rename to public/app/components/TimelineChart/markings.spec.ts index 1445aa4724..e5ea210cb3 100644 --- a/og/webapp/javascript/components/TimelineChart/markings.spec.ts +++ b/public/app/components/TimelineChart/markings.spec.ts @@ -52,19 +52,19 @@ describe('markingsFromSelection', () => { markingsFromSelection('double', { from: `${from}`, to: `${to}`, - color: color, + color, overlayColor: color, }) ).toStrictEqual([ { - color: color, + color, xaxis: { from: from * 1000, to: to * 1000, }, }, { - color: color, + color, lineWidth: 1, xaxis: { from: from * 1000, @@ -72,7 +72,7 @@ describe('markingsFromSelection', () => { }, }, { - color: color, + color, lineWidth: 1, xaxis: { from: to * 1000, diff --git a/og/webapp/javascript/components/TimelineChart/markings.ts b/public/app/components/TimelineChart/markings.ts similarity index 95% rename from og/webapp/javascript/components/TimelineChart/markings.ts rename to public/app/components/TimelineChart/markings.ts index 8667c1db02..c843918df0 100644 --- a/og/webapp/javascript/components/TimelineChart/markings.ts +++ b/public/app/components/TimelineChart/markings.ts @@ -1,10 +1,10 @@ -import { formatAsOBject } from '@webapp/util/formatDate'; +import { formatAsOBject } from '@phlare/util/formatDate'; import Color from 'color'; // Same green as button export const ANNOTATION_COLOR = Color('#2ecc40'); -type FlotMarkings = { +type FlotMarkings = Array<{ xaxis: { from: number; to: number; @@ -14,7 +14,7 @@ type FlotMarkings = { to: number; }; color: Color; -}[]; +}>; // Unify these types export interface Selection { diff --git a/og/webapp/javascript/components/TimelineTooltip.module.css b/public/app/components/TimelineTooltip.module.css similarity index 100% rename from og/webapp/javascript/components/TimelineTooltip.module.css rename to public/app/components/TimelineTooltip.module.css diff --git a/og/webapp/javascript/components/TimelineTooltip.tsx b/public/app/components/TimelineTooltip.tsx similarity index 98% rename from og/webapp/javascript/components/TimelineTooltip.tsx rename to public/app/components/TimelineTooltip.tsx index c57d52f48c..460849525f 100644 --- a/og/webapp/javascript/components/TimelineTooltip.tsx +++ b/public/app/components/TimelineTooltip.tsx @@ -4,11 +4,11 @@ import styles from './TimelineTooltip.module.css'; export interface TimelineTooltipProps { timeLabel: string; - items: { + items: Array<{ color?: Color; value: string; label: string; - }[]; + }>; } // TimelineTooltip is a generic tooltip to be used with the timeline diff --git a/og/webapp/javascript/components/Toolbar.module.css b/public/app/components/Toolbar.module.css similarity index 100% rename from og/webapp/javascript/components/Toolbar.module.css rename to public/app/components/Toolbar.module.css diff --git a/public/app/overrides/components/Toolbar.tsx b/public/app/components/Toolbar.tsx similarity index 78% rename from public/app/overrides/components/Toolbar.tsx rename to public/app/components/Toolbar.tsx index 000e1b605c..cb5eabcc51 100644 --- a/public/app/overrides/components/Toolbar.tsx +++ b/public/app/components/Toolbar.tsx @@ -1,21 +1,21 @@ import React from 'react'; import 'react-dom'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; -import { Query } from '@webapp/models/query'; +import { useAppSelector, useAppDispatch } from '@phlare/redux/hooks'; +import { Query } from '@phlare/models/query'; import { selectApps, reloadAppNames, selectQueries, selectAppNamesState, -} from '@webapp/redux/reducers/continuous'; +} from '@phlare/redux/reducers/continuous'; import { faSyncAlt } from '@fortawesome/free-solid-svg-icons/faSyncAlt'; -import Button from '@webapp/ui/Button'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; -import DateRangePicker from '@webapp/components/DateRangePicker'; -import RefreshButton from '@webapp/components/RefreshButton'; +import Button from '@phlare/ui/Button'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; +import DateRangePicker from '@phlare/components/DateRangePicker'; +import RefreshButton from '@phlare/components/RefreshButton'; import { AppSelector } from '@phlare/components/AppSelector/AppSelector'; -import styles from '@pyroscope/webapp/javascript/components/Toolbar.module.css'; +import styles from './Toolbar.module.css'; interface ToolbarProps { /** callback to be called when an app is selected via the dropdown */ diff --git a/og/webapp/javascript/components/exportToFlamegraphDotCom.hook.ts b/public/app/components/exportToFlamegraphDotCom.hook.ts similarity index 78% rename from og/webapp/javascript/components/exportToFlamegraphDotCom.hook.ts rename to public/app/components/exportToFlamegraphDotCom.hook.ts index 727c9b2951..42b15d1179 100644 --- a/og/webapp/javascript/components/exportToFlamegraphDotCom.hook.ts +++ b/public/app/components/exportToFlamegraphDotCom.hook.ts @@ -1,7 +1,7 @@ import { Profile } from '@pyroscope/models/src'; -import { shareWithFlamegraphDotcom } from '@webapp/services/share'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import handleError from '@webapp/util/handleError'; +import { shareWithFlamegraphDotcom } from '@phlare/services/share'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import handleError from '@phlare/util/handleError'; export default function useExportToFlamegraphDotCom( flamebearer?: Profile, diff --git a/og/webapp/javascript/hooks/colorMode.hook.ts b/public/app/hooks/colorMode.hook.ts similarity index 73% rename from og/webapp/javascript/hooks/colorMode.hook.ts rename to public/app/hooks/colorMode.hook.ts index 2c5664287d..1c05a76b65 100644 --- a/og/webapp/javascript/hooks/colorMode.hook.ts +++ b/public/app/hooks/colorMode.hook.ts @@ -1,14 +1,16 @@ -import { useEffect } from 'react'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; -import { setColorMode, selectAppColorMode } from '@webapp/redux/reducers/ui'; +import { useCallback, useEffect } from 'react'; +import { useAppSelector, useAppDispatch } from '@phlare/redux/hooks'; +import { setColorMode, selectAppColorMode } from '@phlare/redux/reducers/ui'; const useColorMode = () => { const dispatch = useAppDispatch(); const colorMode = useAppSelector(selectAppColorMode); const { body } = document; - const changeColorMode = (newColorMode: 'light' | 'dark') => - dispatch(setColorMode(newColorMode)); + const changeColorMode = useCallback( + (newColorMode: 'light' | 'dark') => dispatch(setColorMode(newColorMode)), + [dispatch] + ); useEffect(() => { // sync data-theme attr with redux value @@ -36,14 +38,14 @@ const useColorMode = () => { return () => { observer.disconnect(); }; - }, []); + }, [body, changeColorMode, colorMode]); useEffect(() => { // sync redux value with DOM body attr if (body.dataset.theme !== colorMode) { body.dataset.theme = colorMode; } - }, [colorMode]); + }, [colorMode, body, body.dataset]); return { colorMode, diff --git a/og/webapp/javascript/hooks/flamegraphSharedQuery.hook.ts b/public/app/hooks/flamegraphSharedQuery.hook.ts similarity index 100% rename from og/webapp/javascript/hooks/flamegraphSharedQuery.hook.ts rename to public/app/hooks/flamegraphSharedQuery.hook.ts diff --git a/og/webapp/javascript/hooks/navigateUserIntroPages.hook.ts b/public/app/hooks/navigateUserIntroPages.hook.ts similarity index 75% rename from og/webapp/javascript/hooks/navigateUserIntroPages.hook.ts rename to public/app/hooks/navigateUserIntroPages.hook.ts index c4850ab6e6..45403ff612 100644 --- a/og/webapp/javascript/hooks/navigateUserIntroPages.hook.ts +++ b/public/app/hooks/navigateUserIntroPages.hook.ts @@ -1,11 +1,11 @@ import { useEffect } from 'react'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { loadCurrentUser, selectCurrentUser, -} from '@webapp/redux/reducers/user'; +} from '@phlare/redux/reducers/user'; import { useHistory } from 'react-router-dom'; -import { PAGES } from '@webapp/pages/constants'; +import { PAGES } from '@phlare/pages/constants'; export default function useNavigateUserIntroPages() { const dispatch = useAppDispatch(); @@ -15,12 +15,12 @@ export default function useNavigateUserIntroPages() { // loading user on page mount useEffect(() => { dispatch(loadCurrentUser()); - }, []); + }, [dispatch]); // there are cases when user doesn't exist on page mount // but appears after submitting login/signup form useEffect(() => { if (currentUser) { history.push(PAGES.CONTINOUS_SINGLE_VIEW); } - }, [currentUser]); + }, [history, currentUser]); } diff --git a/og/webapp/javascript/hooks/populateLeftRightQuery.hook.ts b/public/app/hooks/populateLeftRightQuery.hook.ts similarity index 81% rename from og/webapp/javascript/hooks/populateLeftRightQuery.hook.ts rename to public/app/hooks/populateLeftRightQuery.hook.ts index 155ebf6b85..d4b07d7785 100644 --- a/og/webapp/javascript/hooks/populateLeftRightQuery.hook.ts +++ b/public/app/hooks/populateLeftRightQuery.hook.ts @@ -1,7 +1,7 @@ import { useEffect } from 'react'; -import { actions, selectQueries } from '@webapp/redux/reducers/continuous'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import { queryToAppName, Query } from '@webapp/models/query'; +import { actions, selectQueries } from '@phlare/redux/reducers/continuous'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import { queryToAppName, Query } from '@phlare/models/query'; function isQueriesHasSameApp(queries: Query[]): boolean { const appName = queryToAppName(queries[0]); @@ -29,5 +29,5 @@ export default function usePopulateLeftRightQuery() { dispatch(actions.setRightQuery(query)); dispatch(actions.setLeftQuery(query)); } - }, [shouldResetQuery]); + }, [dispatch, query, shouldResetQuery]); } diff --git a/og/webapp/javascript/hooks/tags.hook.ts b/public/app/hooks/tags.hook.ts similarity index 75% rename from og/webapp/javascript/hooks/tags.hook.ts rename to public/app/hooks/tags.hook.ts index 7e5ef77173..79b99b7fdb 100644 --- a/og/webapp/javascript/hooks/tags.hook.ts +++ b/public/app/hooks/tags.hook.ts @@ -1,11 +1,11 @@ import { useEffect } from 'react'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { fetchTags, selectRanges, selectQueries, selectAppTags, -} from '@webapp/redux/reducers/continuous'; +} from '@phlare/redux/reducers/continuous'; // useTags handle loading tags when any of the following changes // query, from, until @@ -24,19 +24,19 @@ export default function useTags() { if (leftQuery) { dispatch(fetchTags(leftQuery)); } - }, [leftQuery, JSON.stringify(ranges.left)]); + }, [dispatch, leftQuery, ranges.left.from, ranges.right.until]); useEffect(() => { if (rightQuery) { dispatch(fetchTags(rightQuery)); } - }, [rightQuery, JSON.stringify(ranges.right)]); + }, [dispatch, rightQuery, ranges.right.from, ranges.right.until]); useEffect(() => { if (query) { dispatch(fetchTags(query)); } - }, [query, JSON.stringify(ranges.regular)]); + }, [dispatch, query, ranges.regular.from, ranges.regular.until]); return { regularTags, diff --git a/og/webapp/javascript/hooks/timeZone.hook.ts b/public/app/hooks/timeZone.hook.ts similarity index 89% rename from og/webapp/javascript/hooks/timeZone.hook.ts rename to public/app/hooks/timeZone.hook.ts index 4550411343..edccc733ae 100644 --- a/og/webapp/javascript/hooks/timeZone.hook.ts +++ b/public/app/hooks/timeZone.hook.ts @@ -1,11 +1,11 @@ /* eslint-disable prefer-template */ /* eslint-disable @typescript-eslint/restrict-plus-operands */ import { useEffect, useMemo } from 'react'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { changeTimeZoneOffset, selectTimezoneOffset, -} from '@webapp/redux/reducers/ui'; +} from '@phlare/redux/reducers/ui'; export default function useTimeZone() { const dispatch = useAppDispatch(); @@ -16,7 +16,7 @@ export default function useTimeZone() { if (typeof selectedOffset !== 'number') { dispatch(changeTimeZoneOffset(offset)); } - }, []); + }, [dispatch, offset, selectedOffset]); const browserTimeLabel = useMemo(() => { const absOffset = Math.abs(offset); diff --git a/og/webapp/javascript/hooks/timeline.hook.ts b/public/app/hooks/timeline.hook.ts similarity index 85% rename from og/webapp/javascript/hooks/timeline.hook.ts rename to public/app/hooks/timeline.hook.ts index 496c2ba0e5..b0825c2533 100644 --- a/og/webapp/javascript/hooks/timeline.hook.ts +++ b/public/app/hooks/timeline.hook.ts @@ -1,10 +1,10 @@ import { useEffect } from 'react'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { fetchSideTimelines, selectContinuousState, selectTimelineSidesData, -} from '@webapp/redux/reducers/continuous'; +} from '@phlare/redux/reducers/continuous'; import Color from 'color'; // Purple @@ -32,7 +32,7 @@ export default function useTimelines() { if (leftQuery && rightQuery) { dispatch(fetchSideTimelines(null)); } - }, [from, until, refreshToken, maxNodes, leftQuery, rightQuery]); + }, [dispatch, from, until, refreshToken, maxNodes, leftQuery, rightQuery]); const leftTimeline = { color: leftColor.rgb().toString(), diff --git a/public/app/hooks/useAppNames.ts b/public/app/hooks/useAppNames.ts index bf70ac66ed..e10887b27e 100644 --- a/public/app/hooks/useAppNames.ts +++ b/public/app/hooks/useAppNames.ts @@ -1,7 +1,7 @@ import { useEffect } from 'react'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import { setQuery, reloadAppNames } from '@webapp/redux/reducers/continuous'; -import { appToQuery } from '@webapp/models/app'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import { setQuery, reloadAppNames } from '@phlare/redux/reducers/continuous'; +import { appToQuery } from '@phlare/models/app'; /** * loads and select the first app/type (if available) diff --git a/og/webapp/images/comment.svg b/public/app/images/comment.svg similarity index 100% rename from og/webapp/images/comment.svg rename to public/app/images/comment.svg diff --git a/og/webapp/images/favicon.ico b/public/app/images/favicon.ico similarity index 100% rename from og/webapp/images/favicon.ico rename to public/app/images/favicon.ico diff --git a/og/webapp/images/logo-v3-small.png b/public/app/images/logo-v3-small.png similarity index 100% rename from og/webapp/images/logo-v3-small.png rename to public/app/images/logo-v3-small.png diff --git a/og/webapp/images/logo-v3-small.svg b/public/app/images/logo-v3-small.svg similarity index 100% rename from og/webapp/images/logo-v3-small.svg rename to public/app/images/logo-v3-small.svg diff --git a/og/webapp/javascript/types/flot.d.ts b/public/app/lib/flot.d.ts similarity index 100% rename from og/webapp/javascript/types/flot.d.ts rename to public/app/lib/flot.d.ts diff --git a/public/app/lib/global.d.ts b/public/app/lib/global.d.ts new file mode 100644 index 0000000000..f3499d2590 --- /dev/null +++ b/public/app/lib/global.d.ts @@ -0,0 +1,2 @@ +// https://stackoverflow.com/a/60029264 +declare module '*.module.css'; diff --git a/public/app/lib/globals.tsx b/public/app/lib/globals.tsx new file mode 100644 index 0000000000..7b26a3d64e --- /dev/null +++ b/public/app/lib/globals.tsx @@ -0,0 +1,10 @@ +import jquery from 'jquery'; + +interface Window { + jQuery?: unknown; + $?: unknown; +} + +// Used by react-flot/flotjs +(window as Window).jQuery = jquery; +(window as Window).$ = jquery; diff --git a/public/app/lib/types.d.ts b/public/app/lib/types.d.ts new file mode 100644 index 0000000000..11213ac68b --- /dev/null +++ b/public/app/lib/types.d.ts @@ -0,0 +1,36 @@ +// https://github.com/Connormiha/jest-css-modules-transform/issues/33 +declare module '*.module.css' { + const classes: { [key: string]: string }; + export default classes; +} + +declare module '*.module.scss' { + const classes: { [key: string]: string }; + export default classes; +} + +declare module '*.module.sass' { + const classes: { [key: string]: string }; + export default classes; +} + +declare module '*.module.less' { + const classes: { [key: string]: string }; + export default classes; +} + +declare module '*.module.styl' { + const classes: { [key: string]: string }; + export default classes; +} + +// https://stackoverflow.com/a/45887328 +declare module '*.svg' { + const content: ShamefulAny; + export default content; +} + +declare module '*.gif' { + const content: ShamefulAny; + export default content; +} diff --git a/og/webapp/javascript/models/adhoc.ts b/public/app/models/adhoc.ts similarity index 100% rename from og/webapp/javascript/models/adhoc.ts rename to public/app/models/adhoc.ts diff --git a/og/webapp/javascript/models/annotation.ts b/public/app/models/annotation.ts similarity index 100% rename from og/webapp/javascript/models/annotation.ts rename to public/app/models/annotation.ts diff --git a/og/webapp/javascript/models/apikeys.ts b/public/app/models/apikeys.ts similarity index 100% rename from og/webapp/javascript/models/apikeys.ts rename to public/app/models/apikeys.ts diff --git a/public/app/overrides/models/app.spec.ts b/public/app/models/app.spec.ts similarity index 93% rename from public/app/overrides/models/app.spec.ts rename to public/app/models/app.spec.ts index bad1c0fbdf..4bf28ebfdb 100644 --- a/public/app/overrides/models/app.spec.ts +++ b/public/app/models/app.spec.ts @@ -1,4 +1,4 @@ -import { brandQuery } from '@webapp/models/query'; +import { brandQuery } from '@phlare/models/query'; import { appToQuery, appFromQuery } from './app'; it('converts an App to a query', () => { diff --git a/public/app/overrides/models/app.ts b/public/app/models/app.ts similarity index 87% rename from public/app/overrides/models/app.ts rename to public/app/models/app.ts index 191a3732f6..21e82263c8 100644 --- a/public/app/overrides/models/app.ts +++ b/public/app/models/app.ts @@ -1,4 +1,5 @@ -import { parse, brandQuery, Query } from '@webapp/models/query'; +import { parse, brandQuery, Query } from '@phlare/models/query'; +import { SpyNameSchema, UnitsSchema } from '@pyroscope/models/src'; import { z } from 'zod'; export const PyroscopeAppLabel = 'pyroscope_app'; @@ -57,6 +58,7 @@ function enhanceWithName< } export type App = z.infer; + export type BasicApp = z.infer; // Given a query returns an App @@ -94,3 +96,15 @@ export function appToQuery(app: z.infer): Query { `${app.__profile_type__}{${app.__name_id__}="${app[app.__name_id__]}"}` ); } + +// TODO old App type +// +// export type App = z.infer; + +export const appModel = z.object({ + name: z.string(), + spyName: SpyNameSchema, + units: UnitsSchema, +}); + +export const appsModel = z.array(appModel); diff --git a/og/webapp/javascript/models/appNames.ts b/public/app/models/appNames.ts similarity index 100% rename from og/webapp/javascript/models/appNames.ts rename to public/app/models/appNames.ts diff --git a/og/webapp/javascript/models/flamebearer.ts b/public/app/models/flamebearer.ts similarity index 97% rename from og/webapp/javascript/models/flamebearer.ts rename to public/app/models/flamebearer.ts index 3f39a2e8f8..5eb7632b56 100644 --- a/og/webapp/javascript/models/flamebearer.ts +++ b/public/app/models/flamebearer.ts @@ -1,5 +1,5 @@ import { Units } from '@pyroscope/models/src'; -import { deltaDiffWrapper } from '@webapp/util/flamebearer'; +import { deltaDiffWrapper } from '@phlare/util/flamebearer'; export type Flamebearer = { /** diff --git a/og/webapp/javascript/models/flamegraphDotComResponse.ts b/public/app/models/flamegraphDotComResponse.ts similarity index 90% rename from og/webapp/javascript/models/flamegraphDotComResponse.ts rename to public/app/models/flamegraphDotComResponse.ts index 4ae97b5f36..4b6f4e461e 100644 --- a/og/webapp/javascript/models/flamegraphDotComResponse.ts +++ b/public/app/models/flamegraphDotComResponse.ts @@ -1,5 +1,5 @@ import { z, ZodError } from 'zod'; -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import { modelToResult } from './utils'; export const flamegraphDotComResponseScheme = z.object({ diff --git a/public/app/overrides/models/query.spec.ts b/public/app/models/query.spec.ts similarity index 95% rename from public/app/overrides/models/query.spec.ts rename to public/app/models/query.spec.ts index 570b0678e3..c997039889 100644 --- a/public/app/overrides/models/query.spec.ts +++ b/public/app/models/query.spec.ts @@ -1,4 +1,4 @@ -import { brandQuery, parse } from '@webapp/models/query'; +import { brandQuery, parse } from '@phlare/models/query'; const cases: Array< [string, { profileId: string; tags?: Record } | undefined] diff --git a/public/app/overrides/models/query.ts b/public/app/models/query.ts similarity index 53% rename from public/app/overrides/models/query.ts rename to public/app/models/query.ts index 8a5c693c81..f4fc497739 100644 --- a/public/app/overrides/models/query.ts +++ b/public/app/models/query.ts @@ -1,6 +1,4 @@ -import { Query } from '@pyroscope/webapp/javascript/models/query'; - -export * from '@pyroscope/webapp/javascript/models/query'; +import { Maybe } from '@phlare/util/fp'; // ParseQuery parses a string of $app_name<{<$tag_matchers>}> form. // It assumes the query is well formed @@ -11,7 +9,7 @@ export function parse(query: Query): } | undefined { const regex = /(.+){(.*)}/; - const match = query.match(regex); + const match = query?.match?.(regex); if (!match) { // TODO: return a Nothing() ? @@ -41,3 +39,34 @@ function parseTags(s: string) { return matches; } + +// Nominal typing +// https://basarat.gitbook.io/typescript/main-1/nominaltyping +enum QueryBrand { + _ = '', +} +export type Query = QueryBrand & string; + +export function brandQuery(query: string) { + return query as unknown as Query; +} + +export function queryFromAppName(appName: string): Query { + return `${appName}{}` as unknown as Query; +} + +export function queryToAppName(q: Query): Maybe { + const query: string = q; + + if (!query || !query.length) { + return Maybe.nothing(); + } + + const rep = query.replace(/\{.*/g, ''); + + if (!rep.length) { + return Maybe.nothing(); + } + + return Maybe.just(rep); +} diff --git a/og/webapp/javascript/models/tags.ts b/public/app/models/tags.ts similarity index 100% rename from og/webapp/javascript/models/tags.ts rename to public/app/models/tags.ts diff --git a/og/webapp/javascript/models/targets.ts b/public/app/models/targets.ts similarity index 100% rename from og/webapp/javascript/models/targets.ts rename to public/app/models/targets.ts diff --git a/og/webapp/javascript/models/timeline.ts b/public/app/models/timeline.ts similarity index 100% rename from og/webapp/javascript/models/timeline.ts rename to public/app/models/timeline.ts diff --git a/og/webapp/javascript/models/users.ts b/public/app/models/users.ts similarity index 96% rename from og/webapp/javascript/models/users.ts rename to public/app/models/users.ts index e9c59584e3..2ee04f0669 100644 --- a/og/webapp/javascript/models/users.ts +++ b/public/app/models/users.ts @@ -1,5 +1,5 @@ import { z, ZodError } from 'zod'; -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import { modelToResult } from './utils'; const zDateTime = z.string().transform((value: string | number | Date) => { diff --git a/og/webapp/javascript/models/utils.spec.ts b/public/app/models/utils.spec.ts similarity index 85% rename from og/webapp/javascript/models/utils.spec.ts rename to public/app/models/utils.spec.ts index 923f9bed29..b7445b6a60 100644 --- a/og/webapp/javascript/models/utils.spec.ts +++ b/public/app/models/utils.spec.ts @@ -1,6 +1,6 @@ import { z, ZodError } from 'zod'; -import { Result } from '@webapp/util/fp'; -import { modelToResult } from '@webapp/models/utils'; +import { Result } from '@phlare/util/fp'; +import { modelToResult } from '@phlare/models/utils'; const fooModel = z.array(z.string()); diff --git a/og/webapp/javascript/models/utils.ts b/public/app/models/utils.ts similarity index 91% rename from og/webapp/javascript/models/utils.ts rename to public/app/models/utils.ts index 62b4c8082d..68c53c4039 100644 --- a/og/webapp/javascript/models/utils.ts +++ b/public/app/models/utils.ts @@ -1,5 +1,5 @@ import type { ZodError, ZodType } from 'zod'; -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; /** * modelToResult converts a (most likely) zod model into a Result diff --git a/public/app/overrides/services/base.ts b/public/app/overrides/services/base.ts deleted file mode 100644 index 1fdafb5e47..0000000000 --- a/public/app/overrides/services/base.ts +++ /dev/null @@ -1,194 +0,0 @@ -import { Result } from '@webapp/util/fp'; -import { - type RequestError, - mountRequest, - RequestNotOkWithErrorsList, - RequestNotOkError, - RequestIncompleteError, - ResponseOkNotInJSONFormat, - ResponseNotOkInHTMLFormat, - RequestAbortedError, -} from '@pyroscope/webapp/javascript/services/base'; -import { tenantIDFromStorage } from '@phlare/services/tenant'; - -export * from '@pyroscope/webapp/javascript/services/base'; - -/** - * request wraps around the original request - * while sending the OrgID if available - */ -export async function requestWithOrgID( - request: RequestInfo, - config?: RequestInit -): Promise> { - let headers = config?.headers; - - // Reuse headers if they were passed - if (!config?.headers?.hasOwnProperty('X-Scope-OrgID')) { - const tenantID = tenantIDFromStorage(); - headers = { - ...config?.headers, - ...(tenantID && { 'X-Scope-OrgID': tenantID }), - }; - } - - return connectRequest(request, { - ...config, - headers, - }); -} - -export async function downloadWithOrgID( - request: RequestInfo, - config?: RequestInit -): Promise> { - let headers = config?.headers; - - // Reuse headers if they were passed - if (!config?.headers?.hasOwnProperty('X-Scope-OrgID')) { - const tenantID = tenantIDFromStorage(); - headers = { - ...config?.headers, - ...(tenantID && { 'X-Scope-OrgID': tenantID }), - }; - } - - return connectDownload(request, { - ...config, - headers, - }); -} - -export async function connectDownload( - request: RequestInfo, - config?: RequestInit -): Promise> { - let response = await fetchAndHandleErrors(request, config); - if (!response.isOk) { - return Result.err(response.error); - } - return Result.ok(await response.value); -} - -export async function connectRequest( - request: RequestInfo, - config?: RequestInit -): Promise> { - let response = await fetchAndHandleErrors(request, config); - if (!response.isOk) { - return response; - } - // Server responded with 2xx - const textBody = await response.value.text(); - - // There's nothing in the body - if (!textBody || !textBody.length) { - return Result.ok({ - statusCode: response.value.status, - }); - } - - // We know there's data, so let's check if it's in JSON format - try { - const data = JSON.parse(textBody); - - // We could parse the response - return Result.ok(data); - } catch (e) { - // We couldn't parse, but there's definitly some data - return Result.err( - new ResponseOkNotInJSONFormat(response.value.status, textBody) - ); - } -} - -async function fetchAndHandleErrors( - request: RequestInfo, - config?: RequestInit -): Promise> { - const req = mountRequest(request); - let response: Response; - try { - response = await fetch(req, config); - } catch (e) { - // 'e' is unknown, but most cases it should be an Error - let message = ''; - if (e instanceof Error) { - message = e.message; - } - - if (e instanceof Error && e.name === 'AbortError') { - return Result.err(new RequestAbortedError(message)); - } - - return Result.err(new RequestIncompleteError(message)); - } - - if (response.ok) { - return Result.ok(response); - } - const textBody = await response.text(); - - // There's nothing in the body, so let's use a default message - if (!textBody || !textBody.length) { - return Result.err( - new RequestNotOkError(response.status, 'No description available') - ); - } - - // We know there's data, so let's check if it's in JSON format - try { - const data = JSON.parse(textBody); - - // Check if it's 401 unauthorized error - if (response.status === 401) { - // TODO: Introduce some kind of interceptor (?) - // if (!/\/(login|signup)$/.test(window?.location?.pathname)) { - // window.location.href = mountURL('/login'); - // } - if ('message' in data && typeof data.message === 'string') { - return Result.err(new RequestNotOkError(response.status, data.message)); - } - return Result.err(new RequestNotOkError(response.status, data.error)); - } - - // Usually it's a feedback on user's actions like form validation - if ('errors' in data && Array.isArray(data.errors)) { - return Result.err( - new RequestNotOkWithErrorsList(response.status, data.errors) - ); - } - - // Error message may come in an 'error' field - if ('error' in data && typeof data.error === 'string') { - return Result.err(new RequestNotOkError(response.status, data.error)); - } - - // Error message may come in an 'message' field - if ('message' in data && typeof data.message === 'string') { - return Result.err(new RequestNotOkError(response.status, data.message)); - } - - return Result.err( - new RequestNotOkError( - response.status, - `Could not identify an error message. Payload is ${JSON.stringify( - data - )}` - ) - ); - } catch (e) { - // We couldn't parse, but there's definitly some data - // We must handle this case since the go server sometimes responds with plain text - - // It's HTML - // Which normally happens when hitting a broken URL, which makes the server return the SPA - // Poor heuristic for identifying it's a html file - if (/<\/?[a-z][\s\S]*>/i.test(textBody)) { - return Result.err( - new ResponseNotOkInHTMLFormat(response.status, textBody) - ); - } - return Result.err(new RequestNotOkError(response.status, textBody)); - } -} diff --git a/public/app/overrides/services/render.ts b/public/app/overrides/services/render.ts deleted file mode 100644 index 49697ce233..0000000000 --- a/public/app/overrides/services/render.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { Result } from '@webapp/util/fp'; -import { - Profile, - Groups, - FlamebearerProfileSchema, - GroupsSchema, -} from '@pyroscope/models/src'; -import { z } from 'zod'; -import type { ZodError } from 'zod'; -import { buildRenderURL } from '@webapp/util/updateRequests'; -import { Timeline, TimelineSchema } from '@webapp/models/timeline'; -import { Annotation, AnnotationSchema } from '@webapp/models/annotation'; -import type { RequestError } from '@webapp/services/base'; -import { parseResponse, requestWithOrgID } from '@webapp/services/base'; - -export interface RenderOutput { - profile: Profile; - timeline: Timeline; - groups?: Groups; - annotations: Annotation[]; -} - -// Default to empty array if not present -const defaultAnnotationsSchema = z.preprocess((a) => { - if (!a) { - return []; - } - return a; -}, z.array(AnnotationSchema)); - -interface RenderSingleProps { - from: string; - until: string; - query: string; - refreshToken?: string; - maxNodes: string | number; -} -export async function renderSingle( - props: RenderSingleProps, - controller?: { - signal?: AbortSignal; - } -): Promise> { - const url = buildRenderURL(props); - // TODO - const response = await requestWithOrgID(`/pyroscope/${url}&format=json`, { - signal: controller?.signal, - }); - - if (response.isErr) { - return Result.err(response.error); - } - - const parsed = FlamebearerProfileSchema.merge( - z.object({ - timeline: TimelineSchema, - annotations: defaultAnnotationsSchema, - }) - ) - .merge(z.object({ telemetry: z.object({}).passthrough().optional() })) - .safeParse(response.value); - - if (parsed.success) { - // TODO: strip timeline - const profile = parsed.data; - const { timeline, annotations } = parsed.data; - - return Result.ok({ - profile, - timeline, - annotations, - }); - } - - return Result.err(parsed.error); -} - -export type RenderDiffResponse = z.infer; - -interface RenderDiffProps { - leftFrom: string; - leftUntil: string; - leftQuery: string; - refreshToken?: string; - maxNodes: string; - rightQuery: string; - rightFrom: string; - rightUntil: string; -} - -export async function renderDiff( - props: RenderDiffProps, - controller?: { - signal?: AbortSignal; - } -) { - const params = new URLSearchParams({ - leftQuery: props.leftQuery, - leftFrom: props.leftFrom, - leftUntil: props.leftUntil, - rightQuery: props.rightQuery, - rightFrom: props.rightFrom, - rightUntil: props.rightUntil, - }); - - const response = await requestWithOrgID(`/pyroscope/render-diff?${params}`, { - signal: controller?.signal, - }); - - return parseResponse>( - response, - FlamebearerProfileSchema - ); -} - -const RenderExploreSchema = FlamebearerProfileSchema.extend({ - groups: z.preprocess((groups) => { - const groupNames = Object.keys(groups as Groups); - return groupNames.length - ? groupNames - .filter((g) => !!g.trim()) - .reduce( - (acc, current) => ({ - ...acc, - [current]: (groups as Groups)[current], - }), - {} - ) - : groups; - }, GroupsSchema), -}).transform((values) => { - return { - profile: values, - groups: values.groups, - }; -}); - -interface RenderExploreProps extends Omit { - groupBy: string; - grouByTagValue: string; -} - -export type RenderExploreOutput = z.infer; - -export async function renderExplore( - props: RenderExploreProps, - controller?: { - signal?: AbortSignal; - } -): Promise> { - const url = buildRenderURL(props); - const response = await requestWithOrgID(`/pyroscope/${url}&format=json`, { - signal: controller?.signal, - }); - return parseResponse(response, RenderExploreSchema); -} diff --git a/public/app/overrides/ui/Sidebar.tsx b/public/app/overrides/ui/Sidebar.tsx deleted file mode 100644 index 8bb9d552fc..0000000000 --- a/public/app/overrides/ui/Sidebar.tsx +++ /dev/null @@ -1,78 +0,0 @@ -/* eslint-disable react/jsx-props-no-spreading */ -import React from 'react'; -import { - ProSidebar, - Menu as RProMenu, - MenuItem as RProMenuItem, - SubMenu as RProSubMenu, - SidebarFooter as RProFooter, - SidebarHeader as RProHeader, - SidebarContent as RProContent, - MenuItemProps, - SubMenuProps, -} from 'react-pro-sidebar'; -import { IconProps } from '@webapp/ui/Icon'; -import '@pyroscope/webapp/javascript/ui/Sidebar.scss'; - -export interface SidebarProps { - children: React.ReactNode; - - collapsed?: boolean; - className?: string; -} - -// Sidebar is an abstraction over react-pro-sidebar -// So that we can some day reimplement its functinoality ourselves -export default function Sidebar(props: SidebarProps) { - const { children, collapsed, className } = props; - - return ( - - {children} - - ); -} - -// type check to validate only our Icon component can be used -type Icon = React.ReactElement; - -export function MenuItem(props: MenuItemProps & { icon: Icon }) { - const { className } = props; - - return ; -} - -export function SubMenu( - props: SubMenuProps & { active?: boolean; icon: Icon } -) { - let { popperarrow, className } = props; - // remove active since underlying component does not use it - const { active, ...newProps } = props; - - if (popperarrow === undefined) { - // set arrow between element and menu when collapsed by default, since that makes ux better - popperarrow = true; - } - - if (active) { - if (!className) { - className = ''; - } - - className += ' active'; - } - - return ( - - ); -} - -// Re-export the type so that end users only interact with our abstraction -export const Menu = RProMenu; -export const SidebarHeader = RProHeader; -export const SidebarFooter = RProFooter; -export const SidebarContent = RProContent; diff --git a/public/app/pages/ComparisonView.tsx b/public/app/pages/ComparisonView.tsx index b6cd6f4efa..82599fbcb2 100644 --- a/public/app/pages/ComparisonView.tsx +++ b/public/app/pages/ComparisonView.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import ContinuousComparisonView from '@webapp/pages/ContinuousComparisonView'; +import ContinuousComparisonView from '@phlare/pages/ContinuousComparisonView'; export function ComparisonView() { return ; diff --git a/og/webapp/javascript/pages/ContinuousComparison.module.css b/public/app/pages/ContinuousComparison.module.css similarity index 100% rename from og/webapp/javascript/pages/ContinuousComparison.module.css rename to public/app/pages/ContinuousComparison.module.css diff --git a/og/webapp/javascript/pages/ContinuousComparisonView.tsx b/public/app/pages/ContinuousComparisonView.tsx similarity index 91% rename from og/webapp/javascript/pages/ContinuousComparisonView.tsx rename to public/app/pages/ContinuousComparisonView.tsx index 7a84bcfe9f..daf2067c33 100644 --- a/og/webapp/javascript/pages/ContinuousComparisonView.tsx +++ b/public/app/pages/ContinuousComparisonView.tsx @@ -1,9 +1,9 @@ import React, { useEffect } from 'react'; import 'react-dom'; -import Box from '@webapp/ui/Box'; +import Box from '@phlare/ui/Box'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { selectContinuousState, actions, @@ -13,21 +13,22 @@ import { selectQueries, selectTimelineSides, selectAnnotationsOrDefault, -} from '@webapp/redux/reducers/continuous'; -import SideTimelineComparator from '@webapp/components/SideTimelineComparator'; -import TimelineChartWrapper from '@webapp/components/TimelineChart/TimelineChartWrapper'; -import SyncTimelines from '@webapp/components/TimelineChart/SyncTimelines'; -import Toolbar from '@webapp/components/Toolbar'; -import ExportData from '@webapp/components/ExportData'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; -import TagsBar from '@webapp/components/TagsBar'; -import ChartTitle from '@webapp/components/ChartTitle'; -import useTimeZone from '@webapp/hooks/timeZone.hook'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import { isExportToFlamegraphDotComEnabled } from '@webapp/util/features'; -import { LoadingOverlay } from '@webapp/ui/LoadingOverlay'; -import PageTitle from '@webapp/components/PageTitle'; -import { Query } from '@webapp/models/query'; +} from '@phlare/redux/reducers/continuous'; +import SideTimelineComparator from '@phlare/components/SideTimelineComparator'; +import TimelineChartWrapper from '@phlare/components/TimelineChart/TimelineChartWrapper'; +import SyncTimelines from '@phlare/components/TimelineChart/SyncTimelines'; +import Toolbar from '@phlare/components/Toolbar'; +import ExportData from '@phlare/components/ExportData'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; +import TagsBar from '@phlare/components/TagsBar'; +import ChartTitle from '@phlare/components/ChartTitle'; +import useTimeZone from '@phlare/hooks/timeZone.hook'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import { isExportToFlamegraphDotComEnabled } from '@phlare/util/features'; +import { LoadingOverlay } from '@phlare/ui/LoadingOverlay'; +import PageTitle from '@phlare/components/PageTitle'; +import { Query } from '@phlare/models/query'; +import { isLoadingOrReloading } from '@phlare/pages/loading'; import styles from './ContinuousComparison.module.css'; import useTags from '../hooks/tags.hook'; import useTimelines, { @@ -38,7 +39,6 @@ import useTimelines, { import usePopulateLeftRightQuery from '../hooks/populateLeftRightQuery.hook'; import useFlamegraphSharedQuery from '../hooks/flamegraphSharedQuery.hook'; import { formatTitle } from './formatTitle'; -import { isLoadingOrReloading } from './loading'; function ComparisonApp() { const dispatch = useAppDispatch(); @@ -83,7 +83,7 @@ function ComparisonApp() { return fetchLeftQueryData.abort; } return undefined; - }, [leftFrom, leftUntil, leftQuery, refreshToken]); + }, [dispatch, leftFrom, leftUntil, leftQuery, refreshToken]); useEffect(() => { if (rightQuery) { @@ -94,7 +94,7 @@ function ComparisonApp() { return fetchRightQueryData.abort; } return undefined; - }, [rightFrom, rightUntil, rightQuery, refreshToken]); + }, [dispatch, rightFrom, rightUntil, rightQuery, refreshToken]); const leftSide = comparisonLeft.profile; const rightSide = comparisonRight.profile; diff --git a/og/webapp/javascript/pages/ContinuousDiffView.tsx b/public/app/pages/ContinuousDiffView.tsx similarity index 88% rename from og/webapp/javascript/pages/ContinuousDiffView.tsx rename to public/app/pages/ContinuousDiffView.tsx index 54e7956789..e327f29b72 100644 --- a/og/webapp/javascript/pages/ContinuousDiffView.tsx +++ b/public/app/pages/ContinuousDiffView.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from 'react'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import Box from '@webapp/ui/Box'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import Box from '@phlare/ui/Box'; import { fetchDiffView, selectContinuousState, @@ -9,27 +9,27 @@ import { selectQueries, selectTimelineSides, selectAnnotationsOrDefault, -} from '@webapp/redux/reducers/continuous'; +} from '@phlare/redux/reducers/continuous'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; -import usePopulateLeftRightQuery from '@webapp/hooks/populateLeftRightQuery.hook'; +import usePopulateLeftRightQuery from '@phlare/hooks/populateLeftRightQuery.hook'; import useTimelines, { leftColor, rightColor, selectionColor, -} from '@webapp/hooks/timeline.hook'; -import useTimeZone from '@webapp/hooks/timeZone.hook'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import useTags from '@webapp/hooks/tags.hook'; -import Toolbar from '@webapp/components/Toolbar'; -import TagsBar from '@webapp/components/TagsBar'; -import TimelineChartWrapper from '@webapp/components/TimelineChart/TimelineChartWrapper'; -import SyncTimelines from '@webapp/components/TimelineChart/SyncTimelines'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; -import { LoadingOverlay } from '@webapp/ui/LoadingOverlay'; -import ExportData from '@webapp/components/ExportData'; -import ChartTitle from '@webapp/components/ChartTitle'; -import { isExportToFlamegraphDotComEnabled } from '@webapp/util/features'; -import PageTitle from '@webapp/components/PageTitle'; +} from '@phlare/hooks/timeline.hook'; +import useTimeZone from '@phlare/hooks/timeZone.hook'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import useTags from '@phlare/hooks/tags.hook'; +import Toolbar from '@phlare/components/Toolbar'; +import TagsBar from '@phlare/components/TagsBar'; +import TimelineChartWrapper from '@phlare/components/TimelineChart/TimelineChartWrapper'; +import SyncTimelines from '@phlare/components/TimelineChart/SyncTimelines'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; +import { LoadingOverlay } from '@phlare/ui/LoadingOverlay'; +import ExportData from '@phlare/components/ExportData'; +import ChartTitle from '@phlare/components/ChartTitle'; +import { isExportToFlamegraphDotComEnabled } from '@phlare/util/features'; +import PageTitle from '@phlare/components/PageTitle'; import { formatTitle } from './formatTitle'; import { isLoadingOrReloading } from './loading'; @@ -83,6 +83,7 @@ function ComparisonDiffApp() { } return undefined; }, [ + dispatch, leftFrom, leftUntil, leftQuery, diff --git a/og/webapp/javascript/pages/ContinuousSingleView.tsx b/public/app/pages/ContinuousSingleView.tsx similarity index 82% rename from og/webapp/javascript/pages/ContinuousSingleView.tsx rename to public/app/pages/ContinuousSingleView.tsx index c1805844df..9b5635a8ef 100644 --- a/og/webapp/javascript/pages/ContinuousSingleView.tsx +++ b/public/app/pages/ContinuousSingleView.tsx @@ -1,8 +1,8 @@ import React, { useEffect } from 'react'; import 'react-dom'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import Box from '@webapp/ui/Box'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import Box from '@phlare/ui/Box'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; import { fetchSingleView, @@ -13,30 +13,30 @@ import { addAnnotation, actions, fetchTagValues, -} from '@webapp/redux/reducers/continuous'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import TimelineChartWrapper from '@webapp/components/TimelineChart/TimelineChartWrapper'; -import Toolbar from '@webapp/components/Toolbar'; -import ExportData from '@webapp/components/ExportData'; -import ChartTitle from '@webapp/components/ChartTitle'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; -import TagsBar from '@webapp/components/TagsBar'; -import useTimeZone from '@webapp/hooks/timeZone.hook'; -import PageTitle from '@webapp/components/PageTitle'; -import { ContextMenuProps } from '@webapp/components/TimelineChart/ContextMenu.plugin'; +} from '@phlare/redux/reducers/continuous'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import TimelineChartWrapper from '@phlare/components/TimelineChart/TimelineChartWrapper'; +import Toolbar from '@phlare/components/Toolbar'; +import ExportData from '@phlare/components/ExportData'; +import ChartTitle from '@phlare/components/ChartTitle'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; +import TagsBar from '@phlare/components/TagsBar'; +import useTimeZone from '@phlare/hooks/timeZone.hook'; +import PageTitle from '@phlare/components/PageTitle'; +import { ContextMenuProps } from '@phlare/components/TimelineChart/ContextMenu.plugin'; import { getFormatter } from '@pyroscope/flamegraph/src/format/format'; -import { LoadingOverlay } from '@webapp/ui/LoadingOverlay'; -import { TooltipCallbackProps } from '@webapp/components/TimelineChart/Tooltip.plugin'; +import { LoadingOverlay } from '@phlare/ui/LoadingOverlay'; +import { TooltipCallbackProps } from '@phlare/components/TimelineChart/Tooltip.plugin'; import { Profile } from '@pyroscope/models/src'; import { isExportToFlamegraphDotComEnabled, isAnnotationsEnabled, -} from '@webapp/util/features'; -import useTags from '@webapp/hooks/tags.hook'; +} from '@phlare/util/features'; +import useTags from '@phlare/hooks/tags.hook'; import { TimelineTooltip, TimelineTooltipProps, -} from '@webapp/components/TimelineTooltip'; +} from '@phlare/components/TimelineTooltip'; import { formatTitle } from './formatTitle'; import ContextMenu from './continuous/contextMenu/ContextMenu'; import AddAnnotationMenuItem from './continuous/contextMenu/AddAnnotation.menuitem'; @@ -62,7 +62,7 @@ function ContinuousSingleView() { return () => fetchData.abort('cancel'); } return undefined; - }, [from, until, query, refreshToken, maxNodes]); + }, [from, until, query, refreshToken, maxNodes, dispatch]); const getRaw = () => { switch (singleView.type) { @@ -130,18 +130,25 @@ function ContinuousSingleView() { if (!isAnnotationsEnabled) { return null; } + + const { click, timestamp, containerEl } = props; + + if (!click) { + return null; + } + return ( - + { dispatch( addAnnotation({ appName: query, - timestamp: props.timestamp, + timestamp, content, }) ); diff --git a/public/app/pages/DiffView.tsx b/public/app/pages/DiffView.tsx index f25a532a97..78450bacd4 100644 --- a/public/app/pages/DiffView.tsx +++ b/public/app/pages/DiffView.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import ContinuousDiffView from '@webapp/pages/ContinuousDiffView'; +import ContinuousDiffView from '@phlare/pages/ContinuousDiffView'; export function DiffView() { return ; diff --git a/public/app/pages/ExploreView.tsx b/public/app/pages/ExploreView.tsx index 83bbbfa528..7ba7b57da4 100644 --- a/public/app/pages/ExploreView.tsx +++ b/public/app/pages/ExploreView.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import TagExplorerView from '@webapp/pages/TagExplorerView'; +import TagExplorerView from '@phlare/pages/TagExplorerView'; export function ExploreView() { return ; diff --git a/og/webapp/javascript/pages/IntroPages/Divider/Divider.module.css b/public/app/pages/IntroPages/Divider/Divider.module.css similarity index 100% rename from og/webapp/javascript/pages/IntroPages/Divider/Divider.module.css rename to public/app/pages/IntroPages/Divider/Divider.module.css diff --git a/og/webapp/javascript/pages/IntroPages/Divider/index.tsx b/public/app/pages/IntroPages/Divider/index.tsx similarity index 100% rename from og/webapp/javascript/pages/IntroPages/Divider/index.tsx rename to public/app/pages/IntroPages/Divider/index.tsx diff --git a/og/webapp/javascript/pages/IntroPages/Forbidden/index.tsx b/public/app/pages/IntroPages/Forbidden/index.tsx similarity index 89% rename from og/webapp/javascript/pages/IntroPages/Forbidden/index.tsx rename to public/app/pages/IntroPages/Forbidden/index.tsx index e292f93897..de30d946f2 100644 --- a/og/webapp/javascript/pages/IntroPages/Forbidden/index.tsx +++ b/public/app/pages/IntroPages/Forbidden/index.tsx @@ -1,4 +1,3 @@ -/* eslint css-modules/no-unused-class: [2, { markAsUsed: ['link'] }] */ import React from 'react'; import cx from 'classnames'; import { Link } from 'react-router-dom'; diff --git a/og/webapp/javascript/pages/IntroPages/Icons.tsx b/public/app/pages/IntroPages/Icons.tsx similarity index 100% rename from og/webapp/javascript/pages/IntroPages/Icons.tsx rename to public/app/pages/IntroPages/Icons.tsx diff --git a/og/webapp/javascript/pages/IntroPages/InputGroup.module.css b/public/app/pages/IntroPages/InputGroup.module.css similarity index 100% rename from og/webapp/javascript/pages/IntroPages/InputGroup.module.css rename to public/app/pages/IntroPages/InputGroup.module.css diff --git a/og/webapp/javascript/pages/IntroPages/IntroPages.module.css b/public/app/pages/IntroPages/IntroPages.module.css similarity index 100% rename from og/webapp/javascript/pages/IntroPages/IntroPages.module.css rename to public/app/pages/IntroPages/IntroPages.module.css diff --git a/og/webapp/javascript/pages/IntroPages/NotFound/index.tsx b/public/app/pages/IntroPages/NotFound/index.tsx similarity index 89% rename from og/webapp/javascript/pages/IntroPages/NotFound/index.tsx rename to public/app/pages/IntroPages/NotFound/index.tsx index 10ca516e7e..ef6266e148 100644 --- a/og/webapp/javascript/pages/IntroPages/NotFound/index.tsx +++ b/public/app/pages/IntroPages/NotFound/index.tsx @@ -1,4 +1,3 @@ -/* eslint css-modules/no-unused-class: [2, { markAsUsed: ['link'] }] */ import React from 'react'; import cx from 'classnames'; import { Link } from 'react-router-dom'; diff --git a/og/webapp/javascript/pages/IntroPages/SignIn/buttons.module.css b/public/app/pages/IntroPages/SignIn/buttons.module.css similarity index 100% rename from og/webapp/javascript/pages/IntroPages/SignIn/buttons.module.css rename to public/app/pages/IntroPages/SignIn/buttons.module.css diff --git a/og/webapp/javascript/pages/IntroPages/SignIn/index.tsx b/public/app/pages/IntroPages/SignIn/index.tsx similarity index 93% rename from og/webapp/javascript/pages/IntroPages/SignIn/index.tsx rename to public/app/pages/IntroPages/SignIn/index.tsx index 37521264ce..3b50eb70ce 100644 --- a/og/webapp/javascript/pages/IntroPages/SignIn/index.tsx +++ b/public/app/pages/IntroPages/SignIn/index.tsx @@ -1,20 +1,20 @@ import React, { useState } from 'react'; import { Link, useHistory, useLocation } from 'react-router-dom'; import cx from 'classnames'; -import Icon from '@webapp/ui/Icon'; +import Icon from '@phlare/ui/Icon'; import { faGithub } from '@fortawesome/free-brands-svg-icons/faGithub'; -import InputField from '@webapp/ui/InputField'; -import StatusMessage from '@webapp/ui/StatusMessage'; -import { logIn } from '@webapp/services/users'; -import useNavigateUserIntroPages from '@webapp/hooks/navigateUserIntroPages.hook'; +import InputField from '@phlare/ui/InputField'; +import StatusMessage from '@phlare/ui/StatusMessage'; +import { logIn } from '@phlare/services/users'; +import useNavigateUserIntroPages from '@phlare/hooks/navigateUserIntroPages.hook'; import { isGithubEnabled, isGitlabEnabled, isGoogleEnabled, isInternalAuthEnabled, isSignupEnabled, -} from '@webapp/util/features'; -import { PAGES } from '@webapp/pages/constants'; +} from '@phlare/util/features'; +import { PAGES } from '@phlare/pages/constants'; import { GitlabIcon, GoogleIcon } from '../Icons'; import Divider from '../Divider'; import inputStyles from '../InputGroup.module.css'; diff --git a/og/webapp/javascript/pages/IntroPages/SignUp/index.tsx b/public/app/pages/IntroPages/SignUp/index.tsx similarity index 90% rename from og/webapp/javascript/pages/IntroPages/SignUp/index.tsx rename to public/app/pages/IntroPages/SignUp/index.tsx index da2f8646f1..19f7ed3eed 100644 --- a/og/webapp/javascript/pages/IntroPages/SignUp/index.tsx +++ b/public/app/pages/IntroPages/SignUp/index.tsx @@ -1,13 +1,13 @@ import React, { useState } from 'react'; import cx from 'classnames'; import { Link } from 'react-router-dom'; -import InputField from '@webapp/ui/InputField'; -import StatusMessage from '@webapp/ui/StatusMessage'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import { signUp, logIn } from '@webapp/services/users'; -import { loadCurrentUser } from '@webapp/redux/reducers/user'; -import useNavigateUserIntroPages from '@webapp/hooks/navigateUserIntroPages.hook'; -import { isSignupEnabled } from '@webapp/util/features'; +import InputField from '@phlare/ui/InputField'; +import StatusMessage from '@phlare/ui/StatusMessage'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import { signUp, logIn } from '@phlare/services/users'; +import { loadCurrentUser } from '@phlare/redux/reducers/user'; +import useNavigateUserIntroPages from '@phlare/hooks/navigateUserIntroPages.hook'; +import { isSignupEnabled } from '@phlare/util/features'; import inputStyles from '../InputGroup.module.css'; import styles from '../IntroPages.module.css'; import Divider from '../Divider'; diff --git a/og/webapp/javascript/pages/ServiceDiscovery.module.scss b/public/app/pages/ServiceDiscovery.module.scss similarity index 100% rename from og/webapp/javascript/pages/ServiceDiscovery.module.scss rename to public/app/pages/ServiceDiscovery.module.scss diff --git a/og/webapp/javascript/pages/ServiceDiscovery.tsx b/public/app/pages/ServiceDiscovery.tsx similarity index 96% rename from og/webapp/javascript/pages/ServiceDiscovery.tsx rename to public/app/pages/ServiceDiscovery.tsx index 41fa72ce75..aecca28e1a 100644 --- a/og/webapp/javascript/pages/ServiceDiscovery.tsx +++ b/public/app/pages/ServiceDiscovery.tsx @@ -1,13 +1,13 @@ import React, { Children, useEffect, useState } from 'react'; -import { Target } from '@webapp/models/targets'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; +import { Target } from '@phlare/models/targets'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; import { loadTargets, selectTargetsData, -} from '@webapp/redux/reducers/serviceDiscovery'; +} from '@phlare/redux/reducers/serviceDiscovery'; import { formatDistance, parseISO } from 'date-fns'; import cx from 'classnames'; -import Button from '@webapp/ui/Button'; +import Button from '@phlare/ui/Button'; import styles from './ServiceDiscovery.module.scss'; enum Status { @@ -28,7 +28,7 @@ const ServiceDiscoveryApp = () => { } run(); - }, []); + }, [dispatch]); function getUpCount(targets: Target[]) { return targets.filter((t) => t.health === 'up').length; diff --git a/public/app/pages/SingleView.tsx b/public/app/pages/SingleView.tsx index 6b5d5032f7..535e93b5b8 100644 --- a/public/app/pages/SingleView.tsx +++ b/public/app/pages/SingleView.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import ContinuousSingleView from '@webapp/pages/ContinuousSingleView'; +import ContinuousSingleView from '@phlare/pages/ContinuousSingleView'; export function SingleView() { return ; diff --git a/og/webapp/javascript/pages/TagExplorerView.module.scss b/public/app/pages/TagExplorerView.module.scss similarity index 100% rename from og/webapp/javascript/pages/TagExplorerView.module.scss rename to public/app/pages/TagExplorerView.module.scss diff --git a/og/webapp/javascript/pages/TagExplorerView.tsx b/public/app/pages/TagExplorerView.tsx similarity index 93% rename from og/webapp/javascript/pages/TagExplorerView.tsx rename to public/app/pages/TagExplorerView.tsx index 37ca2a2440..fc34946812 100644 --- a/og/webapp/javascript/pages/TagExplorerView.tsx +++ b/public/app/pages/TagExplorerView.tsx @@ -1,25 +1,25 @@ import React, { useEffect, useMemo } from 'react'; import { NavLink, useLocation } from 'react-router-dom'; import type { Maybe } from 'true-myth'; -import type { ClickEvent } from '@webapp/ui/Menu'; +import type { ClickEvent } from '@phlare/ui/Menu'; import Color from 'color'; -import TotalSamplesChart from '@webapp/pages/tagExplorer/components/TotalSamplesChart'; +import TotalSamplesChart from '@phlare/pages/tagExplorer/components/TotalSamplesChart'; import type { Profile } from '@pyroscope/models/src'; -import Box, { CollapseBox } from '@webapp/ui/Box'; -import Toolbar from '@webapp/components/Toolbar'; -import ExportData from '@webapp/components/ExportData'; +import Box, { CollapseBox } from '@phlare/ui/Box'; +import Toolbar from '@phlare/components/Toolbar'; +import ExportData from '@phlare/components/ExportData'; import TimelineChartWrapper, { TimelineGroupData, -} from '@webapp/components/TimelineChart/TimelineChartWrapper'; +} from '@phlare/components/TimelineChart/TimelineChartWrapper'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src'; -import Dropdown, { MenuItem } from '@webapp/ui/Dropdown'; -import TagsSelector from '@webapp/pages/tagExplorer/components/TagsSelector'; -import TableUI, { useTableSort, BodyRow } from '@webapp/ui/Table'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import useTimeZone from '@webapp/hooks/timeZone.hook'; -import { appendLabelToQuery } from '@webapp/util/query'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; +import Dropdown, { MenuItem } from '@phlare/ui/Dropdown'; +import TagsSelector from '@phlare/pages/tagExplorer/components/TagsSelector'; +import TableUI, { useTableSort, BodyRow } from '@phlare/ui/Table'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import useTimeZone from '@phlare/hooks/timeZone.hook'; +import { appendLabelToQuery } from '@phlare/util/query'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; import { actions, setDateRange, @@ -33,12 +33,12 @@ import { ALL_TAGS, setQuery, selectAnnotationsOrDefault, -} from '@webapp/redux/reducers/continuous'; -import { queryToAppName } from '@webapp/models/query'; -import PageTitle from '@webapp/components/PageTitle'; -import ExploreTooltip from '@webapp/components/TimelineChart/ExploreTooltip'; +} from '@phlare/redux/reducers/continuous'; +import { queryToAppName } from '@phlare/models/query'; +import PageTitle from '@phlare/components/PageTitle'; +import ExploreTooltip from '@phlare/components/TimelineChart/ExploreTooltip'; import { getFormatter } from '@pyroscope/flamegraph/src/format/format'; -import { LoadingOverlay } from '@webapp/ui/LoadingOverlay'; +import { LoadingOverlay } from '@phlare/ui/LoadingOverlay'; import { calculateMean, calculateStdDeviation, calculateTotal } from './math'; import { PAGES } from './constants'; import { @@ -47,7 +47,7 @@ import { getTableIntegerSpaceLengthByColumn, formatValue, } from './formatTableData'; -// eslint-disable-next-line css-modules/no-unused-class +// eslint-disable-next-line import styles from './TagExplorerView.module.scss'; import { formatTitle } from './formatTitle'; @@ -182,7 +182,7 @@ function TagExplorerView() { if (query) { dispatch(fetchTags(query)); } - }, [query]); + }, [query, dispatch]); const { groupByTag, @@ -197,7 +197,7 @@ function TagExplorerView() { return () => fetchData.abort('cancel'); } return undefined; - }, [from, until, query, groupByTagValue]); + }, [from, until, query, groupByTagValue, dispatch]); useEffect(() => { if (from && until && query) { @@ -205,7 +205,7 @@ function TagExplorerView() { return () => fetchData.abort('cancel'); } return undefined; - }, [from, until, query, groupByTag, refreshToken]); + }, [from, until, query, groupByTag, refreshToken, dispatch]); const getGroupsData = (): { groupsData: TimelineGroupData[]; @@ -382,9 +382,9 @@ function TagExplorerView() {
`${a} Tag Breakdown`) - .unwrapOr('Tag Breakdown')}`} + .unwrapOr('Tag Breakdown')} >
@@ -475,7 +475,9 @@ function Table({ }; const getSingleViewSearch = () => { - if (!groupByTagValue || ALL_TAGS) return search; + if (!groupByTagValue || ALL_TAGS) { + return search; + } const searchParams = new URLSearchParams(search); searchParams.delete('query'); @@ -687,7 +689,7 @@ function ExploreHeader({ if (tagKeys.length && !selectedTag) { handleGroupByTagChange(tagKeys[0]); } - }, [tagKeys, selectedTag]); + }, [tagKeys, selectedTag, handleGroupByTagChange]); return (
diff --git a/og/webapp/javascript/pages/TracingSingleView.module.scss b/public/app/pages/TracingSingleView.module.scss similarity index 100% rename from og/webapp/javascript/pages/TracingSingleView.module.scss rename to public/app/pages/TracingSingleView.module.scss diff --git a/og/webapp/javascript/pages/TracingSingleView.tsx b/public/app/pages/TracingSingleView.tsx similarity index 85% rename from og/webapp/javascript/pages/TracingSingleView.tsx rename to public/app/pages/TracingSingleView.tsx index 497342c54f..e6830bee49 100644 --- a/og/webapp/javascript/pages/TracingSingleView.tsx +++ b/public/app/pages/TracingSingleView.tsx @@ -1,15 +1,15 @@ import React, { useEffect } from 'react'; import 'react-dom'; import { format } from 'date-fns'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import Box from '@webapp/ui/Box'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import Box from '@phlare/ui/Box'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; -import { fetchSingleView } from '@webapp/redux/reducers/tracing'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import ExportData from '@webapp/components/ExportData'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; -import PageTitle from '@webapp/components/PageTitle'; -import { isExportToFlamegraphDotComEnabled } from '@webapp/util/features'; +import { fetchSingleView } from '@phlare/redux/reducers/tracing'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import ExportData from '@phlare/components/ExportData'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; +import PageTitle from '@phlare/components/PageTitle'; +import { isExportToFlamegraphDotComEnabled } from '@phlare/util/features'; import { formatTitle } from './formatTitle'; import styles from './TracingSingleView.module.scss'; @@ -32,7 +32,7 @@ function TracingSingleView() { return () => fetchData.abort('cancel'); } return undefined; - }, [queryID, refreshToken, maxNodes]); + }, [queryID, refreshToken, maxNodes, dispatch]); const getRaw = () => { switch (singleView.type) { diff --git a/og/webapp/javascript/pages/adhoc/Adhoc.module.scss b/public/app/pages/adhoc/Adhoc.module.scss similarity index 100% rename from og/webapp/javascript/pages/adhoc/Adhoc.module.scss rename to public/app/pages/adhoc/Adhoc.module.scss diff --git a/og/webapp/javascript/pages/adhoc/AdhocComparison.module.scss b/public/app/pages/adhoc/AdhocComparison.module.scss similarity index 100% rename from og/webapp/javascript/pages/adhoc/AdhocComparison.module.scss rename to public/app/pages/adhoc/AdhocComparison.module.scss diff --git a/og/webapp/javascript/pages/adhoc/AdhocComparison.tsx b/public/app/pages/adhoc/AdhocComparison.tsx similarity index 91% rename from og/webapp/javascript/pages/adhoc/AdhocComparison.tsx rename to public/app/pages/adhoc/AdhocComparison.tsx index d3e0b1cef7..e527a11f30 100644 --- a/og/webapp/javascript/pages/adhoc/AdhocComparison.tsx +++ b/public/app/pages/adhoc/AdhocComparison.tsx @@ -1,13 +1,13 @@ import React, { useEffect, useState } from 'react'; import 'react-dom'; -import { Maybe } from '@webapp/util/fp'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import Box from '@webapp/ui/Box'; +import { Maybe } from '@phlare/util/fp'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import Box from '@phlare/ui/Box'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; import { Profile } from '@pyroscope/models/src'; -import FileList from '@webapp/components/FileList'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; -import ExportData from '@webapp/components/ExportData'; +import FileList from '@phlare/components/FileList'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; +import ExportData from '@phlare/components/ExportData'; import { fetchAllProfiles, fetchProfile, @@ -15,9 +15,9 @@ import { selectProfile, selectShared, uploadFile, -} from '@webapp/redux/reducers/adhoc'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import { Tabs, Tab, TabPanel } from '@webapp/ui/Tabs'; +} from '@phlare/redux/reducers/adhoc'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import { Tabs, Tab, TabPanel } from '@phlare/ui/Tabs'; import adhocStyles from './Adhoc.module.scss'; import adhocComparisonStyles from './AdhocComparison.module.scss'; import FileUploader from './components/FileUploader'; diff --git a/og/webapp/javascript/pages/adhoc/AdhocDiff.tsx b/public/app/pages/adhoc/AdhocDiff.tsx similarity index 85% rename from og/webapp/javascript/pages/adhoc/AdhocDiff.tsx rename to public/app/pages/adhoc/AdhocDiff.tsx index 330acd937c..d1fc51c75d 100644 --- a/og/webapp/javascript/pages/adhoc/AdhocDiff.tsx +++ b/public/app/pages/adhoc/AdhocDiff.tsx @@ -1,13 +1,13 @@ import React, { useEffect, useState } from 'react'; import 'react-dom'; -import { Maybe } from '@webapp/util/fp'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import Box from '@webapp/ui/Box'; +import { Maybe } from '@phlare/util/fp'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import Box from '@phlare/ui/Box'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; import { Profile } from '@pyroscope/models/src'; -import FileList from '@webapp/components/FileList'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; -import ExportData from '@webapp/components/ExportData'; +import FileList from '@phlare/components/FileList'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; +import ExportData from '@phlare/components/ExportData'; import { fetchAllProfiles, fetchDiffProfile, @@ -17,9 +17,9 @@ import { selectShared, selectDiffProfile, uploadFile, -} from '@webapp/redux/reducers/adhoc'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import { Tabs, Tab, TabPanel } from '@webapp/ui/Tabs'; +} from '@phlare/redux/reducers/adhoc'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import { Tabs, Tab, TabPanel } from '@phlare/ui/Tabs'; import adhocStyles from './Adhoc.module.scss'; import adhocComparisonStyles from './AdhocComparison.module.scss'; import FileUploader from './components/FileUploader'; @@ -47,20 +47,19 @@ function AdhocDiff() { dispatch(fetchAllProfiles()); }, [dispatch]); + const unwrappedLeftProfileId = leftProfileId.unwrapOr(undefined); + const unwrappedRightProfileId = rightProfileId.unwrapOr(undefined); + useEffect(() => { - if (leftProfileId.isJust && rightProfileId.isJust) { + if (unwrappedLeftProfileId && unwrappedRightProfileId) { dispatch( fetchDiffProfile({ - leftId: leftProfileId.value, - rightId: rightProfileId.value, + leftId: unwrappedLeftProfileId, + rightId: unwrappedRightProfileId, }) ); } - }, [ - dispatch, - leftProfileId.unwrapOr(undefined), - rightProfileId.unwrapOr(undefined), - ]); + }, [dispatch, unwrappedLeftProfileId, unwrappedRightProfileId]); const flamegraph = ( profile: Maybe, diff --git a/og/webapp/javascript/pages/adhoc/AdhocSingle.tsx b/public/app/pages/adhoc/AdhocSingle.tsx similarity index 85% rename from og/webapp/javascript/pages/adhoc/AdhocSingle.tsx rename to public/app/pages/adhoc/AdhocSingle.tsx index e5ebc89289..c7f645d9d9 100644 --- a/og/webapp/javascript/pages/adhoc/AdhocSingle.tsx +++ b/public/app/pages/adhoc/AdhocSingle.tsx @@ -1,11 +1,11 @@ import React, { useEffect, useState } from 'react'; import 'react-dom'; -import { useAppDispatch, useAppSelector } from '@webapp/redux/hooks'; -import Box from '@webapp/ui/Box'; +import { useAppDispatch, useAppSelector } from '@phlare/redux/hooks'; +import Box from '@phlare/ui/Box'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; -import FileList from '@webapp/components/FileList'; -import useExportToFlamegraphDotCom from '@webapp/components/exportToFlamegraphDotCom.hook'; -import ExportData from '@webapp/components/ExportData'; +import FileList from '@phlare/components/FileList'; +import useExportToFlamegraphDotCom from '@phlare/components/exportToFlamegraphDotCom.hook'; +import ExportData from '@phlare/components/ExportData'; import { uploadFile, fetchProfile, @@ -13,9 +13,9 @@ import { fetchAllProfiles, selectedSelectedProfileId, selectProfile, -} from '@webapp/redux/reducers/adhoc'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import { Tabs, Tab, TabPanel } from '@webapp/ui/Tabs'; +} from '@phlare/redux/reducers/adhoc'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import { Tabs, Tab, TabPanel } from '@phlare/ui/Tabs'; import FileUploader from './components/FileUploader'; import adhocStyles from './Adhoc.module.scss'; diff --git a/og/webapp/javascript/pages/adhoc/components/FileUploader.module.scss b/public/app/pages/adhoc/components/FileUploader.module.scss similarity index 100% rename from og/webapp/javascript/pages/adhoc/components/FileUploader.module.scss rename to public/app/pages/adhoc/components/FileUploader.module.scss diff --git a/og/webapp/javascript/pages/adhoc/components/FileUploader.tsx b/public/app/pages/adhoc/components/FileUploader.tsx similarity index 93% rename from og/webapp/javascript/pages/adhoc/components/FileUploader.tsx rename to public/app/pages/adhoc/components/FileUploader.tsx index 1f56593dcf..8cbd572e42 100644 --- a/og/webapp/javascript/pages/adhoc/components/FileUploader.tsx +++ b/public/app/pages/adhoc/components/FileUploader.tsx @@ -1,11 +1,11 @@ -/* eslint-disable react/jsx-props-no-spreading, jsx-a11y/role-supports-aria-props */ +/* eslint-disable react/jsx-props-no-spreading */ import React, { useCallback, useState } from 'react'; import { useDropzone } from 'react-dropzone'; -import Button from '@webapp/ui/Button'; +import Button from '@phlare/ui/Button'; import type { DropzoneOptions } from 'react-dropzone'; import { faFileUpload } from '@fortawesome/free-solid-svg-icons/faFileUpload'; import classNames from 'classnames/bind'; -import Dropdown, { MenuItem } from '@webapp/ui/Dropdown'; +import Dropdown, { MenuItem } from '@phlare/ui/Dropdown'; import { SpyNameFirstClass, SpyNameFirstClassType, @@ -31,8 +31,8 @@ export default function FileUploader({ setFile: onUpload, className }: Props) { const [file, setFile] = useState(); const [spyName, setSpyName] = useState('gospy'); const [units, setUnits] = useState('samples'); - type onDrop = Required['onDrop']; - const onDrop = useCallback( + type OnDrop = Required['onDrop']; + const onDrop = useCallback( (acceptedFiles) => { if (acceptedFiles.length > 1) { throw new Error('Only a single file at a time is accepted.'); diff --git a/og/webapp/javascript/pages/adhoc/components/UploadIcon.tsx b/public/app/pages/adhoc/components/UploadIcon.tsx similarity index 100% rename from og/webapp/javascript/pages/adhoc/components/UploadIcon.tsx rename to public/app/pages/adhoc/components/UploadIcon.tsx diff --git a/og/webapp/javascript/pages/adhoc/components/humanize.ts b/public/app/pages/adhoc/components/humanize.ts similarity index 100% rename from og/webapp/javascript/pages/adhoc/components/humanize.ts rename to public/app/pages/adhoc/components/humanize.ts diff --git a/og/webapp/javascript/pages/constants.ts b/public/app/pages/constants.ts similarity index 100% rename from og/webapp/javascript/pages/constants.ts rename to public/app/pages/constants.ts diff --git a/og/webapp/javascript/pages/continuous/contextMenu/AddAnnotation.menuitem.module.css b/public/app/pages/continuous/contextMenu/AddAnnotation.menuitem.module.css similarity index 100% rename from og/webapp/javascript/pages/continuous/contextMenu/AddAnnotation.menuitem.module.css rename to public/app/pages/continuous/contextMenu/AddAnnotation.menuitem.module.css diff --git a/og/webapp/javascript/pages/continuous/contextMenu/AddAnnotation.menuitem.tsx b/public/app/pages/continuous/contextMenu/AddAnnotation.menuitem.tsx similarity index 89% rename from og/webapp/javascript/pages/continuous/contextMenu/AddAnnotation.menuitem.tsx rename to public/app/pages/continuous/contextMenu/AddAnnotation.menuitem.tsx index b349c6e312..dda0561a5d 100644 --- a/og/webapp/javascript/pages/continuous/contextMenu/AddAnnotation.menuitem.tsx +++ b/public/app/pages/continuous/contextMenu/AddAnnotation.menuitem.tsx @@ -1,16 +1,16 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { useState } from 'react'; -import { MenuItem } from '@webapp/ui/Menu'; +import { MenuItem } from '@phlare/ui/Menu'; import { Popover, PopoverBody, PopoverFooter, PopoverHeader, -} from '@webapp/ui/Popover'; -import Button from '@webapp/ui/Button'; -import { Portal, PortalProps } from '@webapp/ui/Portal'; -import { NewAnnotation } from '@webapp/services/annotations'; -import TextField from '@webapp/ui/Form/TextField'; +} from '@phlare/ui/Popover'; +import Button from '@phlare/ui/Button'; +import { Portal, PortalProps } from '@phlare/ui/Portal'; +import { NewAnnotation } from '@phlare/services/annotations'; +import TextField from '@phlare/ui/Form/TextField'; import { useAnnotationForm } from './useAnnotationForm'; import styles from './AddAnnotation.menuitem.module.css'; diff --git a/og/webapp/javascript/pages/continuous/contextMenu/AnnotationInfo.tsx b/public/app/pages/continuous/contextMenu/AnnotationInfo.tsx similarity index 87% rename from og/webapp/javascript/pages/continuous/contextMenu/AnnotationInfo.tsx rename to public/app/pages/continuous/contextMenu/AnnotationInfo.tsx index 9ef3743d8a..ebfd3d9584 100644 --- a/og/webapp/javascript/pages/continuous/contextMenu/AnnotationInfo.tsx +++ b/public/app/pages/continuous/contextMenu/AnnotationInfo.tsx @@ -1,13 +1,13 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { Dispatch, SetStateAction } from 'react'; -import { Popover, PopoverBody, PopoverFooter } from '@webapp/ui/Popover'; -import Button from '@webapp/ui/Button'; -import { Portal } from '@webapp/ui/Portal'; -import TextField from '@webapp/ui/Form/TextField'; +import { Popover, PopoverBody, PopoverFooter } from '@phlare/ui/Popover'; +import Button from '@phlare/ui/Button'; +import { Portal } from '@phlare/ui/Portal'; +import TextField from '@phlare/ui/Form/TextField'; import { AddAnnotationProps } from './AddAnnotation.menuitem'; import { useAnnotationForm } from './useAnnotationForm'; -interface AnnotationInfo { +interface AnnotationInfoProps { /** where to position the popover */ popoverAnchorPoint: AddAnnotationProps['popoverAnchorPoint']; timestamp: AddAnnotationProps['timestamp']; @@ -25,7 +25,7 @@ const AnnotationInfo = ({ isOpen, onClose, popoverClassname, -}: AnnotationInfo) => { +}: AnnotationInfoProps) => { const { register, errors } = useAnnotationForm({ value, timezone }); return ( diff --git a/og/webapp/javascript/pages/continuous/contextMenu/ContextMenu.tsx b/public/app/pages/continuous/contextMenu/ContextMenu.tsx similarity index 79% rename from og/webapp/javascript/pages/continuous/contextMenu/ContextMenu.tsx rename to public/app/pages/continuous/contextMenu/ContextMenu.tsx index ede25fe93b..2212be3677 100644 --- a/og/webapp/javascript/pages/continuous/contextMenu/ContextMenu.tsx +++ b/public/app/pages/continuous/contextMenu/ContextMenu.tsx @@ -1,7 +1,7 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { useEffect } from 'react'; -import { ControlledMenu, useMenuState } from '@webapp/ui/Menu'; -import { ContextMenuProps as PluginContextMenuProps } from '@webapp/components/TimelineChart/ContextMenu.plugin'; +import { ControlledMenu, useMenuState } from '@phlare/ui/Menu'; +import { ContextMenuProps as PluginContextMenuProps } from '@phlare/components/TimelineChart/ContextMenu.plugin'; interface ContextMenuProps { /** position */ @@ -18,7 +18,7 @@ function ContextMenu(props: ContextMenuProps) { // https://github.com/szhsin/react-menu/issues/2#issuecomment-719166062 useEffect(() => { toggleMenu(true); - }, []); + }, [toggleMenu]); return ( <> diff --git a/og/webapp/javascript/pages/continuous/contextMenu/useAnnotationForm.ts b/public/app/pages/continuous/contextMenu/useAnnotationForm.ts similarity index 93% rename from og/webapp/javascript/pages/continuous/contextMenu/useAnnotationForm.ts rename to public/app/pages/continuous/contextMenu/useAnnotationForm.ts index d6594e7e7f..5eb00cd855 100644 --- a/og/webapp/javascript/pages/continuous/contextMenu/useAnnotationForm.ts +++ b/public/app/pages/continuous/contextMenu/useAnnotationForm.ts @@ -2,7 +2,7 @@ import * as z from 'zod'; import { zodResolver } from '@hookform/resolvers/zod'; import { useForm } from 'react-hook-form'; import { format } from 'date-fns'; -import { getUTCdate, timezoneToOffset } from '@webapp/util/formatDate'; +import { getUTCdate, timezoneToOffset } from '@phlare/util/formatDate'; interface UseAnnotationFormProps { timezone: 'browser' | 'utc'; diff --git a/og/webapp/javascript/pages/exemplars/ExemplarsSingleView.module.scss b/public/app/pages/exemplars/ExemplarsSingleView.module.scss similarity index 100% rename from og/webapp/javascript/pages/exemplars/ExemplarsSingleView.module.scss rename to public/app/pages/exemplars/ExemplarsSingleView.module.scss diff --git a/og/webapp/javascript/pages/exemplars/ExemplarsSingleView.tsx b/public/app/pages/exemplars/ExemplarsSingleView.tsx similarity index 85% rename from og/webapp/javascript/pages/exemplars/ExemplarsSingleView.tsx rename to public/app/pages/exemplars/ExemplarsSingleView.tsx index c4cab8041e..cabbfb51c2 100644 --- a/og/webapp/javascript/pages/exemplars/ExemplarsSingleView.tsx +++ b/public/app/pages/exemplars/ExemplarsSingleView.tsx @@ -1,36 +1,36 @@ import React, { useEffect, useState } from 'react'; import clsx from 'clsx'; -import { Tabs, Tab, TabPanel } from '@webapp/ui/Tabs'; -import useColorMode from '@webapp/hooks/colorMode.hook'; -import useTimeZone from '@webapp/hooks/timeZone.hook'; -import useTags from '@webapp/hooks/tags.hook'; -import { useAppSelector, useAppDispatch } from '@webapp/redux/hooks'; +import { Tabs, Tab, TabPanel } from '@phlare/ui/Tabs'; +import useColorMode from '@phlare/hooks/colorMode.hook'; +import useTimeZone from '@phlare/hooks/timeZone.hook'; +import useTags from '@phlare/hooks/tags.hook'; +import { useAppSelector, useAppDispatch } from '@phlare/redux/hooks'; import { actions, fetchTagValues, selectQueries, setQuery, -} from '@webapp/redux/reducers/continuous'; +} from '@phlare/redux/reducers/continuous'; import { fetchExemplarsSingleView, fetchSelectionProfile, -} from '@webapp/redux/reducers/tracing'; -import Box from '@webapp/ui/Box'; -import NoData from '@webapp/ui/NoData'; -import { LoadingOverlay } from '@webapp/ui/LoadingOverlay'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; -import StatusMessage from '@webapp/ui/StatusMessage'; -import { Tooltip } from '@webapp/ui/Tooltip'; -import { TooltipInfoIcon } from '@webapp/ui/TooltipInfoIcon'; -import Toolbar from '@webapp/components/Toolbar'; -import TagsBar from '@webapp/components/TagsBar'; -import PageTitle from '@webapp/components/PageTitle'; -import { Heatmap } from '@webapp/components/Heatmap'; -import ExportData from '@webapp/components/ExportData'; -import ChartTitle from '@webapp/components/ChartTitle'; -/* eslint-disable css-modules/no-undef-class */ -import ChartTitleStyles from '@webapp/components/ChartTitle.module.scss'; -import { DEFAULT_HEATMAP_PARAMS } from '@webapp/components/Heatmap/constants'; +} from '@phlare/redux/reducers/tracing'; +import Box from '@phlare/ui/Box'; +import NoData from '@phlare/ui/NoData'; +import { LoadingOverlay } from '@phlare/ui/LoadingOverlay'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; +import StatusMessage from '@phlare/ui/StatusMessage'; +import { Tooltip } from '@phlare/ui/Tooltip'; +import { TooltipInfoIcon } from '@phlare/ui/TooltipInfoIcon'; +import Toolbar from '@phlare/components/Toolbar'; +import TagsBar from '@phlare/components/TagsBar'; +import PageTitle from '@phlare/components/PageTitle'; +import { Heatmap } from '@phlare/components/Heatmap'; +import ExportData from '@phlare/components/ExportData'; +import ChartTitle from '@phlare/components/ChartTitle'; +/* eslint-disable */ +import ChartTitleStyles from '@phlare/components/ChartTitle.module.scss'; +import { DEFAULT_HEATMAP_PARAMS } from '@phlare/components/Heatmap/constants'; import { FlamegraphRenderer } from '@pyroscope/flamegraph/src/FlamegraphRenderer'; import type { Profile } from '@pyroscope/models/src'; import { diffTwoProfiles } from '@pyroscope/flamegraph/src/convert/diffTwoProfiles'; @@ -67,7 +67,7 @@ function ExemplarsSingleView() { return () => fetchData.abort('cancel'); } return undefined; - }, [from, until, query]); + }, [from, until, query, dispatch]); const handleHeatmapSelection = ( minValue: number, @@ -145,21 +145,22 @@ function ExemplarsSingleView() {

Heatmap

{heatmap} - {!exemplarsSingleView.selectionProfile && exemplarsSingleView.heatmap && ( - -
- - heatmap-selection-gif -
-
- )} + {!exemplarsSingleView.selectionProfile && + exemplarsSingleView.heatmap && ( + +
+ + heatmap-selection-gif +
+
+ )} {exemplarsSingleView.heatmap && exemplarsSingleView.selectionProfile && differenceProfile ? ( diff --git a/og/webapp/javascript/pages/exemplars/HeatmapIcons.tsx b/public/app/pages/exemplars/HeatmapIcons.tsx similarity index 100% rename from og/webapp/javascript/pages/exemplars/HeatmapIcons.tsx rename to public/app/pages/exemplars/HeatmapIcons.tsx diff --git a/og/webapp/javascript/pages/exemplars/filterNonCPU.ts b/public/app/pages/exemplars/filterNonCPU.ts similarity index 100% rename from og/webapp/javascript/pages/exemplars/filterNonCPU.ts rename to public/app/pages/exemplars/filterNonCPU.ts diff --git a/og/webapp/javascript/pages/exemplars/filterNonCpu.spec.ts b/public/app/pages/exemplars/filterNonCpu.spec.ts similarity index 100% rename from og/webapp/javascript/pages/exemplars/filterNonCpu.spec.ts rename to public/app/pages/exemplars/filterNonCpu.spec.ts diff --git a/og/webapp/javascript/pages/exemplars/heatmapSelectionPreview.gif b/public/app/pages/exemplars/heatmapSelectionPreview.gif similarity index 100% rename from og/webapp/javascript/pages/exemplars/heatmapSelectionPreview.gif rename to public/app/pages/exemplars/heatmapSelectionPreview.gif diff --git a/og/webapp/javascript/pages/formatTableData.spec.ts b/public/app/pages/formatTableData.spec.ts similarity index 100% rename from og/webapp/javascript/pages/formatTableData.spec.ts rename to public/app/pages/formatTableData.spec.ts diff --git a/og/webapp/javascript/pages/formatTableData.ts b/public/app/pages/formatTableData.ts similarity index 100% rename from og/webapp/javascript/pages/formatTableData.ts rename to public/app/pages/formatTableData.ts diff --git a/og/webapp/javascript/pages/formatTitle.spec.ts b/public/app/pages/formatTitle.spec.ts similarity index 94% rename from og/webapp/javascript/pages/formatTitle.spec.ts rename to public/app/pages/formatTitle.spec.ts index 8feda82aa5..672b209691 100644 --- a/og/webapp/javascript/pages/formatTitle.spec.ts +++ b/public/app/pages/formatTitle.spec.ts @@ -1,5 +1,5 @@ +import { brandQuery } from '@phlare/models/query'; import { formatTitle } from './formatTitle'; -import { brandQuery } from '@webapp/models/query'; describe('format title', () => { describe('when both left and right query are falsy', () => { diff --git a/og/webapp/javascript/pages/formatTitle.ts b/public/app/pages/formatTitle.ts similarity index 95% rename from og/webapp/javascript/pages/formatTitle.ts rename to public/app/pages/formatTitle.ts index 4194e007bd..18e934455e 100644 --- a/og/webapp/javascript/pages/formatTitle.ts +++ b/public/app/pages/formatTitle.ts @@ -1,4 +1,4 @@ -import { Query } from '@webapp/models/query'; +import { Query } from '@phlare/models/query'; /** * takes a page name and 2 optional queries diff --git a/og/webapp/javascript/pages/loading.ts b/public/app/pages/loading.ts similarity index 100% rename from og/webapp/javascript/pages/loading.ts rename to public/app/pages/loading.ts diff --git a/og/webapp/javascript/pages/math.spec.ts b/public/app/pages/math.spec.ts similarity index 100% rename from og/webapp/javascript/pages/math.spec.ts rename to public/app/pages/math.spec.ts diff --git a/og/webapp/javascript/pages/math.ts b/public/app/pages/math.ts similarity index 100% rename from og/webapp/javascript/pages/math.ts rename to public/app/pages/math.ts diff --git a/og/webapp/javascript/pages/tagExplorer/components/Legend.module.scss b/public/app/pages/tagExplorer/components/Legend.module.scss similarity index 100% rename from og/webapp/javascript/pages/tagExplorer/components/Legend.module.scss rename to public/app/pages/tagExplorer/components/Legend.module.scss diff --git a/og/webapp/javascript/pages/tagExplorer/components/Legend.spec.tsx b/public/app/pages/tagExplorer/components/Legend.spec.tsx similarity index 96% rename from og/webapp/javascript/pages/tagExplorer/components/Legend.spec.tsx rename to public/app/pages/tagExplorer/components/Legend.spec.tsx index 8db79b7d0c..a92413b1be 100644 --- a/og/webapp/javascript/pages/tagExplorer/components/Legend.spec.tsx +++ b/public/app/pages/tagExplorer/components/Legend.spec.tsx @@ -3,7 +3,7 @@ import Color from 'color'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import type { TimelineGroupData } from '@webapp/components/TimelineChart/TimelineChartWrapper'; +import type { TimelineGroupData } from '@phlare/components/TimelineChart/TimelineChartWrapper'; import type { Group } from '@pyroscope/models/src'; import Legend from './Legend'; diff --git a/og/webapp/javascript/pages/tagExplorer/components/Legend.tsx b/public/app/pages/tagExplorer/components/Legend.tsx similarity index 90% rename from og/webapp/javascript/pages/tagExplorer/components/Legend.tsx rename to public/app/pages/tagExplorer/components/Legend.tsx index adf7d6b4dc..6fefc9ce05 100644 --- a/og/webapp/javascript/pages/tagExplorer/components/Legend.tsx +++ b/public/app/pages/tagExplorer/components/Legend.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import type { TimelineGroupData } from '@webapp/components/TimelineChart/TimelineChartWrapper'; -import { ALL_TAGS } from '@webapp/redux/reducers/continuous'; +import type { TimelineGroupData } from '@phlare/components/TimelineChart/TimelineChartWrapper'; +import { ALL_TAGS } from '@phlare/redux/reducers/continuous'; import classNames from 'classnames/bind'; import styles from './Legend.module.scss'; diff --git a/og/webapp/javascript/pages/tagExplorer/components/TagsSelector.module.scss b/public/app/pages/tagExplorer/components/TagsSelector.module.scss similarity index 100% rename from og/webapp/javascript/pages/tagExplorer/components/TagsSelector.module.scss rename to public/app/pages/tagExplorer/components/TagsSelector.module.scss diff --git a/og/webapp/javascript/pages/tagExplorer/components/TagsSelector.spec.tsx b/public/app/pages/tagExplorer/components/TagsSelector.spec.tsx similarity index 85% rename from og/webapp/javascript/pages/tagExplorer/components/TagsSelector.spec.tsx rename to public/app/pages/tagExplorer/components/TagsSelector.spec.tsx index dfdf64fc66..b6d23eb9a4 100644 --- a/og/webapp/javascript/pages/tagExplorer/components/TagsSelector.spec.tsx +++ b/public/app/pages/tagExplorer/components/TagsSelector.spec.tsx @@ -1,12 +1,12 @@ import React from 'react'; import { Provider } from 'react-redux'; -import { render, screen } from '@testing-library/react'; +import { act, render, screen } from '@testing-library/react'; import { configureStore } from '@reduxjs/toolkit'; import { BrowserRouter } from 'react-router-dom'; -import continuousReducer from '@webapp/redux/reducers/continuous'; +import { continuousReducer } from '../../../redux/reducers/continuous'; import TagsSelector, { TagSelectorProps } from './TagsSelector'; - +import { setStore } from '@phlare/services/storage'; const whereDropdownItems = ['foo', 'bar', 'baz']; const groupByTag = 'group-by-tag-test'; const appName = 'app-name-test'; @@ -19,7 +19,7 @@ function createStore(preloadedState: any) { }, preloadedState, }); - + setStore(store); return store; } @@ -47,7 +47,7 @@ describe('Component: ViewTagsSelectLinkModal', () => { }); // triggers click - screen.getByTestId('toggler').click(); + act(() => screen.getByTestId('toggler').click()); const modalWithToggleEl = screen.getByTestId('modal'); expect(modalWithToggleEl).toBeInTheDocument(); @@ -70,13 +70,13 @@ describe('Component: ViewTagsSelectLinkModal', () => { modalWithToggleEl.querySelectorAll('.tags').forEach((tagList) => { tagList.querySelectorAll('input').forEach((tag, i) => { expect(tag).toHaveAttribute('value', whereDropdownItems[i]); - tag.click(); + act(() => tag.click()); expect(tag.parentElement).toHaveClass('selected'); }); }); - //second click - screen.getByTestId('toggler').click(); + // second click + act(() => screen.getByTestId('toggler').click()); expect(modalWithToggleEl).not.toBeInTheDocument(); }); }); diff --git a/og/webapp/javascript/pages/tagExplorer/components/TagsSelector.tsx b/public/app/pages/tagExplorer/components/TagsSelector.tsx similarity index 91% rename from og/webapp/javascript/pages/tagExplorer/components/TagsSelector.tsx rename to public/app/pages/tagExplorer/components/TagsSelector.tsx index 20fbe346f5..0517d7af36 100644 --- a/og/webapp/javascript/pages/tagExplorer/components/TagsSelector.tsx +++ b/public/app/pages/tagExplorer/components/TagsSelector.tsx @@ -2,12 +2,12 @@ import React, { useState } from 'react'; import { Redirect, useLocation } from 'react-router-dom'; import cl from 'classnames'; -import { useAppDispatch } from '@webapp/redux/hooks'; -import { actions } from '@webapp/redux/reducers/continuous'; -import { appendLabelToQuery } from '@webapp/util/query'; -import { brandQuery } from '@webapp/models/query'; -import { PAGES } from '@webapp/pages/constants'; -import ModalWithToggle from '@webapp/ui/Modals/ModalWithToggle'; +import { useAppDispatch } from '@phlare/redux/hooks'; +import { actions } from '@phlare/redux/reducers/continuous'; +import { appendLabelToQuery } from '@phlare/util/query'; +import { brandQuery } from '@phlare/models/query'; +import { PAGES } from '@phlare/pages/constants'; +import ModalWithToggle from '@phlare/ui/Modals/ModalWithToggle'; import styles from './TagsSelector.module.scss'; const emptyTagsTag = 'No tags available'; diff --git a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/Interactivity.plugin.tsx b/public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/Interactivity.plugin.tsx similarity index 68% rename from og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/Interactivity.plugin.tsx rename to public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/Interactivity.plugin.tsx index eac1191fb6..8b52f560e8 100644 --- a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/Interactivity.plugin.tsx +++ b/public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/Interactivity.plugin.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import ReactDOM from 'react-dom'; -import injectTooltip from '@webapp/components/TimelineChart/injectTooltip'; -import { ITooltipWrapperProps } from '@webapp/components/TimelineChart/TooltipWrapper'; +import injectTooltip from '@phlare/components/TimelineChart/injectTooltip'; +import { createRoot } from 'react-dom/client'; +import { TooltipWrapperProps } from '@phlare/components/TimelineChart/TooltipWrapper'; const TOOLTIP_WRAPPER_ID = 'explore_tooltip_parent'; @@ -18,23 +18,25 @@ type PositionType = { pageY: number; }; +type Options = jquery.flot.plotOptions & { + pieChartTooltip: ( + props: Omit< + TooltipWrapperProps & { + label?: string; + percent?: number; + value?: number; + }, + 'children' + > + ) => React.ReactElement; +}; + (function ($: JQueryStatic) { function init(plot: jquery.flot.plot & jquery.flot.plotOptions) { const tooltipWrapper = injectTooltip($, TOOLTIP_WRAPPER_ID); function onPlotHover(_: unknown, pos: PositionType, obj: ObjType) { - const options = plot.getOptions() as jquery.flot.plotOptions & { - pieChartTooltip: ( - props: Omit< - ITooltipWrapperProps & { - label?: string; - percent?: number; - value?: number; - }, - 'children' - > - ) => React.ReactElement; - }; + const options = plot.getOptions() as Options; const tooltip = options?.pieChartTooltip; if (tooltip && tooltipWrapper?.length) { @@ -54,7 +56,9 @@ type PositionType = { value, }); - ReactDOM.render(<>{Tooltip}, tooltipWrapper?.[0]); + const container = tooltipWrapper?.[0]; + const root = createRoot(container); + root.render(<>{Tooltip}); } } diff --git a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/index.tsx b/public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/index.tsx similarity index 90% rename from og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/index.tsx rename to public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/index.tsx index 81ad4e0dee..025bebbf0a 100644 --- a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/index.tsx +++ b/public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/index.tsx @@ -2,8 +2,8 @@ import React from 'react'; import ReactFlot from 'react-flot'; import Color from 'color'; import TooltipWrapper, { - ITooltipWrapperProps, -} from '@webapp/components/TimelineChart/TooltipWrapper'; + TooltipWrapperProps, +} from '@phlare/components/TimelineChart/TooltipWrapper'; import styles from './styles.module.scss'; import 'react-flot/flot/jquery.flot.pie'; import './Interactivity.plugin'; @@ -29,7 +29,7 @@ interface PieChartProps { } const setOnHoverDisplayTooltip = ( - data: TooltipProps & ITooltipWrapperProps, + data: TooltipProps & TooltipWrapperProps, onHoverTooltip: React.FC ) => { const TooltipBody = onHoverTooltip; @@ -81,7 +81,7 @@ const PieChart = ({ clickable: false, }, pieChartTooltip: onHoverTooltip - ? (tooltipData: TooltipProps & ITooltipWrapperProps) => + ? (tooltipData: TooltipProps & TooltipWrapperProps) => setOnHoverDisplayTooltip(tooltipData, onHoverTooltip) : null, }; diff --git a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/styles.module.scss b/public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/styles.module.scss similarity index 100% rename from og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChart/styles.module.scss rename to public/app/pages/tagExplorer/components/TotalSamplesChart/PieChart/styles.module.scss diff --git a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/index.tsx b/public/app/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/index.tsx similarity index 100% rename from og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/index.tsx rename to public/app/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/index.tsx diff --git a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/styles.module.scss b/public/app/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/styles.module.scss similarity index 100% rename from og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/styles.module.scss rename to public/app/pages/tagExplorer/components/TotalSamplesChart/PieChartTooltip/styles.module.scss diff --git a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/index.module.scss b/public/app/pages/tagExplorer/components/TotalSamplesChart/index.module.scss similarity index 100% rename from og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/index.module.scss rename to public/app/pages/tagExplorer/components/TotalSamplesChart/index.module.scss diff --git a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/index.tsx b/public/app/pages/tagExplorer/components/TotalSamplesChart/index.tsx similarity index 93% rename from og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/index.tsx rename to public/app/pages/tagExplorer/components/TotalSamplesChart/index.tsx index f4f0460337..59fc4548d6 100644 --- a/og/webapp/javascript/pages/tagExplorer/components/TotalSamplesChart/index.tsx +++ b/public/app/pages/tagExplorer/components/TotalSamplesChart/index.tsx @@ -1,8 +1,8 @@ import React, { useMemo } from 'react'; -import { TimelineGroupData } from '@webapp/components/TimelineChart/TimelineChartWrapper'; +import { TimelineGroupData } from '@phlare/components/TimelineChart/TimelineChartWrapper'; import { getFormatter } from '@pyroscope/flamegraph/src/format/format'; import { Profile } from '@pyroscope/models/src'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; import PieChart, { PieChartDataItem } from './PieChart'; import PieChartTooltip from './PieChartTooltip'; import { calculateTotal } from '../../../math'; diff --git a/og/webapp/javascript/redux/async-thunk.ts b/public/app/redux/async-thunk.ts similarity index 100% rename from og/webapp/javascript/redux/async-thunk.ts rename to public/app/redux/async-thunk.ts diff --git a/public/app/redux/hooks.ts b/public/app/redux/hooks.ts index 344ea360a7..8c1ef6ad2d 100644 --- a/public/app/redux/hooks.ts +++ b/public/app/redux/hooks.ts @@ -1,5 +1,5 @@ import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'; -import type { RootState, AppDispatch } from '@webapp/redux/store'; +import type { RootState, AppDispatch } from '@phlare/redux/store'; // Use throughout your app instead of plain `useDispatch` and `useSelector` export const useAppDispatch = () => useDispatch(); diff --git a/og/webapp/javascript/redux/reducers/adhoc.ts b/public/app/redux/reducers/adhoc.ts similarity index 96% rename from og/webapp/javascript/redux/reducers/adhoc.ts rename to public/app/redux/reducers/adhoc.ts index b125ae0506..56a78b8228 100644 --- a/og/webapp/javascript/redux/reducers/adhoc.ts +++ b/public/app/redux/reducers/adhoc.ts @@ -5,11 +5,11 @@ import { retrieve, retrieveAll, retrieveDiff, -} from '@webapp/services/adhoc'; -import type { RootState } from '@webapp/redux/store'; -import { Maybe } from '@webapp/util/fp'; -import { AllProfiles } from '@webapp/models/adhoc'; -import { addNotification } from './notifications'; +} from '@phlare/services/adhoc'; +import type { RootState } from '@phlare/redux/store'; +import { Maybe } from '@phlare/util/fp'; +import { AllProfiles } from '@phlare/models/adhoc'; +import { addNotification } from '@phlare/redux/reducers/notifications'; type uploadState = | { type: 'pristine' } diff --git a/og/webapp/javascript/redux/reducers/continuous/annotations.thunks.ts b/public/app/redux/reducers/continuous/annotations.thunks.ts similarity index 91% rename from og/webapp/javascript/redux/reducers/continuous/annotations.thunks.ts rename to public/app/redux/reducers/continuous/annotations.thunks.ts index fb302c5d88..4177cf2813 100644 --- a/og/webapp/javascript/redux/reducers/continuous/annotations.thunks.ts +++ b/public/app/redux/reducers/continuous/annotations.thunks.ts @@ -1,4 +1,4 @@ -import * as annotationsService from '@webapp/services/annotations'; +import * as annotationsService from '@phlare/services/annotations'; import { addNotification } from '../notifications'; import { createAsyncThunk } from '../../async-thunk'; diff --git a/og/webapp/javascript/redux/reducers/continuous/comparisonView.thunks.ts b/public/app/redux/reducers/continuous/comparisonView.thunks.ts similarity index 94% rename from og/webapp/javascript/redux/reducers/continuous/comparisonView.thunks.ts rename to public/app/redux/reducers/continuous/comparisonView.thunks.ts index bdeee2b290..1c2f3705f8 100644 --- a/og/webapp/javascript/redux/reducers/continuous/comparisonView.thunks.ts +++ b/public/app/redux/reducers/continuous/comparisonView.thunks.ts @@ -1,5 +1,5 @@ -import { renderSingle, RenderOutput } from '@webapp/services/render'; -import { RequestAbortedError } from '@webapp/services/base'; +import { renderSingle, RenderOutput } from '@phlare/services/render'; +import { RequestAbortedError } from '@phlare/services/base'; import { addNotification } from '../notifications'; import { createAsyncThunk } from '../../async-thunk'; import { ContinuousState } from './state'; diff --git a/og/webapp/javascript/redux/reducers/continuous/diffView.thunks.ts b/public/app/redux/reducers/continuous/diffView.thunks.ts similarity index 91% rename from og/webapp/javascript/redux/reducers/continuous/diffView.thunks.ts rename to public/app/redux/reducers/continuous/diffView.thunks.ts index 89acdf4faa..221b1a37ec 100644 --- a/og/webapp/javascript/redux/reducers/continuous/diffView.thunks.ts +++ b/public/app/redux/reducers/continuous/diffView.thunks.ts @@ -1,5 +1,5 @@ -import { renderDiff, RenderDiffResponse } from '@webapp/services/render'; -import { RequestAbortedError } from '@webapp/services/base'; +import { renderDiff, RenderDiffResponse } from '@phlare/services/render'; +import { RequestAbortedError } from '@phlare/services/base'; import { addNotification } from '../notifications'; import { createAsyncThunk } from '../../async-thunk'; import { ContinuousState } from './state'; diff --git a/og/webapp/javascript/redux/reducers/continuous.ts b/public/app/redux/reducers/continuous/index.ts similarity index 86% rename from og/webapp/javascript/redux/reducers/continuous.ts rename to public/app/redux/reducers/continuous/index.ts index dc1390556c..4e5ff73c21 100644 --- a/og/webapp/javascript/redux/reducers/continuous.ts +++ b/public/app/redux/reducers/continuous/index.ts @@ -1,21 +1,21 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; -import { fetchApps } from '@webapp/services/apps'; -import { Query } from '@webapp/models/query'; -import { defaultcomparisonPeriod } from '@webapp/components/SideTimelineComparator/periods'; -import { addNotification } from './notifications'; -import { createAsyncThunk } from '../async-thunk'; -import { ContinuousState, TagsState } from './continuous/state'; -import { fetchTagValues, fetchTags } from './continuous/tags.thunks'; -import { addAnnotation } from './continuous/annotations.thunks'; -import { fetchSingleView } from './continuous/singleView.thunks'; -import { fetchComparisonSide } from './continuous/comparisonView.thunks'; -import { fetchSideTimelines } from './continuous/timelines.thunks'; +import { Query } from '@phlare/models/query'; +import { addNotification } from '../notifications'; +import { createAsyncThunk } from '../../async-thunk'; +import { ContinuousState, TagsState } from './state'; +import { fetchTagValues, fetchTags } from './tags.thunks'; +import { addAnnotation } from './annotations.thunks'; +import { fetchSingleView } from './singleView.thunks'; +import { fetchComparisonSide } from './comparisonView.thunks'; +import { fetchSideTimelines } from './timelines.thunks'; import { fetchTagExplorerView, fetchTagExplorerViewProfile, ALL_TAGS, -} from './continuous/tagExplorer.thunks'; -import { fetchDiffView } from './continuous/diffView.thunks'; +} from './tagExplorer.thunks'; +import { fetchDiffView } from './diffView.thunks'; +import { defaultcomparisonPeriod } from '@phlare/components/SideTimelineComparator/periods'; +import { fetchApps } from '@phlare/services/apps'; const initialState: ContinuousState = { from: 'now-1h', @@ -173,9 +173,9 @@ export const continuousSlice = createSlice({ }, extraReducers: (builder) => { - /**********************/ + /** ******************* */ /* GENERAL GUIDELINES */ - /**********************/ + /** ******************* */ // There are (currently) only 2 ways an action can be aborted: // 1. The component is unmounting, eg when changing route @@ -184,9 +184,9 @@ export const continuousSlice = createSlice({ // Specially in the second case, where a 'rejected' may happen AFTER a 'pending' is dispatched // https://redux-toolkit.js.org/api/createAsyncThunk#checking-if-a-promise-rejection-was-from-an-error-or-cancellation - /*************************/ + /** ********************** */ /* Single View */ - /*************************/ + /** ********************** */ builder.addCase(fetchSingleView.pending, (state) => { switch (state.singleView.type) { // if we are fetching but there's already data @@ -223,9 +223,9 @@ export const continuousSlice = createSlice({ }; }); - /*****************************/ + /** ************************** */ /* Comparison View */ - /*****************************/ + /** ************************** */ builder.addCase(fetchComparisonSide.pending, (state, action) => { const s = state.comparisonView[action.meta.arg.side]; switch (s.type) { @@ -266,9 +266,9 @@ export const continuousSlice = createSlice({ }; }); - /*****************************/ + /** ************************** */ /* Timeline Sides */ - /*****************************/ + /** ************************** */ builder.addCase(fetchSideTimelines.pending, (state) => { state.leftTimeline = { ...state.leftTimeline, @@ -295,9 +295,9 @@ export const continuousSlice = createSlice({ // TODO builder.addCase(fetchSideTimelines.rejected, () => {}); - /***********************/ + /** ******************** */ /* Diff View */ - /***********************/ + /** ******************** */ builder.addCase(fetchDiffView.pending, (state) => { switch (state.diffView.type) { // if we are fetching but there's already data @@ -336,9 +336,9 @@ export const continuousSlice = createSlice({ }; }); - /*******************************/ + /** **************************** */ /* Tag Explorer View */ - /*******************************/ + /** **************************** */ builder.addCase(fetchTagExplorerView.pending, (state) => { switch (state.tagExplorerView.groupsLoadingType) { @@ -372,9 +372,9 @@ export const continuousSlice = createSlice({ builder.addCase(fetchTagExplorerView.rejected, () => {}); - /***************************************/ + /** ************************************ */ /* Tag Explorer View Profile */ - /***************************************/ + /** ************************************ */ builder.addCase(fetchTagExplorerViewProfile.pending, (state) => { switch (state.tagExplorerView.activeTagProfileLoadingType) { @@ -404,9 +404,9 @@ export const continuousSlice = createSlice({ builder.addCase(fetchTagExplorerViewProfile.rejected, () => {}); - /*****************/ + /** ************** */ /* Tags */ - /*****************/ + /** ************** */ // TODO: builder.addCase(fetchTags.pending, () => {}); @@ -438,9 +438,9 @@ export const continuousSlice = createSlice({ }; }); - /***********************/ + /** ******************** */ /* App Names */ - /***********************/ + /** ******************** */ builder.addCase(reloadAppNames.fulfilled, (state, action) => { state.apps = { type: 'loaded', data: action.payload }; }); @@ -451,9 +451,9 @@ export const continuousSlice = createSlice({ state.apps = { type: 'failed', data: state.apps.data }; }); - /*****************/ + /** ************** */ /* Annotation */ - /*****************/ + /** ************** */ builder.addCase(addAnnotation.fulfilled, (state, action) => { // TODO(eh-am): allow arbitrary views if ('annotations' in state.singleView) { @@ -474,7 +474,6 @@ export const continuousSlice = createSlice({ }, }); -export default continuousSlice.reducer; export const { actions } = continuousSlice; export const { setDateRange, setQuery } = continuousSlice.actions; @@ -488,13 +487,15 @@ function getNextStateFromPending( return 'reloading'; } -export * from './continuous/selectors'; +export * from './selectors'; -export * from './continuous/state'; -export * from './continuous/tags.thunks'; -export * from './continuous/singleView.thunks'; -export * from './continuous/annotations.thunks'; -export * from './continuous/comparisonView.thunks'; -export * from './continuous/timelines.thunks'; -export * from './continuous/tagExplorer.thunks'; -export * from './continuous/diffView.thunks'; +export * from './state'; +export * from './tags.thunks'; +export * from './singleView.thunks'; +export * from './annotations.thunks'; +export * from './comparisonView.thunks'; +export * from './timelines.thunks'; +export * from './tagExplorer.thunks'; +export * from './diffView.thunks'; + +export const continuousReducer = continuousSlice.reducer; diff --git a/og/webapp/javascript/redux/reducers/continuous/selectors.ts b/public/app/redux/reducers/continuous/selectors.ts similarity index 96% rename from og/webapp/javascript/redux/reducers/continuous/selectors.ts rename to public/app/redux/reducers/continuous/selectors.ts index 766fdcfd53..72ff73948b 100644 --- a/og/webapp/javascript/redux/reducers/continuous/selectors.ts +++ b/public/app/redux/reducers/continuous/selectors.ts @@ -1,5 +1,5 @@ -import { brandQuery, Query, queryToAppName } from '@webapp/models/query'; -import type { RootState } from '@webapp/redux/store'; +import { brandQuery, Query, queryToAppName } from '@phlare/models/query'; +import type { RootState } from '@phlare/redux/store'; import { ContinuousState, TagsState } from './state'; export const selectContinuousState = (state: RootState) => state.continuous; diff --git a/og/webapp/javascript/redux/reducers/continuous/singleView.thunks.ts b/public/app/redux/reducers/continuous/singleView.thunks.ts similarity index 89% rename from og/webapp/javascript/redux/reducers/continuous/singleView.thunks.ts rename to public/app/redux/reducers/continuous/singleView.thunks.ts index 92e3c9a46a..d03818c959 100644 --- a/og/webapp/javascript/redux/reducers/continuous/singleView.thunks.ts +++ b/public/app/redux/reducers/continuous/singleView.thunks.ts @@ -1,5 +1,5 @@ -import { renderSingle, RenderOutput } from '@webapp/services/render'; -import { RequestAbortedError } from '@webapp/services/base'; +import { renderSingle, RenderOutput } from '@phlare/services/render'; +import { RequestAbortedError } from '@phlare/services/base'; import { addNotification } from '../notifications'; import { createAsyncThunk } from '../../async-thunk'; import { ContinuousState } from './state'; diff --git a/og/webapp/javascript/redux/reducers/continuous/state.ts b/public/app/redux/reducers/continuous/state.ts similarity index 95% rename from og/webapp/javascript/redux/reducers/continuous/state.ts rename to public/app/redux/reducers/continuous/state.ts index 446ae25da0..1784336c63 100644 --- a/og/webapp/javascript/redux/reducers/continuous/state.ts +++ b/public/app/redux/reducers/continuous/state.ts @@ -1,7 +1,7 @@ import type { Profile, Groups } from '@pyroscope/models/src'; -import type { Timeline } from '@webapp/models/timeline'; -import type { Annotation } from '@webapp/models/annotation'; -import type { App } from '@webapp/models/app'; +import type { Timeline } from '@phlare/models/timeline'; +import type { Annotation } from '@phlare/models/annotation'; +import type { App } from '@phlare/models/app'; type NewAnnotationState = | { diff --git a/og/webapp/javascript/redux/reducers/continuous/tagExplorer.thunks.ts b/public/app/redux/reducers/continuous/tagExplorer.thunks.ts similarity index 95% rename from og/webapp/javascript/redux/reducers/continuous/tagExplorer.thunks.ts rename to public/app/redux/reducers/continuous/tagExplorer.thunks.ts index 10e0dcc97c..2edb13f03f 100644 --- a/og/webapp/javascript/redux/reducers/continuous/tagExplorer.thunks.ts +++ b/public/app/redux/reducers/continuous/tagExplorer.thunks.ts @@ -3,9 +3,9 @@ import { renderSingle, RenderOutput, renderExplore, -} from '@webapp/services/render'; -import { RequestAbortedError } from '@webapp/services/base'; -import { appendLabelToQuery } from '@webapp/util/query'; +} from '@phlare/services/render'; +import { RequestAbortedError } from '@phlare/services/base'; +import { appendLabelToQuery } from '@phlare/util/query'; import { addNotification } from '../notifications'; import { createAsyncThunk } from '../../async-thunk'; import { ContinuousState } from './state'; diff --git a/og/webapp/javascript/redux/reducers/continuous/tags.thunks.ts b/public/app/redux/reducers/continuous/tags.thunks.ts similarity index 94% rename from og/webapp/javascript/redux/reducers/continuous/tags.thunks.ts rename to public/app/redux/reducers/continuous/tags.thunks.ts index 3b31645196..5ca272f943 100644 --- a/og/webapp/javascript/redux/reducers/continuous/tags.thunks.ts +++ b/public/app/redux/reducers/continuous/tags.thunks.ts @@ -1,7 +1,7 @@ -import { Query, queryToAppName } from '@webapp/models/query'; -import * as tagsService from '@webapp/services/tags'; -import { createBiggestInterval } from '@webapp/util/timerange'; -import { formatAsOBject, toUnixTimestamp } from '@webapp/util/formatDate'; +import { Query, queryToAppName } from '@phlare/models/query'; +import * as tagsService from '@phlare/services/tags'; +import { createBiggestInterval } from '@phlare/util/timerange'; +import { formatAsOBject, toUnixTimestamp } from '@phlare/util/formatDate'; import { ContinuousState } from './state'; import { addNotification } from '../notifications'; import { createAsyncThunk } from '../../async-thunk'; diff --git a/og/webapp/javascript/redux/reducers/continuous/timelines.thunks.ts b/public/app/redux/reducers/continuous/timelines.thunks.ts similarity index 94% rename from og/webapp/javascript/redux/reducers/continuous/timelines.thunks.ts rename to public/app/redux/reducers/continuous/timelines.thunks.ts index 96acd9fa00..b9ef71b709 100644 --- a/og/webapp/javascript/redux/reducers/continuous/timelines.thunks.ts +++ b/public/app/redux/reducers/continuous/timelines.thunks.ts @@ -1,5 +1,5 @@ -import { RenderOutput, renderSingle } from '@webapp/services/render'; -import { RequestAbortedError } from '@webapp/services/base'; +import { RenderOutput, renderSingle } from '@phlare/services/render'; +import { RequestAbortedError } from '@phlare/services/base'; import { addNotification } from '../notifications'; import { createAsyncThunk } from '../../async-thunk'; import { ContinuousState } from './state'; diff --git a/og/webapp/javascript/redux/reducers/notifications.ts b/public/app/redux/reducers/notifications.ts similarity index 84% rename from og/webapp/javascript/redux/reducers/notifications.ts rename to public/app/redux/reducers/notifications.ts index 5c4f251ba6..574eccf656 100644 --- a/og/webapp/javascript/redux/reducers/notifications.ts +++ b/public/app/redux/reducers/notifications.ts @@ -1,6 +1,6 @@ /* eslint-disable import/prefer-default-export */ -import { store } from '@webapp/ui/Notifications'; -import type { NotificationOptions } from '@webapp/ui/Notifications'; +import { store } from '@phlare/ui/Notifications'; +import type { NotificationOptions } from '@phlare/ui/Notifications'; import { createAsyncThunk } from '../async-thunk'; export const addNotification = createAsyncThunk( diff --git a/og/webapp/javascript/redux/reducers/serviceDiscovery.ts b/public/app/redux/reducers/serviceDiscovery.ts similarity index 92% rename from og/webapp/javascript/redux/reducers/serviceDiscovery.ts rename to public/app/redux/reducers/serviceDiscovery.ts index a0ac9e5e5d..30d6673420 100644 --- a/og/webapp/javascript/redux/reducers/serviceDiscovery.ts +++ b/public/app/redux/reducers/serviceDiscovery.ts @@ -1,5 +1,5 @@ -import { Target } from '@webapp/models/targets'; -import { fetchTargets } from '@webapp/services/serviceDiscovery'; +import { Target } from '@phlare/models/targets'; +import { fetchTargets } from '@phlare/services/serviceDiscovery'; import { createSlice } from '@reduxjs/toolkit'; import { addNotification } from './notifications'; import type { RootState } from '../store'; diff --git a/og/webapp/javascript/redux/reducers/settings.ts b/public/app/redux/reducers/settings.ts similarity index 96% rename from og/webapp/javascript/redux/reducers/settings.ts rename to public/app/redux/reducers/settings.ts index 99e8f6a02e..99fc0ce06d 100644 --- a/og/webapp/javascript/redux/reducers/settings.ts +++ b/public/app/redux/reducers/settings.ts @@ -1,7 +1,7 @@ import { createSlice, combineReducers } from '@reduxjs/toolkit'; -import { Users, type User } from '@webapp/models/users'; -import { APIKey, APIKeys } from '@webapp/models/apikeys'; -import { App } from '@webapp/models/app'; +import { Users, type User } from '@phlare/models/users'; +import { APIKey, APIKeys } from '@phlare/models/apikeys'; +import { App } from '@phlare/models/app'; import { fetchUsers, @@ -10,14 +10,14 @@ import { disableUser as disableUserAPI, changeUserRole as changeUserRoleAPI, deleteUser as deleteUserAPI, -} from '@webapp/services/users'; +} from '@phlare/services/users'; import { fetchAPIKeys, createAPIKey as createAPIKeyAPI, deleteAPIKey as deleteAPIKeyAPI, -} from '@webapp/services/apiKeys'; -import { fetchApps, deleteApp as deleteAppAPI } from '@webapp/services/apps'; -import type { RootState } from '@webapp/redux/store'; +} from '@phlare/services/apiKeys'; +import { fetchApps, deleteApp as deleteAppAPI } from '@phlare/services/apps'; +import type { RootState } from '@phlare/redux/store'; import { addNotification } from './notifications'; import { createAsyncThunk } from '../async-thunk'; diff --git a/public/app/redux/reducers/tenant.ts b/public/app/redux/reducers/tenant.ts index 387d714072..6a8130aed8 100644 --- a/public/app/redux/reducers/tenant.ts +++ b/public/app/redux/reducers/tenant.ts @@ -1,12 +1,10 @@ import { createSlice, type PayloadAction } from '@reduxjs/toolkit'; -import { createAsyncThunk } from '@webapp/redux/async-thunk'; -import type { RootState } from '@webapp/redux/store'; -import { - isMultiTenancyEnabled, - tenantIDFromStorage, -} from '@phlare/services/tenant'; +import { createAsyncThunk } from '@phlare/redux/async-thunk'; +import type { RootState } from '@phlare/redux/store'; +import { isMultiTenancyEnabled } from '@phlare/services/tenant'; import storage from 'redux-persist/lib/storage'; import { PersistConfig } from 'redux-persist/lib/types'; +import { tenantIDFromStorage } from '@phlare/services/storage'; export const persistConfig: PersistConfig = { key: 'pyroscope:tenant', @@ -82,8 +80,8 @@ const tenantSlice = createSlice({ extraReducers: (builder) => { // This thunk will never reject builder.addCase(checkTenancyIsRequired.fulfilled, (state, action) => { - state.tenancy = action.payload.tenancy; - state.tenantID = action.payload.tenantID; + state.tenancy = action.payload?.tenancy; + state.tenantID = action.payload?.tenantID; }); builder.addCase(checkTenancyIsRequired.pending, (state) => { state.tenancy = 'loading'; @@ -93,12 +91,12 @@ const tenantSlice = createSlice({ export const { actions } = tenantSlice; -export const selectTenancy = (state: RootState) => state.tenant.tenancy; +export const selectTenancy = (state: RootState) => state.tenant?.tenancy; export const selectIsMultiTenant = (state: RootState) => - state.tenant.tenancy === 'multi_tenant' || - state.tenant.tenancy === 'wants_to_change'; + state.tenant?.tenancy === 'multi_tenant' || + state.tenant?.tenancy === 'wants_to_change'; -export const selectTenantID = (state: RootState) => state.tenant.tenantID; +export const selectTenantID = (state: RootState) => state.tenant?.tenantID; export default tenantSlice.reducer; diff --git a/og/webapp/javascript/redux/reducers/tracing.ts b/public/app/redux/reducers/tracing.ts similarity index 94% rename from og/webapp/javascript/redux/reducers/tracing.ts rename to public/app/redux/reducers/tracing.ts index 225eea2256..cdcdff73d1 100644 --- a/og/webapp/javascript/redux/reducers/tracing.ts +++ b/public/app/redux/reducers/tracing.ts @@ -8,12 +8,12 @@ import { SelectionProfileOutput, getHeatmapSelectionProfile, Heatmap, - getHeatmapProps, - selectionProfileProps, -} from '@webapp/services/render'; -import type { RootState } from '@webapp/redux/store'; -import { RequestAbortedError } from '@webapp/services/base'; -import { addNotification } from './notifications'; + GetHeatmapProps, + SelectionProfileProps, +} from '@phlare/services/render'; +import type { RootState } from '@phlare/redux/store'; +import { RequestAbortedError } from '@phlare/services/base'; +import { addNotification } from '@phlare/redux/reducers/notifications'; import { createAsyncThunk } from '../async-thunk'; type MergeMetadata = { @@ -121,7 +121,7 @@ export const fetchSingleView = createAsyncThunk< export const fetchExemplarsSingleView = createAsyncThunk< HeatmapOutput, - getHeatmapProps, + GetHeatmapProps, { state: { tracing: TracingState } } >('tracing/exemplarsSingleView', async (heatmapProps, thunkAPI) => { if (exemplarsSingleViewAbortController) { @@ -157,7 +157,7 @@ export const fetchExemplarsSingleView = createAsyncThunk< export const fetchSelectionProfile = createAsyncThunk< SelectionProfileOutput, - selectionProfileProps, + SelectionProfileProps, { state: { tracing: TracingState } } >('tracing/fetchSelectionProfile', async (selectionProfileProps, thunkAPI) => { if (selectionProfileAbortController) { @@ -206,9 +206,9 @@ export const tracingSlice = createSlice({ }, }, extraReducers: (builder) => { - /*************************/ + /** ********************** */ /* Single View */ - /*************************/ + /** ********************** */ builder.addCase(fetchSingleView.pending, (state) => { switch (state.singleView.type) { // if we are fetching but there's already data @@ -264,9 +264,9 @@ export const tracingSlice = createSlice({ } }); - /***********************************/ + /** ******************************** */ /* Exemplars Single View */ - /***********************************/ + /** ******************************** */ builder.addCase(fetchExemplarsSingleView.pending, (state) => { switch (state.exemplarsSingleView.type) { @@ -324,9 +324,9 @@ export const tracingSlice = createSlice({ } }); - /**************************************/ + /** *********************************** */ /* Heatmap Selection Profile */ - /**************************************/ + /** *********************************** */ builder.addCase(fetchSelectionProfile.pending, (state) => { switch (state.exemplarsSingleView.type) { diff --git a/og/webapp/javascript/redux/reducers/ui.ts b/public/app/redux/reducers/ui.ts similarity index 98% rename from og/webapp/javascript/redux/reducers/ui.ts rename to public/app/redux/reducers/ui.ts index ccf5f7eb16..b1c80ca98c 100644 --- a/og/webapp/javascript/redux/reducers/ui.ts +++ b/public/app/redux/reducers/ui.ts @@ -2,7 +2,7 @@ import { createSlice, createSelector, PayloadAction } from '@reduxjs/toolkit'; import { createMigrate } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; import { PersistedState } from 'redux-persist/lib/types'; -import type { RootState } from '@webapp/redux/store'; +import type { RootState } from '@phlare/redux/store'; // Persistence Migrations // See examples on https://github.com/rt2zz/redux-persist/blob/master/docs/migrations.md diff --git a/og/webapp/javascript/redux/reducers/user.ts b/public/app/redux/reducers/user.ts similarity index 93% rename from og/webapp/javascript/redux/reducers/user.ts rename to public/app/redux/reducers/user.ts index 00db182520..8d0c4dc290 100644 --- a/og/webapp/javascript/redux/reducers/user.ts +++ b/public/app/redux/reducers/user.ts @@ -1,15 +1,14 @@ -/* eslint-disable prettier/prettier */ import { createSlice } from '@reduxjs/toolkit'; -import { type User } from '@webapp/models/users'; +import { type User } from '@phlare/models/users'; import { connect, useSelector } from 'react-redux'; import { loadCurrentUser as loadCurrentUserAPI, changeMyPassword as changeMyPasswordAPI, editMyUser as editMyUserAPI, -} from '@webapp/services/users'; -import type { RootState } from '@webapp/redux/store'; +} from '@phlare/services/users'; +import type { RootState } from '@phlare/redux/store'; +import { createAsyncThunk } from '@phlare/redux/async-thunk'; import { addNotification } from './notifications'; -import { createAsyncThunk } from '../async-thunk'; interface UserRootState { type: 'loading' | 'loaded' | 'failed'; diff --git a/public/app/redux/store.ts b/public/app/redux/store.ts index bb1438a9b6..921aae1ba3 100644 --- a/public/app/redux/store.ts +++ b/public/app/redux/store.ts @@ -8,42 +8,54 @@ import { PURGE, REGISTER, } from 'redux-persist'; + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore: Until we rewrite FlamegraphRenderer in typescript this will do import ReduxQuerySync from 'redux-query-sync'; import { configureStore, combineReducers, Middleware } from '@reduxjs/toolkit'; + +import tracingReducer, { + actions as tracingActions, +} from '@phlare/redux/reducers/tracing'; import { history } from '@phlare/util/history'; -import continuousReducer, { +import settingsReducer from './reducers/settings'; +import userReducer from './reducers/user'; +import { + continuousReducer, actions as continuousActions, -} from '@webapp/redux/reducers/continuous'; -import uiStore, { - persistConfig as uiPersistConfig, -} from '@webapp/redux/reducers/ui'; +} from './reducers/continuous'; +import serviceDiscoveryReducer from './reducers/serviceDiscovery'; +import adhocReducer from '@phlare/redux/reducers/adhoc'; +import uiStore, { persistConfig as uiPersistConfig } from './reducers/ui'; import tenantReducer, { persistConfig as tenantPersistConfig, } from '@phlare/redux/reducers/tenant'; +import { setStore } from '@phlare/services/storage'; const reducer = combineReducers({ - continuous: continuousReducer, + settings: settingsReducer, + user: userReducer, + serviceDiscovery: serviceDiscoveryReducer, ui: persistReducer(uiPersistConfig, uiStore), + continuous: continuousReducer, tenant: persistReducer(tenantPersistConfig, tenantReducer), + tracing: tracingReducer, + adhoc: adhocReducer, }); -function isError(action: unknown): action is { error: unknown } { - return (action as { error: string }).error !== undefined; -} - // Most times we will display a (somewhat) user friendly message toast // But it's still useful to have the actual error logged to the console export const logErrorMiddleware: Middleware = () => (next) => (action) => { next(action); - if (isError(action)) { - // eslint-disable-next-line no-console + if (action?.error) { console.error(action.error); } }; const store = configureStore({ reducer, + // https://github.com/reduxjs/redux-toolkit/issues/587#issuecomment-824927971 middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: { @@ -51,7 +63,16 @@ const store = configureStore({ // Based on this issue: https://github.com/rt2zz/redux-persist/issues/988 // and this guide https://redux-toolkit.js.org/usage/usage-guide#use-with-redux-persist - ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER], + ignoredActions: [ + FLUSH, + REHYDRATE, + PAUSE, + PERSIST, + PURGE, + REGISTER, + 'adhoc/uploadFile/pending', + 'adhoc/uploadFile/fulfilled', + ], }, }).concat([logErrorMiddleware]), }); @@ -102,6 +123,11 @@ ReduxQuerySync({ selector: (state: RootState) => state.continuous.query, action: continuousActions.setQuery, }, + queryID: { + defaultvalue: '', + selector: (state: RootState) => state.tracing.queryID, + action: tracingActions.setQueryID, + }, rightQuery: { defaultvalue: '', selector: (state: RootState) => state.continuous.rightQuery, @@ -117,6 +143,18 @@ ReduxQuerySync({ selector: (state: RootState) => state.continuous.maxNodes, action: continuousActions.setMaxNodes, }, + groupBy: { + defaultValue: '', + selector: (state: RootState) => + state.continuous.tagExplorerView.groupByTag, + action: continuousActions.setTagExplorerViewGroupByTag, + }, + groupByValue: { + defaultValue: '', + selector: (state: RootState) => + state.continuous.tagExplorerView.groupByTagValue, + action: continuousActions.setTagExplorerViewGroupByTagValue, + }, }, initialTruth: 'location', replaceState: false, @@ -126,4 +164,9 @@ export default store; // Infer the `RootState` and `AppDispatch` types from the store itself export type RootState = ReturnType; +// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState} export type AppDispatch = typeof store.dispatch; + +export type StoreType = typeof store; + +setStore(store); diff --git a/og/webapp/sass/common.scss b/public/app/sass/common.scss similarity index 100% rename from og/webapp/sass/common.scss rename to public/app/sass/common.scss diff --git a/og/webapp/sass/components/button.scss b/public/app/sass/components/button.scss similarity index 100% rename from og/webapp/sass/components/button.scss rename to public/app/sass/components/button.scss diff --git a/og/webapp/sass/components/daterangepicker.scss b/public/app/sass/components/daterangepicker.scss similarity index 100% rename from og/webapp/sass/components/daterangepicker.scss rename to public/app/sass/components/daterangepicker.scss diff --git a/og/webapp/sass/components/labels.scss b/public/app/sass/components/labels.scss similarity index 100% rename from og/webapp/sass/components/labels.scss rename to public/app/sass/components/labels.scss diff --git a/og/webapp/sass/components/tagsbar.scss b/public/app/sass/components/tagsbar.scss similarity index 100% rename from og/webapp/sass/components/tagsbar.scss rename to public/app/sass/components/tagsbar.scss diff --git a/og/webapp/sass/login.scss b/public/app/sass/login.scss similarity index 100% rename from og/webapp/sass/login.scss rename to public/app/sass/login.scss diff --git a/og/webapp/sass/mixins/outline.scss b/public/app/sass/mixins/outline.scss similarity index 100% rename from og/webapp/sass/mixins/outline.scss rename to public/app/sass/mixins/outline.scss diff --git a/og/webapp/sass/prism.scss b/public/app/sass/prism.scss similarity index 100% rename from og/webapp/sass/prism.scss rename to public/app/sass/prism.scss diff --git a/og/webapp/sass/profile.scss b/public/app/sass/profile.scss similarity index 100% rename from og/webapp/sass/profile.scss rename to public/app/sass/profile.scss diff --git a/og/webapp/sass/reset.scss b/public/app/sass/reset.scss similarity index 100% rename from og/webapp/sass/reset.scss rename to public/app/sass/reset.scss diff --git a/og/webapp/sass/sanitize.css/CHANGELOG.md b/public/app/sass/sanitize.css/CHANGELOG.md similarity index 100% rename from og/webapp/sass/sanitize.css/CHANGELOG.md rename to public/app/sass/sanitize.css/CHANGELOG.md diff --git a/og/webapp/sass/sanitize.css/LICENSE.md b/public/app/sass/sanitize.css/LICENSE.md similarity index 100% rename from og/webapp/sass/sanitize.css/LICENSE.md rename to public/app/sass/sanitize.css/LICENSE.md diff --git a/og/webapp/sass/sanitize.css/README.md b/public/app/sass/sanitize.css/README.md similarity index 100% rename from og/webapp/sass/sanitize.css/README.md rename to public/app/sass/sanitize.css/README.md diff --git a/og/webapp/sass/sanitize.css/forms.css b/public/app/sass/sanitize.css/forms.css similarity index 100% rename from og/webapp/sass/sanitize.css/forms.css rename to public/app/sass/sanitize.css/forms.css diff --git a/og/webapp/sass/sanitize.css/package.json b/public/app/sass/sanitize.css/package.json similarity index 100% rename from og/webapp/sass/sanitize.css/package.json rename to public/app/sass/sanitize.css/package.json diff --git a/og/webapp/sass/sanitize.css/page.css b/public/app/sass/sanitize.css/page.css similarity index 100% rename from og/webapp/sass/sanitize.css/page.css rename to public/app/sass/sanitize.css/page.css diff --git a/og/webapp/sass/sanitize.css/sanitize.css b/public/app/sass/sanitize.css/sanitize.css similarity index 100% rename from og/webapp/sass/sanitize.css/sanitize.css rename to public/app/sass/sanitize.css/sanitize.css diff --git a/og/webapp/sass/sanitize.css/typography.css b/public/app/sass/sanitize.css/typography.css similarity index 100% rename from og/webapp/sass/sanitize.css/typography.css rename to public/app/sass/sanitize.css/typography.css diff --git a/og/webapp/sass/standalone.scss b/public/app/sass/standalone.scss similarity index 100% rename from og/webapp/sass/standalone.scss rename to public/app/sass/standalone.scss diff --git a/og/webapp/sass/variables.css b/public/app/sass/variables.css similarity index 100% rename from og/webapp/sass/variables.css rename to public/app/sass/variables.css diff --git a/og/webapp/sass/variables.scss b/public/app/sass/variables.scss similarity index 100% rename from og/webapp/sass/variables.scss rename to public/app/sass/variables.scss diff --git a/og/webapp/javascript/services/TestData.ts b/public/app/services/TestData.ts similarity index 100% rename from og/webapp/javascript/services/TestData.ts rename to public/app/services/TestData.ts diff --git a/og/webapp/javascript/services/adhoc.ts b/public/app/services/adhoc.ts similarity index 96% rename from og/webapp/javascript/services/adhoc.ts rename to public/app/services/adhoc.ts index a13046eac4..a1b539701b 100644 --- a/og/webapp/javascript/services/adhoc.ts +++ b/public/app/services/adhoc.ts @@ -1,7 +1,7 @@ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import { CustomError } from 'ts-custom-error'; import { FlamebearerProfileSchema, Profile } from '@pyroscope/models/src'; -import { AllProfilesSchema, AllProfiles } from '@webapp/models/adhoc'; +import { AllProfilesSchema, AllProfiles } from '@phlare/models/adhoc'; import type { ZodError } from 'zod'; import { z } from 'zod'; import { request, parseResponse } from './base'; @@ -62,7 +62,7 @@ export async function retrieveAll(): Promise< * represents an error when trying to convert a File to base64 */ export class FileToBase64Error extends CustomError { - public constructor( + constructor( public filename: string, public message: string, public cause?: Error | DOMException diff --git a/og/webapp/javascript/services/annotations.ts b/public/app/services/annotations.ts similarity index 83% rename from og/webapp/javascript/services/annotations.ts rename to public/app/services/annotations.ts index 746196accf..57ae0de50e 100644 --- a/og/webapp/javascript/services/annotations.ts +++ b/public/app/services/annotations.ts @@ -1,6 +1,6 @@ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import type { ZodError } from 'zod'; -import { Annotation, AnnotationSchema } from '@webapp/models/annotation'; +import { Annotation, AnnotationSchema } from '@phlare/models/annotation'; import { request, parseResponse } from './base'; import type { RequestError } from './base'; diff --git a/og/webapp/javascript/services/apiKeys.ts b/public/app/services/apiKeys.ts similarity index 93% rename from og/webapp/javascript/services/apiKeys.ts rename to public/app/services/apiKeys.ts index aa9a52419d..66b01405d3 100644 --- a/og/webapp/javascript/services/apiKeys.ts +++ b/public/app/services/apiKeys.ts @@ -1,11 +1,11 @@ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import type { ZodError } from 'zod'; import { APIKeys, apikeyModel, apiKeysSchema, APIKey, -} from '@webapp/models/apikeys'; +} from '@phlare/models/apikeys'; import { request, parseResponse } from './base'; import type { RequestError } from './base'; diff --git a/public/app/overrides/services/apps.spec.ts b/public/app/services/apps.spec.ts similarity index 98% rename from public/app/overrides/services/apps.spec.ts rename to public/app/services/apps.spec.ts index 8e368804df..5f30ea7221 100644 --- a/public/app/overrides/services/apps.spec.ts +++ b/public/app/services/apps.spec.ts @@ -1,11 +1,11 @@ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; +import * as base from '@phlare/services/base'; import { fetchApps } from './apps'; -import * as base from '@webapp/services/base'; -jest.mock('@webapp/services/base', () => { +jest.mock('@phlare/services/base', () => { return { __esModule: true, - ...jest.requireActual('@webapp/services/base'), + ...jest.requireActual('@phlare/services/base'), }; }); @@ -630,9 +630,9 @@ const mockData = { ], }; -//it('smoke', () => { +// it('smoke', () => { // expect(groupByAppAndProfileId(mockData)).toBe(true); -//}); +// }); // describe('appsService', () => { afterEach(() => { @@ -664,8 +664,8 @@ describe('appsService', () => { const res = await fetchApps(); expect(res.isOk).toBe(true); expect(res.value).toMatchInlineSnapshot(` - [ - { + Array [ + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:alloc_objects:count::", @@ -673,7 +673,7 @@ describe('appsService', () => { "name": "simple.golang.app", "pyroscope_app": "simple.golang.app", }, - { + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:alloc_objects:count::", @@ -681,7 +681,7 @@ describe('appsService', () => { "name": "simple.golang.app2", "pyroscope_app": "simple.golang.app2", }, - { + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:alloc_space:bytes::", @@ -689,7 +689,7 @@ describe('appsService', () => { "name": "simple.golang.app", "pyroscope_app": "simple.golang.app", }, - { + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:alloc_space:bytes::", @@ -697,7 +697,7 @@ describe('appsService', () => { "name": "simple.golang.app2", "pyroscope_app": "simple.golang.app2", }, - { + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:inuse_objects:count::", @@ -705,7 +705,7 @@ describe('appsService', () => { "name": "simple.golang.app", "pyroscope_app": "simple.golang.app", }, - { + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:inuse_objects:count::", @@ -713,7 +713,7 @@ describe('appsService', () => { "name": "simple.golang.app2", "pyroscope_app": "simple.golang.app2", }, - { + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:inuse_space:bytes::", @@ -721,7 +721,7 @@ describe('appsService', () => { "name": "simple.golang.app", "pyroscope_app": "simple.golang.app", }, - { + Object { "__name__": "memory", "__name_id__": "pyroscope_app", "__profile_type__": "memory:inuse_space:bytes::", @@ -729,7 +729,7 @@ describe('appsService', () => { "name": "simple.golang.app2", "pyroscope_app": "simple.golang.app2", }, - { + Object { "__name__": "process_cpu", "__name_id__": "pyroscope_app", "__profile_type__": "process_cpu:cpu:nanoseconds:cpu:nanoseconds", @@ -737,7 +737,7 @@ describe('appsService', () => { "name": "simple.golang.app", "pyroscope_app": "simple.golang.app", }, - { + Object { "__name__": "process_cpu", "__name_id__": "pyroscope_app", "__profile_type__": "process_cpu:cpu:nanoseconds:cpu:nanoseconds", diff --git a/public/app/overrides/services/apps.ts b/public/app/services/apps.ts similarity index 75% rename from public/app/overrides/services/apps.ts rename to public/app/services/apps.ts index aeac3b72e1..690a147107 100644 --- a/public/app/overrides/services/apps.ts +++ b/public/app/services/apps.ts @@ -1,13 +1,18 @@ import { App, AppSchema, + appsModel, PyroscopeAppLabel, ServiceNameLabel, -} from '@webapp/models/app'; -import { Result } from '@webapp/util/fp'; +} from '@phlare/models/app'; +import { Result } from '@phlare/util/fp'; import { z, ZodError } from 'zod'; -import type { RequestError } from '@webapp/services/base'; -import { parseResponse, requestWithOrgID } from '@webapp/services/base'; +import type { RequestError } from '@phlare/services/base'; +import { + parseResponse, + request, + requestWithOrgID, +} from '@phlare/services/base'; // SeriesResponse refers to the response from the server, without any manipulation const SeriesResponseSchema = z.preprocess( @@ -117,3 +122,35 @@ export async function fetchApps(): Promise< return Result.err(response.error); } + +export interface FetchAppsError { + message?: string; +} + +export async function fetchAppsOG(): Promise< + Result +> { + const response = await request('/api/apps'); + + if (response.isOk) { + return parseResponse(response, appsModel); + } + + return Result.err(response.error); +} + +export async function deleteApp(data: { + name: string; +}): Promise> { + const { name } = data; + const response = await request(`/api/apps`, { + method: 'DELETE', + body: JSON.stringify({ name }), + }); + + if (response.isOk) { + return Result.ok(true); + } + + return Result.err(response.error); +} diff --git a/public/app/overrides/services/base.spec.ts b/public/app/services/base.spec.ts similarity index 77% rename from public/app/overrides/services/base.spec.ts rename to public/app/services/base.spec.ts index 1c213447ef..d4a508cd74 100644 --- a/public/app/overrides/services/base.spec.ts +++ b/public/app/services/base.spec.ts @@ -1,14 +1,14 @@ -import { requestWithOrgID } from '@webapp/services/base'; -import * as tenantSvc from '@phlare/services/tenant'; +import { requestWithOrgID } from '@phlare/services/base'; +import * as storageSvc from '@phlare/services/storage'; -jest.mock('@webapp/services/base', () => { +jest.mock('@phlare/services/base', () => { return { __esModule: true, - ...jest.requireActual('@webapp/services/base'), + ...jest.requireActual('@phlare/services/base'), }; }); -jest.mock('@phlare/services/tenant', () => { +jest.mock('@phlare/services/storage', () => { return { __esModule: true, tenantIDFromStorage: jest.fn(), @@ -50,7 +50,7 @@ describe('base', () => { }); it('does not set X-Scope-OrgID if tenantID is not available', () => { - const tenantIdSpy = jest.spyOn(tenantSvc, 'tenantIDFromStorage'); + const tenantIdSpy = jest.spyOn(storageSvc, 'tenantIDFromStorage'); tenantIdSpy.mockReturnValueOnce(''); @@ -62,7 +62,7 @@ describe('base', () => { }); it('sets X-Scope-OrgID if tenantID is available', () => { - const tenantIdSpy = jest.spyOn(tenantSvc, 'tenantIDFromStorage'); + const tenantIdSpy = jest.spyOn(storageSvc, 'tenantIDFromStorage'); tenantIdSpy.mockReturnValueOnce('myid'); diff --git a/public/app/services/base.ts b/public/app/services/base.ts new file mode 100644 index 0000000000..791720e15c --- /dev/null +++ b/public/app/services/base.ts @@ -0,0 +1,404 @@ +/* eslint-disable max-classes-per-file */ +/* eslint-disable import/prefer-default-export */ +import type { ZodError } from 'zod'; +import { modelToResult } from '@phlare/models/utils'; +import { CustomError } from 'ts-custom-error'; +import basename from '@phlare/util/baseurl'; +import { Result } from '@phlare/util/fp'; +import { tenantIDFromStorage } from './storage'; + +// RequestNotOkError refers to when the Response is not within the 2xx range +export class RequestNotOkError extends CustomError { + constructor(public code: number, public description: string) { + super( + `Request failed with statusCode: '${code}' and description: '${description}'` + ); + } +} + +/** + * request wraps around the original request + * while sending the OrgID if available + */ +export async function requestWithOrgID( + request: RequestInfo, + config?: RequestInit +): Promise> { + let headers = config?.headers; + + // Reuse headers if they were passed + if (!config?.headers?.hasOwnProperty('X-Scope-OrgID')) { + const tenantID = tenantIDFromStorage(); + headers = { + ...config?.headers, + ...(tenantID && { 'X-Scope-OrgID': tenantID }), + }; + } + + return connectRequest(request, { + ...config, + headers, + }); +} + +export async function downloadWithOrgID( + request: RequestInfo, + config?: RequestInit +): Promise> { + let headers = config?.headers; + + // Reuse headers if they were passed + if (!config?.headers?.hasOwnProperty('X-Scope-OrgID')) { + const tenantID = tenantIDFromStorage(); + headers = { + ...config?.headers, + ...(tenantID && { 'X-Scope-OrgID': tenantID }), + }; + } + + return connectDownload(request, { + ...config, + headers, + }); +} + +export async function connectDownload( + request: RequestInfo, + config?: RequestInit +): Promise> { + const response = await fetchAndHandleErrors(request, config); + if (!response.isOk) { + return Result.err(response.error); + } + return Result.ok(await response.value); +} + +export async function connectRequest( + request: RequestInfo, + config?: RequestInit +): Promise> { + const response = await fetchAndHandleErrors(request, config); + if (!response.isOk) { + return response; + } + // Server responded with 2xx + const textBody = await response.value.text(); + + // There's nothing in the body + if (!textBody || !textBody.length) { + return Result.ok({ + statusCode: response.value.status, + }); + } + + // We know there's data, so let's check if it's in JSON format + try { + const data = JSON.parse(textBody); + + // We could parse the response + return Result.ok(data); + } catch (e) { + // We couldn't parse, but there's definitly some data + return Result.err( + new ResponseOkNotInJSONFormat(response.value.status, textBody) + ); + } +} + +async function fetchAndHandleErrors( + request: RequestInfo, + config?: RequestInit +): Promise> { + const req = mountRequest(request); + let response: Response; + try { + response = await fetch(req, config); + } catch (e) { + // 'e' is unknown, but most cases it should be an Error + let message = ''; + if (e instanceof Error) { + message = e.message; + } + + if (e instanceof Error && e.name === 'AbortError') { + return Result.err(new RequestAbortedError(message)); + } + + return Result.err(new RequestIncompleteError(message)); + } + + if (response.ok) { + return Result.ok(response); + } + const textBody = await response.text(); + + // There's nothing in the body, so let's use a default message + if (!textBody || !textBody.length) { + return Result.err( + new RequestNotOkError(response.status, 'No description available') + ); + } + + // We know there's data, so let's check if it's in JSON format + try { + const data = JSON.parse(textBody); + + // Check if it's 401 unauthorized error + if (response.status === 401) { + // TODO: Introduce some kind of interceptor (?) + // if (!/\/(login|signup)$/.test(window?.location?.pathname)) { + // window.location.href = mountURL('/login'); + // } + if ('message' in data && typeof data.message === 'string') { + return Result.err(new RequestNotOkError(response.status, data.message)); + } + return Result.err(new RequestNotOkError(response.status, data.error)); + } + + // Usually it's a feedback on user's actions like form validation + if ('errors' in data && Array.isArray(data.errors)) { + return Result.err( + new RequestNotOkWithErrorsList(response.status, data.errors) + ); + } + + // Error message may come in an 'error' field + if ('error' in data && typeof data.error === 'string') { + return Result.err(new RequestNotOkError(response.status, data.error)); + } + + // Error message may come in an 'message' field + if ('message' in data && typeof data.message === 'string') { + return Result.err(new RequestNotOkError(response.status, data.message)); + } + + return Result.err( + new RequestNotOkError( + response.status, + `Could not identify an error message. Payload is ${JSON.stringify( + data + )}` + ) + ); + } catch (e) { + // We couldn't parse, but there's definitly some data + // We must handle this case since the go server sometimes responds with plain text + + // It's HTML + // Which normally happens when hitting a broken URL, which makes the server return the SPA + // Poor heuristic for identifying it's a html file + if (/<\/?[a-z][\s\S]*>/i.test(textBody)) { + return Result.err( + new ResponseNotOkInHTMLFormat(response.status, textBody) + ); + } + return Result.err(new RequestNotOkError(response.status, textBody)); + } +} + +export class RequestAbortedError extends CustomError { + constructor(public description: string) { + super(`Request was aborted by user. Description: '${description}'`); + } +} + +// RequestError refers to when the request is not completed +// For example CORS errors or timeouts +// or simply the address is wrong +export class RequestIncompleteError extends CustomError { + constructor(public description: string) { + super(`Request failed to be completed. Description: '${description}'`); + } +} + +// When the server returns a list of errors +export class RequestNotOkWithErrorsList extends CustomError { + constructor(public code: number, public errors: string[]) { + super(`Error(s) were found: ${errors.map((e) => `"${e}"`).join(', ')}`); + } +} + +export class ResponseNotOkInHTMLFormat extends CustomError { + constructor(public code: number, public body: string) { + super( + `Server returned with code: '${code}'. The body contains an HTML page` + ); + } +} + +export class ResponseOkNotInJSONFormat extends CustomError { + constructor(public code: number, public body: string) { + super( + `Server returned with code: '${code}'. The body that could not be parsed contains '${body}'` + ); + } +} + +export type RequestError = + | RequestNotOkError + | RequestNotOkWithErrorsList + | RequestIncompleteError + | ResponseOkNotInJSONFormat + | ResponseNotOkInHTMLFormat; + +function join(base: string, path: string): string { + path = path.replace(/^\/+/, ''); + base = base.replace(/\/+$/, ''); + return `${base}/${path}`; +} + +export function mountURL(req: RequestInfo): string { + const baseName = basename(); + + if (baseName) { + if (typeof req === 'string') { + return new URL(join(baseName, req), window.location.href).href; + } + + // req is an object + return new URL(join(baseName, req.url), window.location.href).href; + } + + // no basename + if (typeof req === 'string') { + return new URL(`${req}`, window.location.href).href; + } + return new URL(`${req}`, window.location.href).href; +} + +export function mountRequest(req: RequestInfo): RequestInfo { + const url = mountURL(req); + + if (typeof req === 'string') { + return url; + } + + return { + ...req, + url: new URL(req.url, url).href, + }; +} + +export async function request( + request: RequestInfo, + config?: RequestInit +): Promise> { + const req = mountRequest(request); + let response: Response; + try { + response = await fetch(req, config); + } catch (e) { + // 'e' is unknown, but most cases it should be an Error + let message = ''; + if (e instanceof Error) { + message = e.message; + } + + if (e instanceof Error && e.name === 'AbortError') { + return Result.err(new RequestAbortedError(message)); + } + + return Result.err(new RequestIncompleteError(message)); + } + + if (!response.ok) { + const textBody = await response.text(); + + // There's nothing in the body, so let's use a default message + if (!textBody || !textBody.length) { + return Result.err( + new RequestNotOkError(response.status, 'No description available') + ); + } + + // We know there's data, so let's check if it's in JSON format + try { + const data = JSON.parse(textBody); + + // Check if it's 401 unauthorized error + if (response.status === 401) { + // TODO: Introduce some kind of interceptor (?) + // if (!/\/(login|signup)$/.test(window?.location?.pathname)) { + // window.location.href = mountURL('/login'); + // } + return Result.err(new RequestNotOkError(response.status, data.error)); + } + + // Usually it's a feedback on user's actions like form validation + if ('errors' in data && Array.isArray(data.errors)) { + return Result.err( + new RequestNotOkWithErrorsList(response.status, data.errors) + ); + } + + // Error message may come in an 'error' field + if ('error' in data && typeof data.error === 'string') { + return Result.err(new RequestNotOkError(response.status, data.error)); + } + + // Error message may come in an 'message' field + if ('message' in data && typeof data.message === 'string') { + return Result.err(new RequestNotOkError(response.status, data.message)); + } + + return Result.err( + new RequestNotOkError( + response.status, + `Could not identify an error message. Payload is ${JSON.stringify( + data + )}` + ) + ); + } catch (e) { + // We couldn't parse, but there's definitly some data + // We must handle this case since the go server sometimes responds with plain text + + // It's HTML + // Which normally happens when hitting a broken URL, which makes the server return the SPA + // Poor heuristic for identifying it's a html file + if (/<\/?[a-z][\s\S]*>/i.test(textBody)) { + return Result.err( + new ResponseNotOkInHTMLFormat(response.status, textBody) + ); + } + return Result.err(new RequestNotOkError(response.status, textBody)); + } + } + + // Server responded with 2xx + const textBody = await response.text(); + + // There's nothing in the body + if (!textBody || !textBody.length) { + return Result.ok({ + statusCode: response.status, + }); + } + + // We know there's data, so let's check if it's in JSON format + try { + const data = JSON.parse(textBody); + + // We could parse the response + return Result.ok(data); + } catch (e) { + // We couldn't parse, but there's definitly some data + return Result.err(new ResponseOkNotInJSONFormat(response.status, textBody)); + } +} + +// We have to call it something else otherwise it will conflict with the global "Response" +type ResponseFromRequest = Awaited>; +type Schema = Parameters[0]; + +// parseResponse parses a response with given schema if the request has not failed +export function parseResponse( + res: ResponseFromRequest, + schema: Schema +): Result { + if (res.isErr) { + return Result.err(res.error); + } + + return modelToResult(schema, res.value) as Result>; +} diff --git a/og/webapp/javascript/services/exemplarsTestData.ts b/public/app/services/exemplarsTestData.ts similarity index 100% rename from og/webapp/javascript/services/exemplarsTestData.ts rename to public/app/services/exemplarsTestData.ts diff --git a/public/app/services/flamegraphcom.ts b/public/app/services/flamegraphcom.ts index 6f8f3d5b6e..5d70462d64 100644 --- a/public/app/services/flamegraphcom.ts +++ b/public/app/services/flamegraphcom.ts @@ -1,10 +1,7 @@ -import { - parseResponse, - RequestNotOkError, -} from '@pyroscope/webapp/javascript/services/base'; +import { parseResponse, RequestNotOkError } from '@phlare/services/base'; import { z, ZodError } from 'zod'; -import { Result } from '@webapp/util/fp'; -import type { RequestError } from '@webapp/services/base'; +import { Result } from '@phlare/util/fp'; +import type { RequestError } from '@phlare/services/base'; import { Profile } from '@pyroscope/models/src'; export async function flameGraphUpload( @@ -21,7 +18,7 @@ export async function flameGraphUpload( units: flamebearer.metadata.units, spyName: flamebearer.metadata.spyName, }, - name: name, + name, profile: btoa(JSON.stringify(flamebearer)), type: 'json', }), diff --git a/og/webapp/javascript/services/render.ts b/public/app/services/render.ts similarity index 77% rename from og/webapp/javascript/services/render.ts rename to public/app/services/render.ts index cebe4ee35f..a19df61543 100644 --- a/og/webapp/javascript/services/render.ts +++ b/public/app/services/render.ts @@ -1,4 +1,4 @@ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import { Profile, Groups, @@ -10,11 +10,15 @@ import type { ZodError } from 'zod'; import { buildRenderURL, buildMergeURLWithQueryID, -} from '@webapp/util/updateRequests'; -import { Timeline, TimelineSchema } from '@webapp/models/timeline'; -import { Annotation, AnnotationSchema } from '@webapp/models/annotation'; -import type { RequestError } from './base'; -import { request, parseResponse } from './base'; +} from '@phlare/util/updateRequests'; +import { Timeline, TimelineSchema } from '@phlare/models/timeline'; +import { Annotation, AnnotationSchema } from '@phlare/models/annotation'; +import type { RequestError } from '@phlare/services/base'; +import { + request, + parseResponse, + requestWithOrgID, +} from '@phlare/services/base'; export interface RenderOutput { profile: Profile; @@ -31,7 +35,7 @@ const defaultAnnotationsSchema = z.preprocess((a) => { return a; }, z.array(AnnotationSchema)); -interface renderSingleProps { +interface RenderSingleProps { from: string; until: string; query: string; @@ -39,14 +43,14 @@ interface renderSingleProps { maxNodes: string | number; } export async function renderSingle( - props: renderSingleProps, + props: RenderSingleProps, controller?: { signal?: AbortSignal; } ): Promise> { const url = buildRenderURL(props); // TODO - const response = await request(`${url}&format=json`, { + const response = await requestWithOrgID(`/pyroscope/${url}&format=json`, { signal: controller?.signal, }); @@ -78,7 +82,87 @@ export async function renderSingle( return Result.err(parsed.error); } -interface mergeWithQueryIDProps { +export type RenderDiffResponse = z.infer; + +interface RenderDiffProps { + leftFrom: string; + leftUntil: string; + leftQuery: string; + refreshToken?: string; + maxNodes: string; + rightQuery: string; + rightFrom: string; + rightUntil: string; +} + +export async function renderDiff( + props: RenderDiffProps, + controller?: { + signal?: AbortSignal; + } +) { + const params = new URLSearchParams({ + leftQuery: props.leftQuery, + leftFrom: props.leftFrom, + leftUntil: props.leftUntil, + rightQuery: props.rightQuery, + rightFrom: props.rightFrom, + rightUntil: props.rightUntil, + }); + + const response = await requestWithOrgID(`/pyroscope/render-diff?${params}`, { + signal: controller?.signal, + }); + + return parseResponse>( + response, + FlamebearerProfileSchema + ); +} + +const RenderExploreSchema = FlamebearerProfileSchema.extend({ + groups: z.preprocess((groups) => { + const groupNames = Object.keys(groups as Groups); + return groupNames.length + ? groupNames + .filter((g) => !!g.trim()) + .reduce( + (acc, current) => ({ + ...acc, + [current]: (groups as Groups)[current], + }), + {} + ) + : groups; + }, GroupsSchema), +}).transform((values) => { + return { + profile: values, + groups: values.groups, + }; +}); + +interface RenderExploreProps extends Omit { + groupBy: string; + grouByTagValue: string; +} + +export type RenderExploreOutput = z.infer; + +export async function renderExplore( + props: RenderExploreProps, + controller?: { + signal?: AbortSignal; + } +): Promise> { + const url = buildRenderURL(props); + const response = await requestWithOrgID(`/pyroscope/${url}&format=json`, { + signal: controller?.signal, + }); + return parseResponse(response, RenderExploreSchema); +} + +interface MergeWithQueryIDProps { queryID: string; refreshToken?: string; maxNodes: string | number; @@ -91,6 +175,11 @@ interface MergeMetadata { profilesLength: number; } +export interface MergeOutput { + profile: Profile; + mergeMetadata: MergeMetadata; +} + const MergeMetadataSchema = z.object({ appName: z.string(), startTime: z.string(), @@ -98,13 +187,8 @@ const MergeMetadataSchema = z.object({ profilesLength: z.number(), }); -export interface MergeOutput { - profile: Profile; - mergeMetadata: MergeMetadata; -} - export async function mergeWithQueryID( - props: mergeWithQueryIDProps, + props: MergeWithQueryIDProps, controller?: { signal?: AbortSignal; } @@ -152,7 +236,7 @@ const HeatmapSchema = z.object({ values: z.array(z.array(z.number())), }); -export interface getHeatmapProps { +export interface GetHeatmapProps { query: string; from: string; until: string; @@ -170,7 +254,7 @@ export interface HeatmapOutput { } export async function getHeatmap( - props: getHeatmapProps, + props: GetHeatmapProps, controller?: { signal?: AbortSignal; } @@ -221,7 +305,7 @@ export interface SelectionProfileOutput { selectionProfile: Profile; } -export interface selectionProfileProps { +export interface SelectionProfileProps { from: string; until: string; query: string; @@ -234,7 +318,7 @@ export interface selectionProfileProps { } export async function getHeatmapSelectionProfile( - props: selectionProfileProps, + props: SelectionProfileProps, controller?: { signal?: AbortSignal; } @@ -271,111 +355,3 @@ export async function getHeatmapSelectionProfile( return Result.err(response.error); } - -export type RenderDiffResponse = z.infer; - -interface renderDiffProps { - leftFrom: string; - leftUntil: string; - leftQuery: string; - refreshToken?: string; - maxNodes: string; - rightQuery: string; - rightFrom: string; - rightUntil: string; -} -export async function renderDiff( - props: renderDiffProps, - controller?: { - signal?: AbortSignal; - } -) { - const params = new URLSearchParams({ - leftQuery: props.leftQuery, - leftFrom: props.leftFrom, - leftUntil: props.leftUntil, - rightQuery: props.rightQuery, - rightFrom: props.rightFrom, - rightUntil: props.rightUntil, - format: 'json', - }); - - const response = await request(`/render-diff?${params}`, { - signal: controller?.signal, - }); - - return parseResponse>( - response, - FlamebearerProfileSchema - ); -} - -interface renderExploreProps extends Omit { - groupBy: string; - grouByTagValue: string; -} - -export interface RenderExploreOutput { - profile: Profile; - groups: Groups; -} - -export async function renderExplore( - props: renderExploreProps, - controller?: { - signal?: AbortSignal; - } -): Promise> { - const url = buildRenderURL(props); - - const response = await request(`${url}&format=json`, { - signal: controller?.signal, - }); - - if (response.isErr) { - return Result.err(response.error); - } - - const parsed = FlamebearerProfileSchema.merge( - z.object({ timeline: TimelineSchema }) - ) - .merge( - z.object({ - telemetry: z.object({}).passthrough().optional(), - annotations: defaultAnnotationsSchema, - }) - ) - .merge( - z.object({ - groups: z.preprocess((groups) => { - const groupNames = Object.keys(groups as Groups); - - return groupNames.length - ? groupNames - .filter((g) => !!g.trim()) - .reduce( - (acc, current) => ({ - ...acc, - [current]: (groups as Groups)[current], - }), - {} - ) - : groups; - }, GroupsSchema), - }) - ) - .safeParse(response.value); - - if (parsed.success) { - const profile = parsed.data; - const { groups, annotations } = parsed.data; - - return Result.ok({ - profile, - groups, - annotations, - }); - } - - return Result.err(parsed.error); -} diff --git a/og/webapp/javascript/services/serviceDiscovery.ts b/public/app/services/serviceDiscovery.ts similarity index 61% rename from og/webapp/javascript/services/serviceDiscovery.ts rename to public/app/services/serviceDiscovery.ts index 0613c4581d..db116bf78d 100644 --- a/og/webapp/javascript/services/serviceDiscovery.ts +++ b/public/app/services/serviceDiscovery.ts @@ -1,8 +1,8 @@ -import { Result } from '@webapp/util/fp'; -import { Target, targetsModel } from '@webapp/models/targets'; +import { Result } from '@phlare/util/fp'; +import { Target, targetsModel } from '@phlare/models/targets'; import type { ZodError } from 'zod'; -import { request, parseResponse } from './base'; -import type { RequestError } from './base'; +import { request, parseResponse } from '@phlare/services/base'; +import type { RequestError } from '@phlare/services/base'; /* eslint-disable import/prefer-default-export */ export async function fetchTargets(): Promise< diff --git a/og/webapp/javascript/services/share.spec.ts b/public/app/services/share.spec.ts similarity index 96% rename from og/webapp/javascript/services/share.spec.ts rename to public/app/services/share.spec.ts index aeeebfdd78..d1df535c8e 100644 --- a/og/webapp/javascript/services/share.spec.ts +++ b/public/app/services/share.spec.ts @@ -1,4 +1,4 @@ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import { ZodError } from 'zod'; import { shareWithFlamegraphDotcom } from './share'; import { setupServer, rest } from './testUtils'; diff --git a/og/webapp/javascript/services/share.ts b/public/app/services/share.ts similarity index 85% rename from og/webapp/javascript/services/share.ts rename to public/app/services/share.ts index 768ce98375..6a823d65aa 100644 --- a/og/webapp/javascript/services/share.ts +++ b/public/app/services/share.ts @@ -1,15 +1,15 @@ /* eslint-disable import/prefer-default-export */ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import type { ZodError } from 'zod'; import { Profile } from '@pyroscope/models/src'; import { FlamegraphDotComResponse, flamegraphDotComResponseScheme, -} from '@webapp/models/flamegraphDotComResponse'; +} from '@phlare/models/flamegraphDotComResponse'; import type { RequestError } from './base'; import { request, parseResponse } from './base'; -interface shareWithFlamegraphDotcomProps { +interface ShareWithFlamegraphDotcomProps { flamebearer: Profile; name?: string; groupByTag?: string; @@ -21,7 +21,7 @@ export async function shareWithFlamegraphDotcom({ name, groupByTag, groupByTagValue, -}: shareWithFlamegraphDotcomProps): Promise< +}: ShareWithFlamegraphDotcomProps): Promise< Result > { const response = await request('/export', { diff --git a/public/app/services/storage.ts b/public/app/services/storage.ts new file mode 100644 index 0000000000..7562532ac6 --- /dev/null +++ b/public/app/services/storage.ts @@ -0,0 +1,15 @@ +import type { StoreType } from '@phlare/redux/store'; + +let _store: StoreType | null = null; + +export function setStore(store: StoreType) { + _store = store; +} + +export function getStore() { + return _store; +} + +export function tenantIDFromStorage(): string { + return getStore()?.getState().tenant.tenantID || ''; +} diff --git a/public/app/overrides/services/tags.spec.ts b/public/app/services/tags.spec.ts similarity index 94% rename from public/app/overrides/services/tags.spec.ts rename to public/app/services/tags.spec.ts index d3d64af721..9a76394041 100644 --- a/public/app/overrides/services/tags.spec.ts +++ b/public/app/services/tags.spec.ts @@ -1,4 +1,4 @@ -import { queryToMatchers } from '@webapp/services/tags'; +import { queryToMatchers } from '@phlare/services/tags'; describe('queryToMatchers', () => { it('full query', () => { diff --git a/public/app/overrides/services/tags.ts b/public/app/services/tags.ts similarity index 90% rename from public/app/overrides/services/tags.ts rename to public/app/services/tags.ts index 0d0b29804d..966286ede7 100644 --- a/public/app/overrides/services/tags.ts +++ b/public/app/services/tags.ts @@ -1,4 +1,4 @@ -import { parseResponse, requestWithOrgID } from '@webapp/services/base'; +import { parseResponse, requestWithOrgID } from '@phlare/services/base'; import { z } from 'zod'; const labelNamesSchema = z.preprocess( @@ -20,8 +20,10 @@ export function queryToMatchers(query: string) { if (labelsIndex > 0) { const profileTypeID = query.substring(0, labelsIndex); return [ - `{__profile_type__=\"${profileTypeID}\", ` + - query.substring(labelsIndex + 1, query.length), + `{__profile_type__=\"${profileTypeID}\", ${query.substring( + labelsIndex + 1, + query.length + )}`, ]; } if (labelsIndex === 0) { diff --git a/public/app/services/tenant.ts b/public/app/services/tenant.ts index 43057edbe7..ae992a549f 100644 --- a/public/app/services/tenant.ts +++ b/public/app/services/tenant.ts @@ -1,5 +1,4 @@ -import { RequestNotOkError, requestWithOrgID } from '@webapp/services/base'; -import store from '@webapp/redux/store'; +import { RequestNotOkError, requestWithOrgID } from '@phlare/services/base'; export async function isMultiTenancyEnabled() { const res = await requestWithOrgID('/querier.v1.QuerierService/LabelNames', { @@ -32,7 +31,3 @@ function isOrgRequiredError(res: Awaited>) { res.error.description.includes('no org id') ); } - -export function tenantIDFromStorage(): string { - return store.getState().tenant.tenantID || ''; -} diff --git a/og/webapp/javascript/services/testUtils.ts b/public/app/services/testUtils.ts similarity index 100% rename from og/webapp/javascript/services/testUtils.ts rename to public/app/services/testUtils.ts diff --git a/og/webapp/javascript/services/testdata/example.html b/public/app/services/testdata/example.html similarity index 100% rename from og/webapp/javascript/services/testdata/example.html rename to public/app/services/testdata/example.html diff --git a/og/webapp/javascript/services/tsconfig.json b/public/app/services/tsconfig.json similarity index 100% rename from og/webapp/javascript/services/tsconfig.json rename to public/app/services/tsconfig.json diff --git a/og/webapp/javascript/services/users.ts b/public/app/services/users.ts similarity index 97% rename from og/webapp/javascript/services/users.ts rename to public/app/services/users.ts index bcfdbf4a23..04a8d62fad 100644 --- a/og/webapp/javascript/services/users.ts +++ b/public/app/services/users.ts @@ -1,13 +1,13 @@ -import { Result } from '@webapp/util/fp'; +import { Result } from '@phlare/util/fp'; import { Users, type User, userModel, usersModel, passwordEncode, -} from '@webapp/models/users'; +} from '@phlare/models/users'; import type { ZodError } from 'zod'; -import { modelToResult } from '@webapp/models/utils'; +import { modelToResult } from '@phlare/models/utils'; import { request, parseResponse } from './base'; import type { RequestError } from './base'; diff --git a/og/stories/Box.stories.tsx b/public/app/stories/Box.stories.tsx similarity index 86% rename from og/stories/Box.stories.tsx rename to public/app/stories/Box.stories.tsx index 81b5884729..eacdbf2efd 100644 --- a/og/stories/Box.stories.tsx +++ b/public/app/stories/Box.stories.tsx @@ -1,9 +1,9 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import Box, { CollapseBox } from '@ui/Box'; -import Button from '@ui/Button'; +import Box, { CollapseBox } from '@phlare/ui/Box'; +import Button from '@phlare/ui/Button'; import { ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; export default { title: 'Components/Box', diff --git a/og/stories/Button.stories.tsx b/public/app/stories/Button.stories.tsx similarity index 93% rename from og/stories/Button.stories.tsx rename to public/app/stories/Button.stories.tsx index 5d94aa0611..714805f4c7 100644 --- a/og/stories/Button.stories.tsx +++ b/public/app/stories/Button.stories.tsx @@ -1,10 +1,10 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import Button from '@ui/Button'; +import Button from '@phlare/ui/Button'; import { ComponentStory, ComponentMeta } from '@storybook/react'; import { faSyncAlt } from '@fortawesome/free-solid-svg-icons/faSyncAlt'; import { faClock } from '@fortawesome/free-solid-svg-icons/faClock'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; const Template: ComponentStory = (args) => ( diff --git a/og/stories/Dialog.stories.tsx b/public/app/stories/Dialog.stories.tsx similarity index 94% rename from og/stories/Dialog.stories.tsx rename to public/app/stories/Dialog.stories.tsx index b0226f2020..98305f8bda 100644 --- a/og/stories/Dialog.stories.tsx +++ b/public/app/stories/Dialog.stories.tsx @@ -6,9 +6,9 @@ import { DialogHeader, DialogBody, DialogActions, -} from '../webapp/javascript/ui/Dialog'; -import Button from '../webapp/javascript/ui/Button'; -import '../webapp/sass/profile.scss'; +} from '@phlare/ui/Dialog'; +import Button from '@phlare/ui/Button'; +import '../sass/profile.scss'; export default { title: 'Components/Dialog', diff --git a/og/stories/Dropdown.stories.tsx b/public/app/stories/Dropdown.stories.tsx similarity index 93% rename from og/stories/Dropdown.stories.tsx rename to public/app/stories/Dropdown.stories.tsx index d2299b961e..c4a924694e 100644 --- a/og/stories/Dropdown.stories.tsx +++ b/public/app/stories/Dropdown.stories.tsx @@ -1,8 +1,8 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { useState } from 'react'; import { ComponentStory, ComponentMeta } from '@storybook/react'; -import Dropdown, { MenuItem, SubMenu } from '@ui/Dropdown'; -import '../webapp/sass/profile.scss'; +import Dropdown, { MenuItem, SubMenu } from '@phlare/ui/Dropdown'; +import '../sass/profile.scss'; const DropdownSelect = (args) => { const [country, setCountry] = useState(null); diff --git a/og/stories/Flamegraph.stories.tsx b/public/app/stories/Flamegraph.stories.tsx similarity index 95% rename from og/stories/Flamegraph.stories.tsx rename to public/app/stories/Flamegraph.stories.tsx index 3665c73b02..df4d018c2a 100644 --- a/og/stories/Flamegraph.stories.tsx +++ b/public/app/stories/Flamegraph.stories.tsx @@ -1,8 +1,8 @@ import React, { useState } from 'react'; import { FlamegraphRenderer, Box } from '@pyroscope/flamegraph'; -import PyroscopeServerCPU from '../cypress/fixtures/pyroscope.server.cpu.json'; -import SimpleGolangCPU from '../cypress/fixtures/simple-golang-app-cpu.json'; -import Button from '@ui/Button'; +import PyroscopeServerCPU from '../../../og/cypress/fixtures/pyroscope.server.cpu.json'; +import SimpleGolangCPU from '../../../og/cypress/fixtures/simple-golang-app-cpu.json'; +import Button from '@phlare/ui/Button'; import { ComponentStory } from '@storybook/react'; import '@pyroscope/flamegraph/dist/index.css'; diff --git a/og/stories/Form.stories.tsx b/public/app/stories/Form.stories.tsx similarity index 87% rename from og/stories/Form.stories.tsx rename to public/app/stories/Form.stories.tsx index 86625b2ede..e4505ed33e 100644 --- a/og/stories/Form.stories.tsx +++ b/public/app/stories/Form.stories.tsx @@ -3,10 +3,10 @@ import React from 'react'; import { ComponentMeta } from '@storybook/react'; import { useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; -import TextField from '../webapp/javascript/ui/Form/TextField'; -import Button from '../webapp/javascript/ui/Button'; +import TextField from '@phlare/ui/Form/TextField'; +import Button from '@phlare/ui/Button'; import * as z from 'zod'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; export default { title: 'Examples/Form', diff --git a/og/stories/Icon.stories.tsx b/public/app/stories/Icon.stories.tsx similarity index 83% rename from og/stories/Icon.stories.tsx rename to public/app/stories/Icon.stories.tsx index 4ed42c14ea..3f8b81f538 100644 --- a/og/stories/Icon.stories.tsx +++ b/public/app/stories/Icon.stories.tsx @@ -1,9 +1,9 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import Icon from '@ui/Icon'; +import Icon from '@phlare/ui/Icon'; import { ComponentMeta } from '@storybook/react'; import { faClock } from '@fortawesome/free-solid-svg-icons/faClock'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; export default { title: 'Components/Icon', diff --git a/og/stories/InputField.stories.tsx b/public/app/stories/InputField.stories.tsx similarity index 89% rename from og/stories/InputField.stories.tsx rename to public/app/stories/InputField.stories.tsx index 7581708225..cbc2fa6c29 100644 --- a/og/stories/InputField.stories.tsx +++ b/public/app/stories/InputField.stories.tsx @@ -1,9 +1,9 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import InputField from '@ui/InputField'; -import Button from '@ui/Button'; +import InputField from '@phlare/ui/InputField'; +import Button from '@phlare/ui/Button'; import { ComponentStory, ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; const Template: ComponentStory = (args) => ( diff --git a/og/stories/LoadingSpinner.stories.tsx b/public/app/stories/LoadingSpinner.stories.tsx similarity index 68% rename from og/stories/LoadingSpinner.stories.tsx rename to public/app/stories/LoadingSpinner.stories.tsx index a4395112c7..c7926d3298 100644 --- a/og/stories/LoadingSpinner.stories.tsx +++ b/public/app/stories/LoadingSpinner.stories.tsx @@ -1,7 +1,7 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import LoadingSpinner from '@ui/LoadingSpinner'; -import '../webapp/sass/profile.scss'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; +import '../sass/profile.scss'; export default { title: 'Components/LoadingSpinner', diff --git a/og/stories/ModalWithToggle.stories.tsx b/public/app/stories/ModalWithToggle.stories.tsx similarity index 92% rename from og/stories/ModalWithToggle.stories.tsx rename to public/app/stories/ModalWithToggle.stories.tsx index 1cd166eeab..a2273ef744 100644 --- a/og/stories/ModalWithToggle.stories.tsx +++ b/public/app/stories/ModalWithToggle.stories.tsx @@ -1,9 +1,9 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { useState } from 'react'; -import ModalWithToggle from '@ui/Modals/ModalWithToggle'; -// import Button from '@ui/Button'; +import ModalWithToggle from '@phlare/ui/Modals/ModalWithToggle'; +// import Button from '@phlare/ui/Button'; import { ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; export default { title: 'Components/ModalWithToggle', diff --git a/og/stories/Modals.stories.tsx b/public/app/stories/Modals.stories.tsx similarity index 85% rename from og/stories/Modals.stories.tsx rename to public/app/stories/Modals.stories.tsx index aabbe643ff..9b85137fa4 100644 --- a/og/stories/Modals.stories.tsx +++ b/public/app/stories/Modals.stories.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import ShowModal from '@ui/Modals'; -import Button from '@ui/Button'; +import ShowModal from '@phlare/ui/Modals'; +import Button from '@phlare/ui/Button'; import { ComponentStory, ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; const Template: ComponentStory = ({ title, diff --git a/og/stories/NoData.stories.tsx b/public/app/stories/NoData.stories.tsx similarity index 77% rename from og/stories/NoData.stories.tsx rename to public/app/stories/NoData.stories.tsx index 1f18e99550..c1474fc779 100644 --- a/og/stories/NoData.stories.tsx +++ b/public/app/stories/NoData.stories.tsx @@ -1,8 +1,8 @@ import React from 'react'; -import NoData from '@ui/NoData'; -import Box from '@ui/Box'; +import NoData from '@phlare/ui/NoData'; +import Box from '@phlare/ui/Box'; import { ComponentStory, ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; const Template: ComponentStory = () => { return ( diff --git a/og/stories/Notifications.stories.tsx b/public/app/stories/Notifications.stories.tsx similarity index 90% rename from og/stories/Notifications.stories.tsx rename to public/app/stories/Notifications.stories.tsx index b9310558dc..f06bd09695 100644 --- a/og/stories/Notifications.stories.tsx +++ b/public/app/stories/Notifications.stories.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import Notifications, { store } from '@ui/Notifications'; -import Button from '@ui/Button'; -import '../webapp/sass/profile.scss'; +import Notifications, { store } from '@phlare/ui/Notifications'; +import Button from '@phlare/ui/Button'; +import '../sass/profile.scss'; export default { title: 'components/Notifications', diff --git a/og/stories/Sidebar.stories.tsx b/public/app/stories/Sidebar.stories.tsx similarity index 94% rename from og/stories/Sidebar.stories.tsx rename to public/app/stories/Sidebar.stories.tsx index 68a3545a80..708ba50dbd 100644 --- a/og/stories/Sidebar.stories.tsx +++ b/public/app/stories/Sidebar.stories.tsx @@ -8,11 +8,11 @@ import Sidebar, { SidebarContent, SubMenu, Menu, -} from '@ui/Sidebar'; +} from '@phlare/ui/Sidebar'; import { faClock } from '@fortawesome/free-solid-svg-icons/faClock'; import { faBaby } from '@fortawesome/free-solid-svg-icons/faBaby'; -import Icon from '@ui/Icon'; -import '../webapp/sass/profile.scss'; +import Icon from '@phlare/ui/Icon'; +import '../sass/profile.scss'; export default { title: 'Components/Sidebar', diff --git a/og/stories/StatusMessage.stories.tsx b/public/app/stories/StatusMessage.stories.tsx similarity index 85% rename from og/stories/StatusMessage.stories.tsx rename to public/app/stories/StatusMessage.stories.tsx index 2e04d457d6..25fcc7ed06 100644 --- a/og/stories/StatusMessage.stories.tsx +++ b/public/app/stories/StatusMessage.stories.tsx @@ -1,8 +1,8 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import StatusMessage from '@ui/StatusMessage'; +import StatusMessage from '@phlare/ui/StatusMessage'; import { ComponentStory, ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; const Template: ComponentStory = (args) => ( diff --git a/og/stories/Table.stories.tsx b/public/app/stories/Table.stories.tsx similarity index 77% rename from og/stories/Table.stories.tsx rename to public/app/stories/Table.stories.tsx index a95c42dbf3..0137673984 100644 --- a/og/stories/Table.stories.tsx +++ b/public/app/stories/Table.stories.tsx @@ -1,9 +1,9 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import Table from '../webapp/javascript/ui/Table'; -import { randomId } from '../webapp/javascript/util/randomId'; -import { ComponentStory, ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import Table from '@phlare/ui/Table'; +import { randomId } from '@phlare/util/randomId'; +import { ComponentMeta } from '@storybook/react'; +import '../sass/profile.scss'; export default { title: 'Components/Table', diff --git a/og/stories/Tabs.stories.tsx b/public/app/stories/Tabs.stories.tsx similarity index 86% rename from og/stories/Tabs.stories.tsx rename to public/app/stories/Tabs.stories.tsx index 7eb938835a..63b883091e 100644 --- a/og/stories/Tabs.stories.tsx +++ b/public/app/stories/Tabs.stories.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { Tabs, Tab, TabPanel } from '../webapp/javascript/ui/Tabs'; +import { Tabs, Tab, TabPanel } from '@phlare/ui/Tabs'; const LIGHT_COLOR_MODE = 'Light Color Mode'; @@ -10,7 +10,7 @@ export default { }, }; -export const tabs = (props) => { +export const StoryTabs = (props: any) => { const [value, setTab] = useState(0); return ( diff --git a/og/stories/Tooltip.stories.tsx b/public/app/stories/Tooltip.stories.tsx similarity index 75% rename from og/stories/Tooltip.stories.tsx rename to public/app/stories/Tooltip.stories.tsx index c569ea98fa..5abf6d4ffa 100644 --- a/og/stories/Tooltip.stories.tsx +++ b/public/app/stories/Tooltip.stories.tsx @@ -1,9 +1,9 @@ /* eslint-disable react/jsx-props-no-spreading */ import React from 'react'; -import { Tooltip } from '../webapp/javascript/ui/Tooltip'; -import { TooltipInfoIcon } from '../webapp/javascript/ui/TooltipInfoIcon'; +import { Tooltip } from '@phlare/ui/Tooltip'; +import { TooltipInfoIcon } from '@phlare/ui/TooltipInfoIcon'; import { ComponentMeta } from '@storybook/react'; -import '../webapp/sass/profile.scss'; +import '../sass/profile.scss'; export default { title: 'Components/Tooltip', diff --git a/public/app/types/alias.d.ts b/public/app/types/alias.d.ts new file mode 100644 index 0000000000..5506cdc89a --- /dev/null +++ b/public/app/types/alias.d.ts @@ -0,0 +1,3 @@ +// Alias for when you need to use 'any' as a workaround +// and plan to come back to fix it +type ShamefulAny = any; diff --git a/og/webapp/javascript/types/custom.d.ts b/public/app/types/custom.d.ts similarity index 100% rename from og/webapp/javascript/types/custom.d.ts rename to public/app/types/custom.d.ts diff --git a/public/app/types.d.ts b/public/app/types/types.d.ts similarity index 100% rename from public/app/types.d.ts rename to public/app/types/types.d.ts diff --git a/og/webapp/javascript/ui/Box.module.scss b/public/app/ui/Box.module.scss similarity index 100% rename from og/webapp/javascript/ui/Box.module.scss rename to public/app/ui/Box.module.scss diff --git a/og/webapp/javascript/ui/Box.tsx b/public/app/ui/Box.tsx similarity index 100% rename from og/webapp/javascript/ui/Box.tsx rename to public/app/ui/Box.tsx diff --git a/og/webapp/javascript/ui/Button.module.scss b/public/app/ui/Button.module.scss similarity index 100% rename from og/webapp/javascript/ui/Button.module.scss rename to public/app/ui/Button.module.scss diff --git a/og/webapp/javascript/ui/Button.tsx b/public/app/ui/Button.tsx similarity index 97% rename from og/webapp/javascript/ui/Button.tsx rename to public/app/ui/Button.tsx index c089ddb968..c4d0df3d85 100644 --- a/og/webapp/javascript/ui/Button.tsx +++ b/public/app/ui/Button.tsx @@ -69,7 +69,7 @@ const Button = React.forwardRef(function Button( disabled={disabled} onClick={onClick} form={form} - autoFocus={autoFocus} // eslint-disable-line jsx-a11y/no-autofocus + autoFocus={autoFocus} // eslint-disable-line aria-label={props['aria-label']} className={cx( styles.button, diff --git a/og/webapp/javascript/ui/Dialog/Dialog.module.css b/public/app/ui/Dialog/Dialog.module.css similarity index 100% rename from og/webapp/javascript/ui/Dialog/Dialog.module.css rename to public/app/ui/Dialog/Dialog.module.css diff --git a/og/webapp/javascript/ui/Dialog/Dialog.tsx b/public/app/ui/Dialog/Dialog.tsx similarity index 87% rename from og/webapp/javascript/ui/Dialog/Dialog.tsx rename to public/app/ui/Dialog/Dialog.tsx index 7cfe06fb79..c3a2f9fe13 100644 --- a/og/webapp/javascript/ui/Dialog/Dialog.tsx +++ b/public/app/ui/Dialog/Dialog.tsx @@ -1,7 +1,7 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { Ref, ReactNode } from 'react'; import ModalUnstyled from '@mui/base/ModalUnstyled'; -import Button from '@webapp/ui/Button'; +import Button from '@phlare/ui/Button'; import cx from 'classnames'; import styles from './Dialog.module.css'; @@ -9,10 +9,14 @@ const Backdrop = React.forwardRef< HTMLDivElement, { open?: boolean; className: string } >((props, ref) => { - const { open, className, ...other } = props; - return
; + const { className, ...other } = props; + return ( +
+ ); }); +Backdrop.displayName = 'Backdrop'; + type DialogHeaderProps = { children: ReactNode; className?: string } & ( | { closeable: true; onClose: () => void } | { closeable?: false } @@ -35,6 +39,7 @@ export const DialogHeader = React.forwardRef( ); } ); +DialogHeader.displayName = 'DialogHeader'; interface DialogFooterProps { children: ReactNode; @@ -50,6 +55,7 @@ export const DialogFooter = React.forwardRef( ); } ); +DialogFooter.displayName = 'DialogFooter'; interface DialogBodyProps { children: ReactNode; @@ -65,6 +71,7 @@ export const DialogBody = React.forwardRef( ); } ); +DialogBody.displayName = 'DialogBody'; type DialogProps = Exclude< React.ComponentProps, diff --git a/og/webapp/javascript/ui/Dialog/index.ts b/public/app/ui/Dialog/index.ts similarity index 100% rename from og/webapp/javascript/ui/Dialog/index.ts rename to public/app/ui/Dialog/index.ts diff --git a/og/webapp/javascript/ui/Dropdown.module.scss b/public/app/ui/Dropdown.module.scss similarity index 100% rename from og/webapp/javascript/ui/Dropdown.module.scss rename to public/app/ui/Dropdown.module.scss diff --git a/og/webapp/javascript/ui/Dropdown.tsx b/public/app/ui/Dropdown.tsx similarity index 96% rename from og/webapp/javascript/ui/Dropdown.tsx rename to public/app/ui/Dropdown.tsx index 973bded334..cf19968341 100644 --- a/og/webapp/javascript/ui/Dropdown.tsx +++ b/public/app/ui/Dropdown.tsx @@ -26,12 +26,12 @@ export interface DropdownProps { /** Dropdown label */ label: string; - /** Dropdown value*/ + /** Dropdown value */ value?: string; children?: JSX.Element[] | JSX.Element; - /** Event that fires when an item is activated*/ + /** Event that fires when an item is activated */ onItemClick?: (event: ClickEvent) => void; overflow?: MenuProps['overflow']; diff --git a/og/webapp/javascript/ui/Form/TextField/index.module.scss b/public/app/ui/Form/TextField/index.module.scss similarity index 91% rename from og/webapp/javascript/ui/Form/TextField/index.module.scss rename to public/app/ui/Form/TextField/index.module.scss index d871027eda..ae77ead143 100644 --- a/og/webapp/javascript/ui/Form/TextField/index.module.scss +++ b/public/app/ui/Form/TextField/index.module.scss @@ -1,4 +1,4 @@ -@use '../../../../sass/mixins/outline' as *; +@use '../../../sass/mixins/outline' as *; .input { @include outline; diff --git a/og/webapp/javascript/ui/Form/TextField/index.tsx b/public/app/ui/Form/TextField/index.tsx similarity index 100% rename from og/webapp/javascript/ui/Form/TextField/index.tsx rename to public/app/ui/Form/TextField/index.tsx diff --git a/og/webapp/javascript/ui/Form/ValidationError/index.module.css b/public/app/ui/Form/ValidationError/index.module.css similarity index 100% rename from og/webapp/javascript/ui/Form/ValidationError/index.module.css rename to public/app/ui/Form/ValidationError/index.module.css diff --git a/og/webapp/javascript/ui/Form/ValidationError/index.tsx b/public/app/ui/Form/ValidationError/index.tsx similarity index 75% rename from og/webapp/javascript/ui/Form/ValidationError/index.tsx rename to public/app/ui/Form/ValidationError/index.tsx index 51dfa1ee60..61010259c8 100644 --- a/og/webapp/javascript/ui/Form/ValidationError/index.tsx +++ b/public/app/ui/Form/ValidationError/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { ReactNode } from 'react'; import type { FieldError, Merge, FieldErrorsImpl } from 'react-hook-form'; import styles from './index.module.css'; @@ -14,5 +14,5 @@ export default function ValidationError({ message }: StatusMessageProps) { return null; } - return
{message}
; + return
{message as ReactNode}
; } diff --git a/og/webapp/javascript/ui/Icon.tsx b/public/app/ui/Icon.tsx similarity index 100% rename from og/webapp/javascript/ui/Icon.tsx rename to public/app/ui/Icon.tsx diff --git a/og/webapp/javascript/ui/Input.module.scss b/public/app/ui/Input.module.scss similarity index 86% rename from og/webapp/javascript/ui/Input.module.scss rename to public/app/ui/Input.module.scss index ea05148846..ff0231331a 100644 --- a/og/webapp/javascript/ui/Input.module.scss +++ b/public/app/ui/Input.module.scss @@ -1,4 +1,4 @@ -@use '../../sass/mixins/outline' as *; +@use '../sass/mixins/outline' as *; .input { @include outline; diff --git a/og/webapp/javascript/ui/Input.tsx b/public/app/ui/Input.tsx similarity index 97% rename from og/webapp/javascript/ui/Input.tsx rename to public/app/ui/Input.tsx index b18ed959f3..5dac347fec 100644 --- a/og/webapp/javascript/ui/Input.tsx +++ b/public/app/ui/Input.tsx @@ -51,5 +51,6 @@ const Input = React.forwardRef( ); } ); +Input.displayName = 'Input'; export default Input; diff --git a/og/webapp/javascript/ui/InputField/InputField.module.css b/public/app/ui/InputField/InputField.module.css similarity index 100% rename from og/webapp/javascript/ui/InputField/InputField.module.css rename to public/app/ui/InputField/InputField.module.css diff --git a/og/webapp/javascript/ui/InputField/index.tsx b/public/app/ui/InputField/index.tsx similarity index 89% rename from og/webapp/javascript/ui/InputField/index.tsx rename to public/app/ui/InputField/index.tsx index bae01c64cb..cc4c9be2a7 100644 --- a/og/webapp/javascript/ui/InputField/index.tsx +++ b/public/app/ui/InputField/index.tsx @@ -2,7 +2,7 @@ import React, { InputHTMLAttributes, ChangeEvent } from 'react'; import Input from '../Input'; import styles from './InputField.module.css'; -interface IInputFieldProps extends InputHTMLAttributes { +interface InputFieldProps extends InputHTMLAttributes { label: string; className?: string; name: string; @@ -25,7 +25,7 @@ function InputField({ type, value, id, -}: IInputFieldProps) { +}: InputFieldProps) { return (
diff --git a/og/webapp/javascript/ui/LoadingOverlay.module.css b/public/app/ui/LoadingOverlay.module.css similarity index 100% rename from og/webapp/javascript/ui/LoadingOverlay.module.css rename to public/app/ui/LoadingOverlay.module.css diff --git a/og/webapp/javascript/ui/LoadingOverlay.tsx b/public/app/ui/LoadingOverlay.tsx similarity index 94% rename from og/webapp/javascript/ui/LoadingOverlay.tsx rename to public/app/ui/LoadingOverlay.tsx index 847265d90f..e36ed336ac 100644 --- a/og/webapp/javascript/ui/LoadingOverlay.tsx +++ b/public/app/ui/LoadingOverlay.tsx @@ -1,5 +1,5 @@ import React, { ReactNode, useEffect, useState } from 'react'; -import LoadingSpinner from '@webapp/ui/LoadingSpinner'; +import LoadingSpinner from '@phlare/ui/LoadingSpinner'; import cx from 'classnames'; import styles from './LoadingOverlay.module.css'; @@ -36,7 +36,7 @@ export function LoadingOverlay({ setVisible(false); return () => {}; - }, [active]); + }, [active, delay]); return (
diff --git a/og/webapp/javascript/ui/LoadingSpinner.tsx b/public/app/ui/LoadingSpinner.tsx similarity index 100% rename from og/webapp/javascript/ui/LoadingSpinner.tsx rename to public/app/ui/LoadingSpinner.tsx diff --git a/og/webapp/javascript/ui/Menu.tsx b/public/app/ui/Menu.tsx similarity index 100% rename from og/webapp/javascript/ui/Menu.tsx rename to public/app/ui/Menu.tsx diff --git a/og/webapp/javascript/ui/Modals/Modal.module.css b/public/app/ui/Modals/Modal.module.css similarity index 100% rename from og/webapp/javascript/ui/Modals/Modal.module.css rename to public/app/ui/Modals/Modal.module.css diff --git a/og/webapp/javascript/ui/Modals/ModalWithToggle.module.scss b/public/app/ui/Modals/ModalWithToggle.module.scss similarity index 100% rename from og/webapp/javascript/ui/Modals/ModalWithToggle.module.scss rename to public/app/ui/Modals/ModalWithToggle.module.scss diff --git a/og/webapp/javascript/ui/Modals/ModalWithToggle.tsx b/public/app/ui/Modals/ModalWithToggle.tsx similarity index 100% rename from og/webapp/javascript/ui/Modals/ModalWithToggle.tsx rename to public/app/ui/Modals/ModalWithToggle.tsx diff --git a/og/webapp/javascript/ui/Modals/ModalWithToggler.spec.tsx b/public/app/ui/Modals/ModalWithToggler.spec.tsx similarity index 100% rename from og/webapp/javascript/ui/Modals/ModalWithToggler.spec.tsx rename to public/app/ui/Modals/ModalWithToggler.spec.tsx diff --git a/og/webapp/javascript/ui/Modals/index.ts b/public/app/ui/Modals/index.ts similarity index 100% rename from og/webapp/javascript/ui/Modals/index.ts rename to public/app/ui/Modals/index.ts diff --git a/og/webapp/javascript/ui/NoData/NoData.module.scss b/public/app/ui/NoData/NoData.module.scss similarity index 100% rename from og/webapp/javascript/ui/NoData/NoData.module.scss rename to public/app/ui/NoData/NoData.module.scss diff --git a/og/webapp/javascript/ui/NoData/NoData.spec.tsx b/public/app/ui/NoData/NoData.spec.tsx similarity index 100% rename from og/webapp/javascript/ui/NoData/NoData.spec.tsx rename to public/app/ui/NoData/NoData.spec.tsx diff --git a/og/webapp/javascript/ui/NoData/index.tsx b/public/app/ui/NoData/index.tsx similarity index 100% rename from og/webapp/javascript/ui/NoData/index.tsx rename to public/app/ui/NoData/index.tsx diff --git a/og/webapp/javascript/ui/Notifications.module.scss b/public/app/ui/Notifications.module.scss similarity index 100% rename from og/webapp/javascript/ui/Notifications.module.scss rename to public/app/ui/Notifications.module.scss diff --git a/og/webapp/javascript/ui/Notifications.tsx b/public/app/ui/Notifications.tsx similarity index 100% rename from og/webapp/javascript/ui/Notifications.tsx rename to public/app/ui/Notifications.tsx diff --git a/og/webapp/javascript/ui/Popover.module.scss b/public/app/ui/Popover.module.scss similarity index 100% rename from og/webapp/javascript/ui/Popover.module.scss rename to public/app/ui/Popover.module.scss diff --git a/og/webapp/javascript/ui/Popover.tsx b/public/app/ui/Popover.tsx similarity index 100% rename from og/webapp/javascript/ui/Popover.tsx rename to public/app/ui/Popover.tsx diff --git a/og/webapp/javascript/ui/Portal.tsx b/public/app/ui/Portal.tsx similarity index 100% rename from og/webapp/javascript/ui/Portal.tsx rename to public/app/ui/Portal.tsx diff --git a/og/webapp/javascript/ui/Select.module.scss b/public/app/ui/Select.module.scss similarity index 90% rename from og/webapp/javascript/ui/Select.module.scss rename to public/app/ui/Select.module.scss index a6cccfe059..ba00bdf751 100644 --- a/og/webapp/javascript/ui/Select.module.scss +++ b/public/app/ui/Select.module.scss @@ -1,4 +1,4 @@ -@use '../../sass/mixins/outline' as *; +@use '../sass/mixins/outline' as *; .select { @include outline; diff --git a/og/webapp/javascript/ui/Select.tsx b/public/app/ui/Select.tsx similarity index 75% rename from og/webapp/javascript/ui/Select.tsx rename to public/app/ui/Select.tsx index 2e53795499..123974a22f 100644 --- a/og/webapp/javascript/ui/Select.tsx +++ b/public/app/ui/Select.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { ReactNode } from 'react'; import styles from './Select.module.scss'; interface SelectProps { @@ -7,10 +7,12 @@ interface SelectProps { value: string; onChange: (e: React.ChangeEvent) => void; name?: string; - children: React.DetailedHTMLProps< - React.OptionHTMLAttributes, - HTMLOptionElement - >[]; + children: Array< + React.DetailedHTMLProps< + React.OptionHTMLAttributes, + HTMLOptionElement + > + >; id?: string; disabled?: boolean; } @@ -35,7 +37,7 @@ export default function Select({ value={value} onChange={onChange} > - {children} + {children as ReactNode} ); } diff --git a/og/webapp/javascript/ui/Sidebar.scss b/public/app/ui/Sidebar.scss similarity index 100% rename from og/webapp/javascript/ui/Sidebar.scss rename to public/app/ui/Sidebar.scss diff --git a/og/webapp/javascript/ui/Sidebar.tsx b/public/app/ui/Sidebar.tsx similarity index 95% rename from og/webapp/javascript/ui/Sidebar.tsx rename to public/app/ui/Sidebar.tsx index dfb70dd9c7..6cdcb843e4 100644 --- a/og/webapp/javascript/ui/Sidebar.tsx +++ b/public/app/ui/Sidebar.tsx @@ -11,11 +11,11 @@ import { MenuItemProps, SubMenuProps, } from 'react-pro-sidebar'; -import { IconProps } from '@webapp/ui/Icon'; +import { IconProps } from '@phlare/ui/Icon'; import './Sidebar.scss'; export interface SidebarProps { - children: React.ReactNode | React.ReactNode[]; + children: React.ReactNode; collapsed?: boolean; className?: string; diff --git a/og/webapp/javascript/ui/StatusMessage/StatusMessage.module.scss b/public/app/ui/StatusMessage/StatusMessage.module.scss similarity index 100% rename from og/webapp/javascript/ui/StatusMessage/StatusMessage.module.scss rename to public/app/ui/StatusMessage/StatusMessage.module.scss diff --git a/og/webapp/javascript/ui/StatusMessage/index.tsx b/public/app/ui/StatusMessage/index.tsx similarity index 100% rename from og/webapp/javascript/ui/StatusMessage/index.tsx rename to public/app/ui/StatusMessage/index.tsx diff --git a/og/webapp/javascript/ui/Table.module.scss b/public/app/ui/Table.module.scss similarity index 100% rename from og/webapp/javascript/ui/Table.module.scss rename to public/app/ui/Table.module.scss diff --git a/og/webapp/javascript/ui/Table.spec.tsx b/public/app/ui/Table.spec.tsx similarity index 96% rename from og/webapp/javascript/ui/Table.spec.tsx rename to public/app/ui/Table.spec.tsx index ef741cf5e4..177665d763 100644 --- a/og/webapp/javascript/ui/Table.spec.tsx +++ b/public/app/ui/Table.spec.tsx @@ -103,7 +103,7 @@ describe('pagination', () => { expect(items[0]).toHaveTextContent('1'); // Second page - screen.getByLabelText('Next Page').click(); + act(() => screen.getByLabelText('Next Page').click()); expect(screen.getByLabelText('Previous Page')).toBeEnabled(); expect(screen.getByLabelText('Next Page')).toBeEnabled(); items = await within(tbody).findAllByRole('row'); @@ -111,7 +111,7 @@ describe('pagination', () => { expect(items[0]).toHaveTextContent('2'); // Third page - screen.getByLabelText('Next Page').click(); + act(() => screen.getByLabelText('Next Page').click()); expect(screen.getByLabelText('Previous Page')).toBeEnabled(); expect(screen.getByLabelText('Next Page')).toBeDisabled(); items = await within(tbody).findAllByRole('row'); diff --git a/og/webapp/javascript/ui/Table.tsx b/public/app/ui/Table.tsx similarity index 97% rename from og/webapp/javascript/ui/Table.tsx rename to public/app/ui/Table.tsx index a0424f8564..86eb003c46 100644 --- a/og/webapp/javascript/ui/Table.tsx +++ b/public/app/ui/Table.tsx @@ -1,10 +1,8 @@ -/* eslint-disable react/jsx-props-no-spreading */ import React, { useState, ReactNode, CSSProperties, RefObject } from 'react'; import { faChevronLeft } from '@fortawesome/free-solid-svg-icons/faChevronLeft'; import { faChevronRight } from '@fortawesome/free-solid-svg-icons/faChevronRight'; import clsx from 'clsx'; -// eslint-disable-next-line css-modules/no-unused-class import styles from './Table.module.scss'; import LoadingSpinner from './LoadingSpinner'; import Button from './Button'; @@ -91,7 +89,7 @@ interface TableProps { itemsPerPage?: number; } -function Table({ +function TableComponent({ sortByDirection, sortBy, updateSortParams, @@ -249,4 +247,4 @@ function PaginationNavigation({ ); } -export default Table; +export default TableComponent; diff --git a/og/webapp/javascript/ui/Tabs.module.scss b/public/app/ui/Tabs.module.scss similarity index 100% rename from og/webapp/javascript/ui/Tabs.module.scss rename to public/app/ui/Tabs.module.scss diff --git a/og/webapp/javascript/ui/Tabs.spec.tsx b/public/app/ui/Tabs.spec.tsx similarity index 86% rename from og/webapp/javascript/ui/Tabs.spec.tsx rename to public/app/ui/Tabs.spec.tsx index 2a410a5925..476ff43bea 100644 --- a/og/webapp/javascript/ui/Tabs.spec.tsx +++ b/public/app/ui/Tabs.spec.tsx @@ -1,7 +1,7 @@ -import { render, screen } from '@testing-library/react'; +import { act, render, screen } from '@testing-library/react'; import React, { useState } from 'react'; -import { Tab, TabPanel, Tabs } from './Tabs'; import userEvent from '@testing-library/user-event'; +import { Tab, TabPanel, Tabs } from './Tabs'; function TabsComponent() { const [value, setTab] = useState(0); @@ -36,7 +36,8 @@ describe('Tabs', () => { expect(screen.getByText('Tab_1_Content')).toBeVisible(); expect(screen.queryByText('Tab_2_Content')).toBeNull(); - userEvent.click(screen.getByText('Tab_2'), { button: 1 }); + const tab2 = screen.getByText('Tab_2'); + act(() => userEvent.click(tab2, { button: 1 })); expect(screen.getByText('Tab_2_Content')).toBeVisible(); expect(screen.queryByText('Tab_1_Content')).toBeNull(); diff --git a/og/webapp/javascript/ui/Tabs.tsx b/public/app/ui/Tabs.tsx similarity index 100% rename from og/webapp/javascript/ui/Tabs.tsx rename to public/app/ui/Tabs.tsx diff --git a/og/webapp/javascript/ui/Tooltip.module.scss b/public/app/ui/Tooltip.module.scss similarity index 100% rename from og/webapp/javascript/ui/Tooltip.module.scss rename to public/app/ui/Tooltip.module.scss diff --git a/og/webapp/javascript/ui/Tooltip.tsx b/public/app/ui/Tooltip.tsx similarity index 82% rename from og/webapp/javascript/ui/Tooltip.tsx rename to public/app/ui/Tooltip.tsx index 61cf6b1073..582ad1cebf 100644 --- a/og/webapp/javascript/ui/Tooltip.tsx +++ b/public/app/ui/Tooltip.tsx @@ -1,8 +1,3 @@ -/* eslint-disable -jsx-a11y/click-events-have-key-events, -jsx-a11y/no-noninteractive-element-interactions, -css-modules/no-unused-class -*/ import React from 'react'; import MuiTooltip from '@mui/material/Tooltip'; import styles from './Tooltip.module.scss'; diff --git a/og/webapp/javascript/ui/TooltipInfoIcon.module.scss b/public/app/ui/TooltipInfoIcon.module.scss similarity index 100% rename from og/webapp/javascript/ui/TooltipInfoIcon.module.scss rename to public/app/ui/TooltipInfoIcon.module.scss diff --git a/og/webapp/javascript/ui/TooltipInfoIcon.tsx b/public/app/ui/TooltipInfoIcon.tsx similarity index 93% rename from og/webapp/javascript/ui/TooltipInfoIcon.tsx rename to public/app/ui/TooltipInfoIcon.tsx index 529ae4e9f4..372647af17 100644 --- a/og/webapp/javascript/ui/TooltipInfoIcon.tsx +++ b/public/app/ui/TooltipInfoIcon.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { faInfoCircle } from '@fortawesome/free-solid-svg-icons/faInfoCircle'; -import Button from '@webapp/ui/Button'; +import Button from '@phlare/ui/Button'; import styles from './TooltipInfoIcon.module.scss'; export const TooltipInfoIcon = React.forwardRef(function TooltipInfoIcon( diff --git a/public/app/overrides/util/baseurl.spec.ts b/public/app/util/baseurl.spec.ts similarity index 96% rename from public/app/overrides/util/baseurl.spec.ts rename to public/app/util/baseurl.spec.ts index cbbb9754bf..6faa5f7f2e 100644 --- a/public/app/overrides/util/baseurl.spec.ts +++ b/public/app/util/baseurl.spec.ts @@ -1,4 +1,4 @@ -import { baseurl, baseurlForAPI } from '@webapp/util/baseurl'; +import { baseurl, baseurlForAPI } from '@phlare/util/baseurl'; function mockSelector(href: string) { const base = document.createElement('base'); diff --git a/public/app/overrides/util/baseurl.ts b/public/app/util/baseurl.ts similarity index 100% rename from public/app/overrides/util/baseurl.ts rename to public/app/util/baseurl.ts diff --git a/og/webapp/javascript/util/buildInfo.ts b/public/app/util/buildInfo.ts similarity index 94% rename from og/webapp/javascript/util/buildInfo.ts rename to public/app/util/buildInfo.ts index b96b779653..b0f6be585a 100644 --- a/og/webapp/javascript/util/buildInfo.ts +++ b/public/app/util/buildInfo.ts @@ -1,6 +1,6 @@ // eslint-disable-next-line import/no-relative-packages import { Maybe } from 'true-myth'; -import { version as jsVersion } from '../../../package.json'; +import { version as jsVersion } from '../../../og/webapp/package.json'; export interface BuildInfo { goos: string; diff --git a/og/webapp/javascript/util/features.ts b/public/app/util/features.ts similarity index 100% rename from og/webapp/javascript/util/features.ts rename to public/app/util/features.ts diff --git a/og/webapp/javascript/util/flamebearer.ts b/public/app/util/flamebearer.ts similarity index 100% rename from og/webapp/javascript/util/flamebearer.ts rename to public/app/util/flamebearer.ts diff --git a/og/webapp/javascript/util/formatDate.spec.ts b/public/app/util/formatDate.spec.ts similarity index 97% rename from og/webapp/javascript/util/formatDate.spec.ts rename to public/app/util/formatDate.spec.ts index 813451a56e..87f1e4ee72 100644 --- a/og/webapp/javascript/util/formatDate.spec.ts +++ b/public/app/util/formatDate.spec.ts @@ -2,9 +2,8 @@ import { readableRange, formatAsOBject, toUnixTimestamp, -} from '@webapp/util/formatDate'; +} from '@phlare/util/formatDate'; import * as dateFns from 'date-fns'; -import timezoneMock from 'timezone-mock'; describe('FormatDate', () => { describe('readableRange', () => { diff --git a/og/webapp/javascript/util/formatDate.ts b/public/app/util/formatDate.ts similarity index 100% rename from og/webapp/javascript/util/formatDate.ts rename to public/app/util/formatDate.ts diff --git a/og/webapp/javascript/util/fp.ts b/public/app/util/fp.ts similarity index 100% rename from og/webapp/javascript/util/fp.ts rename to public/app/util/fp.ts diff --git a/og/webapp/javascript/util/handleError.ts b/public/app/util/handleError.ts similarity index 79% rename from og/webapp/javascript/util/handleError.ts rename to public/app/util/handleError.ts index af1b8eb42f..d9efe04547 100644 --- a/og/webapp/javascript/util/handleError.ts +++ b/public/app/util/handleError.ts @@ -1,7 +1,7 @@ -import type { RequestError, RequestNotOkError } from '@webapp/services/base'; +import type { RequestError } from '@phlare/services/base'; import { ZodError } from 'zod'; -import { addNotification } from '@webapp/redux/reducers/notifications'; -import { useAppDispatch } from '@webapp/redux/hooks'; +import { addNotification } from '@phlare/redux/reducers/notifications'; +import { useAppDispatch } from '@phlare/redux/hooks'; /** * handleError handles service errors diff --git a/public/app/util/history.ts b/public/app/util/history.ts index b3afa577b0..7099bfb7e4 100644 --- a/public/app/util/history.ts +++ b/public/app/util/history.ts @@ -1,5 +1,5 @@ import { createBrowserHistory } from 'history'; -import { baseurl } from '@webapp/util/baseurl'; +import { baseurl } from '@phlare/util/baseurl'; // We share the same instance since react-query-sync expects the same // 'history' instance to be shared diff --git a/og/webapp/javascript/util/prism.ts b/public/app/util/prism.ts similarity index 100% rename from og/webapp/javascript/util/prism.ts rename to public/app/util/prism.ts diff --git a/og/webapp/javascript/util/query.ts b/public/app/util/query.ts similarity index 100% rename from og/webapp/javascript/util/query.ts rename to public/app/util/query.ts diff --git a/og/webapp/javascript/util/randomId.spec.ts b/public/app/util/randomId.spec.ts similarity index 100% rename from og/webapp/javascript/util/randomId.spec.ts rename to public/app/util/randomId.spec.ts diff --git a/og/webapp/javascript/util/randomId.ts b/public/app/util/randomId.ts similarity index 100% rename from og/webapp/javascript/util/randomId.ts rename to public/app/util/randomId.ts diff --git a/og/webapp/javascript/util/testData.ts b/public/app/util/testData.ts similarity index 100% rename from og/webapp/javascript/util/testData.ts rename to public/app/util/testData.ts diff --git a/og/webapp/javascript/util/timerange.ts b/public/app/util/timerange.ts similarity index 100% rename from og/webapp/javascript/util/timerange.ts rename to public/app/util/timerange.ts diff --git a/og/webapp/javascript/util/updateRequests.ts b/public/app/util/updateRequests.ts similarity index 100% rename from og/webapp/javascript/util/updateRequests.ts rename to public/app/util/updateRequests.ts diff --git a/scripts/webpack/webpack.common.js b/scripts/webpack/webpack.common.js index cdc778f2bc..5239cbb106 100644 --- a/scripts/webpack/webpack.common.js +++ b/scripts/webpack/webpack.common.js @@ -97,7 +97,6 @@ module.exports = { ), // Common - '@pyroscope/webapp': path.resolve(__dirname, '../../og/webapp'), '@pyroscope/flamegraph': path.resolve( __dirname, '../../og/packages/pyroscope-flamegraph' @@ -107,8 +106,6 @@ module.exports = { '../../og/packages/pyroscope-models' ), - '@webapp': path.resolve(__dirname, '../../og/webapp/javascript'), - '@phlare': path.resolve(__dirname, '../../public/app'), // Dependencies ...deps, diff --git a/og/setupAfterEnv.ts b/setupAfterEnv.ts similarity index 89% rename from og/setupAfterEnv.ts rename to setupAfterEnv.ts index 28cc96fb37..4bdb1093b7 100644 --- a/og/setupAfterEnv.ts +++ b/setupAfterEnv.ts @@ -1,3 +1,4 @@ +import '@testing-library/jest-dom/extend-expect'; import '@testing-library/jest-dom'; import 'jest-canvas-mock'; import timezoneMock from 'timezone-mock'; diff --git a/og/svg-transform.js b/svg-transform.js similarity index 100% rename from og/svg-transform.js rename to svg-transform.js diff --git a/testSetupFile.js b/testSetupFile.js deleted file mode 100644 index 666127af39..0000000000 --- a/testSetupFile.js +++ /dev/null @@ -1 +0,0 @@ -import '@testing-library/jest-dom/extend-expect'; diff --git a/tsconfig.json b/tsconfig.json index cd65131d80..51de364350 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,39 +4,9 @@ "plugins": [{ "name": "typescript-plugin-css-modules" }], "paths": { "@phlare/*": ["./public/app/*"], - "@pyroscope/webapp/*": ["./og/webapp/*"], - "@webapp/redux/*": ["./og/webapp/javascript/redux/*"], "@pyroscope/flamegraph/*": ["./og/packages/pyroscope-flamegraph/*"], "@pyroscope/models/*": ["./og/packages/pyroscope-models/*"], - "@webapp/components/ExportData": [ - "./public/app/overrides/components/ExportData" - ], - "@webapp/components/TimelineChart/ContextMenu.plugin": [ - "./public/app/overrides/components/TimelineChart/ContextMenu.plugin" - ], - "@webapp/components/AppSelector": [ - "./public/app/overrides/components/AppSelector" - ], - "@webapp/components/AppSelector/Label": [ - "./public/app/overrides/components/AppSelector/Label" - ], - "@webapp/components/Toolbar": [ - "./public/app/overrides/components/Toolbar" - ], - "@webapp/ui/Sidebar": ["./public/app/overrides/ui/Sidebar"], - "@webapp/util/baseurl": ["./public/app/overrides/util/baseurl"], - - "@webapp/redux/store": ["./public/app/redux/store"], - "@webapp/redux/hooks": ["./public/app/redux/hooks"], - - "@webapp/models/query": ["./public/app/overrides/models/query"], - "@webapp/models/app": ["./public/app/overrides/models/app"], - "@webapp/services/apps": ["./public/app/overrides/services/apps"], - "@webapp/services/render": ["./public/app/overrides/services/render"], - "@webapp/services/tags": ["./public/app/overrides/services/tags"], - "@webapp/services/base": ["./public/app/overrides/services/base"], - "@webapp/*": ["./og/webapp/javascript/*"], - "@mui/base/*": ["./node_modules/@mui/base/*"], + "@pyroscope/legacy-webapp": ["./og/webapp"], "zod": ["./node_modules/zod"] }, "target": "es5", @@ -56,12 +26,21 @@ "jsx": "react-jsx", "noImplicitAny": true, "strictNullChecks": true, - "experimentalDecorators": true + "experimentalDecorators": true, + + "types": ["node", "@types/jest"] }, "include": [ - "./node_modules/pyroscope-oss/lib/", - "./node_modules/pyroscope-oss/webapp/javascript/types", "public", - "public/app/types.d.ts" + "public/app/types/types.d.ts", + "public/app/lib/global.d.ts", + "public/app/lib/types.d.ts", + "public/app/lib/flot.d.ts" + ], + "exclude": [ + "public/app/**/*.spec.ts*", + "public/app/stories/**", + "**/node_modules", + "**/.*/" ] } diff --git a/tsconfig.test.json b/tsconfig.test.json new file mode 100644 index 0000000000..45c64b0de8 --- /dev/null +++ b/tsconfig.test.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "skipLibCheck": true, + "types": ["jest", "mocha", "@testing-library/jest-dom"], + "sourceMap": false + } +} diff --git a/yarn.lock b/yarn.lock index 50eeb6fe9a..5bd478845d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@adobe/css-tools@^4.0.1": version "4.2.0" resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" @@ -15,14 +20,14 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== dependencies: "@babel/highlight" "^7.18.6" -"@babel/code-frame@^7.16.0", "@babel/code-frame@^7.22.5", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.22.5", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== @@ -34,11 +39,6 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/compat-data@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" - integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== - "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -61,7 +61,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.22.9", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": +"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.22.9", "@babel/core@^7.4.5", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== @@ -82,28 +82,7 @@ json5 "^2.2.2" semver "^6.3.1" -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.4.5": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" - integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-compilation-targets" "^7.21.4" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.4" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.4" - "@babel/types" "^7.21.4" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.22.7", "@babel/generator@^7.22.9": +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== @@ -113,16 +92,6 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/generator@^7.21.4", "@babel/generator@^7.7.2": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc" - integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== - dependencies: - "@babel/types" "^7.21.4" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - "@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" @@ -155,17 +124,6 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-compilation-targets@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656" - integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg== - dependencies: - "@babel/compat-data" "^7.21.4" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.5", "@babel/helper-create-class-features-plugin@^7.22.6", "@babel/helper-create-class-features-plugin@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" @@ -204,10 +162,10 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-define-polyfill-provider@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz#af1429c4a83ac316a6a8c2cc8ff45cb5d2998d3a" - integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -215,24 +173,11 @@ lodash.debounce "^4.0.8" resolve "^1.14.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-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== -"@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - "@babel/helper-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" @@ -241,13 +186,6 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" -"@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-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -287,20 +225,6 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.5" -"@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -341,13 +265,6 @@ "@babel/helper-member-expression-to-functions" "^7.22.5" "@babel/helper-optimise-call-expression" "^7.22.5" -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -362,13 +279,6 @@ dependencies: "@babel/types" "^7.22.5" -"@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-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" @@ -396,7 +306,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": +"@babel/helper-validator-option@^7.18.6": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== @@ -424,15 +334,6 @@ "@babel/traverse" "^7.22.6" "@babel/types" "^7.22.5" -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -451,12 +352,12 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== -"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7", "@babel/parser@^7.7.0": +"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": version "7.22.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== @@ -670,7 +571,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.2.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== @@ -1157,18 +1058,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@^7.16.4": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" - integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" - semver "^6.3.1" - "@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" @@ -1205,7 +1094,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-typescript@^7.22.5", "@babel/plugin-transform-typescript@^7.8.3": +"@babel/plugin-transform-typescript@^7.22.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234" integrity sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg== @@ -1246,7 +1135,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.10.4", "@babel/preset-env@^7.12.11": +"@babel/preset-env@^7.12.11": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== @@ -1342,9 +1231,9 @@ "@babel/plugin-transform-flow-strip-types" "^7.22.5" "@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== + version "0.1.6" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458" + integrity sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -1376,14 +1265,6 @@ "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.22.5" -"@babel/preset-typescript@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz#90af8690121beecd9a75d0cc26c6be39d1595d13" - integrity sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-typescript" "^7.8.3" - "@babel/preset-typescript@^7.12.7": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" @@ -1411,7 +1292,7 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.0.0", "@babel/runtime@^7.17.8", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.5", "@babel/runtime@^7.22.6", "@babel/runtime@^7.5.0", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.17.8", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.0", "@babel/runtime@^7.8.4": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== @@ -1441,7 +1322,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/template@^7.20.7", "@babel/template@^7.3.3": +"@babel/template@^7.3.3": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -1450,7 +1331,7 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.7.2": version "7.22.8" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== @@ -1466,23 +1347,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4", "@babel/traverse@^7.7.2": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" - integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.4" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.4" - "@babel/types" "^7.21.4" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== @@ -1491,7 +1356,7 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.2.0", "@babel/types@^7.22.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0": +"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.2.0", "@babel/types@^7.22.5", "@babel/types@^7.4.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== @@ -1523,120 +1388,7 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@csstools/postcss-cascade-layers@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad" - integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA== - dependencies: - "@csstools/selector-specificity" "^2.0.2" - postcss-selector-parser "^6.0.10" - -"@csstools/postcss-color-function@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b" - integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-font-format-keywords@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a" - integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-hwb-function@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b" - integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-ic-unit@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58" - integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-is-pseudo-class@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1" - integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA== - dependencies: - "@csstools/selector-specificity" "^2.0.0" - postcss-selector-parser "^6.0.10" - -"@csstools/postcss-nested-calc@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26" - integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-normalize-display-values@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3" - integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-oklab-function@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844" - integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa" - integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-stepped-value-functions@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4" - integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-text-decoration-shorthand@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f" - integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-trigonometric-functions@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756" - integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og== - dependencies: - postcss-value-parser "^4.2.0" - -"@csstools/postcss-unset-value@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77" - integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g== - -"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz#2cbcf822bf3764c9658c4d2e568bd0c0cb748016" - integrity sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw== - -"@cypress/request@^2.88.10", "@cypress/request@^2.88.6": +"@cypress/request@^2.88.10": version "2.88.11" resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.11.tgz#5a4c7399bc2d7e7ed56e92ce5acb620c8b187047" integrity sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w== @@ -1701,7 +1453,7 @@ "@emotion/weak-memoize" "^0.3.0" stylis "4.1.3" -"@emotion/cache@^11.10.8", "@emotion/cache@^11.11.0": +"@emotion/cache@^11.10.8": version "11.11.0" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== @@ -1724,13 +1476,6 @@ dependencies: "@emotion/memoize" "^0.8.0" -"@emotion/is-prop-valid@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc" - integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw== - dependencies: - "@emotion/memoize" "^0.8.1" - "@emotion/memoize@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" @@ -1836,221 +1581,111 @@ esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" -"@esbuild/android-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23" - integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg== - "@esbuild/android-arm64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== -"@esbuild/android-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2" - integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw== - "@esbuild/android-arm@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== -"@esbuild/android-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e" - integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ== - "@esbuild/android-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== -"@esbuild/darwin-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220" - integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w== - "@esbuild/darwin-arm64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== -"@esbuild/darwin-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4" - integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg== - "@esbuild/darwin-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== -"@esbuild/freebsd-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27" - integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw== - "@esbuild/freebsd-arm64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== -"@esbuild/freebsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72" - integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug== - "@esbuild/freebsd-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== -"@esbuild/linux-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca" - integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g== - "@esbuild/linux-arm64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== -"@esbuild/linux-arm@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196" - integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ== - "@esbuild/linux-arm@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== -"@esbuild/linux-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54" - integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg== - "@esbuild/linux-ia32@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== -"@esbuild/linux-loong64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" - integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ== - "@esbuild/linux-loong64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== -"@esbuild/linux-mips64el@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726" - integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw== - "@esbuild/linux-mips64el@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== -"@esbuild/linux-ppc64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8" - integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g== - "@esbuild/linux-ppc64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== -"@esbuild/linux-riscv64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9" - integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw== - "@esbuild/linux-riscv64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== -"@esbuild/linux-s390x@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87" - integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w== - "@esbuild/linux-s390x@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== -"@esbuild/linux-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f" - integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw== - "@esbuild/linux-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== -"@esbuild/netbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775" - integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA== - "@esbuild/netbsd-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== -"@esbuild/openbsd-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35" - integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg== - "@esbuild/openbsd-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== -"@esbuild/sunos-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c" - integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw== - "@esbuild/sunos-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== -"@esbuild/win32-arm64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a" - integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw== - "@esbuild/win32-arm64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== -"@esbuild/win32-ia32@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09" - integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig== - "@esbuild/win32-ia32@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== -"@esbuild/win32-x64@0.16.17": - version "0.16.17" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091" - integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q== - "@esbuild/win32-x64@0.17.14": version "0.17.14" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" @@ -2108,11 +1743,6 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz#b44e52db3b6b20523e0c57ef8c42d315532cb903" integrity sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg== -"@fortawesome/fontawesome-free@~5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.14.0.tgz#a371e91029ebf265015e64f81bfbf7d228c9681f" - integrity sha512-OfdMsF+ZQgdKHP9jUbmDcRrP0eX90XXrsXIdyjLbkmSBzmMXPABB8eobUJtivaupucYaByz6WNe1PI1JuYm3qA== - "@fortawesome/fontawesome-svg-core@~1.2.30": version "1.2.36" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.36.tgz#4f2ea6f778298e0c47c6524ce2e7fd58eb6930e3" @@ -2148,7 +1778,7 @@ dependencies: prop-types "^15.8.1" -"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": +"@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== @@ -2196,23 +1826,6 @@ resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@isaacs/string-locale-compare@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" - integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2241,18 +1854,6 @@ jest-util "^27.5.1" slash "^3.0.0" -"@jest/console@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" - integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== - dependencies: - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - slash "^3.0.0" - "@jest/core@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" @@ -2287,40 +1888,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/core@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" - integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== - dependencies: - "@jest/console" "^29.5.0" - "@jest/reporters" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.5.0" - jest-config "^29.5.0" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-resolve-dependencies "^29.5.0" - jest-runner "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - jest-watcher "^29.5.0" - micromatch "^4.0.4" - pretty-format "^29.5.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - "@jest/create-cache-key-function@^27.4.2": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz#7448fae15602ea95c828f5eceed35c202a820b31" @@ -2338,16 +1905,6 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/environment@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" - integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== - dependencies: - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/node" "*" - jest-mock "^29.5.0" - "@jest/expect-utils@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" @@ -2355,14 +1912,6 @@ dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" - integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== - dependencies: - expect "^29.5.0" - jest-snapshot "^29.5.0" - "@jest/fake-timers@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" @@ -2375,18 +1924,6 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/fake-timers@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" - integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== - dependencies: - "@jest/types" "^29.5.0" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-util "^29.5.0" - "@jest/globals@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" @@ -2396,16 +1933,6 @@ "@jest/types" "^27.5.1" expect "^27.5.1" -"@jest/globals@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" - integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/types" "^29.5.0" - jest-mock "^29.5.0" - "@jest/reporters@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" @@ -2437,36 +1964,6 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/reporters@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" - integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - jest-worker "^29.5.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - "@jest/schemas@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" @@ -2483,15 +1980,6 @@ graceful-fs "^4.2.9" source-map "^0.6.0" -"@jest/source-map@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" - integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== - dependencies: - "@jridgewell/trace-mapping" "^0.3.15" - callsites "^3.0.0" - graceful-fs "^4.2.9" - "@jest/test-result@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" @@ -2502,16 +1990,6 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-result@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" - integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== - dependencies: - "@jest/console" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - "@jest/test-sequencer@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" @@ -2522,16 +2000,6 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" -"@jest/test-sequencer@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" - integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== - dependencies: - "@jest/test-result" "^29.5.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - slash "^3.0.0" - "@jest/transform@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" @@ -2574,27 +2042,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - "@jest/types@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" @@ -2651,11 +2098,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/resolve-uri@^3.0.3": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - "@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" @@ -2682,15 +2124,7 @@ 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.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -2708,742 +2142,6 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@lerna/add@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.6.2.tgz#d0e25fd4900b6f8a9548f940cc016ce8a3e2d2ba" - integrity sha512-NHrm7kYiqP+EviguY7/NltJ3G9vGmJW6v2BASUOhP9FZDhYbq3O+rCDlFdoVRNtcyrSg90rZFMOWHph4KOoCQQ== - dependencies: - "@lerna/bootstrap" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/filter-options" "5.6.2" - "@lerna/npm-conf" "5.6.2" - "@lerna/validation-error" "5.6.2" - dedent "^0.7.0" - npm-package-arg "8.1.1" - p-map "^4.0.0" - pacote "^13.6.1" - semver "^7.3.4" - -"@lerna/bootstrap@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-5.6.2.tgz#a0f015ae7c30189a3064c0d5940134010ece635e" - integrity sha512-S2fMOEXbef7nrybQhzBywIGSLhuiQ5huPp1sU+v9Y6XEBsy/2IA+lb0gsZosvPqlRfMtiaFstL+QunaBhlWECA== - dependencies: - "@lerna/command" "5.6.2" - "@lerna/filter-options" "5.6.2" - "@lerna/has-npm-version" "5.6.2" - "@lerna/npm-install" "5.6.2" - "@lerna/package-graph" "5.6.2" - "@lerna/pulse-till-done" "5.6.2" - "@lerna/rimraf-dir" "5.6.2" - "@lerna/run-lifecycle" "5.6.2" - "@lerna/run-topologically" "5.6.2" - "@lerna/symlink-binary" "5.6.2" - "@lerna/symlink-dependencies" "5.6.2" - "@lerna/validation-error" "5.6.2" - "@npmcli/arborist" "5.3.0" - dedent "^0.7.0" - get-port "^5.1.1" - multimatch "^5.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - p-map "^4.0.0" - p-map-series "^2.1.0" - p-waterfall "^2.1.1" - semver "^7.3.4" - -"@lerna/changed@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-5.6.2.tgz#96a647ed202d8146b2077bf13a682466e8607f9a" - integrity sha512-uUgrkdj1eYJHQGsXXlpH5oEAfu3x0qzeTjgvpdNrxHEdQWi7zWiW59hRadmiImc14uJJYIwVK5q/QLugrsdGFQ== - dependencies: - "@lerna/collect-updates" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/listable" "5.6.2" - "@lerna/output" "5.6.2" - -"@lerna/check-working-tree@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-5.6.2.tgz#dd03b0c3fe9f141c31c0c47a9a0162ee9c0f6c28" - integrity sha512-6Vf3IB6p+iNIubwVgr8A/KOmGh5xb4SyRmhFtAVqe33yWl2p3yc+mU5nGoz4ET3JLF1T9MhsePj0hNt6qyOTLQ== - dependencies: - "@lerna/collect-uncommitted" "5.6.2" - "@lerna/describe-ref" "5.6.2" - "@lerna/validation-error" "5.6.2" - -"@lerna/child-process@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-5.6.2.tgz#4adbd09ff5a8e43b9471f1a987ae65a7d669421b" - integrity sha512-QIOQ3jIbWdduHd5892fbo3u7/dQgbhzEBB7cvf+Ys/iCPP8UQrBECi1lfRgA4kcTKC2MyMz0SoyXZz/lFcXc3A== - dependencies: - chalk "^4.1.0" - execa "^5.0.0" - strong-log-transformer "^2.1.0" - -"@lerna/clean@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-5.6.2.tgz#9611adf3e3035731af2b71aabeb850f7d16fc27d" - integrity sha512-A7j8r0Hk2pGyLUyaCmx4keNHen1L/KdcOjb4nR6X8GtTJR5AeA47a8rRKOCz9wwdyMPlo2Dau7d3RV9viv7a5g== - dependencies: - "@lerna/command" "5.6.2" - "@lerna/filter-options" "5.6.2" - "@lerna/prompt" "5.6.2" - "@lerna/pulse-till-done" "5.6.2" - "@lerna/rimraf-dir" "5.6.2" - p-map "^4.0.0" - p-map-series "^2.1.0" - p-waterfall "^2.1.1" - -"@lerna/cli@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-5.6.2.tgz#87a3dea0f066fa4b01c38ab191f316885dfe9fcd" - integrity sha512-w0NRIEqDOmYKlA5t0iyqx0hbY7zcozvApmfvwF0lhkuhf3k6LRAFSamtimGQWicC779a7J2NXw4ASuBV47Fs1Q== - dependencies: - "@lerna/global-options" "5.6.2" - dedent "^0.7.0" - npmlog "^6.0.2" - yargs "^16.2.0" - -"@lerna/collect-uncommitted@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-5.6.2.tgz#8f62d5a57c7800e9f5278897c7b254c1e3d425fe" - integrity sha512-i0jhxpypyOsW2PpPwIw4xg6EPh7/N3YuiI6P2yL7PynZ8nOv8DkIdoyMkhUP4gALjBfckH8Bj94eIaKMviqW4w== - dependencies: - "@lerna/child-process" "5.6.2" - chalk "^4.1.0" - npmlog "^6.0.2" - -"@lerna/collect-updates@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-5.6.2.tgz#7dc9df48183ef35a975154182d338c64de76104f" - integrity sha512-DdTK13X6PIsh9HINiMniFeiivAizR/1FBB+hDVe6tOhsXFBfjHMw1xZhXlE+mYIoFmDm1UFK7zvQSexoaxRqFA== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/describe-ref" "5.6.2" - minimatch "^3.0.4" - npmlog "^6.0.2" - slash "^3.0.0" - -"@lerna/command@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-5.6.2.tgz#6cbb42b63c40a33565a7d39302d0e171e8e0f5b6" - integrity sha512-eLVGI9TmxcaGt1M7TXGhhBZoeWOtOedMiH7NuCGHtL6TMJ9k+SCExyx+KpNmE6ImyNOzws6EvYLPLjftiqmoaA== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/package-graph" "5.6.2" - "@lerna/project" "5.6.2" - "@lerna/validation-error" "5.6.2" - "@lerna/write-log-file" "5.6.2" - clone-deep "^4.0.1" - dedent "^0.7.0" - execa "^5.0.0" - is-ci "^2.0.0" - npmlog "^6.0.2" - -"@lerna/conventional-commits@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-5.6.2.tgz#23f1a86ab79e48609c98a572eb59a705d7f0512f" - integrity sha512-fPrJpYJhxCgY2uyOCTcAAC6+T6lUAtpEGxLbjWHWTb13oKKEygp9THoFpe6SbAD0fYMb3jeZCZCqNofM62rmuA== - dependencies: - "@lerna/validation-error" "5.6.2" - conventional-changelog-angular "^5.0.12" - conventional-changelog-core "^4.2.4" - conventional-recommended-bump "^6.1.0" - fs-extra "^9.1.0" - get-stream "^6.0.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - pify "^5.0.0" - semver "^7.3.4" - -"@lerna/create-symlink@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-5.6.2.tgz#9bd327128e30a144ef50a45242433a2325081391" - integrity sha512-0WIs3P6ohPVh2+t5axrLZDE5Dt7fe3Kv0Auj0sBiBd6MmKZ2oS76apIl0Bspdbv8jX8+TRKGv6ib0280D0dtEw== - dependencies: - cmd-shim "^5.0.0" - fs-extra "^9.1.0" - npmlog "^6.0.2" - -"@lerna/create@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-5.6.2.tgz#2c2e4b089cd8426cd256c6b0a0df5e676aa3503a" - integrity sha512-+Y5cMUxMNXjTTU9IHpgRYIwKo39w+blui1P+s+qYlZUSCUAew0xNpOBG8iN0Nc5X9op4U094oIdHxv7Dyz6tWQ== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/npm-conf" "5.6.2" - "@lerna/validation-error" "5.6.2" - dedent "^0.7.0" - fs-extra "^9.1.0" - init-package-json "^3.0.2" - npm-package-arg "8.1.1" - p-reduce "^2.1.0" - pacote "^13.6.1" - pify "^5.0.0" - semver "^7.3.4" - slash "^3.0.0" - validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" - yargs-parser "20.2.4" - -"@lerna/describe-ref@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-5.6.2.tgz#8beb9884b59c419c67cec935cd90c08704e4c9b0" - integrity sha512-UqU0N77aT1W8duYGir7R+Sk3jsY/c4lhcCEcnayMpFScMbAp0ETGsW04cYsHK29sgg+ZCc5zEwebBqabWhMhnA== - dependencies: - "@lerna/child-process" "5.6.2" - npmlog "^6.0.2" - -"@lerna/diff@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-5.6.2.tgz#059f62c95e08a506574e0e66044934a395e15b11" - integrity sha512-aHKzKvUvUI8vOcshC2Za/bdz+plM3r/ycqUrPqaERzp+kc1pYHyPeXezydVdEmgmmwmyKI5hx4+2QNnzOnun2A== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/validation-error" "5.6.2" - npmlog "^6.0.2" - -"@lerna/exec@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-5.6.2.tgz#b4edee66e26760de28bbf8472993ae8ad7508073" - integrity sha512-meZozok5stK7S0oAVn+kdbTmU+kHj9GTXjW7V8kgwG9ld+JJMTH3nKK1L3mEKyk9TFu9vFWyEOF7HNK6yEOoVg== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/filter-options" "5.6.2" - "@lerna/profiler" "5.6.2" - "@lerna/run-topologically" "5.6.2" - "@lerna/validation-error" "5.6.2" - p-map "^4.0.0" - -"@lerna/filter-options@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-5.6.2.tgz#0201d3aaf71eb7d7f8b1d28193218710c3220aa0" - integrity sha512-4Z0HIhPak2TabTsUqEBQaQeOqgqEt0qyskvsY0oviYvqP/nrJfJBZh4H93jIiNQF59LJCn5Ce3KJJrLExxjlzw== - dependencies: - "@lerna/collect-updates" "5.6.2" - "@lerna/filter-packages" "5.6.2" - dedent "^0.7.0" - npmlog "^6.0.2" - -"@lerna/filter-packages@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-5.6.2.tgz#1118a9318f3e08f9e21fb03d23f91e1f77f4a72a" - integrity sha512-el9V2lTEG0Bbz+Omo45hATkRVnChCTJhcTpth19cMJ6mQ4M5H4IgbWCJdFMBi/RpTnOhz9BhJxDbj95kuIvvzw== - dependencies: - "@lerna/validation-error" "5.6.2" - multimatch "^5.0.0" - npmlog "^6.0.2" - -"@lerna/get-npm-exec-opts@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.6.2.tgz#a5e1a93f62eba817961210b7be148c0768ee4eee" - integrity sha512-0RbSDJ+QC9D5UWZJh3DN7mBIU1NhBmdHOE289oHSkjDY+uEjdzMPkEUy+wZ8fCzMLFnnNQkAEqNaOAzZ7dmFLA== - dependencies: - npmlog "^6.0.2" - -"@lerna/get-packed@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-5.6.2.tgz#cc5008008442ae00cfa5ed9484e76a44d48e37b6" - integrity sha512-pp5nNDmtrtd21aKHjwwOY5CS7XNIHxINzGa+Jholn1jMDYUtdskpN++ZqYbATGpW831++NJuiuBVyqAWi9xbXg== - dependencies: - fs-extra "^9.1.0" - ssri "^9.0.1" - tar "^6.1.0" - -"@lerna/github-client@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-5.6.2.tgz#b40a71ddf5d40aefe178a48713aa107ef735f056" - integrity sha512-pjALazZoRZtKqfwLBwmW3HPptVhQm54PvA8s3qhCQ+3JkqrZiIFwkkxNZxs3jwzr+aaSOzfhSzCndg0urb0GXA== - dependencies: - "@lerna/child-process" "5.6.2" - "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^19.0.3" - git-url-parse "^13.1.0" - npmlog "^6.0.2" - -"@lerna/gitlab-client@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-5.6.2.tgz#3bb3c350d28f38f719ddbba083ca28dbd353494e" - integrity sha512-TInJmbrsmYIwUyrRxytjO82KjJbRwm67F7LoZs1shAq6rMvNqi4NxSY9j+hT/939alFmEq1zssoy/caeLXHRfQ== - dependencies: - node-fetch "^2.6.1" - npmlog "^6.0.2" - -"@lerna/global-options@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-5.6.2.tgz#30bec81cdb4ac0bb47588e4a502ce908a982ff7c" - integrity sha512-kaKELURXTlczthNJskdOvh6GGMyt24qat0xMoJZ8plYMdofJfhz24h1OFcvB/EwCUwP/XV1+ohE5P+vdktbrEg== - -"@lerna/has-npm-version@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-5.6.2.tgz#5359e9870941f66fb3b859995120801800880944" - integrity sha512-kXCnSzffmTWsaK0ol30coyCfO8WH26HFbmJjRBzKv7VGkuAIcB6gX2gqRRgNLLlvI+Yrp+JSlpVNVnu15SEH2g== - dependencies: - "@lerna/child-process" "5.6.2" - semver "^7.3.4" - -"@lerna/import@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-5.6.2.tgz#7be2321fbc41fa0f7fdd233eb62571e8418fcb75" - integrity sha512-xQUE49mtcP0z3KUdXBsyvp8rGDz6phuYUoQbhcFRJ7WPcQKzMvtm0XYrER6c2YWEX7QOuDac6tU82P8zTrTBaA== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/prompt" "5.6.2" - "@lerna/pulse-till-done" "5.6.2" - "@lerna/validation-error" "5.6.2" - dedent "^0.7.0" - fs-extra "^9.1.0" - p-map-series "^2.1.0" - -"@lerna/info@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-5.6.2.tgz#82280cdae6e08aab5b3017c359f6e496116a62ae" - integrity sha512-MPjY5Olj+fiZHgfEdwXUFRKamdEuLr9Ob/qut8JsB/oQSQ4ALdQfnrOcMT8lJIcC2R67EA5yav2lHPBIkezm8A== - dependencies: - "@lerna/command" "5.6.2" - "@lerna/output" "5.6.2" - envinfo "^7.7.4" - -"@lerna/init@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-5.6.2.tgz#8f92868c3f9081245f5a8e0b94ce6b5979b8541e" - integrity sha512-ahU3/lgF+J8kdJAQysihFJROHthkIDXfHmvhw7AYnzf94HjxGNXj7nz6i3At1/dM/1nQhR+4/uNR1/OU4tTYYQ== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/project" "5.6.2" - fs-extra "^9.1.0" - p-map "^4.0.0" - write-json-file "^4.3.0" - -"@lerna/link@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-5.6.2.tgz#6af5addff89cd455c1837a47a36f430a2c6ae6a5" - integrity sha512-hXxQ4R3z6rUF1v2x62oIzLyeHL96u7ZBhxqYMJrm763D1VMSDcHKF9CjJfc6J9vH5Z2ZbL6CQg50Hw5mUpJbjg== - dependencies: - "@lerna/command" "5.6.2" - "@lerna/package-graph" "5.6.2" - "@lerna/symlink-dependencies" "5.6.2" - "@lerna/validation-error" "5.6.2" - p-map "^4.0.0" - slash "^3.0.0" - -"@lerna/list@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-5.6.2.tgz#5fdf8c678891eacef1d90afb84fb461deb6bb662" - integrity sha512-WjE5O2tQ3TcS+8LqXUaxi0YdldhxUhNihT5+Gg4vzGdIlrPDioO50Zjo9d8jOU7i3LMIk6EzCma0sZr2CVfEGg== - dependencies: - "@lerna/command" "5.6.2" - "@lerna/filter-options" "5.6.2" - "@lerna/listable" "5.6.2" - "@lerna/output" "5.6.2" - -"@lerna/listable@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-5.6.2.tgz#1a35e8da081f2dc286647cbf4a4a7fb3c7fb1102" - integrity sha512-8Yp49BwkY/5XqVru38Zko+6Wj/sgbwzJfIGEPy3Qu575r1NA/b9eI1gX22aMsEeXUeGOybR7nWT5ewnPQHjqvA== - dependencies: - "@lerna/query-graph" "5.6.2" - chalk "^4.1.0" - columnify "^1.6.0" - -"@lerna/log-packed@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-5.6.2.tgz#05d26f038ce64e8ce8395c1745dfeb7589f89790" - integrity sha512-O9GODG7tMtWk+2fufn2MOkIDBYMRoKBhYMHshO5Aw/VIsH76DIxpX1koMzWfUngM/C70R4uNAKcVWineX4qzIw== - dependencies: - byte-size "^7.0.0" - columnify "^1.6.0" - has-unicode "^2.0.1" - npmlog "^6.0.2" - -"@lerna/npm-conf@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-5.6.2.tgz#3b72fc528c8a1cd0acc9b277749a6153bd8de083" - integrity sha512-gWDPhw1wjXYXphk/PAghTLexO5T6abVFhXb+KOMCeem366mY0F5bM88PiorL73aErTNUoR8n+V4X29NTZzDZpQ== - dependencies: - config-chain "^1.1.12" - pify "^5.0.0" - -"@lerna/npm-dist-tag@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-5.6.2.tgz#6115aa4b005b57520d76428926ee7d12030f5e53" - integrity sha512-t2RmxV6Eog4acXkUI+EzWuYVbeVVY139pANIWS9qtdajfgp4GVXZi1S8mAIb70yeHdNpCp1mhK0xpCrFH9LvGQ== - dependencies: - "@lerna/otplease" "5.6.2" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" - -"@lerna/npm-install@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-5.6.2.tgz#d5bd1e10c1c31f69a9ca5351b0cbe72dbc288dc2" - integrity sha512-AT226zdEo+uGENd37jwYgdALKJAIJK4pNOfmXWZWzVb9oMOr8I2YSjPYvSYUNG7gOo2YJQU8x5Zd7OShv2924Q== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/get-npm-exec-opts" "5.6.2" - fs-extra "^9.1.0" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - signal-exit "^3.0.3" - write-pkg "^4.0.0" - -"@lerna/npm-publish@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-5.6.2.tgz#4e5e225b47589a7f8f96b7eee68b547e8ce432a2" - integrity sha512-ldSyewCfv9fAeC5xNjL0HKGSUxcC048EJoe/B+KRUmd+IPidvZxMEzRu08lSC/q3V9YeUv9ZvRnxATXOM8CffA== - dependencies: - "@lerna/otplease" "5.6.2" - "@lerna/run-lifecycle" "5.6.2" - fs-extra "^9.1.0" - libnpmpublish "^6.0.4" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - pify "^5.0.0" - read-package-json "^5.0.1" - -"@lerna/npm-run-script@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-5.6.2.tgz#66e3391ebdd6136312277be37a1b62ce48c12abf" - integrity sha512-MOQoWNcAyJivM8SYp0zELM7vg/Dj07j4YMdxZkey+S1UO0T4/vKBxb575o16hH4WeNzC3Pd7WBlb7C8dLOfNwQ== - dependencies: - "@lerna/child-process" "5.6.2" - "@lerna/get-npm-exec-opts" "5.6.2" - npmlog "^6.0.2" - -"@lerna/otplease@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-5.6.2.tgz#a94e4daf9d3d42bfc0366a6889b8809ed32dbdd0" - integrity sha512-dGS4lzkEQVTMAgji82jp8RK6UK32wlzrBAO4P4iiVHCUTuwNLsY9oeBXvVXSMrosJnl6Hbe0NOvi43mqSucGoA== - dependencies: - "@lerna/prompt" "5.6.2" - -"@lerna/output@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/output/-/output-5.6.2.tgz#fa97315d16cfe005a2891a3fc98f6f4fd3f518ed" - integrity sha512-++d+bfOQwY66yo7q1XuAvRcqtRHCG45e/awP5xQomTZ6R1rhWiZ3whWdc9Z6lF7+UtBB9toSYYffKU/xc3L0yQ== - dependencies: - npmlog "^6.0.2" - -"@lerna/pack-directory@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-5.6.2.tgz#ced0287d13d8575fe928ad7d9ad92dc6554cc86d" - integrity sha512-w5Jk5fo+HkN4Le7WMOudTcmAymcf0xPd302TqAQncjXpk0cb8tZbj+5bbNHsGb58GRjOIm5icQbHXooQUxbHhA== - dependencies: - "@lerna/get-packed" "5.6.2" - "@lerna/package" "5.6.2" - "@lerna/run-lifecycle" "5.6.2" - "@lerna/temp-write" "5.6.2" - npm-packlist "^5.1.1" - npmlog "^6.0.2" - tar "^6.1.0" - -"@lerna/package-graph@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-5.6.2.tgz#cb0a70b83afc418c5b5363bb96746d501decdbeb" - integrity sha512-TmL61qBBvA3Tc4qICDirZzdFFwWOA6qicIXUruLiE2PblRowRmCO1bKrrP6XbDOspzwrkPef6N2F2/5gHQAnkQ== - dependencies: - "@lerna/prerelease-id-from-version" "5.6.2" - "@lerna/validation-error" "5.6.2" - npm-package-arg "8.1.1" - npmlog "^6.0.2" - semver "^7.3.4" - -"@lerna/package-graph@^3.18.5": - version "3.18.5" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-3.18.5.tgz#c740e2ea3578d059e551633e950690831b941f6b" - integrity sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA== - dependencies: - "@lerna/prerelease-id-from-version" "3.16.0" - "@lerna/validation-error" "3.13.0" - npm-package-arg "^6.1.0" - npmlog "^4.1.2" - semver "^6.2.0" - -"@lerna/package@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-3.16.0.tgz#7e0a46e4697ed8b8a9c14d59c7f890e0d38ba13c" - integrity sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw== - dependencies: - load-json-file "^5.3.0" - npm-package-arg "^6.1.0" - write-pkg "^3.1.0" - -"@lerna/package@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-5.6.2.tgz#da73b350693fdd4154cf5b19799bfaadff57442e" - integrity sha512-LaOC8moyM5J9WnRiWZkedjOninSclBOJyPqhif6mHb2kCFX6jAroNYzE8KM4cphu8CunHuhI6Ixzswtv+Dultw== - dependencies: - load-json-file "^6.2.0" - npm-package-arg "8.1.1" - write-pkg "^4.0.0" - -"@lerna/prerelease-id-from-version@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz#b24bfa789f5e1baab914d7b08baae9b7bd7d83a1" - integrity sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA== - dependencies: - semver "^6.2.0" - -"@lerna/prerelease-id-from-version@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.6.2.tgz#63002662024a261310c6fbf01a50cb5f50569ca8" - integrity sha512-7gIm9fecWFVNy2kpj/KbH11bRcpyANAwpsft3X5m6J7y7A6FTUscCbEvl3ZNdpQKHNuvnHgCtkm3A5PMSCEgkA== - dependencies: - semver "^7.3.4" - -"@lerna/profiler@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-5.6.2.tgz#5bfd52fb666ad0506cac3b8d2839e904d0acf90a" - integrity sha512-okwkagP5zyRIOYTceu/9/esW7UZFt7lyL6q6ZgpSG3TYC5Ay+FXLtS6Xiha/FQdVdumFqKULDWTGovzUlxcwaw== - dependencies: - fs-extra "^9.1.0" - npmlog "^6.0.2" - upath "^2.0.1" - -"@lerna/project@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-5.6.2.tgz#a893851cdceeace36d30fdfdbc2da9159a9e2041" - integrity sha512-kPIMcIy/0DVWM91FPMMFmXyAnCuuLm3NdhnA8NusE//VuY9wC6QC/3OwuCY39b2dbko/fPZheqKeAZkkMH6sGg== - dependencies: - "@lerna/package" "5.6.2" - "@lerna/validation-error" "5.6.2" - cosmiconfig "^7.0.0" - dedent "^0.7.0" - dot-prop "^6.0.1" - glob-parent "^5.1.1" - globby "^11.0.2" - js-yaml "^4.1.0" - load-json-file "^6.2.0" - npmlog "^6.0.2" - p-map "^4.0.0" - resolve-from "^5.0.0" - write-json-file "^4.3.0" - -"@lerna/project@^3.21.0": - version "3.21.0" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-3.21.0.tgz#5d784d2d10c561a00f20320bcdb040997c10502d" - integrity sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A== - dependencies: - "@lerna/package" "3.16.0" - "@lerna/validation-error" "3.13.0" - cosmiconfig "^5.1.0" - dedent "^0.7.0" - dot-prop "^4.2.0" - glob-parent "^5.0.0" - globby "^9.2.0" - load-json-file "^5.3.0" - npmlog "^4.1.2" - p-map "^2.1.0" - resolve-from "^4.0.0" - write-json-file "^3.2.0" - -"@lerna/prompt@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-5.6.2.tgz#7ea10fd3543aced0bf5521741808d86ffcf4b320" - integrity sha512-4hTNmVYADEr0GJTMegWV+GW6n+dzKx1vN9v2ISqyle283Myv930WxuyO0PeYGqTrkneJsyPreCMovuEGCvZ0iQ== - dependencies: - inquirer "^8.2.4" - npmlog "^6.0.2" - -"@lerna/publish@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-5.6.2.tgz#c8a26610c4fb2c7c5a232e04852bf545b242ee65" - integrity sha512-QaW0GjMJMuWlRNjeDCjmY/vjriGSWgkLS23yu8VKNtV5U3dt5yIKA3DNGV3HgZACuu45kQxzMDsfLzgzbGNtYA== - dependencies: - "@lerna/check-working-tree" "5.6.2" - "@lerna/child-process" "5.6.2" - "@lerna/collect-updates" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/describe-ref" "5.6.2" - "@lerna/log-packed" "5.6.2" - "@lerna/npm-conf" "5.6.2" - "@lerna/npm-dist-tag" "5.6.2" - "@lerna/npm-publish" "5.6.2" - "@lerna/otplease" "5.6.2" - "@lerna/output" "5.6.2" - "@lerna/pack-directory" "5.6.2" - "@lerna/prerelease-id-from-version" "5.6.2" - "@lerna/prompt" "5.6.2" - "@lerna/pulse-till-done" "5.6.2" - "@lerna/run-lifecycle" "5.6.2" - "@lerna/run-topologically" "5.6.2" - "@lerna/validation-error" "5.6.2" - "@lerna/version" "5.6.2" - fs-extra "^9.1.0" - libnpmaccess "^6.0.3" - npm-package-arg "8.1.1" - npm-registry-fetch "^13.3.0" - npmlog "^6.0.2" - p-map "^4.0.0" - p-pipe "^3.1.0" - pacote "^13.6.1" - semver "^7.3.4" - -"@lerna/pulse-till-done@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-5.6.2.tgz#061c4ba2894fa08333fe4502299f9f9f24bdb91c" - integrity sha512-eA/X1RCxU5YGMNZmbgPi+Kyfx1Q3bn4P9jo/LZy+/NRRr1po3ASXP2GJZ1auBh/9A2ELDvvKTOXCVHqczKC6rA== - dependencies: - npmlog "^6.0.2" - -"@lerna/query-graph@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-5.6.2.tgz#c507e9a9cb613c6d4d163d7d115a52ef8c1a9d3f" - integrity sha512-KRngr96yBP8XYDi9/U62fnGO+ZXqm04Qk6a2HtoTr/ha8QvO1s7Tgm0xs/G7qWXDQHZgunWIbmK/LhxM7eFQrw== - dependencies: - "@lerna/package-graph" "5.6.2" - -"@lerna/resolve-symlink@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-5.6.2.tgz#51b6f4bbee36a1dcbf52634d05dcd08bb286f2cf" - integrity sha512-PDQy+7M8JEFtwIVHJgWvSxHkxJf9zXCENkvIWDB+SsoDPhw9+caewt46bTeP5iGm9pOMu3oZukaWo/TvF7sNjg== - dependencies: - fs-extra "^9.1.0" - npmlog "^6.0.2" - read-cmd-shim "^3.0.0" - -"@lerna/rimraf-dir@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-5.6.2.tgz#219c51a46c27b94789d683fc0424539f14505fea" - integrity sha512-jgEfzz7uBUiQKteq3G8MtJiA2D2VoKmZSSY3VSiW/tPOSXYxxSHxEsClQdCeNa6+sYrDNDT8fP6MJ3lPLjDeLA== - dependencies: - "@lerna/child-process" "5.6.2" - npmlog "^6.0.2" - path-exists "^4.0.0" - rimraf "^3.0.2" - -"@lerna/run-lifecycle@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-5.6.2.tgz#b6954f334b40ca80caeb9e0cb7ca936222f39915" - integrity sha512-u9gGgq/50Fm8dvfcc/TSHOCAQvzLD7poVanDMhHYWOAqRDnellJEEmA1K/Yka4vZmySrzluahkry9G6jcREt+g== - dependencies: - "@lerna/npm-conf" "5.6.2" - "@npmcli/run-script" "^4.1.7" - npmlog "^6.0.2" - p-queue "^6.6.2" - -"@lerna/run-topologically@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-5.6.2.tgz#ef00aa6751b4164ae4825244917cdd4bc2562501" - integrity sha512-QQ/jGOIsVvUg3izShWsd67RlWYh9UOH2yw97Ol1zySX9+JspCMVQrn9eKq1Pk8twQOFhT87LpT/aaxbTBgREPw== - dependencies: - "@lerna/query-graph" "5.6.2" - p-queue "^6.6.2" - -"@lerna/run@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-5.6.2.tgz#a964110d2fd13e4a3fe0fb4d752d0497651b26cb" - integrity sha512-c2kJxdFrNg5KOkrhmgwKKUOsfSrGNlFCe26EttufOJ3xfY0VnXlEw9rHOkTgwtu7969rfCdyaVP1qckMrF1Dgw== - dependencies: - "@lerna/command" "5.6.2" - "@lerna/filter-options" "5.6.2" - "@lerna/npm-run-script" "5.6.2" - "@lerna/output" "5.6.2" - "@lerna/profiler" "5.6.2" - "@lerna/run-topologically" "5.6.2" - "@lerna/timer" "5.6.2" - "@lerna/validation-error" "5.6.2" - fs-extra "^9.1.0" - p-map "^4.0.0" - -"@lerna/symlink-binary@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-5.6.2.tgz#f8c68273f8a4f382bc0420593815dc13027f245a" - integrity sha512-Cth+miwYyO81WAmrQbPBrLHuF+F0UUc0el5kRXLH6j5zzaRS3kMM68r40M7MmfH8m3GPi7691UARoWFEotW5jw== - dependencies: - "@lerna/create-symlink" "5.6.2" - "@lerna/package" "5.6.2" - fs-extra "^9.1.0" - p-map "^4.0.0" - -"@lerna/symlink-dependencies@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-5.6.2.tgz#263866a869c253db805a9a385741e8919b0aa341" - integrity sha512-dUVNQLEcjVOIQiT9OlSAKt0ykjyJPy8l9i4NJDe2/0XYaUjo8PWsxJ0vrutz27jzi2aZUy07ASmowQZEmnLHAw== - dependencies: - "@lerna/create-symlink" "5.6.2" - "@lerna/resolve-symlink" "5.6.2" - "@lerna/symlink-binary" "5.6.2" - fs-extra "^9.1.0" - p-map "^4.0.0" - p-map-series "^2.1.0" - -"@lerna/temp-write@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-5.6.2.tgz#724fcadfe12bfaa723c1ea0fbc14804653816db0" - integrity sha512-S5ZNVTurSwWBmc9kh5alfSjmO3+BnRT6shYtOlmVIUYqWeYVYA5C1Htj322bbU4CSNCMFK6NQl4qGKL17HMuig== - dependencies: - graceful-fs "^4.1.15" - is-stream "^2.0.0" - make-dir "^3.0.0" - temp-dir "^1.0.0" - uuid "^8.3.2" - -"@lerna/timer@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-5.6.2.tgz#57de5dde716539c699f295b8a8c182dd41801b2e" - integrity sha512-AjMOiLc2B+5Nzdd9hNORetAdZ/WK8YNGX/+2ypzM68TMAPfIT5C40hMlSva9Yg4RsBz22REopXgM5s2zQd5ZQA== - -"@lerna/validation-error@3.13.0": - version "3.13.0" - resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-3.13.0.tgz#c86b8f07c5ab9539f775bd8a54976e926f3759c3" - integrity sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA== - dependencies: - npmlog "^4.1.2" - -"@lerna/validation-error@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-5.6.2.tgz#75310749d94395f009c67a8fd47e146a86ce2943" - integrity sha512-4WlDUHaa+RSJNyJRtX3gVIAPVzjZD2tle8AJ0ZYBfdZnZmG0VlB2pD1FIbOQPK8sY2h5m0cHLRvfLoLncqHvdQ== - dependencies: - npmlog "^6.0.2" - -"@lerna/version@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-5.6.2.tgz#211ed1c0af3be0bb6bf6f79ef0d3e8daa1266ff0" - integrity sha512-odNSR2rTbHW++xMZSQKu/F6Syrd/sUvwDLPaMKktoOSPKmycHt/eWcuQQyACdtc43Iqeu4uQd7PCLsniqOVFrw== - dependencies: - "@lerna/check-working-tree" "5.6.2" - "@lerna/child-process" "5.6.2" - "@lerna/collect-updates" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/conventional-commits" "5.6.2" - "@lerna/github-client" "5.6.2" - "@lerna/gitlab-client" "5.6.2" - "@lerna/output" "5.6.2" - "@lerna/prerelease-id-from-version" "5.6.2" - "@lerna/prompt" "5.6.2" - "@lerna/run-lifecycle" "5.6.2" - "@lerna/run-topologically" "5.6.2" - "@lerna/temp-write" "5.6.2" - "@lerna/validation-error" "5.6.2" - "@nrwl/devkit" ">=14.8.1 < 16" - chalk "^4.1.0" - dedent "^0.7.0" - load-json-file "^6.2.0" - minimatch "^3.0.4" - npmlog "^6.0.2" - p-map "^4.0.0" - p-pipe "^3.1.0" - p-reduce "^2.1.0" - p-waterfall "^2.1.1" - semver "^7.3.4" - slash "^3.0.0" - write-json-file "^4.3.0" - -"@lerna/write-log-file@5.6.2": - version "5.6.2" - resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-5.6.2.tgz#a297307c80356abe4c3cfc75664febfa4658ec31" - integrity sha512-J09l18QnWQ3sXIRwuJkjXY3+KwPR2uO5NgbZGE3GXJK1V/LzOBRMvjGAIbuQHXw25uqe7vpLUpB8drtnFrubCQ== - dependencies: - npmlog "^6.0.2" - write-file-atomic "^4.0.1" - "@mapbox/node-pre-gyp@^1.0.0": version "1.0.11" resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" @@ -3550,30 +2248,11 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/base@5.0.0-beta.8", "@mui/base@^5.0.0-alpha.98": - version "5.0.0-beta.8" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.8.tgz#a0a9531ae9147be92d17e4f0e3b9accc57916841" - integrity sha512-b4vVjMZx5KzzEMf4arXKoeV5ZegAMOoPwoy1vfUBwhvXc2QtaaAyBp50U7OA2L06Leubc1A+lEp3eqwZoFn87g== - dependencies: - "@babel/runtime" "^7.22.6" - "@emotion/is-prop-valid" "^1.2.1" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.1" - "@popperjs/core" "^2.11.8" - clsx "^1.2.1" - prop-types "^15.8.1" - react-is "^18.2.0" - "@mui/core-downloads-tracker@^5.10.11": version "5.13.0" resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.13.0.tgz#cb2c732165f60533862707d9bcedfab8e6c0ff48" integrity sha512-5nXz2k8Rv2ZjtQY6kXirJVyn2+ODaQuAJmXSJtLDUQDKWp3PFUj6j3bILqR0JGOs9R5ejgwz3crLKsl6GwjwkQ== -"@mui/core-downloads-tracker@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.1.tgz#af156cb3e15b202f5c09f66e7d8b71ca86aef525" - integrity sha512-mIa1WmDmNr1LoupV1Rbxt9bTFKMbIn10RHG1bnZ/FJCkAYpuU/D4n+R+ttiycgcZNngU++zyh/OQeJblzbQPzg== - "@mui/material@5.10.11": version "5.10.11" resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.10.11.tgz#73c38b29d2df5e2f9a0825b363279bb0a2aa40df" @@ -3592,24 +2271,6 @@ react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/material@^5.10.11": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.1.tgz#2711e4ca5c9bdc67b916d01faee650a7a5260bb8" - integrity sha512-WtsgYuageTunLfxH3Ri+o1RuQTFImtRHxMcVNyD0Hhd2/znjW6KODNz0XfjvLRnNCAynBxZNiflcoIBW40h9PQ== - dependencies: - "@babel/runtime" "^7.22.6" - "@mui/base" "5.0.0-beta.8" - "@mui/core-downloads-tracker" "^5.14.1" - "@mui/system" "^5.14.1" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.1" - "@types/react-transition-group" "^4.4.6" - clsx "^1.2.1" - csstype "^3.1.2" - prop-types "^15.8.1" - react-is "^18.2.0" - react-transition-group "^4.4.5" - "@mui/private-theming@^5.12.3": version "5.12.3" resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.12.3.tgz#f5e4704e25d9d91b906561cae573cda8f3801e10" @@ -3619,15 +2280,6 @@ "@mui/utils" "^5.12.3" prop-types "^15.8.1" -"@mui/private-theming@^5.13.7": - version "5.13.7" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.13.7.tgz#2f8ef5da066f3c6c6423bd4260d003a28d10b099" - integrity sha512-qbSr+udcij5F9dKhGX7fEdx2drXchq7htLNr2Qg2Ma+WJ6q0ERlEqGSBiPiVDJkptcjeVL4DGmcf1wl5+vD4EA== - dependencies: - "@babel/runtime" "^7.22.5" - "@mui/utils" "^5.13.7" - prop-types "^15.8.1" - "@mui/styled-engine@^5.12.3": version "5.12.3" resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.12.3.tgz#3307643d52c81947a624cdd0437536cc8109c4f0" @@ -3638,16 +2290,6 @@ csstype "^3.1.2" prop-types "^15.8.1" -"@mui/styled-engine@^5.13.2": - version "5.13.2" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.13.2.tgz#c87bd61c0ab8086d34828b6defe97c02bcd642ef" - integrity sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw== - dependencies: - "@babel/runtime" "^7.21.0" - "@emotion/cache" "^11.11.0" - csstype "^3.1.2" - prop-types "^15.8.1" - "@mui/system@^5.10.10": version "5.12.3" resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.12.3.tgz#306b3cdffa3046067640219c1e5dd7e3dae38ff9" @@ -3662,20 +2304,6 @@ csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.1.tgz#ec8ae69f63963b5916dad4bca2f8a86a001a2392" - integrity sha512-u+xlsU34Jdkgx1CxmBnIC4Y08uPdVX5iEd3S/1dggDFtOGp+Lj8xmKRJAQ8PJOOJLOh8pDwaZx4AwXikL4l1QA== - dependencies: - "@babel/runtime" "^7.22.6" - "@mui/private-theming" "^5.13.7" - "@mui/styled-engine" "^5.13.2" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.1" - clsx "^1.2.1" - csstype "^3.1.2" - prop-types "^15.8.1" - "@mui/types@7.2.0", "@mui/types@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.0.tgz#91380c2d42420f51f404120f7a9270eadd6f5c23" @@ -3697,22 +2325,6 @@ prop-types "^15.8.1" react-is "^18.2.0" -"@mui/utils@^5.13.7", "@mui/utils@^5.14.1": - version "5.14.1" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.1.tgz#29696371016552a6eb3af975bc7af429ec88b29a" - integrity sha512-39KHKK2JeqRmuUcLDLwM+c2XfVC136C5/yUyQXmO2PVbOb2Bol4KxtkssEqCbTwg87PSCG3f1Tb0keRsK7cVGw== - dependencies: - "@babel/runtime" "^7.22.6" - "@types/prop-types" "^15.7.5" - "@types/react-is" "^18.2.1" - prop-types "^15.8.1" - react-is "^18.2.0" - -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -3739,367 +2351,27 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/arborist@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.3.0.tgz#321d9424677bfc08569e98a5ac445ee781f32053" - integrity sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A== - dependencies: - "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/map-workspaces" "^2.0.3" - "@npmcli/metavuln-calculator" "^3.0.1" - "@npmcli/move-file" "^2.0.0" - "@npmcli/name-from-folder" "^1.0.1" - "@npmcli/node-gyp" "^2.0.0" - "@npmcli/package-json" "^2.0.0" - "@npmcli/run-script" "^4.1.3" - bin-links "^3.0.0" - cacache "^16.0.6" - common-ancestor-path "^1.0.1" - json-parse-even-better-errors "^2.3.1" - json-stringify-nice "^1.1.4" - mkdirp "^1.0.4" - mkdirp-infer-owner "^2.0.0" - nopt "^5.0.0" - npm-install-checks "^5.0.0" - npm-package-arg "^9.0.0" - npm-pick-manifest "^7.0.0" - npm-registry-fetch "^13.0.0" - npmlog "^6.0.2" - pacote "^13.6.1" - parse-conflict-json "^2.0.1" - proc-log "^2.0.0" - promise-all-reject-late "^1.0.0" - promise-call-limit "^1.0.1" - read-package-json-fast "^2.0.2" - readdir-scoped-modules "^1.1.0" - rimraf "^3.0.2" - semver "^7.3.7" - ssri "^9.0.0" - treeverse "^2.0.0" - walk-up-path "^1.0.0" - "@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/fs@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" - integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== - dependencies: - "@gar/promisify" "^1.1.3" - semver "^7.3.5" - -"@npmcli/fs@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" - integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== - dependencies: - semver "^7.3.5" - -"@npmcli/git@^3.0.0": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" - integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== - dependencies: - "@npmcli/promise-spawn" "^3.0.0" - lru-cache "^7.4.4" - mkdirp "^1.0.4" - npm-pick-manifest "^7.0.0" - proc-log "^2.0.0" - promise-inflight "^1.0.1" - promise-retry "^2.0.1" - semver "^7.3.5" - which "^2.0.2" - -"@npmcli/installed-package-contents@^1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" - integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== - dependencies: - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" - -"@npmcli/map-workspaces@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" - integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== - dependencies: - "@npmcli/name-from-folder" "^1.0.1" - glob "^8.0.1" - minimatch "^5.0.1" - read-package-json-fast "^2.0.3" - -"@npmcli/metavuln-calculator@^3.0.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" - integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== - dependencies: - cacache "^16.0.0" - json-parse-even-better-errors "^2.3.1" - pacote "^13.0.3" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@npmcli/move-file@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" - integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@npmcli/name-from-folder@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" - integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== - -"@npmcli/node-gyp@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" - integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== - -"@npmcli/package-json@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a" - integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA== - dependencies: - json-parse-even-better-errors "^2.3.1" - -"@npmcli/promise-spawn@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573" - integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== - dependencies: - infer-owner "^1.0.4" - -"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.1.7": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" - integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== - dependencies: - "@npmcli/node-gyp" "^2.0.0" - "@npmcli/promise-spawn" "^3.0.0" - node-gyp "^9.0.0" - read-package-json-fast "^2.0.3" - which "^2.0.2" - -"@nrwl/cli@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.9.4.tgz#63b600dff1cdc126f234d16978a888f72c22a00c" - integrity sha512-FoiGFCLpb/r4HXCM3KYqT0xteP+MRV6bIHjz3bdPHIDLmBNQQnRRaV2K47jtJ6zjh1eOU5UHKyDtDDYf80Idpw== - dependencies: - nx "15.9.4" - -"@nrwl/devkit@>=14.8.1 < 16": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.9.4.tgz#3f0a43a9637fcd0a46c06df2a9c36012b27f006b" - integrity sha512-mUX1kXTuPMdTzFxIzH+MsSNvdppOmstPDOEtiGFZJTuJ625ki0HhNJILO3N2mJ7MeMrLqIlAiNdvelQaObxYsQ== - dependencies: - ejs "^3.1.7" - ignore "^5.0.4" - semver "7.3.4" - tmp "~0.2.1" - tslib "^2.3.0" - -"@nrwl/nx-darwin-arm64@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.4.tgz#e5a2f39d42a60397a01140a251f894788f5d1fda" - integrity sha512-XnvrnT9BJsgThY/4xUcYtE077ERq/img8CkRj7MOOBNOh0/nVcR4LGbBKDHtwE3HPk0ikyS/SxRyNa9msvi3QQ== - -"@nrwl/nx-darwin-x64@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-x64/-/nx-darwin-x64-15.9.4.tgz#97a810d4ff6b4bf395a43e4740890c0def2372da" - integrity sha512-WKSfSlpVMLchpXkax0geeUNyhvNxwO7qUz/s0/HJWBekt8fizwKDwDj1gP7fOu+YWb/tHiSscbR1km8PtdjhQw== - -"@nrwl/nx-linux-arm-gnueabihf@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-15.9.4.tgz#b8dd23b8c755b7e640d744945ab2dec3fd3eda65" - integrity sha512-a/b4PP7lP/Cgrh0LjC4O2YTt5pyf4DQTGtuE8qlo8o486UiofCtk4QGJX72q80s23L0ejCaKY2ULKx/3zMLjuA== - -"@nrwl/nx-linux-arm64-gnu@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-15.9.4.tgz#5bc150c2bdb2e0a2eaf8721b3c5fdb2eb93f8739" - integrity sha512-ibBV8fMhSfLVd/2WzcDuUm32BoZsattuKkvMmOoyU6Pzoznc3AqyDjJR4xCIoAn5Rf+Nu1oeQONr5FAtb1Ugow== - -"@nrwl/nx-linux-arm64-musl@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-musl/-/nx-linux-arm64-musl-15.9.4.tgz#df2f18f813828000dc52f1b7668339947b1a0862" - integrity sha512-iIjvVYd7+uM4jVD461+PvU5XTALgSvJOODUaMRGOoDl0KlMuTe6pQZlw0eXjl5rcTd6paKaVFWT5j6awr8kj7w== - -"@nrwl/nx-linux-x64-gnu@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-gnu/-/nx-linux-x64-gnu-15.9.4.tgz#55547b07e6aeb0c36a43e05bd07c15b013f2de9f" - integrity sha512-q4OyH72mdrE4KellBWtwpr5EwfxHKNoFP9//7FAILO68ROh0rpMd7YQMlTB7T04UEUHjKEEsFGTlVXIee3Viwg== - -"@nrwl/nx-linux-x64-musl@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-musl/-/nx-linux-x64-musl-15.9.4.tgz#29cd644736f643566d9c0e1a1171c49a62a08c09" - integrity sha512-67+/XNMR1CgLPyeGX8jqSG6l8yYD0iiwUgcu1Vaxq6N05WwnqVisIW8XzLSRUtKt4WyVQgOWk3aspImpMVOG3Q== - -"@nrwl/nx-win32-arm64-msvc@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-15.9.4.tgz#55a38bf5dc201e9088729fb03e505dc63caf8b3a" - integrity sha512-2rEsq3eOGVCYpYJn2tTJkOGNJm/U8rP/FmqtZXYa6VJv/00XP3Gl00IXFEDaYV6rZo7SWqLxtEPUbjK5LwPzZA== - -"@nrwl/nx-win32-x64-msvc@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-x64-msvc/-/nx-win32-x64-msvc-15.9.4.tgz#56bb859bfe47d08d14f8d5822d9a31d9098d95a9" - integrity sha512-bogVju4Z/hy1jbppqaTNbmV1R4Kg0R5fKxXAXC2LaL7FL0dup31wPumdV+mXttXBNOBDjV8V/Oz1ZqdmxpOJUw== - -"@nrwl/tao@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.9.4.tgz#5e384af06d1fb68e326eda2c6a5d8f99ce1583b8" - integrity sha512-m90iz8UsXx1rgPm1dxsBQjSrCViWYZIrp8bpwjSCW24j3kifyilYSXGuKaRwZwUn7eNmH/kZcI9/8qeGIPF4Sg== - dependencies: - nx "15.9.4" - -"@octokit/auth-token@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" - integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== - -"@octokit/core@^4.2.1": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" - integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== - dependencies: - "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^5.0.0" - "@octokit/request" "^6.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^7.0.0": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" - integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== - dependencies: - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^5.0.0": - version "5.0.6" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" - integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== - dependencies: - "@octokit/request" "^6.0.0" - "@octokit/types" "^9.0.0" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" - integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== - -"@octokit/plugin-enterprise-rest@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" - integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== - -"@octokit/plugin-paginate-rest@^6.1.2": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" - integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== - dependencies: - "@octokit/tsconfig" "^1.0.2" - "@octokit/types" "^9.2.3" - -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== - -"@octokit/plugin-rest-endpoint-methods@^7.1.2": - version "7.2.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" - integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== - dependencies: - "@octokit/types" "^10.0.0" - -"@octokit/request-error@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" - integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== - dependencies: - "@octokit/types" "^9.0.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^6.0.0": - version "6.2.8" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" - integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== - dependencies: - "@octokit/endpoint" "^7.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" - universal-user-agent "^6.0.0" - -"@octokit/rest@^19.0.3": - version "19.0.13" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.13.tgz#e799393264edc6d3c67eeda9e5bd7832dcf974e4" - integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== - dependencies: - "@octokit/core" "^4.2.1" - "@octokit/plugin-paginate-rest" "^6.1.2" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^7.1.2" - -"@octokit/tsconfig@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" - integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== - -"@octokit/types@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" - integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: - "@octokit/openapi-types" "^18.0.0" + "@gar/promisify" "^1.0.1" + semver "^7.3.5" -"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" - integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: - "@octokit/openapi-types" "^18.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" "@open-draft/until@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@open-draft/until/-/until-1.0.3.tgz#db9cc719191a62e7d9200f6e7bab21c5b848adca" integrity sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q== -"@parcel/watcher@2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" - integrity sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg== - dependencies: - node-addon-api "^3.2.1" - node-gyp-build "^4.3.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@pkgr/utils@^2.3.1": version "2.4.0" resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.0.tgz#b6373d2504aedaf2fc7cdf2d13ab1f48fa5f12d5" @@ -4137,11 +2409,6 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.7.tgz#ccab5c8f7dc557a52ca3288c10075c9ccd37fff7" integrity sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw== -"@popperjs/core@^2.11.8": - version "2.11.8" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" - integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -4195,6 +2462,18 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== +"@pyroscope/nodejs@^0.2.5": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@pyroscope/nodejs/-/nodejs-0.2.6.tgz#edc91bb230f36dbddaf854fa5b31257cf7f1ada5" + integrity sha512-F37ROH//HzO7zKm2S7CtNG8OAp+i4ADg4erQR9D57BrSgi8+3Jjp5s5PWqyJABC6IzsABgGrentPobBDr8QdsA== + dependencies: + axios "^0.26.1" + debug "^4.3.3" + form-data "^4.0.0" + pprof "^3.2.0" + regenerator-runtime "^0.13.11" + source-map "^0.7.3" + "@react-hook/debounce@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@react-hook/debounce/-/debounce-3.0.0.tgz#9eea8b5d81d4cb67cd72dd8657b3ff724afc7cad" @@ -4217,7 +2496,7 @@ resolved "https://registry.yarnpkg.com/@react-hook/passive-layout-effect/-/passive-layout-effect-1.2.1.tgz#c06dac2d011f36d61259aa1c6df4f0d5e28bc55e" integrity sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg== -"@react-hook/resize-observer@^1.2.4": +"@react-hook/resize-observer@^1.2.6": version "1.2.6" resolved "https://registry.yarnpkg.com/@react-hook/resize-observer/-/resize-observer-1.2.6.tgz#9a8cf4c5abb09becd60d1d65f6bf10eec211e291" integrity sha512-DlBXtLSW0DqYYTW3Ft1/GQFZlTdKY5VAFIC4+km6IK5NiPPDFchGbEJm1j6pSgMqPRHbUQgHJX7RaR76ic1LWA== @@ -4233,7 +2512,7 @@ dependencies: "@react-hook/latest" "^1.0.2" -"@react-hook/window-size@^3.0.7": +"@react-hook/window-size@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@react-hook/window-size/-/window-size-3.1.1.tgz#1a564902cfe212e8c27ffc2e74adcaa18a7d65b3" integrity sha512-yWnVS5LKnOUIrEsI44oz3bIIUYqflamPL27n+k/PC//PsX/YeWBky09oPeAoc9As6jSH16Wgo8plI+ECZaHk3g== @@ -4269,20 +2548,6 @@ dependencies: type-detect "4.0.8" -"@sinonjs/commons@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" - integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.0.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" - integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== - dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers@^8.0.1": version "8.1.0" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" @@ -5207,139 +3472,73 @@ regenerator-runtime "^0.13.7" resolve-from "^5.0.0" -"@swc/core-darwin-arm64@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.55.tgz#bd7fdf838a8d27c3df98d279017710a2da6af6a3" - integrity sha512-UnHC8aPg/JvHhgXxTU6EhTtfnYNS7nhq8EKB8laNPxlHbwEyMBVQ2QuJHlNCtFtvSfX/uH5l04Ld1iGXnBTfdQ== - -"@swc/core-darwin-arm64@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.70.tgz#056ac6899e22cb7f7be21388d4d938ca5123a72b" - integrity sha512-31+mcl0dgdRHvZRjhLOK9V6B+qJ7nxDZYINr9pBlqGWxknz37Vld5KK19Kpr79r0dXUZvaaelLjCnJk9dA2PcQ== - -"@swc/core-darwin-x64@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.55.tgz#da7e4076cce35e42f2688f7aae1fd26ecb5dcbef" - integrity sha512-VNJkFVARrktIqtaLrD1NFA54gqekH7eAUcUY2U2SdHwO67HYjfMXMxlugLP5PDasSKpTkrVooUdhkffoA5W50g== - -"@swc/core-darwin-x64@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.70.tgz#3945814de6fadbee5b46cb2a3422353acb420c5c" - integrity sha512-GMFJ65E18zQC80t0os+TZvI+8lbRuitncWVge/RXmXbVLPRcdykP4EJ87cqzcG5Ah0z18/E0T+ixD6jHRisrYQ== - -"@swc/core-linux-arm-gnueabihf@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.55.tgz#fd9214d5050987b312cbe9aa105d48365899c1d8" - integrity sha512-6OcohhIFKKNW/TpJt26Tpul8zyL7dmp1Lnyj2BX9ycsZZ5UnsNiGqn37mrqJgVTx/ansEmbyOmKu2mzm/Ct6cQ== - -"@swc/core-linux-arm-gnueabihf@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.70.tgz#7960e54ede1af75a7ef99ee53febf37fea6269a8" - integrity sha512-wjhCwS8LCiAq2VedF1b4Bryyw68xZnfMED4pLRazAl8BaUlDFANfRBORNunxlfHQj4V3x39IaiLgCZRHMdzXBg== - -"@swc/core-linux-arm64-gnu@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.55.tgz#214a4c1c89d9bab9277843b526b32463a98c516b" - integrity sha512-MfZtXGBv21XWwvrSMP0CMxScDolT/iv5PRl9UBprYUehwWr7BNjA3V9W7QQ+kKoPyORWk7LX7OpJZF3FnO618Q== - -"@swc/core-linux-arm64-gnu@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.70.tgz#df9654e5040bbeb1619739756a7f50100e38ace8" - integrity sha512-9D/Rx67cAOnMiexvCqARxvhj7coRajTp5HlJHuf+rfwMqI2hLhpO9/pBMQxBUAWxODO/ksQ/OF+GJRjmtWw/2A== - -"@swc/core-linux-arm64-musl@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.55.tgz#21a11fd919883bc0dc0ceb686f2627c1dc279b71" - integrity sha512-iZJo+7L5lv10W0f0C6SlyteAyMJt5Tp+aH3+nlAwKdtc+VjyL1sGhR8DJMXp2/buBRZJ9tjEtpXKDaWUdSdF7Q== - -"@swc/core-linux-arm64-musl@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.70.tgz#2c2aab5a136c7eb409ddc9cdc4f947a68fd74493" - integrity sha512-gkjxBio7XD+1GlQVVyPP/qeFkLu83VhRHXaUrkNYpr5UZG9zZurBERT9nkS6Y+ouYh+Q9xmw57aIyd2KvD2zqQ== - -"@swc/core-linux-x64-gnu@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.55.tgz#3cdf5e669e8d1ef3a1fd4249e535d53d4768a009" - integrity sha512-Rmc8ny/mslzzz0+wNK9/mLdyAWVbMZHRSvljhpzASmq48NBkmZ5vk9/WID6MnUz2e9cQ0JxJQs8t39KlFJtW3g== - -"@swc/core-linux-x64-gnu@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.70.tgz#774351532b154ed36a5c6d14b647e7a8ab510028" - integrity sha512-/nCly+V4xfMVwfEUoLLAukxUSot/RcSzsf6GdsGTjFcrp5sZIntAjokYRytm3VT1c2TK321AfBorsi9R5w8Y7Q== - -"@swc/core-linux-x64-musl@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.55.tgz#099f75a04827afe59c8755498c749ac667635749" - integrity sha512-Ymoc4xxINzS93ZjVd2UZfLZk1jF6wHjdCbC1JF+0zK3IrNrxCIDoWoaAj0+Bbvyo3hD1Xg/cneSTsqX8amnnuQ== - -"@swc/core-linux-x64-musl@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.70.tgz#c0b1b4ad5f4ef187eaa093589a4933ecb6836546" - integrity sha512-HoOsPJbt361KGKaivAK0qIiYARkhzlxeAfvF5NlnKxkIMOZpQ46Lwj3tR0VWohKbrhS+cYKFlVuDi5XnDkx0XA== - -"@swc/core-win32-arm64-msvc@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.55.tgz#e70b3cc06bbd6c04ebb7c1af1da1301d52dc5260" - integrity sha512-OhnmFstq2qRU2GI5I0G/8L+vc2rx8+w+IOA6EZBrY4FuMCbPIZKKzlnAIxYn2W+yD4gvBzYP3tgEcaDfQk6EkA== - -"@swc/core-win32-arm64-msvc@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.70.tgz#8640267ce3959db0e7e682103677a5e0500b5ea7" - integrity sha512-hm4IBK/IaRil+aj1cWU6f0GyAdHpw/Jr5nyFYLM2c/tt7w2t5hgb8NjzM2iM84lOClrig1fG6edj2vCF1dFzNQ== - -"@swc/core-win32-ia32-msvc@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.55.tgz#d2780198baec4aff1d01cb89a53dab53003e127c" - integrity sha512-3VR5rHZ6uoL/Vo3djV30GgX2oyDwWWsk+Yp+nyvYyBaKYiH2zeHfxdYRLSQV3W7kSlCAH3oDYpSljrWZ0t5XEQ== - -"@swc/core-win32-ia32-msvc@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.70.tgz#f95d5656622f5a963bc0125da9fda84cf40faa8d" - integrity sha512-5cgKUKIT/9Fp5fCA+zIjYCQ4dSvjFYOeWGZR3QiTXGkC4bGa1Ji9SEPyeIAX0iruUnKjYaZB9RvHK2tNn7RLrQ== - -"@swc/core-win32-x64-msvc@1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.55.tgz#6f9b9ac3f820f5a8476f93863b558c3b727be3d0" - integrity sha512-KBtMFtRwnbxBugYf6i2ePqEGdxsk715KcqGMjGhxNg7BTACnXnhj37irHu2e7A7wZffbkUVUYuj/JEgVkEjSxg== - -"@swc/core-win32-x64-msvc@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.70.tgz#5b3acddb96fdf60df089b837061915cb4be94eaa" - integrity sha512-LE8lW46+TQBzVkn2mHBlk8DIElPIZ2dO5P8AbJiARNBAnlqQWu67l9gWM89UiZ2l33J2cI37pHzON3tKnT8f9g== - -"@swc/core@^1.3.34": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.70.tgz#f5ddc6fe6add7a99f5b94d2214ad0d8527d11479" - integrity sha512-LWVWlEDLlOD25PvA2NEz41UzdwXnlDyBiZbe69s3zM0DfCPwZXLUm79uSqH9ItsOjTrXSL5/1+XUL6C/BZwChA== - optionalDependencies: - "@swc/core-darwin-arm64" "1.3.70" - "@swc/core-darwin-x64" "1.3.70" - "@swc/core-linux-arm-gnueabihf" "1.3.70" - "@swc/core-linux-arm64-gnu" "1.3.70" - "@swc/core-linux-arm64-musl" "1.3.70" - "@swc/core-linux-x64-gnu" "1.3.70" - "@swc/core-linux-x64-musl" "1.3.70" - "@swc/core-win32-arm64-msvc" "1.3.70" - "@swc/core-win32-ia32-msvc" "1.3.70" - "@swc/core-win32-x64-msvc" "1.3.70" - -"@swc/core@^1.3.55": - version "1.3.55" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.55.tgz#0886c07fb6d32803fee85cf135c1a3352142d51f" - integrity sha512-w/lN3OuJsuy868yJZKop+voZLVzI5pVSoopQVtgDNkEzejnPuRp9XaeAValvuMaWqKoTMtOjLzEPyv/xiAGYQQ== +"@swc/core-darwin-arm64@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.74.tgz#5ec6f504fb8cd74fd5133080f6cc670327a867cd" + integrity sha512-2rMV4QxM583jXcREfo0MhV3Oj5pgRSfSh/kVrB1twL2rQxOrbzkAPT/8flmygdVoL4f2F7o1EY5lKlYxEBiIKQ== + +"@swc/core-darwin-x64@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.74.tgz#5da7bdc4ad0fb3b4375d9c1039672ae8f61efaeb" + integrity sha512-KKEGE1wXneYXe15fWDRM8/oekd/Q4yAuccA0vWY/7i6nOSPqWYcSDR0nRtR030ltDxWt0rk/eCTmNkrOWrKs3A== + +"@swc/core-linux-arm-gnueabihf@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.74.tgz#52d818692aaaf9138e1175956271cae8107c1096" + integrity sha512-HehH5DR6r/5fIVu7tu8ZqgrHkhSCQNewf1ztFQJgcmaQWn+H4AJERBjwkjosqh4TvUJucZv8vyRTvrFeBXaCSA== + +"@swc/core-linux-arm64-gnu@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.74.tgz#b230ba8623edb3c4b9ceffaf9aced8bf7a9fc829" + integrity sha512-+xkbCRz/wczgdknoV4NwYxbRI2dD7x/qkIFcVM2buzLCq8oWLweuV8+aL4pRqu0qDh7ZSb1jcaVTUIsySCJznA== + +"@swc/core-linux-arm64-musl@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.74.tgz#05ff0f3046aba1dd9d2d8793c10cd4a21a46fd7f" + integrity sha512-maKFZSCD3tQznzPV7T3V+TtiWZFEFM8YrnSS5fQNNb+K9J65sL+170uTb3M7H4cFkG+9Sm5k5yCrCIutlvV48g== + +"@swc/core-linux-x64-gnu@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.74.tgz#a98d9a984d47404aa2de478dd3cd33dbd195bba2" + integrity sha512-LEXpcShF6DLTWJSiBhMSYZkLQ27UvaQ24fCFhoIV/R3dhYaUpHmIyLPPBNC82T03lB3ONUFVwrRw6fxDJ/f00A== + +"@swc/core-linux-x64-musl@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.74.tgz#95e04431eba994b4fae23c578ad1ba73fb72c21d" + integrity sha512-sxsFctbFMZEFmDE7CmYljG0dMumH8XBTwwtGr8s6z0fYAzXBGNq2AFPcmEh2np9rPWkt7pE1m0ByESD+dMkbxQ== + +"@swc/core-win32-arm64-msvc@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.74.tgz#62cb708094a8902a307fba6eea08682dbccd472d" + integrity sha512-F7hY9/BjFCozA4YPFYFH5FGCyWwa44vIXHqG66F5cDwXDGFn8ZtBsYIsiPfUYcx0AeAo1ojnVWKPxokZhYNYqA== + +"@swc/core-win32-ia32-msvc@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.74.tgz#fe5a2d8bbddb609e554e0d8d678093973096330c" + integrity sha512-qBAsiD1AlIdqED6wy3UNRHyAys9pWMUidX0LJ6mj24r/vfrzzTBAUrLJe5m7bzE+F1Rgi001avYJeEW1DLEJ+Q== + +"@swc/core-win32-x64-msvc@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.74.tgz#4fd459c7264d4c97d1b2965ed6aa86b1725ce38b" + integrity sha512-S3YAvvLprTnPRwQuy9Dkwubb5SRLpVK3JJsqYDbGfgj8PGQyKHZcVJ5X3nfFsoWLy3j9B/3Os2nawprRSzeC5A== + +"@swc/core@^1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.74.tgz#b1d1a3c46ca32b7f10d970c8a209d2913c9de251" + integrity sha512-P+MIExOTdWlfq8Heb1/NhBAke6UTckd4cRDuJoFcFMGBRvgoCMNWhnfP3FRRXPLI7GGg27dRZS+xHiqYyQmSrA== optionalDependencies: - "@swc/core-darwin-arm64" "1.3.55" - "@swc/core-darwin-x64" "1.3.55" - "@swc/core-linux-arm-gnueabihf" "1.3.55" - "@swc/core-linux-arm64-gnu" "1.3.55" - "@swc/core-linux-arm64-musl" "1.3.55" - "@swc/core-linux-x64-gnu" "1.3.55" - "@swc/core-linux-x64-musl" "1.3.55" - "@swc/core-win32-arm64-msvc" "1.3.55" - "@swc/core-win32-ia32-msvc" "1.3.55" - "@swc/core-win32-x64-msvc" "1.3.55" - -"@swc/jest@^0.2.24": + "@swc/core-darwin-arm64" "1.3.74" + "@swc/core-darwin-x64" "1.3.74" + "@swc/core-linux-arm-gnueabihf" "1.3.74" + "@swc/core-linux-arm64-gnu" "1.3.74" + "@swc/core-linux-arm64-musl" "1.3.74" + "@swc/core-linux-x64-gnu" "1.3.74" + "@swc/core-linux-x64-musl" "1.3.74" + "@swc/core-win32-arm64-msvc" "1.3.74" + "@swc/core-win32-ia32-msvc" "1.3.74" + "@swc/core-win32-x64-msvc" "1.3.74" + +"@swc/jest@^0.2.27": version "0.2.27" resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.27.tgz#f6cbd0b6f95cf689c3344c63fc379fa680cdbf52" integrity sha512-Xt8EJ6Wy0NYVL8KDPcDMsuUSzyV2UAByamyy28x2iDZCJw2eVz3acedCGBYxxlPR/DNr6QbA35OSymuXhC9QVA== @@ -5347,22 +3546,6 @@ "@jest/create-cache-key-function" "^27.4.2" jsonc-parser "^3.2.0" -"@swc/jest@^0.2.26": - version "0.2.26" - resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.26.tgz#6ef2d6d31869e3aaddc132603bc21f2e4c57cc5d" - integrity sha512-7lAi7q7ShTO3E5Gt1Xqf3pIhRbERxR1DUxvtVa9WKzIB+HGQ7wZP5sYx86zqnaEoKKGhmOoZ7gyW0IRu8Br5+A== - dependencies: - "@jest/create-cache-key-function" "^27.4.2" - jsonc-parser "^3.2.0" - -"@szhsin/react-menu@3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@szhsin/react-menu/-/react-menu-3.3.0.tgz#66b921b31938a665b665f80e24d9ca2800360c45" - integrity sha512-GZfPLey2ZSVDaRtALuqH611cSM8QBujztYqLDqrqbWkTCwXrdob9G8PaBapBR/5hyW6dqDKJzFfcthZE3/iMpg== - dependencies: - prop-types "^15.7.2" - react-transition-state "^1.1.5" - "@szhsin/react-menu@3.5.2": version "3.5.2" resolved "https://registry.yarnpkg.com/@szhsin/react-menu/-/react-menu-3.5.2.tgz#b316b7aec4cc0dfd10c13a81e9063ea1668d4096" @@ -5378,14 +3561,6 @@ dependencies: defer-to-connect "^2.0.0" -"@testing-library/cypress@^8.0.0": - version "8.0.7" - resolved "https://registry.yarnpkg.com/@testing-library/cypress/-/cypress-8.0.7.tgz#18315eba3cf8852808afadf122e4858406384015" - integrity sha512-3HTV725rOS+YHve/gD9coZp/UcPK5xhr4H0GMnq/ni6USdtzVtSOG9WBFtd8rYnrXk8rrGD+0toRFYouJNIG0Q== - dependencies: - "@babel/runtime" "^7.14.6" - "@testing-library/dom" "^8.1.0" - "@testing-library/cypress@^9.0.0": version "9.0.0" resolved "https://registry.yarnpkg.com/@testing-library/cypress/-/cypress-9.0.0.tgz#3facad49c4654a99bbd138f83f33b415d2d6f097" @@ -5394,20 +3569,6 @@ "@babel/runtime" "^7.14.6" "@testing-library/dom" "^8.1.0" -"@testing-library/dom@^8.0.0", "@testing-library/dom@^8.7.1": - version "8.20.1" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f" - integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "5.1.3" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.5.0" - pretty-format "^27.0.2" - "@testing-library/dom@^8.1.0": version "8.20.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.0.tgz#914aa862cef0f5e89b98cc48e3445c4c921010f6" @@ -5436,7 +3597,21 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^5.14.1": +"@testing-library/dom@^9.3.1": + version "9.3.1" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.1.tgz#8094f560e9389fb973fe957af41bf766937a9ee9" + integrity sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^5.17.0": version "5.17.0" resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== @@ -5451,21 +3626,6 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/jest-dom@^5.16.5": - 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" - "@testing-library/react-hooks@^8.0.1": version "8.0.1" resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz#0924bbd5b55e0c0c0502d1754657ada66947ca12" @@ -5474,15 +3634,6 @@ "@babel/runtime" "^7.12.5" react-error-boundary "^3.1.0" -"@testing-library/react@^12.1.1": - version "12.1.5" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-12.1.5.tgz#bb248f72f02a5ac9d949dea07279095fa577963b" - integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== - dependencies: - "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" - "@types/react-dom" "<18.0.0" - "@testing-library/react@^14.0.0": version "14.0.0" resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.0.0.tgz#59030392a6792450b9ab8e67aea5f3cc18d6347c" @@ -5504,36 +3655,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - "@types/aria-query@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" @@ -5615,14 +3741,6 @@ "@types/node" "*" "@types/responselike" "^1.0.0" -"@types/clean-css@*": - version "4.2.6" - resolved "https://registry.yarnpkg.com/@types/clean-css/-/clean-css-4.2.6.tgz#48b427285b2b654751a9bbc6f7d35e6173dec8d2" - integrity sha512-Ze1tf+LnGPmG6hBFMi0B4TEB0mhF7EiMM5oyjLDNPE9hxrPU0W+5+bHvO+eFPA+bt0iC1zkQMoU/iGdRVjcRbw== - dependencies: - "@types/node" "*" - source-map "^0.6.0" - "@types/color-convert@*": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.0.tgz#8f5ee6b9e863dcbee5703f5a517ffb13d3ea4e22" @@ -5642,14 +3760,6 @@ dependencies: "@types/color-convert" "*" -"@types/connect-history-api-fallback@*": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41" - integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - "@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" @@ -5670,13 +3780,6 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== -"@types/copy-webpack-plugin@^6.0.0": - version "6.4.3" - resolved "https://registry.yarnpkg.com/@types/copy-webpack-plugin/-/copy-webpack-plugin-6.4.3.tgz#6604f06a2c9ca4516a453d2e4f87bf844819bccd" - integrity sha512-yk7QO2/WrtkDLcsqQXfjU3EIYzggNHVl5y6gnxfMtCPB+bxVUIUzwb1BNxlk+78wENoh9ZgkVSNqn80T9rqO8w== - dependencies: - "@types/webpack" "^4" - "@types/d3-scale-chromatic@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#103124777e8cdec85b20b51fd3397c682ee1e954" @@ -5710,14 +3813,6 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/eslint@^7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78" - integrity sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng== - 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" @@ -5780,7 +3875,7 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": +"@types/graceful-fs@^4.1.2": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== @@ -5824,36 +3919,11 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== -"@types/html-minifier@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/html-minifier/-/html-minifier-4.0.2.tgz#ea0b927ad0019821a2e9d14ba9c57d105b63cecc" - integrity sha512-4IkmkXJP/25R2fZsCHDX2abztXuQRzUAZq39PfCMz2loLFj8vS9y7aF6vDl58koXSTpsF+eL4Lc5Y4Aww/GCTQ== - dependencies: - "@types/clean-css" "*" - "@types/relateurl" "*" - "@types/uglify-js" "*" - -"@types/html-webpack-plugin@*": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@types/html-webpack-plugin/-/html-webpack-plugin-3.2.6.tgz#07951aaf0fa260dbf626f9644f1d13106d537625" - integrity sha512-U8uJSvlf9lwrKG6sKFnMhqY4qJw2QXad+PHlX9sqEXVUMilVt96aVvFde73tzsdXD+QH9JS6kEytuGO2JcYZog== - dependencies: - "@types/html-minifier" "*" - "@types/tapable" "^1" - "@types/webpack" "^4" - "@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.5": - version "1.17.11" - resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" - integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA== - dependencies: - "@types/node" "*" - "@types/http-proxy@^1.17.8": version "1.17.10" resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.10.tgz#e576c8e4a0cc5c6a138819025a88e167ebb38d6c" @@ -5910,14 +3980,6 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/jest@^27.0.2": - version "27.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.5.2.tgz#ec49d29d926500ffb9fd22b84262e862049c026c" - integrity sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA== - dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" - "@types/jest@^29.5.0": version "29.5.0" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.0.tgz#337b90bbcfe42158f39c2fb5619ad044bbb518ac" @@ -5938,15 +4000,6 @@ resolved "https://registry.yarnpkg.com/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz#ba05426a43f9e4e30b631941e0aa17bf0c890ed5" integrity sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g== -"@types/jsdom@^20.0.0": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" - integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - "@types/json-schema@*", "@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" @@ -5976,13 +4029,6 @@ dependencies: "@types/lodash" "*" -"@types/lodash.defaults@^4.2.6": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@types/lodash.defaults/-/lodash.defaults-4.2.7.tgz#092d4005311b73803a8983281662c6a28dab28d5" - integrity sha512-u7sEFKHVbS66OUD3aThUos6vSjYIddRmVrvKuh16darllgOLD8nbs6XpYkNM6Jwq7D2izws9wt7g04iP0Syg8A== - dependencies: - "@types/lodash" "*" - "@types/lodash.groupby@^4.6.7": version "4.6.7" resolved "https://registry.yarnpkg.com/@types/lodash.groupby/-/lodash.groupby-4.6.7.tgz#35fdb9647f100450d1004f65f74cbd964cdb567a" @@ -6002,7 +4048,7 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.192.tgz#5790406361a2852d332d41635d927f1600811285" integrity sha512-km+Vyn3BYm5ytMO13k9KTp27O75rbQ0NFw+U//g+PX7VZyjCioXaRFisqSIJRECljcTv73G3i6BpglNGHgUQ5A== -"@types/lodash@^4.14.167", "@types/lodash@^4.14.176": +"@types/lodash@^4.14.167": version "4.14.195" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== @@ -6019,28 +4065,21 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== -"@types/mini-css-extract-plugin@^2.4.0": - version "2.5.1" - resolved "https://registry.yarnpkg.com/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.1.tgz#c2ab735b353864019a148251e699b7038443bc77" - integrity sha512-evjjtJttaUexgg3au9ZJFy76tV9mySwX3a4Jl82BuormBYluWLRt0xk2urWrhOdPgDWzulRFyotwYOJTmkSgKw== - dependencies: - mini-css-extract-plugin "*" - "@types/minimatch@*", "@types/minimatch@^5.1.2": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== +"@types/mocha@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" + integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== + "@types/node-fetch@^2.5.7": version "2.6.4" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" @@ -6060,20 +4099,15 @@ integrity sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw== "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0": - version "16.18.38" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.38.tgz#1dcdb6c54d02b323f621213745f2e44af30c73e6" - integrity sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ== + version "16.18.39" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.39.tgz#aa39a1a87a40ef6098ee69689a1acb0c1b034832" + integrity sha512-8q9ZexmdYYyc5/cfujaXb4YOucpQxAV4RMG0himLyDUOEr8Mr79VrqsFI+cQ2M2h89YIuy95lbxuYjxT4Hk4kQ== "@types/node@^14.14.31": version "14.18.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.43.tgz#679e000d9f1d914132ea295b4a1ffdf20370ec49" integrity sha512-n3eFEaoem0WNwLux+k272P0+aq++5o05bA9CfiwKPdYPB5ZambWKdWoeHy7/OJiizMhzg27NLaZ6uzjLTzXceQ== -"@types/node@^17.0.7": - version "17.0.45" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" - integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -6102,9 +4136,9 @@ "@types/node" "*" "@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/pretty-hrtime@^1.0.0": version "1.0.1" @@ -6153,24 +4187,6 @@ date-fns "^2.0.1" react-popper "^2.2.5" -"@types/react-dev-utils@^9.0.10": - version "9.0.11" - resolved "https://registry.yarnpkg.com/@types/react-dev-utils/-/react-dev-utils-9.0.11.tgz#0dff59c60b5011df0f851e5ec4c831cf07300ba3" - integrity sha512-SdHtle/1hyImI1VzJUp20pthFwHY2O0Pq5QWIbPyku0SboPxqbyfwFwOlrr5d4yiZRr1in7SQ4Z0IiJVrJiJrg== - dependencies: - "@types/eslint" "*" - "@types/express" "*" - "@types/html-webpack-plugin" "*" - "@types/webpack" "^4" - "@types/webpack-dev-server" "3" - -"@types/react-dom@<18.0.0": - version "17.0.20" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.20.tgz#e0c8901469d732b36d8473b40b679ad899da1b53" - integrity sha512-4pzIjSxDueZZ90F52mU3aPoogkHIoSIDG+oQ+wQK7Cy2B9S+MvOqY0uEA/qawKz381qrEDkvpwyt8Bm31I8sbA== - dependencies: - "@types/react" "^17" - "@types/react-dom@^18.0.0": version "18.2.4" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.4.tgz#13f25bfbf4e404d26f62ac6e406591451acba9e0" @@ -6199,14 +4215,7 @@ dependencies: "@types/react" "*" -"@types/react-is@^18.2.1": - version "18.2.1" - resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-18.2.1.tgz#61d01c2a6fc089a53520c0b66996d458fdc46863" - integrity sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw== - dependencies: - "@types/react" "*" - -"@types/react-notifications-component@^3.1.1": +"@types/react-notifications-component@~3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/react-notifications-component/-/react-notifications-component-3.1.1.tgz#85691cb425e266eeda1c82b67ca95b36a6566e86" integrity sha512-1b8yPkEOS266q1I5QebG4pcP437Nn9rQ/w8pcHF9kISLbU39HrpFilu9Lmg45FOpskowNzOkKyl/yh71FJwfzg== @@ -6254,13 +4263,6 @@ dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.6": - version "4.4.6" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e" - integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== - dependencies: - "@types/react" "*" - "@types/react@*": version "18.0.31" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.31.tgz#a69ef8dd7bfa849734d258c793a8fe343a338205" @@ -6275,15 +4277,6 @@ resolved "https://registry.yarnpkg.com/@types/react/-/react-15.7.13.tgz#66cce027aaac03ce751d937fb767ffc82dc92a8a" integrity sha512-kNvyvhxw3t7dJxCJm5icnm0nPx4vsWJYK/iwDyNHHl8IcL+14B74hIb8V2tllyfhmCMgw9KS1I4uiPh+0H/NdA== -"@types/react@^17", "@types/react@^17.0.0": - version "17.0.62" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.62.tgz#2efe8ddf8533500ec44b1334dd1a97caa2f860e3" - integrity sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/react@^18.0.0": version "18.0.33" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.33.tgz#a1575160cb4376787c2f5fe0312302f824baa61e" @@ -6293,11 +4286,6 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/relateurl@*": - version "0.2.29" - resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.29.tgz#68ccecec3d4ffdafb9c577fe764f912afc050fe6" - integrity sha512-QSvevZ+IRww2ldtfv1QskYsqVVVwCKQf1XbwtcyyoRvLIQzfyPhj/C+3+PKzSDRdiyejaiLgnq//XTkleorpLg== - "@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" @@ -6347,11 +4335,6 @@ resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== -"@types/sinonjs__fake-timers@^6.0.2": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.4.tgz#0ecc1b9259b76598ef01942f547904ce61a6a77d" - integrity sha512-IFQTJARgMUBF+xVd2b+hIgXWrZEjND3vJtRCvIelcFB5SIXfjV4bOHbHJ0eXKh+0COrBRc8MqteKAz/j88rE0A== - "@types/sizzle@*", "@types/sizzle@^2.3.2": version "2.3.3" resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" @@ -6379,6 +4362,13 @@ resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== +"@types/testing-library__jest-dom@^5.14.9": + version "5.14.9" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz#0fb1e6a0278d87b6737db55af5967570b67cb466" + integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== + dependencies: + "@types/jest" "*" + "@types/testing-library__jest-dom@^5.9.1": version "5.14.6" resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.6.tgz#4887f6e1af11215428ab02777873bcede98a53b0" @@ -6393,11 +4383,6 @@ dependencies: "@types/node" "*" -"@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== - "@types/uglify-js@*": version "3.17.1" resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5" @@ -6410,29 +4395,11 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.7.tgz#5b06ad6894b236a1d2bd6b2f07850ca5c59cf4d6" integrity sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g== -"@types/webpack-dev-server@3": - version "3.11.6" - resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz#d8888cfd2f0630203e13d3ed7833a4d11b8a34dc" - integrity sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" - "@types/webpack-env@^1.16.0": version "1.18.1" resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.18.1.tgz#49699bb508961e14a3bfb68c78cd87b296889d1d" integrity sha512-D0HJET2/UY6k9L6y3f5BL+IDxZmPkYmPT4+qBrRdmRLYRuV0qNKizMgTvYxXZYn+36zjPeoDZAEYBCM6XB+gww== -"@types/webpack-livereload-plugin@^2.3.3": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@types/webpack-livereload-plugin/-/webpack-livereload-plugin-2.3.3.tgz#96f34133f1e1515571233a3e5099d863dc8723e7" - integrity sha512-R8P2HG2mAHY3Qptspt0il8zYVNqiEeOmMe2cGFcEjH7qnJZ4uC7hujLwfAm6jrIO7I5uEs6CxfpKSXM9ULAggw== - dependencies: - "@types/webpack" "^4" - "@types/webpack-sources@*": version "3.2.0" resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" @@ -6442,7 +4409,7 @@ "@types/source-list-map" "*" source-map "^0.7.3" -"@types/webpack@^4", "@types/webpack@^4.4.31", "@types/webpack@^4.41.26", "@types/webpack@^4.41.8": +"@types/webpack@^4.4.31", "@types/webpack@^4.41.26", "@types/webpack@^4.41.8": version "4.41.33" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc" integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g== @@ -6454,15 +4421,6 @@ anymatch "^3.0.0" source-map "^0.6.0" -"@types/webpack@^5.28.0": - version "5.28.1" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.1.tgz#c369baeff31abe54b45f7f29997e1623604198d6" - integrity sha512-qw1MqGZclCoBrpiSe/hokSgQM/su8Ocpl3L/YHE0L6moyaypg4+5F7Uzq7NgaPKPxUxUbQ4fLPLpDWdR27bCZw== - dependencies: - "@types/node" "*" - tapable "^2.2.0" - webpack "^5" - "@types/ws@^8.5.1": version "8.5.4" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" @@ -6548,22 +4506,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/eslint-plugin@^5.6.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz#aeef0328d172b9e37d9bab6dbc13b87ed88977db" - integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/type-utils" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/experimental-utils@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" @@ -6613,16 +4555,6 @@ "@typescript-eslint/typescript-estree" "5.59.5" debug "^4.3.4" -"@typescript-eslint/parser@^5.6.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" - integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== - dependencies: - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - debug "^4.3.4" - "@typescript-eslint/scope-manager@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" @@ -6675,16 +4607,6 @@ debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/type-utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" - integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== - dependencies: - "@typescript-eslint/typescript-estree" "5.62.0" - "@typescript-eslint/utils" "5.62.0" - debug "^4.3.4" - tsutils "^3.21.0" - "@typescript-eslint/types@4.33.0": version "4.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" @@ -7223,33 +5145,16 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.1.1": - 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/configtest@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.1.tgz#a69720f6c9bad6aef54a8fa6ba9c3533e7ef4c7f" integrity sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A== -"@webpack-cli/info@^1.4.1": - 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/info@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== -"@webpack-cli/serve@^1.6.1": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" - integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== - "@webpack-cli/serve@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8" @@ -7275,26 +5180,6 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - -"@yarnpkg/parsers@^3.0.0-rc.18": - version "3.0.0-rc.48.1" - resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.48.1.tgz#8636c24c02c888f2602a464edfd7fb113d75e937" - integrity sha512-qEewJouhRvaecGjbkjz9kMKn96UASbDodNrE5MYy2TrXkHcisIkbMxZdGBYfAq+s1dFtCSx/5H4k5bEkfakM+A== - dependencies: - js-yaml "^3.10.0" - tslib "^2.4.0" - -"@zkochan/js-yaml@0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826" - integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg== - dependencies: - argparse "^2.0.1" - JSONStream@^1.0.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -7303,12 +5188,12 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -abab@^2.0.3, abab@^2.0.5, abab@^2.0.6: +abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abbrev@1, abbrev@^1.0.0: +abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -7329,14 +5214,6 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== - dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" - 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" @@ -7357,7 +5234,7 @@ acorn-walk@^7.1.1, acorn-walk@^7.2.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.1.1: +acorn-walk@^8.0.0: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== @@ -7367,17 +5244,17 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.1, acorn@^7.4.0, acorn@^7.4.1: +acorn@^7.1.1, acorn@^7.4.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.2.4, acorn@^8.8.2: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -acorn@^8.1.0, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1: +acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -7387,27 +5264,18 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== -address@^1.0.1, address@^1.1.2: +address@^1.0.1: version "1.2.2" resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== -agent-base@6, agent-base@^6.0.2: +agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" -agentkeepalive@^4.2.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" - integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== - dependencies: - debug "^4.1.0" - depd "^2.0.0" - humanize-ms "^1.2.1" - aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -7439,7 +5307,7 @@ airbnb-js-shims@^2.2.1: string.prototype.padstart "^3.0.0" symbol.prototype.description "^1.0.0" -airbnb-prop-types@^2.15.0, airbnb-prop-types@^2.16.0: +airbnb-prop-types@^2.15.0: version "2.16.0" resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2" integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg== @@ -7537,27 +5405,17 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - 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-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +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== @@ -7576,11 +5434,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - ansi-to-html@^0.6.11: version "0.6.15" resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7" @@ -7616,16 +5469,16 @@ app-root-dir@^1.0.2: resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" integrity sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g== -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: +"aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + arch@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" @@ -7644,27 +5497,6 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -7721,21 +5553,11 @@ array-buffer-byte-length@^1.0.0: call-bind "^1.0.2" is-array-buffer "^3.0.1" -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== -array-find@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" - integrity sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ== - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -7751,7 +5573,7 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.0.3, array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: +array-includes@^3.0.3, array-includes@^3.1.5, array-includes@^3.1.6: version "3.1.6" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== @@ -7789,17 +5611,6 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== -array.prototype.filter@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.2.tgz#5f90ca6e3d01c31ea8db24c147665541db28bb4c" - integrity sha512-us+UrmGOilqttSOgoWZTpOvHu68vZT2YCjc/H4vhu56vzZpaDFBhB+Se2UwqWzMKbDv7Myq5M5pcZLAtUvTQdQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - array.prototype.find@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.2.1.tgz#769b8182a0b535c3d76ac025abab98ba1e12467b" @@ -7810,7 +5621,7 @@ array.prototype.find@^2.1.1: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" -array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.5, array.prototype.flat@^1.3.1: +array.prototype.flat@^1.2.1, array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== @@ -7885,11 +5696,6 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asap@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -7935,12 +5741,7 @@ ast-types@^0.14.2: resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== dependencies: - tslib "^2.0.1" - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + tslib "^2.0.1" astral-regex@^2.0.0: version "2.0.0" @@ -7959,7 +5760,7 @@ async@^2.6.4: dependencies: lodash "^4.17.14" -async@^3.2.0, async@^3.2.3: +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== @@ -7974,7 +5775,7 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@2.1.2, atob@^2.1.2: +atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== @@ -7984,19 +5785,7 @@ attr-accept@^2.2.2: resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== -autoprefixer@^10.4.13: - version "10.4.14" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" - integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== - dependencies: - browserslist "^4.21.5" - caniuse-lite "^1.0.30001464" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -autoprefixer@^9.8.5, autoprefixer@^9.8.6: +autoprefixer@^9.8.6: version "9.8.8" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== @@ -8029,14 +5818,12 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== -axios@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f" - integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== +axios@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" + integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" + follow-redirects "^1.14.8" axobject-query@^3.1.1: version "3.2.1" @@ -8045,46 +5832,6 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - babel-jest@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" @@ -8099,20 +5846,7 @@ babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" - integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== - dependencies: - "@jest/transform" "^29.5.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-loader@^8.0.0, babel-loader@^8.1.0: +babel-loader@^8.0.0: version "8.3.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== @@ -8122,13 +5856,6 @@ babel-loader@^8.0.0, babel-loader@^8.1.0: make-dir "^3.1.0" schema-utils "^2.6.5" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== - dependencies: - babel-runtime "^6.22.0" - babel-plugin-add-react-displayname@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" @@ -8170,16 +5897,6 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-macros@^3.0.1, 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" @@ -8195,13 +5912,13 @@ babel-plugin-named-exports-order@^0.0.2: integrity sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw== babel-plugin-polyfill-corejs2@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz#9f9a0e1cd9d645cc246a5e094db5c3aa913ccd2b" - integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== + version "0.4.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.1" - "@nicolo-ribaudo/semver-v6" "^6.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" babel-plugin-polyfill-corejs3@^0.1.0: version "0.1.7" @@ -8212,19 +5929,19 @@ babel-plugin-polyfill-corejs3@^0.1.0: core-js-compat "^3.8.1" babel-plugin-polyfill-corejs3@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz#d406c5738d298cd9c66f64a94cf8d5904ce4cc5e" - integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== + version "0.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" + integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" babel-plugin-polyfill-regenerator@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz#ace7a5eced6dff7d5060c335c52064778216afd3" - integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" babel-plugin-react-docgen@^4.2.1: version "4.2.1" @@ -8240,21 +5957,6 @@ babel-plugin-react-svg@^3.0.3: resolved "https://registry.yarnpkg.com/babel-plugin-react-svg/-/babel-plugin-react-svg-3.0.3.tgz#7da46a0bd8319f49ac85523d259f145ce5d78321" integrity sha512-Pst1RWjUIiV0Ykv1ODSeceCBsFOP2Y4dusjq7/XkjuzJdvS9CjpkPMUIoO4MLlvp5PiLCeMlsOC7faEUA0gm3Q== -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - integrity sha512-chI3Rt9T1AbrQD1s+vxw3KcwC9yHtF621/MacuItITfZX344uhQoANjpoSJZleAmW2tjlolqB/f+h7jIqXa7pA== - -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - integrity sha512-n4jtBA3OYBdvG5PRMKsMXJXHfLYw/ZOmtxCLOOwz6Ro5XlrColkStLnz1AS1L2yfPA9BKJ1ZNlmVCLjAL9DSIg== - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -8281,63 +5983,6 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== - dependencies: - babel-plugin-jest-hoist "^29.5.0" - babel-preset-current-node-syntax "^1.0.0" - -babel-runtime@^6.22.0, 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" - -babel-template@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -8366,13 +6011,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -basic-auth@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" - integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== - dependencies: - safe-buffer "5.1.2" - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -8385,11 +6023,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - better-opn@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" @@ -8412,18 +6045,6 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bin-links@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" - integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== - dependencies: - cmd-shim "^5.0.0" - mkdirp-infer-owner "^2.0.0" - npm-normalize-package-bin "^2.0.0" - read-cmd-shim "^3.0.0" - rimraf "^3.0.0" - write-file-atomic "^4.0.0" - binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -8434,7 +6055,7 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: +bindings@^1.2.1, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -8549,13 +6170,6 @@ brace-expansion@^1.1.7: 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@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" @@ -8664,7 +6278,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.21.5, browserslist@^4.21.9: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.4, browserslist@^4.21.9: version "4.21.9" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== @@ -8674,7 +6288,7 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.18.1, browserslist@^4 node-releases "^2.0.12" update-browserslist-db "^1.0.11" -browserslist@^4.14.5, browserslist@^4.21.3: +browserslist@^4.14.5: version "4.21.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== @@ -8735,18 +6349,6 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== - -builtins@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - bundle-name@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" @@ -8754,11 +6356,6 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" -byte-size@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-7.0.1.tgz#b1daf3386de7ab9d706b941a748dbfc71130dee3" - integrity sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A== - bytes-iec@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/bytes-iec/-/bytes-iec-3.1.1.tgz#94cd36bf95c2c22a82002c247df8772d1d591083" @@ -8842,48 +6439,6 @@ cacache@^15.0.5: tar "^6.0.2" unique-filename "^1.1.1" -cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: - version "16.1.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" - integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== - dependencies: - "@npmcli/fs" "^2.1.0" - "@npmcli/move-file" "^2.0.0" - chownr "^2.0.0" - fs-minipass "^2.1.0" - glob "^8.0.1" - infer-owner "^1.0.4" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - mkdirp "^1.0.4" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^9.0.0" - tar "^6.1.11" - unique-filename "^2.0.0" - -cacache@^17.0.0: - version "17.1.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.3.tgz#c6ac23bec56516a7c0c52020fd48b4909d7c7044" - integrity sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg== - dependencies: - "@npmcli/fs" "^3.1.0" - fs-minipass "^3.0.0" - glob "^10.2.2" - lru-cache "^7.7.1" - minipass "^5.0.0" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^4.0.0" - ssri "^10.0.0" - tar "^6.1.11" - unique-filename "^3.0.0" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -8938,25 +6493,6 @@ call-me-maybe@^1.0.1: resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -9007,7 +6543,7 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== -camelcase@^5.0.0, camelcase@^5.3.1: +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== @@ -9022,7 +6558,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001503: version "1.0.30001517" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8" integrity sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA== @@ -9032,23 +6568,6 @@ caniuse-lite@^1.0.30001449: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001473.tgz#3859898b3cab65fc8905bb923df36ad35058153c" integrity sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg== -canvas-to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/canvas-to-buffer/-/canvas-to-buffer-1.1.1.tgz#3adceeb0a56c1583f3cf0cffc7b3ac08c1a1b4a1" - integrity sha512-AIc/EjM5cPkUDBPic+r1OPdD6WO95GatRulDV5ue1SXq6SmUtG6Myc7PeMfg8BdO/rhUrT5PtpQu+pK6sDBhsg== - dependencies: - atob "2.1.2" - typedarray-to-buffer "3.1.5" - -canvas@^2.8.0: - version "2.11.2" - resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.11.2.tgz#553d87b1e0228c7ac0fc72887c3adbac4abbd860" - integrity sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - nan "^2.17.0" - simple-get "^3.0.3" - capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -9090,7 +6609,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -9107,7 +6626,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -9145,41 +6664,6 @@ check-more-types@^2.24.0: resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@^1.0.0-rc.3: - version "1.0.0-rc.12" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" - integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.0.1" - htmlparser2 "^8.0.1" - parse5 "^7.0.0" - parse5-htmlparser2-tree-adapter "^7.0.0" - -chokidar-cli@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chokidar-cli/-/chokidar-cli-3.0.0.tgz#29283666063b9e167559d30f247ff8fc48794eb7" - integrity sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ== - dependencies: - chokidar "^3.5.2" - lodash.debounce "^4.0.8" - lodash.throttle "^4.1.1" - yargs "^13.3.0" - "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -9304,24 +6788,19 @@ cli-boxes@^2.2.1: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-cursor@3.1.0, cli-cursor@^3.1.0: +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-spinners@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== - cli-spinners@^2.5.0: version "2.9.0" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== -cli-table3@^0.6.1, cli-table3@~0.6.0, cli-table3@~0.6.1: +cli-table3@^0.6.1, cli-table3@~0.6.1: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== @@ -9330,7 +6809,7 @@ cli-table3@^0.6.1, cli-table3@~0.6.0, cli-table3@~0.6.1: optionalDependencies: "@colors/colors" "1.5.0" -cli-truncate@2.1.0, cli-truncate@^2.1.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== @@ -9352,15 +6831,6 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -9400,18 +6870,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -clsx@^1.1.1, clsx@^1.2.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== -cmd-shim@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" - integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== - dependencies: - mkdirp-infer-owner "^2.0.0" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -9481,7 +6944,7 @@ color-string@^1.6.0: color-name "^1.0.0" simple-swizzle "^0.2.2" -color-support@^1.1.2, color-support@^1.1.3: +color-support@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== @@ -9499,7 +6962,7 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^1.2.2, colorette@^1.4.0: +colorette@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== @@ -9514,14 +6977,6 @@ colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -columnify@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" - integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== - dependencies: - strip-ansi "^6.0.1" - wcwidth "^1.0.0" - combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -9534,16 +6989,6 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -command-exists@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -commander@7, commander@^7.0.0, commander@^7.2.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== - commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -9554,17 +6999,17 @@ commander@^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@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^8.2.0, commander@^8.3.0: +commander@^7.2.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== + +commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== @@ -9579,11 +7024,6 @@ comment-parser@1.3.1: resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== -common-ancestor-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" - integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== - common-path-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" @@ -9654,24 +7094,6 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -config-chain@^1.1.12: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - confusing-browser-globals@^1.0.10: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" @@ -9687,7 +7109,7 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== @@ -9772,7 +7194,7 @@ conventional-changelog-conventionalcommits@^4.5.0: lodash "^4.17.15" q "^1.5.1" -conventional-changelog-core@^4.2.1, conventional-changelog-core@^4.2.4: +conventional-changelog-core@^4.2.1: version "4.2.4" resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz#e50d047e8ebacf63fac3dc67bf918177001e1e9f" integrity sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg== @@ -9885,30 +7307,11 @@ conventional-commits-parser@^3.2.0: split2 "^3.0.0" through2 "^4.0.0" -conventional-recommended-bump@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.1.0.tgz#cfa623285d1de554012f2ffde70d9c8a22231f55" - integrity sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw== - dependencies: - concat-stream "^2.0.0" - conventional-changelog-preset-loader "^2.3.4" - conventional-commits-filter "^2.0.7" - conventional-commits-parser "^3.2.0" - git-raw-commits "^2.0.8" - git-semver-tags "^4.1.1" - meow "^8.0.0" - q "^1.5.1" - convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -9967,23 +7370,6 @@ copy-webpack-plugin@^11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" -copy-webpack-plugin@^6.3.2: - version "6.4.1" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e" - integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== - dependencies: - cacache "^15.0.5" - fast-glob "^3.2.4" - find-cache-dir "^3.3.1" - glob-parent "^5.1.1" - globby "^11.0.1" - loader-utils "^2.0.0" - normalize-path "^3.0.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - webpack-sources "^1.4.3" - core-js-compat@^3.31.0, core-js-compat@^3.8.1: version "3.31.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" @@ -9996,11 +7382,6 @@ core-js-pure@^3.23.3: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.31.1.tgz#73d154958881873bc19381df80bddb20c8d0cdb5" integrity sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw== -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-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2: version "3.31.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.31.1.tgz#f2b0eea9be9da0def2c5fece71064a7e5d687653" @@ -10016,24 +7397,6 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - -cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -10045,7 +7408,7 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: +cosmiconfig@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== @@ -10112,11 +7475,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-fetch@3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" @@ -10140,7 +7498,7 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -10177,25 +7535,11 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-blank-pseudo@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561" - integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ== - dependencies: - postcss-selector-parser "^6.0.9" - css-declaration-sorter@^6.3.1: version "6.4.1" resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71" integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== -css-has-pseudo@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73" - integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw== - dependencies: - postcss-selector-parser "^6.0.9" - css-loader@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" @@ -10256,11 +7600,6 @@ css-parse@~2.0.0: dependencies: css "^2.0.0" -css-prefers-color-scheme@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349" - integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== - css-select-base-adapter@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" @@ -10287,17 +7626,6 @@ css-select@^4.1.3: domutils "^2.8.0" nth-check "^2.0.1" -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - css-selector-tokenizer@^0.7.0: version "0.7.3" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" @@ -10327,7 +7655,7 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== -css-what@^6.0.1, css-what@^6.1.0: +css-what@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== @@ -10347,11 +7675,6 @@ css@^2.0.0: source-map-resolve "^0.5.2" urix "^0.1.0" -cssdb@^7.1.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.6.0.tgz#beac8f7a5f676db62d3c33da517ef4c9eb008f8b" - integrity sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w== - cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" @@ -10423,11 +7746,6 @@ cssom@^0.4.4: resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" @@ -10522,118 +7840,28 @@ cypress@^12.11.0: untildify "^4.0.0" yauzl "^2.10.0" -cypress@^8.6.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-8.7.0.tgz#2ee371f383d8f233d3425b6cc26ddeec2668b6da" - integrity sha512-b1bMC3VQydC6sXzBMFnSqcvwc9dTZMgcaOzT0vpSD+Gq1yFc+72JDWi55sfUK5eIeNLAtWOGy1NNb6UlhMvB+Q== - dependencies: - "@cypress/request" "^2.88.6" - "@cypress/xvfb" "^1.2.4" - "@types/node" "^14.14.31" - "@types/sinonjs__fake-timers" "^6.0.2" - "@types/sizzle" "^2.3.2" - arch "^2.2.0" - blob-util "^2.0.2" - bluebird "^3.7.2" - cachedir "^2.3.0" - chalk "^4.1.0" - check-more-types "^2.24.0" - cli-cursor "^3.1.0" - cli-table3 "~0.6.0" - 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.5" - ospath "^1.2.2" - pretty-bytes "^5.6.0" - proxy-from-env "1.0.0" - ramda "~0.27.1" - request-progress "^3.0.0" - supports-color "^8.1.1" - tmp "~0.2.1" - untildify "^4.0.0" - url "^0.11.0" - yauzl "^2.10.0" - -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.1.1, d3-array@^3.2.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" - integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== - dependencies: - internmap "1 - 2" - -d3-axis@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" - integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== - -d3-brush@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" - integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "3" - d3-transition "3" - -d3-chord@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" - integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== +"d3-array@2 - 3", "d3-array@2.10.0 - 3": + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== dependencies: - d3-path "1 - 3" + internmap "1 - 2" d3-color@1: version "1.4.1" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== -"d3-color@1 - 3", d3-color@3: +"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-contour@4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" - integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== - dependencies: - d3-array "^3.2.0" - -d3-delaunay@6: - version "6.0.4" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" - integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== - dependencies: - delaunator "5" - d3-dispatch@1, d3-dispatch@^1.0.3: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== -"d3-dispatch@1 - 3", d3-dispatch@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@1: version "1.2.5" resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" @@ -10642,50 +7870,12 @@ d3-drag@1: d3-dispatch "1" d3-selection "1" -"d3-drag@2 - 3", d3-drag@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-dsv@1 - 3", d3-dsv@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - d3-ease@1: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== -"d3-ease@1 - 3", d3-ease@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-fetch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" - integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== - dependencies: - d3-dsv "1 - 3" - -d3-force@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"d3-format@1 - 3", d3-format@3: +"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== @@ -10695,13 +7885,6 @@ d3-format@^1.2.0: resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== -d3-geo@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" - integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== - dependencies: - d3-array "2.5.0 - 3" - d3-graphviz@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/d3-graphviz/-/d3-graphviz-2.6.1.tgz#61b93fe330e6339198fd2090f8080d7d4282c514" @@ -10717,11 +7900,6 @@ d3-graphviz@^2.6.1: d3-zoom "^1.5.0" viz.js "^1.8.2" -d3-hierarchy@3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" - integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== - d3-interpolate@1, d3-interpolate@^1.1.5: version "1.4.0" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" @@ -10729,39 +7907,19 @@ d3-interpolate@1, d3-interpolate@^1.1.5: dependencies: d3-color "1" -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: +"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-path@1 - 3", d3-path@3, d3-path@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - d3-path@^1.0.5: 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-polygon@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" - integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== - -"d3-quadtree@1 - 3", d3-quadtree@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-random@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" - integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== - -d3-scale-chromatic@3, d3-scale-chromatic@^3.0.0: +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== @@ -10769,7 +7927,7 @@ d3-scale-chromatic@3, d3-scale-chromatic@^3.0.0: d3-color "1 - 3" d3-interpolate "1 - 3" -d3-scale@4, d3-scale@^4.0.2: +d3-scale@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== @@ -10785,26 +7943,14 @@ d3-selection@1, d3-selection@^1.1.0: resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== -"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@3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - -"d3-time-format@2 - 4", d3-time-format@4: +"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 - 3", "d3-time@2.1.1 - 3", d3-time@3, d3-time@^3.0.0: +"d3-time@1 - 3", "d3-time@2.1.1 - 3": version "3.1.0" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== @@ -10816,11 +7962,6 @@ d3-timer@1, d3-timer@^1.0.6: resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== -"d3-timer@1 - 3", d3-timer@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@1, d3-transition@^1.1.1: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" @@ -10833,28 +7974,6 @@ d3-transition@1, d3-transition@^1.1.1: d3-selection "^1.1.0" d3-timer "1" -"d3-transition@2 - 3", d3-transition@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@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" - d3-zoom@^1.5.0: version "1.8.3" resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" @@ -10866,42 +7985,6 @@ d3-zoom@^1.5.0: d3-selection "1" d3-transition "1" -d3@^7.3.0: - version "7.8.5" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" - integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== - dependencies: - d3-array "3" - d3-axis "3" - d3-brush "3" - d3-chord "3" - d3-color "3" - d3-contour "4" - d3-delaunay "6" - d3-dispatch "3" - d3-drag "3" - d3-dsv "3" - d3-ease "3" - d3-fetch "3" - d3-force "3" - d3-format "3" - d3-geo "3" - d3-hierarchy "3" - d3-interpolate "3" - d3-path "3" - d3-polygon "3" - d3-quadtree "3" - d3-random "3" - d3-scale "4" - d3-scale-chromatic "3" - d3-selection "3" - d3-shape "3" - d3-time "3" - d3-time-format "4" - d3-timer "3" - d3-transition "3" - d3-zoom "3" - damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -10928,27 +8011,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - date-fns@^2.0.1, date-fns@^2.24.0: version "2.29.3" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== -date-fns@^2.27.0: - version "2.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" - integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== - dependencies: - "@babel/runtime" "^7.21.0" - dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -10959,14 +8026,14 @@ dayjs@^1.10.4: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: 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@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -10987,11 +8054,6 @@ debug@~3.1.0: dependencies: ms "2.0.0" -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== - decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -11000,12 +8062,12 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decimal.js@^10.2.1, decimal.js@^10.4.2: +decimal.js@^10.2.1: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== @@ -11015,13 +8077,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - decompress-response@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-5.0.0.tgz#7849396e80e3d1eba8cb2f75ef4930f76461cb0f" @@ -11179,12 +8234,10 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" -delaunator@5: +delay@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" - integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== - dependencies: - robust-predicates "^3.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== delayed-stream@~1.0.0: version "1.0.0" @@ -11196,7 +8249,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@2.0.0, depd@^2.0.0: +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== @@ -11206,11 +8259,6 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" @@ -11236,16 +8284,6 @@ detab@2.0.4: dependencies: repeat-string "^1.5.4" -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - detect-libc@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" @@ -11268,14 +8306,6 @@ detect-package-manager@^2.0.1: dependencies: execa "^5.1.1" -detect-port-alt@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" - integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== - dependencies: - address "^1.0.1" - debug "^2.6.0" - detect-port@^1.3.0: version "1.5.1" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" @@ -11289,14 +8319,6 @@ devtools-protocol@0.0.981744: resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.981744.tgz#9960da0370284577d46c28979a0b32651022bacf" integrity sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg== -dezalgo@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" - integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== - dependencies: - asap "^2.0.0" - wrappy "1" - diff-sequences@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" @@ -11307,11 +8329,6 @@ diff-sequences@^29.4.3: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -11335,11 +8352,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== - dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -11410,15 +8422,6 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - dom-walk@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" @@ -11434,7 +8437,7 @@ domelementtype@1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: +domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== @@ -11446,13 +8449,6 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" @@ -11460,13 +8456,6 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: dependencies: domelementtype "^2.2.0" -domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" @@ -11484,15 +8473,6 @@ domutils@^2.5.2, domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" -domutils@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" - integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -11501,13 +8481,6 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" - integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== - dependencies: - is-obj "^1.0.0" - dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -11515,19 +8488,12 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== -dotenv@^10.0.0, dotenv@~10.0.0: +dotenv@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== @@ -11537,21 +8503,12 @@ dotenv@^8.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== -downlevel-dts@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/downlevel-dts/-/downlevel-dts-0.10.1.tgz#2f0a09f0e63f43c49da78897edb1bb292c8769cf" - integrity sha512-bwY63Y0Gfwotcly4vU6rB66m5txvfQzDGd1Gai9E9orqsDIswXKjkdR18Tm6TidnAk9+J5N68a5VMDO2bsQCKQ== - dependencies: - semver "^7.3.2" - shelljs "^0.8.3" - typescript next - duplexer3@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== -duplexer@^0.1.1, duplexer@^0.1.2: +duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== @@ -11566,11 +8523,6 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -11584,22 +8536,15 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -ejs@^3.1.7: - version "3.1.9" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" - integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== - dependencies: - jake "^10.8.5" - electron-to-chromium@^1.4.284: version "1.4.347" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.347.tgz#4b72564912c3456c6704d4250918aa6a105d5dc3" integrity sha512-LNi3+/9nV0vT6Bz1OsSoZ/w7IgNuWdefZ7mjKNjZxyRlI/ag6uMXxsxAy5Etvuixq3Q26exw2fc4bNYvYQqXSw== electron-to-chromium@^1.4.431: - version "1.4.467" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.467.tgz#b0660bf644baff7eedea33b8c742fb53ec60e3c2" - integrity sha512-2qI70O+rR4poYeF2grcuS/bCps5KJh6y1jtZMDDEteyKJQrzLOEhFyXCLcHW6DTBjKjWkk26JhWoAi+Ux9A0fg== + version "1.4.470" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.470.tgz#0e932816be8d5f2b491ad2aa449ea47db4785398" + integrity sha512-zZM48Lmy2FKWgqyvsX9XK+J6FfP7aCDUFLmgooLJzA7v1agCs/sxSoBpTIwDLhmbhpx9yJIxj2INig/ncjJRqg== elliptic@^6.5.3: version "6.5.4" @@ -11614,21 +8559,11 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - emittery@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -11654,13 +8589,6 @@ encodeurl@~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.13: - 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, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -11677,15 +8605,6 @@ endent@^2.0.1: fast-json-parse "^1.0.3" objectorarray "^1.0.5" -enhanced-resolve@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - integrity sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - enhanced-resolve@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" @@ -11711,7 +8630,7 @@ enhanced-resolve@^5.12.0: graceful-fs "^4.2.4" tapable "^2.2.0" -enhanced-resolve@^5.15.0, enhanced-resolve@^5.9.2: +enhanced-resolve@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== @@ -11719,7 +8638,7 @@ enhanced-resolve@^5.15.0, enhanced-resolve@^5.9.2: graceful-fs "^4.2.4" tapable "^2.2.0" -enquirer@^2.3.6, enquirer@~2.3.6: +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== @@ -11731,96 +8650,12 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.2.0, entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - envinfo@^7.7.3: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -envinfo@^7.7.4: - version "7.10.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" - integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== - -enzyme-adapter-react-16@^1.15.5: - version "1.15.7" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.7.tgz#a737e6d8e2c147e9da5acf957755be7634f76201" - integrity sha512-LtjKgvlTc/H7adyQcj+aq0P0H07LDL480WQl1gU512IUyaDo/sbOaNDdZsJXYW2XaoPqrLLE9KbZS+X2z6BASw== - dependencies: - enzyme-adapter-utils "^1.14.1" - enzyme-shallow-equal "^1.0.5" - has "^1.0.3" - object.assign "^4.1.4" - object.values "^1.1.5" - prop-types "^15.8.1" - react-is "^16.13.1" - react-test-renderer "^16.0.0-0" - semver "^5.7.0" - -enzyme-adapter-utils@^1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.1.tgz#f30db15dafc22e0ccd44f5acc8d93be29218cdcf" - integrity sha512-JZgMPF1QOI7IzBj24EZoDpaeG/p8Os7WeBZWTJydpsH7JRStc7jYbHE4CmNQaLqazaGFyLM8ALWA3IIZvxW3PQ== - dependencies: - airbnb-prop-types "^2.16.0" - function.prototype.name "^1.1.5" - has "^1.0.3" - object.assign "^4.1.4" - object.fromentries "^2.0.5" - prop-types "^15.8.1" - semver "^5.7.1" - -enzyme-shallow-equal@^1.0.1, enzyme-shallow-equal@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.5.tgz#5528a897a6ad2bdc417c7221a7db682cd01711ba" - integrity sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg== - dependencies: - has "^1.0.3" - object-is "^1.1.5" - -enzyme@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" - integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== - dependencies: - array.prototype.flat "^1.2.3" - cheerio "^1.0.0-rc.3" - enzyme-shallow-equal "^1.0.1" - function.prototype.name "^1.1.2" - has "^1.0.3" - html-element-map "^1.2.0" - is-boolean-object "^1.0.1" - is-callable "^1.1.5" - is-number-object "^1.0.4" - is-regex "^1.0.5" - is-string "^1.0.5" - is-subset "^0.1.1" - lodash.escape "^4.0.1" - lodash.isequal "^4.5.0" - object-inspect "^1.7.0" - object-is "^1.0.2" - object.assign "^4.1.0" - object.entries "^1.1.1" - object.values "^1.1.1" - raf "^3.4.1" - rst-selector-parser "^2.2.3" - string.prototype.trim "^1.2.1" - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -errno@^0.1.1, errno@^0.1.3, errno@^0.1.7, errno@~0.1.7: +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -11998,18 +8833,6 @@ es6-shim@^0.35.5: resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.8.tgz#89216f6fbf8bacba3f897c8c0e814d2a41c05fb7" integrity sha512-Twf7I2v4/1tLoIXMT8HlqaBSS5H2wQTs2wx3MNYCI8K1R1/clXyCazrcVCPm/FuO9cyV8+leEaZOWD5C253NDg== -esbuild-loader@^2.18.0: - version "2.21.0" - resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.21.0.tgz#2698a3e565b0db2bb19a3dd91c2b6c9aad526c80" - integrity sha512-k7ijTkCT43YBSZ6+fBCW1Gin7s46RrJ0VQaM8qA7lq7W+OLsGgtLyFV8470FzYi/4TeDexniTBTPTwZUnXXR5g== - dependencies: - esbuild "^0.16.17" - joycon "^3.0.1" - json5 "^2.2.0" - loader-utils "^2.0.0" - tapable "^2.2.0" - webpack-sources "^1.4.3" - esbuild-loader@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-3.0.1.tgz#9871c0e8817c4c11b6249d1916832e75272e6c7e" @@ -12020,34 +8843,6 @@ esbuild-loader@^3.0.1: loader-utils "^2.0.4" webpack-sources "^1.4.3" -esbuild@^0.16.17: - version "0.16.17" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" - integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== - optionalDependencies: - "@esbuild/android-arm" "0.16.17" - "@esbuild/android-arm64" "0.16.17" - "@esbuild/android-x64" "0.16.17" - "@esbuild/darwin-arm64" "0.16.17" - "@esbuild/darwin-x64" "0.16.17" - "@esbuild/freebsd-arm64" "0.16.17" - "@esbuild/freebsd-x64" "0.16.17" - "@esbuild/linux-arm" "0.16.17" - "@esbuild/linux-arm64" "0.16.17" - "@esbuild/linux-ia32" "0.16.17" - "@esbuild/linux-loong64" "0.16.17" - "@esbuild/linux-mips64el" "0.16.17" - "@esbuild/linux-ppc64" "0.16.17" - "@esbuild/linux-riscv64" "0.16.17" - "@esbuild/linux-s390x" "0.16.17" - "@esbuild/linux-x64" "0.16.17" - "@esbuild/netbsd-x64" "0.16.17" - "@esbuild/openbsd-x64" "0.16.17" - "@esbuild/sunos-x64" "0.16.17" - "@esbuild/win32-arm64" "0.16.17" - "@esbuild/win32-ia32" "0.16.17" - "@esbuild/win32-x64" "0.16.17" - esbuild@^0.17.6: version "0.17.14" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" @@ -12165,17 +8960,12 @@ eslint-config-prettier@^6.15.0: dependencies: get-stdin "^6.0.0" -eslint-config-prettier@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9" - integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg== - eslint-import-resolver-lerna@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-import-resolver-lerna/-/eslint-import-resolver-lerna-2.0.0.tgz#a96a6eaa9c467d9bf195f538fa6c11cdbd95f5da" integrity sha512-TJ//wx/tDR6SrSXMuORcc7dwQJQrkgf0AT7cnRD/ADEBpe9sLHc4rbh2JxVYRDw6rauHHxcvdYb4EICT+xd63Q== -eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: +eslint-import-resolver-node@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== @@ -12184,17 +8974,6 @@ eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: is-core-module "^2.11.0" resolve "^1.22.1" -eslint-import-resolver-typescript@^2.0.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751" - integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== - dependencies: - debug "^4.3.4" - glob "^7.2.0" - is-glob "^4.0.3" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - eslint-import-resolver-typescript@^3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" @@ -12209,24 +8988,7 @@ eslint-import-resolver-typescript@^3.5.5: is-glob "^4.0.3" synckit "^0.8.5" -eslint-import-resolver-webpack@^0.13.2: - version "0.13.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.2.tgz#fc813df0d08b9265cc7072d22393bda5198bdc1e" - integrity sha512-XodIPyg1OgE2h5BDErz3WJoK7lawxKTJNhgPNafRST6csC/MZC+L5P6kKqsZGRInpbgc02s/WZMrb4uGJzcuRg== - dependencies: - array-find "^1.0.0" - debug "^3.2.7" - enhanced-resolve "^0.9.1" - find-root "^1.1.0" - has "^1.0.3" - interpret "^1.4.0" - is-core-module "^2.7.0" - is-regex "^1.1.4" - lodash "^4.17.21" - resolve "^1.20.0" - semver "^5.7.1" - -eslint-module-utils@^2.7.3, eslint-module-utils@^2.7.4: +eslint-module-utils@^2.7.4: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== @@ -12269,25 +9031,6 @@ eslint-plugin-import@^2.22.1, eslint-plugin-import@^2.27.5: semver "^6.3.0" tsconfig-paths "^3.14.1" -eslint-plugin-import@~2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== - dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" - has "^1.0.3" - is-core-module "^2.8.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" - eslint-plugin-jest@^25.3.4: version "25.7.0" resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" @@ -12351,11 +9094,6 @@ eslint-plugin-prettier@^3.1.4, eslint-plugin-prettier@^3.3.1: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.0.tgz#81196b990043cde339e25c6662aeebe32ac52d01" - integrity sha512-YKBY+kilK5wrwIdQnCF395Ya6nDro3EAMoe+2xFkmyklyhF16fH83TrQOo9zbZIDxBsXFgBbywta/0JKRNFDkw== - eslint-plugin-react-hooks@4.6.0, eslint-plugin-react-hooks@^4.2.0, eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" @@ -12381,7 +9119,7 @@ eslint-plugin-react@7.31.10: semver "^6.3.0" string.prototype.matchall "^4.0.7" -eslint-plugin-react@^7.21.5: +eslint-plugin-react@^7.21.5, eslint-plugin-react@^7.33.0: version "7.33.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz#6c356fb0862fec2cd1b04426c669ea746e9b6eb3" integrity sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw== @@ -12402,27 +9140,6 @@ eslint-plugin-react@^7.21.5: semver "^6.3.1" string.prototype.matchall "^4.0.8" -eslint-plugin-react@^7.32.2: - version "7.32.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" - integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== - dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" - prop-types "^15.8.1" - resolve "^2.0.0-next.4" - semver "^6.3.0" - string.prototype.matchall "^4.0.8" - eslint-plugin-unused-imports@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520" @@ -12435,7 +9152,7 @@ eslint-rule-composer@^0.3.0: resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9" integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg== -eslint-scope@5.1.1, eslint-scope@^5.1.0, eslint-scope@^5.1.1: +eslint-scope@5.1.1, 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== @@ -12459,88 +9176,22 @@ eslint-scope@^7.1.1, eslint-scope@^7.2.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - eslint-utils@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.2.0, eslint-visitor-keys@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - -eslint-webpack-plugin@^2.4.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.7.0.tgz#0525793a4f8c652c1c6d863995ce1e0f2dcbd143" - integrity sha512-bNaVVUvU4srexGhVcayn/F4pJAz19CWBkKoMx7aSQ4wtTbZQCnG5O9LHCE42mM+JSKOUp7n6vd5CIwzj7lOVGA== - dependencies: - "@types/eslint" "^7.29.0" - arrify "^2.0.1" - jest-worker "^27.5.1" - micromatch "^4.0.5" - normalize-path "^3.0.0" - schema-utils "^3.1.1" - -eslint@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.2.0.tgz#d41b2e47804b30dbabb093a967fb283d560082e6" - integrity sha512-B3BtEyaDKC5MlfDa2Ha8/D6DsS4fju95zs0hjS3HdGazw+LNayai38A25qMppK37wWGWNYSPOR6oYzlz5MHsRQ== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.1.0" - eslint-utils "^2.0.0" - eslint-visitor-keys "^1.2.0" - espree "^7.1.0" - esquery "^1.2.0" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash "^4.17.14" - minimatch "^3.0.4" - natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@8.26.0: version "8.26.0" @@ -12633,15 +9284,6 @@ eslint@^8.40.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^7.1.0: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== - dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" - espree@^9.4.0, espree@^9.5.2: version "9.5.2" resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" @@ -12656,7 +9298,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.2.0, esquery@^1.4.0, esquery@^1.4.2, esquery@^1.5.0: +esquery@^1.4.0, esquery@^1.4.2, esquery@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== @@ -12715,12 +9357,7 @@ eventemitter2@6.4.7: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== -eventemitter2@^6.4.3: - version "6.4.9" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125" - integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg== - -eventemitter3@^4.0.0, eventemitter3@^4.0.4: +eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== @@ -12821,11 +9458,6 @@ executable@^4.1.1: dependencies: pify "^2.2.0" -exenv@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" - integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -12868,7 +9500,7 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -expect@^29.0.0, expect@^29.5.0: +expect@^29.0.0: version "29.5.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== @@ -12879,17 +9511,12 @@ expect@^29.0.0, expect@^29.5.0: jest-message-util "^29.5.0" jest-util "^29.5.0" -exponential-backoff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" - integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== - expose-loader@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-4.1.0.tgz#9c6d55d24e3ac0e5d50ee5dc7930d564fc475d48" integrity sha512-oLAesnzerwDGGADzBMnu0LPqqnlVz6e2V9lTa+/4X6VeW9W93x/nJpw05WBrcIdbqXm/EdnEQpiVDFFiQXuNfg== -express@^4.17.1, express@^4.17.3, express@^4.18.2: +express@^4.17.1, express@^4.17.3: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== @@ -13007,17 +9634,6 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" @@ -13041,23 +9657,12 @@ fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-parse@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/fast-json-parse/-/fast-json-parse-1.0.3.tgz#43e5c61ee4efa9265633046b770fb682a7577c4d" integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@2.x, 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== @@ -13127,20 +9732,13 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@3.2.0, figures@^3.0.0, figures@^3.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-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -13148,7 +9746,7 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-loader@^6.2.0, file-loader@~6.2.0: +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== @@ -13181,23 +9779,11 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" integrity sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ== -filesize@^8.0.6: - version "8.0.7" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" - integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== - fill-range@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" @@ -13305,14 +9891,10 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" +findit2@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/findit2/-/findit2-2.2.3.tgz#58a466697df8a6205cdfdbf395536b8bd777a5f6" + integrity sha512-lg/Moejf4qXovVutL0Lz4IsaPoNYMuxt4PA0nGqFxnJ1CTTGGlEO2wKgoDpwknhvZ8k4Q2F+eesgkLbG2Mxfog== flat-cache@^3.0.4: version "3.0.4" @@ -13322,16 +9904,6 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - flatted@^3.1.0: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" @@ -13345,15 +9917,7 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -flux-standard-action@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/flux-standard-action/-/flux-standard-action-2.1.2.tgz#76141a9b8660585b773db32bab8aa9cc49b22da2" - integrity sha512-7vdgawlphCjzaMLdpZv8hlGC/FJCXu6sqE3Wuqe3HLZ22KcDiO4IFplxLDePDhEt6hgCrugt45RoUObuzZP6Kg== - dependencies: - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - -follow-redirects@^1.0.0, follow-redirects@^1.15.0: +follow-redirects@^1.0.0, follow-redirects@^1.14.8: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -13385,14 +9949,6 @@ foreground-child@^2.0.0: cross-spawn "^7.0.0" signal-exit "^3.0.2" -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -13411,7 +9967,7 @@ fork-ts-checker-webpack-plugin@^4.1.6: tapable "^1.0.0" worker-rpc "^0.1.0" -fork-ts-checker-webpack-plugin@^6.0.4, fork-ts-checker-webpack-plugin@^6.5.0: +fork-ts-checker-webpack-plugin@^6.0.4: version "6.5.3" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== @@ -13462,11 +10018,6 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -13501,15 +10052,6 @@ fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.1.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -13529,20 +10071,13 @@ fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-minipass@^2.0.0, fs-minipass@^2.1.0: +fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" -fs-minipass@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.2.tgz#5b383858efa8c1eb8c33b39e994f7e8555b8b3a3" - integrity sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g== - dependencies: - minipass "^5.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" @@ -13621,34 +10156,6 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - generic-names@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-1.0.3.tgz#2d786a121aee508876796939e8e3bff836c20917" @@ -13666,7 +10173,7 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -13690,11 +10197,6 @@ get-intrinsic@^1.2.1: has-proto "^1.0.1" has-symbols "^1.0.3" -get-own-enumerable-property-symbols@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" - integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -13710,11 +10212,6 @@ get-pkg-repo@^4.0.0: through2 "^2.0.0" yargs "^16.2.0" -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" @@ -13820,21 +10317,6 @@ git-semver-tags@^4.1.1: meow "^8.0.0" semver "^6.0.0" -git-up@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" - integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== - dependencies: - is-ssh "^1.4.0" - parse-url "^8.1.0" - -git-url-parse@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" - integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== - dependencies: - git-up "^7.0.0" - gitconfiglocal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" @@ -13870,7 +10352,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2, 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== @@ -13901,30 +10383,7 @@ glob-to-regexp@^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.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^10.2.2: - version "10.3.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.3.tgz#8360a4ffdd6ed90df84aa8d52f21f452e86a123b" - integrity sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.0.3" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.0: +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -13936,17 +10395,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - global-dirs@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" @@ -13954,22 +10402,6 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - global@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" @@ -13983,13 +10415,6 @@ globals@^11.1.0, globals@^11.12.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - globals@^13.15.0, globals@^13.19.0: version "13.20.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" @@ -13997,11 +10422,6 @@ globals@^13.15.0, globals@^13.19.0: dependencies: type-fest "^0.20.2" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - globalthis@^1.0.0, globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -14009,7 +10429,7 @@ globalthis@^1.0.0, globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: +globby@^11.0.2, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -14118,11 +10538,6 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - graphql@^15.5.1: version "15.8.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" @@ -14217,7 +10632,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== @@ -14390,18 +10805,11 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react- dependencies: react-is "^16.7.0" -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: +hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^3.0.6: - version "3.0.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" - integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== - dependencies: - lru-cache "^6.0.0" - hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" @@ -14409,13 +10817,6 @@ hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -hosted-git-info@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f" - integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw== - dependencies: - lru-cache "^7.5.1" - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -14426,14 +10827,6 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -html-element-map@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08" - integrity sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg== - dependencies: - array.prototype.filter "^1.0.0" - call-bind "^1.0.2" - html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" @@ -14441,13 +10834,6 @@ html-encoding-sniffer@^2.0.1: dependencies: whatwg-encoding "^1.0.5" -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - html-entities@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061" @@ -14463,14 +10849,6 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-inline-css-webpack-plugin@^1.11.1: - version "1.11.2" - resolved "https://registry.yarnpkg.com/html-inline-css-webpack-plugin/-/html-inline-css-webpack-plugin-1.11.2.tgz#3b34e93f07140ed5bb8020ee46f4cd7393da1ecc" - integrity sha512-jzJptIAOrYQh9ITxiDeNWQvPwk1nHZIo0P9/ZlLsfSYKqggMENJdO+Hcw67xSHoxtL2t+X9QO00eHu6W/c8V0Q== - dependencies: - lodash "^4.17.21" - tslib "^2.6.0" - html-minifier-terser@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" @@ -14554,17 +10932,7 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -htmlparser2@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" - integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - entities "^4.4.0" - -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: +http-cache-semantics@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -14609,26 +10977,6 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-proxy-middleware@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - 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" @@ -14663,7 +11011,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== -https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: +https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -14686,23 +11034,6 @@ human-signals@^4.3.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== -humanize-duration@^3.25.1: - version "3.29.0" - resolved "https://registry.yarnpkg.com/humanize-duration/-/humanize-duration-3.29.0.tgz#beffaf7938388cd0f38c494f8970d6faebecf3c0" - integrity sha512-G5wZGwYTLaQAmYqhfK91aw3xt6wNbJW1RnWDh4qP1PvF4T/jnkjx2RVhG5kzB2PGsYGTn+oSDBQp+dMdILLxcg== - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - dependencies: - ms "^2.0.0" - -husky@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" - integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== - 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" @@ -14710,7 +11041,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: +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== @@ -14746,19 +11077,12 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== -ignore-walk@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" - integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== - dependencies: - minimatch "^5.0.1" - -ignore@^4.0.3, ignore@^4.0.6: +ignore@^4.0.3: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.0.4, ignore@^5.1.8, ignore@^5.2.0: +ignore@^5.1.8, ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== @@ -14768,7 +11092,7 @@ image-size@~0.5.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== -immer@^9.0.16, immer@^9.0.7: +immer@^9.0.16: version "9.0.21" resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== @@ -14778,21 +11102,6 @@ immutable@^4.0.0: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be" integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg== -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -14801,13 +11110,6 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== - dependencies: - resolve-from "^3.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" @@ -14866,49 +11168,17 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -ini@^1.3.2, ini@^1.3.4, ini@^1.3.5: +ini@^1.3.2: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" - integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== - dependencies: - npm-package-arg "^9.0.1" - promzard "^0.3.0" - read "^1.0.7" - read-package-json "^5.0.0" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - validate-npm-package-name "^4.0.0" - 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@^7.0.0: - version "7.3.3" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" - integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.19" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.6.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -inquirer@^8.2.0, inquirer@^8.2.4: +inquirer@^8.2.0: version "8.2.5" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== @@ -14943,11 +11213,6 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== -interpret@^1.0.0, interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - interpret@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" @@ -14958,13 +11223,6 @@ interpret@^3.1.1: resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" @@ -15065,7 +11323,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: +is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== @@ -15083,7 +11341,7 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.7: +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== @@ -15109,7 +11367,7 @@ is-core-module@^2.11.0: dependencies: has "^1.0.3" -is-core-module@^2.5.0, is-core-module@^2.7.0, is-core-module@^2.8.1: +is-core-module@^2.5.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== @@ -15167,11 +11425,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - 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" @@ -15302,11 +11555,6 @@ is-interactive@^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-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - is-map@^2.0.1, is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -15353,11 +11601,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.0, is-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" @@ -15392,7 +11635,7 @@ is-path-inside@^3.0.2, is-path-inside@^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, is-plain-obj@^1.1.0: +is-plain-obj@^1.1.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== @@ -15407,7 +11650,7 @@ is-plain-obj@^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-object@5.0.0, is-plain-object@^5.0.0: +is-plain-object@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== @@ -15434,12 +11677,7 @@ is-primitive@^2.0.0: resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" integrity sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q== -is-promise@^2.1.0: - 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-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.2, is-regex@^1.1.4: +is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.2, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -15447,16 +11685,6 @@ is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.2, is-regex@^1. call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== - -is-root@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - is-set@^2.0.1, is-set@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" @@ -15469,13 +11697,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-ssh@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" - integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== - dependencies: - protocols "^2.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" @@ -15498,11 +11719,6 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw== - is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" @@ -15684,7 +11900,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" -istanbul-reports@^3.1.3, istanbul-reports@^3.1.4: +istanbul-reports@^3.1.3: version "3.1.5" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== @@ -15692,6 +11908,14 @@ istanbul-reports@^3.1.3, istanbul-reports@^3.1.4: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +istanbul-reports@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + iterate-iterator@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.2.tgz#551b804c9eaa15b847ea6a7cdc2f5bf1ec150f91" @@ -15713,25 +11937,6 @@ iterm2-version@^4.1.0: app-path "^3.2.0" plist "^3.0.1" -jackspeak@^2.0.3: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" - integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jake@^10.8.5: - version "10.8.7" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" - integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - jest-canvas-mock@^2.3.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" @@ -15749,14 +11954,6 @@ jest-changed-files@^27.5.1: execa "^5.0.0" throat "^6.0.1" -jest-changed-files@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" - integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== - dependencies: - execa "^5.0.0" - p-limit "^3.1.0" - jest-circus@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" @@ -15782,32 +11979,6 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-circus@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" - integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^29.5.0" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - p-limit "^3.1.0" - pretty-format "^29.5.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-cli@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" @@ -15822,27 +11993,9 @@ jest-cli@^27.5.1: import-local "^3.0.2" jest-config "^27.5.1" jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-cli@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" - integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== - dependencies: - "@jest/core" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-validate "^27.5.1" prompts "^2.0.1" - yargs "^17.3.1" + yargs "^16.2.0" jest-config@^27.5.1: version "27.5.1" @@ -15874,35 +12027,7 @@ jest-config@^27.5.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-config@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" - integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.5.0" - "@jest/types" "^29.5.0" - babel-jest "^29.5.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.5.0" - jest-environment-node "^29.5.0" - jest-get-type "^29.4.3" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-runner "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.5.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-css-modules-transform@^4.3.0, jest-css-modules-transform@^4.4.2: +jest-css-modules-transform@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/jest-css-modules-transform/-/jest-css-modules-transform-4.4.2.tgz#a090b0e5beb346c9e719588f34ccdb8ac4e5591f" integrity sha512-qsUVOcY26chaFMJNMVrFYJBtYvPt1TImi9FWGaVycfsP6xnFW2HlnKRdZdKdg2LVVBv2Q9M4aLv7IbxPSXqPmg== @@ -15938,13 +12063,6 @@ jest-docblock@^27.5.1: dependencies: detect-newline "^3.0.0" -jest-docblock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" - integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== - dependencies: - detect-newline "^3.0.0" - jest-each@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" @@ -15956,17 +12074,6 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" -jest-each@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" - integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== - dependencies: - "@jest/types" "^29.5.0" - chalk "^4.0.0" - jest-get-type "^29.4.3" - jest-util "^29.5.0" - pretty-format "^29.5.0" - jest-environment-jsdom@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" @@ -15980,20 +12087,6 @@ jest-environment-jsdom@^27.5.1: jest-util "^27.5.1" jsdom "^16.6.0" -jest-environment-jsdom@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz#cfe86ebaf1453f3297b5ff3470fbe94739c960cb" - integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/jsdom" "^20.0.0" - "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" - jsdom "^20.0.0" - jest-environment-node@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" @@ -16006,18 +12099,6 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" -jest-environment-node@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" - integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" - jest-fetch-mock@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz#31749c456ae27b8919d69824f1c2bd85fe0a1f3b" @@ -16077,25 +12158,6 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== - dependencies: - "@jest/types" "^29.5.0" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-image-snapshot@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-4.2.0.tgz#559d7ade69e9918517269cef184261c80029a69e" @@ -16111,21 +12173,6 @@ jest-image-snapshot@4.2.0: rimraf "^2.6.2" ssim.js "^3.1.1" -jest-image-snapshot@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-4.5.1.tgz#79fe0419c7729eb1be6c873365307a7b60f5cda0" - integrity sha512-0YkgupgkkCx0wIZkxvqs/oNiUT0X0d2WTpUhaAp+Dy6CpqBUZMRTIZo4KR1f+dqmx6WXrLCvecjnHLIsLkI+gQ== - dependencies: - chalk "^1.1.3" - get-stdin "^5.0.1" - glur "^1.1.2" - lodash "^4.17.4" - mkdirp "^0.5.1" - pixelmatch "^5.1.0" - pngjs "^3.4.0" - rimraf "^2.6.2" - ssim.js "^3.1.1" - jest-jasmine2@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" @@ -16157,15 +12204,7 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-leak-detector@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" - integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== - dependencies: - jest-get-type "^29.4.3" - pretty-format "^29.5.0" - -jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: +jest-matcher-utils@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== @@ -16223,15 +12262,6 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" -jest-mock@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" - integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== - dependencies: - "@jest/types" "^29.5.0" - "@types/node" "*" - jest-util "^29.5.0" - jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" @@ -16247,11 +12277,6 @@ jest-regex-util@^27.5.1: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== - jest-resolve-dependencies@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" @@ -16261,14 +12286,6 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve-dependencies@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" - integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== - dependencies: - jest-regex-util "^29.4.3" - jest-snapshot "^29.5.0" - jest-resolve@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" @@ -16285,21 +12302,6 @@ jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-resolve@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" - integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.5.0" - jest-validate "^29.5.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - jest-runner@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" @@ -16327,33 +12329,6 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runner@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" - integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== - dependencies: - "@jest/console" "^29.5.0" - "@jest/environment" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.4.3" - jest-environment-node "^29.5.0" - jest-haste-map "^29.5.0" - jest-leak-detector "^29.5.0" - jest-message-util "^29.5.0" - jest-resolve "^29.5.0" - jest-runtime "^29.5.0" - jest-util "^29.5.0" - jest-watcher "^29.5.0" - jest-worker "^29.5.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - jest-runtime@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" @@ -16382,34 +12357,6 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-runtime@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" - integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/globals" "^29.5.0" - "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - slash "^3.0.0" - strip-bom "^4.0.0" - jest-serializer@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" @@ -16454,35 +12401,6 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-snapshot@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" - integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.5.0" - graceful-fs "^4.2.9" - jest-diff "^29.5.0" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - natural-compare "^1.4.0" - pretty-format "^29.5.0" - semver "^7.3.5" - jest-util@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" @@ -16531,18 +12449,6 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" - integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== - dependencies: - "@jest/types" "^29.5.0" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.4.3" - leven "^3.1.0" - pretty-format "^29.5.0" - jest-watcher@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" @@ -16556,20 +12462,6 @@ jest-watcher@^27.5.1: jest-util "^27.5.1" string-length "^4.0.1" -jest-watcher@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" - integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== - dependencies: - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.5.0" - string-length "^4.0.1" - jest-worker@^26.5.0, jest-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -16588,17 +12480,7 @@ jest-worker@^27.4.5, jest-worker@^27.5.1: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== - dependencies: - "@types/node" "*" - jest-util "^29.5.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^27.2.4: +jest@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== @@ -16607,37 +12489,17 @@ jest@^27.2.4: import-local "^3.0.2" jest-cli "^27.5.1" -jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" - integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== - dependencies: - "@jest/core" "^29.5.0" - "@jest/types" "^29.5.0" - import-local "^3.0.2" - jest-cli "^29.5.0" - -jose@^4.14.4: - version "4.14.4" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca" - integrity sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g== - -joycon@^3.0.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" - integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== - jquery.flot.tooltip@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/jquery.flot.tooltip/-/jquery.flot.tooltip-0.9.0.tgz#ae16bf94b26c2ed9ab4db167bba52dfdb615c1df" integrity sha512-TV3umIfIPRq1UM0EUY4E/jimrh2j057J6SJB1HQnEeS64r8liec++F0WCNYsmcWDxz6Lo4E2lCA+SeOQS2W3bA== -jquery@3.6.0: +jquery@^3.1.1: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== -jquery@^3.1.1, jquery@^3.6.4: +jquery@^3.6.4: version "3.6.4" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.4.tgz#ba065c188142100be4833699852bf7c24dc0252f" integrity sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ== @@ -16662,19 +12524,7 @@ js-string-escape@^1.0.1: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - -js-yaml@4.1.0, 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" - -js-yaml@^3.10.0, js-yaml@^3.13.1: +js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -16682,6 +12532,13 @@ js-yaml@^3.10.0, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +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" @@ -16730,38 +12587,6 @@ jsdom@^16.6.0: ws "^7.4.6" xml-name-validator "^3.0.0" -jsdom@^20.0.0: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" - integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== - dependencies: - abab "^2.0.6" - acorn "^8.8.1" - acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" - xml-name-validator "^4.0.0" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -16807,11 +12632,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stringify-nice@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" - integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== - json-stringify-safe@^5.0.1, 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" @@ -16829,12 +12649,12 @@ json5@^1.0.1, json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: +json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@3.2.0, jsonc-parser@^3.2.0: +jsonc-parser@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== @@ -16855,7 +12675,7 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.2.0, jsonparse@^1.3.1: +jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== @@ -16893,16 +12713,6 @@ junk@^3.1.0: resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== -just-diff-apply@^5.2.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" - integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== - -just-diff@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241" - integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== - keyv@^4.0.0: version "4.5.3" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25" @@ -17000,49 +12810,6 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -lerna-watch@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lerna-watch/-/lerna-watch-1.0.0.tgz#a035be3c127d893d8266edf2841c08bd720a7eec" - integrity sha512-5+NLjtob8lib7BuOk4VZMj/AwPifQm3mpqh363KznOH3wLAr3bm4GmBVuY6XUFHDRYORWszfkvAwgD04NNWQvQ== - dependencies: - "@lerna/package-graph" "^3.18.5" - "@lerna/project" "^3.21.0" - chalk "^4.1.0" - cross-spawn "^7.0.3" - debug "^4.1.1" - errno "^0.1.7" - minimist "^1.2.5" - npmlog "^4.1.2" - -lerna@^5.0.0: - version "5.6.2" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-5.6.2.tgz#cdcdfe4e8bf07eccb4ecff1c216def9c67e62af2" - integrity sha512-Y0yMPslvnBnTZi7Nrs/gDyYZYauNf61xWNCehISHIORxZmmpoluNkcWTfcyb47is5uJQCv5QJX5xKKubbs+a6w== - dependencies: - "@lerna/add" "5.6.2" - "@lerna/bootstrap" "5.6.2" - "@lerna/changed" "5.6.2" - "@lerna/clean" "5.6.2" - "@lerna/cli" "5.6.2" - "@lerna/command" "5.6.2" - "@lerna/create" "5.6.2" - "@lerna/diff" "5.6.2" - "@lerna/exec" "5.6.2" - "@lerna/import" "5.6.2" - "@lerna/info" "5.6.2" - "@lerna/init" "5.6.2" - "@lerna/link" "5.6.2" - "@lerna/list" "5.6.2" - "@lerna/publish" "5.6.2" - "@lerna/run" "5.6.2" - "@lerna/version" "5.6.2" - "@nrwl/devkit" ">=14.8.1 < 16" - import-local "^3.0.2" - inquirer "^8.2.4" - npmlog "^6.0.2" - nx ">=14.8.1 < 16" - typescript "^3 || ^4" - less@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246" @@ -17081,27 +12848,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libnpmaccess@^6.0.3: - version "6.0.4" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" - integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag== - dependencies: - aproba "^2.0.0" - minipass "^3.1.1" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" - -libnpmpublish@^6.0.4: - version "6.0.5" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" - integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== - dependencies: - normalize-package-data "^4.0.0" - npm-package-arg "^9.0.1" - npm-registry-fetch "^13.0.0" - semver "^7.3.7" - ssri "^9.0.0" - lilconfig@^2.0.3, lilconfig@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -17112,32 +12858,7 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lines-and-columns@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" - integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== - -lint-staged@^11.1.2: - version "11.2.6" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.6.tgz#f477b1af0294db054e5937f171679df63baa4c43" - integrity sha512-Vti55pUnpvPE0J9936lKl0ngVeTdSZpEdTNhASbkaWX7J5R9OEifo1INBGQuGW4zmy6OG+TcWPJ3m5yuy5Q8Tg== - dependencies: - cli-truncate "2.1.0" - colorette "^1.4.0" - commander "^8.2.0" - cosmiconfig "^7.0.1" - debug "^4.3.2" - enquirer "^2.3.6" - execa "^5.1.1" - listr2 "^3.12.2" - micromatch "^4.0.4" - normalize-path "^3.0.0" - please-upgrade-node "^3.2.0" - string-argv "0.3.1" - stringify-object "3.3.0" - supports-color "8.1.1" - -listr2@^3.12.2, listr2@^3.8.3: +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== @@ -17187,27 +12908,6 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" -load-json-file@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-5.3.0.tgz#4d3c1e01fa1c03ea78a60ac7af932c9ce53403f3" - integrity sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw== - dependencies: - graceful-fs "^4.1.15" - parse-json "^4.0.0" - pify "^4.0.1" - strip-bom "^3.0.0" - type-fest "^0.3.0" - -load-json-file@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" - integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== - dependencies: - graceful-fs "^4.1.15" - parse-json "^5.0.0" - strip-bom "^4.0.0" - type-fest "^0.6.0" - loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -17228,7 +12928,7 @@ loader-utils@^0.2.16: json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@^1.2.3: version "1.4.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== @@ -17237,7 +12937,7 @@ loader-utils@^1.1.0, loader-utils@^1.2.3: emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^2.0.0, loader-utils@^2.0.4, loader-utils@~2.0.0: +loader-utils@^2.0.0, loader-utils@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== @@ -17246,11 +12946,6 @@ loader-utils@^2.0.0, loader-utils@^2.0.4, loader-utils@~2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -loader-utils@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" - integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -17296,31 +12991,11 @@ lodash.debounce@^4, lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== - -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw== - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== - lodash.groupby@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" integrity sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== -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.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" @@ -17331,11 +13006,6 @@ lodash.isplainobject@^4.0.6: resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== - lodash.map@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" @@ -17356,28 +13026,16 @@ lodash.once@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== -lodash.throttle@^4.1.1: - 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.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - 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" @@ -17446,32 +13104,15 @@ lru-cache@^5.1.1: 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-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: - version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" - integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" - integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" lz-string@^1.4.4, lz-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -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" @@ -17487,54 +13128,11 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@1.x, make-error@^1.1.1: +make-error@1.x: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.6: - version "10.2.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" - integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== - dependencies: - agentkeepalive "^4.2.1" - cacache "^16.1.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-fetch "^2.0.3" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^9.0.0" - -make-fetch-happen@^11.0.3: - version "11.1.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" - integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== - dependencies: - agentkeepalive "^4.2.1" - cacache "^17.0.0" - http-cache-semantics "^4.1.1" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.7.1" - minipass "^5.0.0" - minipass-fetch "^3.0.0" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^7.0.0" - ssri "^10.0.0" - makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -17684,11 +13282,6 @@ memoizerific@^1.11.3: dependencies: map-or-similar "^1.5.0" -memory-fs@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - integrity sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng== - memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -17705,11 +13298,6 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - meow@^3.1.0, meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -17806,7 +13394,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: +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== @@ -17894,13 +13482,6 @@ mini-create-react-context@^0.4.0: "@babel/runtime" "^7.12.1" tiny-warning "^1.0.3" -mini-css-extract-plugin@*, mini-css-extract-plugin@^2.2.0: - version "2.7.6" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d" - integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw== - dependencies: - schema-utils "^4.0.0" - mini-css-extract-plugin@^2.7.5: version "2.7.5" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz#afbb344977659ec0f1f6e050c7aea456b121cfc5" @@ -17918,13 +13499,6 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" - integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== - dependencies: - brace-expansion "^1.1.7" - minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -17932,20 +13506,6 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatc dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -17967,28 +13527,6 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" -minipass-fetch@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" - integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== - dependencies: - minipass "^3.1.6" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-fetch@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.3.tgz#d9df70085609864331b533c960fd4ffaa78d15ce" - integrity sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ== - dependencies: - minipass "^5.0.0" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" @@ -17996,29 +13534,14 @@ minipass-flush@^1.0.5: dependencies: minipass "^3.0.0" -minipass-json-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" - integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== - dependencies: - jsonparse "^1.3.1" - minipass "^3.0.0" - -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: +minipass-pipeline@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: +minipass@^3.0.0, minipass@^3.1.1: version "3.3.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== @@ -18030,12 +13553,7 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.2.tgz#58a82b7d81c7010da5bd4b2c0c85ac4b4ec5131e" - integrity sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA== - -minizlib@^2.1.1, minizlib@^2.1.2: +minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== @@ -18072,15 +13590,6 @@ mkdirp-classic@^0.5.2: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp-infer-owner@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" - integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== - dependencies: - chownr "^2.0.0" - infer-owner "^1.0.4" - mkdirp "^1.0.3" - mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -18098,18 +13607,6 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -moment@^2.27.0: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== - -monaco-editor-webpack-plugin@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.1.tgz#eb4bbb1c5e5bfb554541c1ae1542e74c2a9f43fd" - integrity sha512-x7fx1w3i/uwZERIgztHAAK3VQMsL8+ku0lFXXbO81hKDg8IieACqjGEa2mqEueg0c/fX+wd0oI+75wB19KJAsA== - dependencies: - loader-utils "^1.2.3" - moo-color@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" @@ -18117,11 +13614,6 @@ moo-color@^1.0.2: dependencies: color-name "^1.1.4" -moo@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" - integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -18154,7 +13646,7 @@ ms@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.0.0, ms@^2.1.1: +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== @@ -18193,23 +13685,12 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -multimatch@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" - integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -mute-stream@0.0.8, mute-stream@~0.0.4: +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== -nan@^2.12.1, nan@^2.17.0: +nan@^2.12.1, nan@^2.14.0: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== @@ -18253,16 +13734,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - needle@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/needle/-/needle-3.2.0.tgz#07d240ebcabfd65c76c03afae7f6defe6469df44" @@ -18272,7 +13743,7 @@ needle@^3.1.0: iconv-lite "^0.6.3" sax "^1.2.4" -negotiator@0.6.3, negotiator@^0.6.3: +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== @@ -18300,11 +13771,6 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-addon-api@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - node-dir@^0.1.10: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -18319,7 +13785,7 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.6, node-fetch@^2.6.7: +node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.6.12" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== @@ -18331,28 +13797,6 @@ node-forge@^1: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== -node-gyp-build@^4.3.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" - integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== - -node-gyp@^9.0.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" - integrity sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg== - dependencies: - env-paths "^2.2.0" - exponential-backoff "^3.1.1" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^11.0.3" - nopt "^6.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -18404,13 +13848,6 @@ nopt@^5.0.0: dependencies: abbrev "1" -nopt@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" - integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== - dependencies: - abbrev "^1.0.0" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -18431,16 +13868,6 @@ normalize-package-data@^3.0.0: semver "^7.3.4" validate-npm-package-license "^3.0.1" -normalize-package-data@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" - integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== - dependencies: - hosted-git-info "^5.0.0" - is-core-module "^2.8.1" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -18463,119 +13890,6 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -normalize.css@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" - integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== - -npm-bundled@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" - integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-bundled@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" - integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== - dependencies: - npm-normalize-package-bin "^2.0.0" - -npm-install-checks@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" - integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== - dependencies: - semver "^7.1.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-normalize-package-bin@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" - integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== - -npm-package-arg@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" - integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg== - dependencies: - hosted-git-info "^3.0.6" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - -npm-package-arg@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" - integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== - dependencies: - hosted-git-info "^2.7.1" - osenv "^0.1.5" - semver "^5.6.0" - validate-npm-package-name "^3.0.0" - -npm-package-arg@^9.0.0, npm-package-arg@^9.0.1: - version "9.1.2" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" - integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== - dependencies: - hosted-git-info "^5.0.0" - proc-log "^2.0.1" - semver "^7.3.5" - validate-npm-package-name "^4.0.0" - -npm-packlist@^5.1.0, npm-packlist@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" - integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== - dependencies: - glob "^8.0.1" - ignore-walk "^5.0.1" - npm-bundled "^2.0.0" - npm-normalize-package-bin "^2.0.0" - -npm-pick-manifest@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" - integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== - dependencies: - npm-install-checks "^5.0.0" - npm-normalize-package-bin "^2.0.0" - npm-package-arg "^9.0.0" - semver "^7.3.5" - -npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.0: - version "13.3.1" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" - integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== - dependencies: - make-fetch-happen "^10.0.6" - minipass "^3.1.6" - minipass-fetch "^2.0.3" - minipass-json-stream "^1.0.1" - minizlib "^2.1.2" - npm-package-arg "^9.0.1" - proc-log "^2.0.0" - -npm-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -18597,16 +13911,6 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -npmlog@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - npmlog@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -18617,16 +13921,6 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -npmlog@^6.0.0, npmlog@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.3" - set-blocking "^2.0.0" - nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -18656,75 +13950,7 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== -nwsapi@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" - integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== - -nx@15.9.4, "nx@>=14.8.1 < 16": - version "15.9.4" - resolved "https://registry.yarnpkg.com/nx/-/nx-15.9.4.tgz#1075bc33fe8ee6c6546c21ec6ffcfd2e000946c6" - integrity sha512-P1G4t59UvE/lkHyruLeSOB5ZuNyh01IwU0tTUOi8f9s/NbP7+OQ8MYVwDV74JHTr6mQgjlS+n+4Eox8tVm9itA== - dependencies: - "@nrwl/cli" "15.9.4" - "@nrwl/tao" "15.9.4" - "@parcel/watcher" "2.0.4" - "@yarnpkg/lockfile" "^1.1.0" - "@yarnpkg/parsers" "^3.0.0-rc.18" - "@zkochan/js-yaml" "0.0.6" - axios "^1.0.0" - chalk "^4.1.0" - cli-cursor "3.1.0" - cli-spinners "2.6.1" - cliui "^7.0.2" - dotenv "~10.0.0" - enquirer "~2.3.6" - fast-glob "3.2.7" - figures "3.2.0" - flat "^5.0.2" - fs-extra "^11.1.0" - glob "7.1.4" - ignore "^5.0.4" - js-yaml "4.1.0" - jsonc-parser "3.2.0" - lines-and-columns "~2.0.3" - minimatch "3.0.5" - npm-run-path "^4.0.1" - open "^8.4.0" - semver "7.3.4" - string-width "^4.2.3" - strong-log-transformer "^2.1.0" - tar-stream "~2.2.0" - tmp "~0.2.1" - tsconfig-paths "^4.1.2" - tslib "^2.3.0" - v8-compile-cache "2.3.0" - yargs "^17.6.2" - yargs-parser "21.1.1" - optionalDependencies: - "@nrwl/nx-darwin-arm64" "15.9.4" - "@nrwl/nx-darwin-x64" "15.9.4" - "@nrwl/nx-linux-arm-gnueabihf" "15.9.4" - "@nrwl/nx-linux-arm64-gnu" "15.9.4" - "@nrwl/nx-linux-arm64-musl" "15.9.4" - "@nrwl/nx-linux-x64-gnu" "15.9.4" - "@nrwl/nx-linux-x64-musl" "15.9.4" - "@nrwl/nx-win32-arm64-msvc" "15.9.4" - "@nrwl/nx-win32-x64-msvc" "15.9.4" - -oauth2-mock-server@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/oauth2-mock-server/-/oauth2-mock-server-6.0.0.tgz#b922a4c76eabfcbb4d56ad638e01f5f50c11ed71" - integrity sha512-Btw21gMd8vUzTt6VzKHkkJDkd+wPynTRxsR/DaXNe3hBUF+o+4hmiLlyKo/9Zb1TxWjnajfL2HD2OXOZyjZWsQ== - dependencies: - basic-auth "^2.0.1" - cors "^2.8.5" - express "^4.18.2" - jose "^4.14.4" - lodash.isplainobject "^4.0.6" - uuid "^9.0.0" - -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +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== @@ -18738,12 +13964,12 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.12.3, object-inspect@^1.7.0, object-inspect@^1.9.0: +object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.0.1, object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.5: +object-is@^1.0.1, object-is@^1.1.2, object-is@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -18773,7 +13999,7 @@ object.assign@^4.1.0, object.assign@^4.1.2, object.assign@^4.1.3, object.assign@ has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.0, object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5, object.entries@^1.1.6: +object.entries@^1.1.0, object.entries@^1.1.2, object.entries@^1.1.5, object.entries@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== @@ -18835,7 +14061,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1, object.values@^1.1.5, object.values@^1.1.6: +object.values@^1.1.0, object.values@^1.1.5, object.values@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== @@ -18941,16 +14167,16 @@ optionator@^0.8.1: word-wrap "~1.2.3" optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" ora@^5.4.1: version "5.4.1" @@ -18986,29 +14212,16 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +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== -osenv@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - ospath@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== -outdent@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.7.1.tgz#e9b400443622a97760b0bc74fa3223252ccd02a2" - integrity sha512-VjIzdUHunL74DdhcwMDt5FhNDQ8NYmTkuW0B+usIV2afS9aWT/1c9z1TsnFW349TP3nxmYeUl7Z++XpJRByvgg== - outvariant@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/outvariant/-/outvariant-1.4.0.tgz#e742e4bda77692da3eca698ef5bfac62d9fba06e" @@ -19064,7 +14277,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.0.0, p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -19099,12 +14312,7 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-map-series@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" - integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== - -p-map@^2.0.0, p-map@^2.1.0: +p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== @@ -19123,24 +14331,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-pipe@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" - integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== - -p-queue@^6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" - integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== - dependencies: - eventemitter3 "^4.0.4" - p-timeout "^3.2.0" - -p-reduce@^2.0.0, p-reduce@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" - integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== - p-retry@^4.5.0: version "4.6.2" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" @@ -19149,7 +14339,7 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" -p-timeout@^3.1.0, p-timeout@^3.2.0: +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== @@ -19166,40 +14356,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -p-waterfall@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee" - integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== - dependencies: - p-reduce "^2.0.0" - -pacote@^13.0.3, pacote@^13.6.1: - version "13.6.2" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" - integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== - dependencies: - "@npmcli/git" "^3.0.0" - "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/promise-spawn" "^3.0.0" - "@npmcli/run-script" "^4.1.0" - cacache "^16.0.0" - chownr "^2.0.0" - fs-minipass "^2.1.0" - infer-owner "^1.0.4" - minipass "^3.1.6" - mkdirp "^1.0.4" - npm-package-arg "^9.0.0" - npm-packlist "^5.1.0" - npm-pick-manifest "^7.0.0" - npm-registry-fetch "^13.0.1" - proc-log "^2.0.0" - promise-retry "^2.0.1" - read-package-json "^5.0.0" - read-package-json-fast "^2.0.3" - rimraf "^3.0.2" - ssri "^9.0.0" - tar "^6.1.11" - pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" @@ -19240,15 +14396,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-conflict-json@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" - integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== - dependencies: - json-parse-even-better-errors "^2.3.1" - just-diff "^5.0.1" - just-diff-apply "^5.2.0" - parse-entities@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" @@ -19301,40 +14448,11 @@ parse-node-version@^1.0.1: resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== -parse-path@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" - integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== - dependencies: - protocols "^2.0.0" - -parse-url@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" - integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== - dependencies: - parse-path "^7.0.0" - -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" - integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== - dependencies: - domhandler "^5.0.2" - parse5 "^7.0.0" - parse5@6.0.1, parse5@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parse5@^7.0.0, parse5@^7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" - integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== - dependencies: - entities "^4.4.0" - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -19415,14 +14533,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - 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" @@ -19504,11 +14614,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.0, picomatc resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -19579,20 +14684,6 @@ pkg-dir@^5.0.0: dependencies: find-up "^5.0.0" -pkg-up@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" - integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== - dependencies: - find-up "^3.0.0" - -please-upgrade-node@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" - integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== - dependencies: - semver-compare "^1.0.0" - plist@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/plist/-/plist-3.1.0.tgz#797a516a93e62f5bde55e0b9cc9c967f860893c9" @@ -19640,20 +14731,6 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== -postcss-attribute-case-insensitive@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" - integrity sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-browser-reporter@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/postcss-browser-reporter/-/postcss-browser-reporter-0.6.0.tgz#72f6b8fe89f5ff4ed1ab781cd3c256e0f415f395" - integrity sha512-61gzk4wgthOIen4TRURzYYVVIszyvcorkYmD40CopdM8cdwJaCTDMYo/y8HQqjTPqyelw7r2ptncmR9xrWpVnw== - dependencies: - postcss "^7.0.14" - postcss-calc@^8.2.3: version "8.2.4" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" @@ -19662,34 +14739,6 @@ postcss-calc@^8.2.3: postcss-selector-parser "^6.0.9" postcss-value-parser "^4.2.0" -postcss-clamp@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" - integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-functional-notation@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz#21a909e8d7454d3612d1659e471ce4696f28caec" - integrity sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-hex-alpha@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz#c66e2980f2fbc1a63f5b079663340ce8b55f25a5" - integrity sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-color-rebeccapurple@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz#63fdab91d878ebc4dd4b7c02619a0c3d6a56ced0" - integrity sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg== - dependencies: - postcss-value-parser "^4.2.0" - postcss-colormin@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" @@ -19708,34 +14757,6 @@ postcss-convert-values@^5.1.3: browserslist "^4.21.4" postcss-value-parser "^4.2.0" -postcss-custom-media@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz#c8f9637edf45fef761b014c024cee013f80529ea" - integrity sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-custom-properties@^12.1.10: - version "12.1.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" - integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-custom-selectors@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz#1ab4684d65f30fed175520f82d223db0337239d9" - integrity sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-dir-pseudo-class@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz#2bf31de5de76added44e0a25ecf60ae9f7c7c26c" - integrity sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA== - dependencies: - postcss-selector-parser "^6.0.10" - postcss-discard-comments@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" @@ -19756,21 +14777,6 @@ postcss-discard-overridden@^5.1.0: resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== -postcss-double-position-gradients@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz#b96318fdb477be95997e86edd29c6e3557a49b91" - integrity sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -postcss-env-function@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz#7b2d24c812f540ed6eda4c81f6090416722a8e7a" - integrity sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA== - dependencies: - postcss-value-parser "^4.2.0" - postcss-filter-plugins@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-3.0.1.tgz#9d226e946d56542ab7c26123053459a331df545d" @@ -19782,32 +14788,8 @@ postcss-flexbugs-fixes@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -postcss-focus-visible@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz#50c9ea9afa0ee657fb75635fabad25e18d76bf9e" - integrity sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw== - dependencies: - postcss-selector-parser "^6.0.9" - -postcss-focus-within@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz#5b1d2ec603195f3344b716c0b75f61e44e8d2e20" - integrity sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ== - dependencies: - postcss-selector-parser "^6.0.9" - -postcss-font-variant@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" - integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== - -postcss-gap-properties@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz#f7e3cddcf73ee19e94ccf7cb77773f9560aa2fff" - integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + dependencies: + postcss "^7.0.26" postcss-icss-keyframes@^0.2.1: version "0.2.1" @@ -19829,34 +14811,6 @@ postcss-icss-selectors@^2.0.3: lodash "^4.17.4" postcss "^6.0.2" -postcss-image-set-function@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz#08353bd756f1cbfb3b6e93182c7829879114481f" - integrity sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-initial@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-4.0.1.tgz#529f735f72c5724a0fb30527df6fb7ac54d7de42" - integrity sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ== - -postcss-lab-function@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz#6fe4c015102ff7cd27d1bd5385582f67ebdbdc98" - integrity sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w== - dependencies: - "@csstools/postcss-progressive-custom-properties" "^1.1.0" - postcss-value-parser "^4.2.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - postcss-load-config@^3.0.1: version "3.1.4" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" @@ -19865,16 +14819,6 @@ postcss-load-config@^3.0.1: lilconfig "^2.0.5" yaml "^1.10.2" -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - postcss-loader@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" @@ -19886,16 +14830,6 @@ postcss-loader@^4.2.0: schema-utils "^3.0.0" semver "^7.3.4" -postcss-logical@^5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-5.0.4.tgz#ec75b1ee54421acc04d5921576b7d8db6b0e6f73" - integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== - -postcss-media-minmax@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz#7140bddec173e2d6d657edbd8554a55794e2a5b5" - integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== - postcss-merge-longhand@^5.1.7: version "5.1.7" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" @@ -20014,14 +14948,6 @@ postcss-modules-values@^4.0.0: dependencies: postcss-selector-parser "^6.0.6" -postcss-nesting@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz#0b12ce0db8edfd2d8ae0aaf86427370b898890be" - integrity sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA== - dependencies: - "@csstools/selector-specificity" "^2.0.0" - postcss-selector-parser "^6.0.10" - postcss-normalize-charset@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" @@ -20085,11 +15011,6 @@ postcss-normalize-whitespace@^5.1.1: dependencies: postcss-value-parser "^4.2.0" -postcss-opacity-percentage@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz#5b89b35551a556e20c5d23eb5260fbfcf5245da6" - integrity sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A== - postcss-ordered-values@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" @@ -20098,87 +15019,6 @@ postcss-ordered-values@^5.1.3: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-overflow-shorthand@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz#7ed6486fec44b76f0eab15aa4866cda5d55d893e" - integrity sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-page-break@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" - integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== - -postcss-place@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-7.0.5.tgz#95dbf85fd9656a3a6e60e832b5809914236986c4" - integrity sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g== - dependencies: - postcss-value-parser "^4.2.0" - -postcss-preset-env@^7.0.1: - version "7.8.3" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz#2a50f5e612c3149cc7af75634e202a5b2ad4f1e2" - integrity sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag== - dependencies: - "@csstools/postcss-cascade-layers" "^1.1.1" - "@csstools/postcss-color-function" "^1.1.1" - "@csstools/postcss-font-format-keywords" "^1.0.1" - "@csstools/postcss-hwb-function" "^1.0.2" - "@csstools/postcss-ic-unit" "^1.0.1" - "@csstools/postcss-is-pseudo-class" "^2.0.7" - "@csstools/postcss-nested-calc" "^1.0.0" - "@csstools/postcss-normalize-display-values" "^1.0.1" - "@csstools/postcss-oklab-function" "^1.1.1" - "@csstools/postcss-progressive-custom-properties" "^1.3.0" - "@csstools/postcss-stepped-value-functions" "^1.0.1" - "@csstools/postcss-text-decoration-shorthand" "^1.0.0" - "@csstools/postcss-trigonometric-functions" "^1.0.2" - "@csstools/postcss-unset-value" "^1.0.2" - autoprefixer "^10.4.13" - browserslist "^4.21.4" - css-blank-pseudo "^3.0.3" - css-has-pseudo "^3.0.4" - css-prefers-color-scheme "^6.0.3" - cssdb "^7.1.0" - postcss-attribute-case-insensitive "^5.0.2" - postcss-clamp "^4.1.0" - postcss-color-functional-notation "^4.2.4" - postcss-color-hex-alpha "^8.0.4" - postcss-color-rebeccapurple "^7.1.1" - postcss-custom-media "^8.0.2" - postcss-custom-properties "^12.1.10" - postcss-custom-selectors "^6.0.3" - postcss-dir-pseudo-class "^6.0.5" - postcss-double-position-gradients "^3.1.2" - postcss-env-function "^4.0.6" - postcss-focus-visible "^6.0.4" - postcss-focus-within "^5.0.4" - postcss-font-variant "^5.0.0" - postcss-gap-properties "^3.0.5" - postcss-image-set-function "^4.0.7" - postcss-initial "^4.0.1" - postcss-lab-function "^4.2.1" - postcss-logical "^5.0.4" - postcss-media-minmax "^5.0.0" - postcss-nesting "^10.2.0" - postcss-opacity-percentage "^1.1.2" - postcss-overflow-shorthand "^3.0.4" - postcss-page-break "^3.0.4" - postcss-place "^7.0.5" - postcss-pseudo-class-any-link "^7.1.6" - postcss-replace-overflow-wrap "^4.0.0" - postcss-selector-not "^6.0.1" - postcss-value-parser "^4.2.0" - -postcss-pseudo-class-any-link@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz#2693b221902da772c278def85a4d9a64b6e617ab" - integrity sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w== - dependencies: - postcss-selector-parser "^6.0.10" - postcss-reduce-initial@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" @@ -20194,29 +15034,7 @@ postcss-reduce-transforms@^5.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-replace-overflow-wrap@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" - integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== - -postcss-reporter@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f" - integrity sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw== - dependencies: - chalk "^2.4.1" - lodash "^4.17.11" - log-symbols "^2.2.0" - postcss "^7.0.7" - -postcss-selector-not@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz#8f0a709bf7d4b45222793fc34409be407537556d" - integrity sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ== - dependencies: - postcss-selector-parser "^6.0.10" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== @@ -20258,7 +15076,7 @@ postcss@^6.0.14, postcss@^6.0.2: source-map "^0.6.1" supports-color "^5.4.0" -postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6, postcss@^7.0.7: +postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.36, 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== @@ -20276,14 +15094,30 @@ postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0. source-map-js "^1.0.2" postcss@^8.2.1, postcss@^8.2.15, postcss@^8.3.0: - version "8.4.26" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94" - integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw== + version "8.4.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" + integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" +pprof@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/pprof/-/pprof-3.2.1.tgz#d0010fc04d37504353602cd5eff6c7893d353aa6" + integrity sha512-KnextTM3EHQ2zqN8fUjB0VpE+njcVR7cOfo7DjJSLKzIbKTPelDtokI04ScR/Vd8CLDj+M99tsaKV+K6FHzpzA== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" + bindings "^1.2.1" + delay "^5.0.0" + findit2 "^2.2.3" + nan "^2.14.0" + p-limit "^3.0.0" + pify "^5.0.0" + protobufjs "~7.2.4" + source-map "^0.7.3" + split "^1.0.1" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -20306,7 +15140,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@2.8.8, prettier@^2.2.1: +prettier@2.8.8: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== @@ -20337,7 +15171,7 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" -pretty-format@^27.0.0, pretty-format@^27.0.2, pretty-format@^27.5.1: +pretty-format@^27.0.2, pretty-format@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== @@ -20365,11 +15199,6 @@ prismjs@^1.27.0: resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== -proc-log@^2.0.0, proc-log@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" - integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== - 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" @@ -20380,21 +15209,11 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress@2.0.3, progress@^2.0.0: +progress@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-all-reject-late@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" - integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== - -promise-call-limit@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.2.tgz#f64b8dd9ef7693c9c7613e7dfe8d6d24de3031ea" - integrity sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA== - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -20405,14 +15224,6 @@ promise-polyfill@^8.1.3: resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.3.0.tgz#9284810268138d103807b11f4e23d5e945a4db63" integrity sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg== -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - promise.allsettled@^1.0.0: version "1.0.6" resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.6.tgz#8dc8ba8edf429feb60f8e81335b920e109c94b6e" @@ -20434,7 +15245,7 @@ promise.prototype.finally@^3.1.0: define-properties "^1.1.4" es-abstract "^1.20.4" -prompts@^2.0.1, prompts@^2.4.0, prompts@^2.4.2: +prompts@^2.0.1, prompts@^2.4.0: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -20442,13 +15253,6 @@ prompts@^2.0.1, prompts@^2.4.0, prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" -promzard@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== - dependencies: - read "1" - prop-types-exact@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869" @@ -20474,12 +15278,7 @@ property-information@^5.0.0, property-information@^5.3.0: dependencies: xtend "^4.0.0" -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -protobufjs@^7.2.4: +protobufjs@^7.2.4, protobufjs@~7.2.4: version "7.2.4" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.4.tgz#3fc1ec0cdc89dd91aef9ba6037ba07408485c3ae" integrity sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ== @@ -20497,11 +15296,6 @@ protobufjs@^7.2.4: "@types/node" ">=13.7.0" long "^5.0.0" -protocols@^2.0.0, protocols@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" - integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== - proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -20515,7 +15309,7 @@ proxy-from-env@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== -proxy-from-env@1.1.0, proxy-from-env@^1.1.0: +proxy-from-env@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== @@ -20600,11 +15394,6 @@ puppeteer-core@^13.5.1: unbzip2-stream "1.4.3" ws "8.5.0" -pure-rand@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.1.tgz#31207dddd15d43f299fdcdb2f572df65030c19af" - integrity sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg== - q@^1.1.2, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -20651,36 +15440,11 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== - ramda@^0.28.0: version "0.28.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97" integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA== -ramda@~0.27.1: - version "0.27.2" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.2.tgz#84463226f7f36dc33592f6f4ed6374c48306c3f1" - integrity sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA== - -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - randomatic@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" @@ -20764,36 +15528,6 @@ react-debounce-input@^3.2.5: lodash.debounce "^4" prop-types "^15.8.1" -react-dev-utils@^12.0.0: - version "12.0.1" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" - integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== - dependencies: - "@babel/code-frame" "^7.16.0" - address "^1.1.2" - browserslist "^4.18.1" - chalk "^4.1.2" - cross-spawn "^7.0.3" - detect-port-alt "^1.1.6" - escape-string-regexp "^4.0.0" - filesize "^8.0.6" - find-up "^5.0.0" - fork-ts-checker-webpack-plugin "^6.5.0" - global-modules "^2.0.0" - globby "^11.0.4" - gzip-size "^6.0.0" - immer "^9.0.7" - is-root "^2.1.0" - loader-utils "^3.2.0" - open "^8.4.0" - pkg-up "^3.1.0" - prompts "^2.4.2" - react-error-overlay "^6.0.11" - recursive-readdir "^2.2.2" - shell-quote "^1.7.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - react-docgen-typescript@^2.1.1: version "2.2.2" resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c" @@ -20815,16 +15549,6 @@ react-docgen@^5.0.0: node-dir "^0.1.10" strip-indent "^3.0.0" -react-dom@16.14.0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" - integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -20858,11 +15582,6 @@ react-error-boundary@^3.1.0: dependencies: "@babel/runtime" "^7.12.5" -react-error-overlay@^6.0.11: - version "6.0.11" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb" - integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== - react-fast-compare@^3.0.1, react-fast-compare@^3.1.1: version "3.2.1" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.1.tgz#53933d9e14f364281d6cba24bfed7a4afb808b5f" @@ -20911,7 +15630,7 @@ react-is@17.0.2, react-is@^17.0.1, react-is@^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@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.6: +react-is@^16.13.1, react-is@^16.6.0, 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== @@ -20921,21 +15640,6 @@ react-is@^18.0.0, react-is@^18.2.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-lifecycles-compat@^3.0.0: - 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-modal@^3.12.1: - version "3.16.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" - integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== - dependencies: - exenv "^1.2.0" - prop-types "^15.7.2" - react-lifecycles-compat "^3.0.0" - warning "^4.0.3" - react-notifications-component@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/react-notifications-component/-/react-notifications-component-3.1.0.tgz#c676b7897a3fb10c554b69dba25fe2a9da6170e2" @@ -21062,16 +15766,6 @@ react-svg-spinner@^1.0.4: prop-types "^15.7.2" react "^16.0.0" -react-test-renderer@^16.0.0-0: - version "16.14.0" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz#e98360087348e260c56d4fe2315e970480c228ae" - integrity sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg== - dependencies: - object-assign "^4.1.1" - prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.19.1" - react-textarea-autosize@8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.0.tgz#e6e2fd186d9f61bb80ac6e2dcb4c55504f93c2fa" @@ -21096,7 +15790,7 @@ react-transition-state@^1.1.5: resolved "https://registry.yarnpkg.com/react-transition-state/-/react-transition-state-1.1.5.tgz#22accee21d0011b1d0245be24b6262ae67f494c3" integrity sha512-ITY2mZqc2dWG2eitJkYNdcSFW8aKeOlkL2A/vowRrLL8GH3J6Re/SpD/BLvQzrVOTqjsP0b5S9N10vgNNzwMUQ== -react@16.14.0, react@^16.0.0: +react@^16.0.0: version "16.14.0" resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== @@ -21120,29 +15814,6 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" -read-cmd-shim@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" - integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== - -read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" - integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== - dependencies: - json-parse-even-better-errors "^2.3.0" - npm-normalize-package-bin "^1.0.1" - -read-package-json@^5.0.0, read-package-json@^5.0.1: - version "5.0.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" - integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== - dependencies: - glob "^8.0.1" - json-parse-even-better-errors "^2.3.1" - normalize-package-data "^4.0.0" - npm-normalize-package-bin "^2.0.0" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -21213,14 +15884,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read@1, read@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== - dependencies: - mute-stream "~0.0.4" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -21233,7 +15897,7 @@ read@1, read@^1.0.7: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -21242,16 +15906,6 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdir-scoped-modules@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -21273,20 +15927,6 @@ readme-filename@^1.0.0: resolved "https://registry.yarnpkg.com/readme-filename/-/readme-filename-1.0.0.tgz#08ec2dda26520cd16f3e836d01553f8a108efe5e" integrity sha512-qvrK/vNFowR55VPl2KcbEAzW5HAxqODZ0YraKJxToPiDinygXV/186jRnZDC0TBbFDMsdCMTzVO+ISNsf++8pQ== -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -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" - rechoir@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" @@ -21294,13 +15934,6 @@ rechoir@^0.8.0: dependencies: resolve "^1.20.0" -recursive-readdir@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" - integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== - dependencies: - minimatch "^3.0.5" - redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -21317,36 +15950,11 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -redux-devtools-extension@^2.13.8: - version "2.13.9" - resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.9.tgz#6b764e8028b507adcb75a1cae790f71e6be08ae7" - integrity sha512-cNJ8Q/EtjhQaZ71c8I9+BPySIBVEKssbPpskBfsXqb8HJ002A3KRVHfeRzwRo6mGPqsm7XuHTqNSNeS1Khig0A== - -redux-localstorage@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/redux-localstorage/-/redux-localstorage-0.4.1.tgz#faf6d719c581397294d811473ffcedee065c933c" - integrity sha512-dUha0YoH+BSZ2q15pakB+JWeqiuXUf3Ir4rObOpNrZ96HEdciGAjkL10k3KGdLI7qvQw/c096asw/SQ6TPjU/A== - -redux-mock-store@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.4.tgz#90d02495fd918ddbaa96b83aef626287c9ab5872" - integrity sha512-xmcA0O/tjCLXhh9Fuiq6pMrJCwFRaouA8436zcikdIpYWWCjU76CRk+i2bHx8EeiSiMGnB85/lZdU3wIJVXHTA== - dependencies: - lodash.isplainobject "^4.0.6" - 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-promise@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/redux-promise/-/redux-promise-0.6.0.tgz#c64723b5213bb5603c11b74302883b682e06b319" - integrity sha512-R2mGxJbPFgXyCNbFDE6LjTZhCEuACF54g1bxld3nqBhnRMX0OsUyWk77moF7UMGkUdl5WOAwc4BC5jOd1dunqQ== - dependencies: - flux-standard-action "^2.0.3" - is-promise "^2.1.0" - redux-query-sync@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/redux-query-sync/-/redux-query-sync-0.1.10.tgz#e00552025d2a471d2d47c98cb7282457a0ba52be" @@ -21355,12 +15963,12 @@ redux-query-sync@^0.1.10: "@ungap/url-search-params" "^0.1.2" history "^4.8.0" -redux-thunk@^2.3.0, redux-thunk@^2.4.2: +redux-thunk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.2.tgz#b9d05d11994b99f7a91ea223e8b04cf0afa5ef3b" integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== -redux@^4.0.0, redux@^4.0.5, redux@^4.2.0: +redux@^4.0.0, redux@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== @@ -21384,11 +15992,6 @@ regenerate@^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.11, regenerator-runtime@^0.13.7, regenerator-runtime@^0.13.9: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" @@ -21611,11 +16214,6 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -21643,11 +16241,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -21673,12 +16266,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve.exports@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== - -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.3.2, resolve@^1.9.0: +resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.1, resolve@^1.3.2: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -21725,11 +16313,6 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" @@ -21745,13 +16328,6 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -21774,19 +16350,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -robust-predicates@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" - integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== - -rst-selector-parser@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" - integrity sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA== - dependencies: - lodash.flattendeep "^4.4.0" - nearley "^2.7.10" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -21818,18 +16381,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== - -rxjs@^6.6.0: - 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.2.0, rxjs@^7.5.1, rxjs@^7.5.5: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" @@ -21914,10 +16465,10 @@ sass-loader@^9.0.2: schema-utils "^2.7.0" semver "^7.3.2" -sass@^1.26.10, sass@^1.32.13: - version "1.64.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.0.tgz#9ca8d0acb1a704b86b7f1197dc310f568fb34638" - integrity sha512-m7YtAGmQta9uANIUJwXesAJMSncqH+3INc8kdVXs6eV6GUC8Qu2IYKQSN8PRLgiQfpca697G94klm2leYMxSHw== +sass@^1.32.13: + version "1.64.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf" + integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -21944,21 +16495,6 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -22043,23 +16579,11 @@ selfsigned@^2.1.1: dependencies: node-forge "^1" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - semver@7.3.5: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" @@ -22067,14 +16591,14 @@ semver@7.3.5: dependencies: lru-cache "^6.0.0" -semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0: +semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.0: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -22098,13 +16622,6 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-error@^9.1.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-9.1.1.tgz#b66744b6287b538996a153103e67af7179d0831a" - integrity sha512-6uZQLGyUkNA4N+Zii9fYukmNu9PEA1F5rqcwXzN/3LtBjwl2dFBbVZ1Zyn08/CGkB4H440PIemdOQBt1Wvjbrg== - dependencies: - type-fest "^2.5.3" - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -22160,7 +16677,7 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== @@ -22234,25 +16751,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.6.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - shell-quote@^1.7.3: version "1.8.0" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== -shelljs@^0.8.3: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -22267,25 +16770,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -22335,15 +16819,6 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -22362,11 +16837,6 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -22406,37 +16876,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -socks-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" - integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" - integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== - dependencies: - is-plain-obj "^2.0.0" - source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -22458,14 +16897,6 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.12, 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" @@ -22562,7 +16993,7 @@ split2@^3.0.0: dependencies: readable-stream "^3.0.0" -split@^1.0.0: +split@^1.0.0, split@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -22594,13 +17025,6 @@ ssim.js@^3.1.1: resolved "https://registry.yarnpkg.com/ssim.js/-/ssim.js-3.5.0.tgz#d7276b9ee99b57a5ff0db34035f02f35197e62df" integrity sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g== -ssri@^10.0.0: - version "10.0.4" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" - integrity sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ== - dependencies: - minipass "^5.0.0" - ssri@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" @@ -22615,13 +17039,6 @@ ssri@^8.0.1: dependencies: minipass "^3.1.1" -ssri@^9.0.0, ssri@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" - integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== - dependencies: - minipass "^3.1.1" - stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -22713,11 +17130,6 @@ strict-event-emitter@^0.2.0: dependencies: events "^3.3.0" -string-argv@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -22731,15 +17143,6 @@ string-template@~0.2.1: resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: - 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-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -22749,31 +17152,22 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + 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: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: - emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" + strip-ansi "^4.0.0" "string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.7, string.prototype.matchall@^4.0.8: version "4.0.8" @@ -22807,7 +17201,7 @@ string.prototype.padstart@^3.0.0: define-properties "^1.1.4" es-abstract "^1.20.4" -string.prototype.trim@^1.2.1, string.prototype.trim@^1.2.7: +string.prototype.trim@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== @@ -22853,22 +17247,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-object@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" - integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== - dependencies: - get-own-enumerable-property-symbols "^3.0.0" - is-obj "^1.0.1" - is-regexp "^1.0.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", 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-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -22883,19 +17261,12 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== +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 "^6.0.1" + ansi-regex "^5.0.1" strip-bom@^2.0.0: version "2.0.0" @@ -22948,15 +17319,6 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strong-log-transformer@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" - integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== - dependencies: - duplexer "^0.1.1" - minimist "^1.2.0" - through "^2.3.4" - style-loader@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" @@ -22973,11 +17335,6 @@ style-loader@^2.0.0: loader-utils "^2.0.0" schema-utils "^3.0.0" -style-loader@^3.2.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff" - integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== - style-to-object@0.3.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" @@ -23017,13 +17374,6 @@ stylus@^0.54.8: semver "^6.3.0" source-map "^0.7.3" -supports-color@8.1.1, 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-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -23043,6 +17393,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: 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-hyperlinks@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" @@ -23056,14 +17413,6 @@ supports-preserve-symlinks-flag@^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== -svg-url-loader@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/svg-url-loader/-/svg-url-loader-7.1.1.tgz#0cbdb30beb8679cb060c12eaf30085747fa7591f" - integrity sha512-NlsMCePODm7FQhU9aEZyGLPx5Xe1QRI1cSEUE6vTq5LJc9l9pStagvXoEIyZ9O3r00w6G3+Wbkimb+SC3DI/Aw== - dependencies: - file-loader "~6.2.0" - loader-utils "~2.0.0" - svgo@^1.2.2: version "1.3.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" @@ -23134,21 +17483,6 @@ synckit@^0.8.5: "@pkgr/utils" "^2.3.1" tslib "^2.5.0" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tapable@^0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - integrity sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ== - tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -23169,7 +17503,7 @@ tar-fs@2.1.1: pump "^3.0.0" tar-stream "^2.1.4" -tar-stream@^2.1.4, tar-stream@~2.2.0: +tar-stream@^2.1.4: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== @@ -23180,7 +17514,7 @@ tar-stream@^2.1.4, tar-stream@~2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: +tar@^6.0.2, tar@^6.1.11: version "6.1.15" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== @@ -23206,11 +17540,6 @@ telejson@^6.0.8: lodash "^4.17.21" memoizerific "^1.11.3" -temp-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" - integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== - temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" @@ -23312,9 +17641,9 @@ terser@^5.10.0, terser@^5.16.5: source-map-support "~0.5.20" terser@^5.16.8, terser@^5.3.4: - version "5.19.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.1.tgz#dbd7231f224a9e2401d0f0959542ed74d76d340b" - integrity sha512-27hxBUVdV6GoNg1pKQ7Z5cbR6V9txPVyBA+FQw3BaZ1Wuzvztce5p156DaP0NVZNrMZZ+6iG9Syf7WgMNKDg2Q== + version "5.19.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.2.tgz#bdb8017a9a4a8de4663a7983f45c506534f9234e" + integrity sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -23365,7 +17694,7 @@ through2@^4.0.0: dependencies: readable-stream "3" -through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8: +through@2, "through@>=2.2.7 <3", 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== @@ -23438,11 +17767,6 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== - 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" @@ -23510,16 +17834,6 @@ tough-cookie@^4.0.0: universalify "^0.2.0" url-parse "^1.5.3" -tough-cookie@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" - integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -23535,23 +17849,11 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - 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== -treeverse@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" - integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A== - trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -23611,25 +17913,6 @@ ts-jest@^29.1.0: semver "7.x" yargs-parser "^21.0.1" -ts-node@^10.4.0: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -23663,7 +17946,7 @@ tsconfig-paths@^4.1.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -23673,10 +17956,10 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.5.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== -tslib@^2.0.1, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== +tslib@^2.0.1, tslib@^2.3.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" + integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== tsutils@^3.21.0: version "3.21.0" @@ -23741,16 +18024,6 @@ type-fest@^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-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" - integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== - type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -23766,11 +18039,6 @@ type-fest@^1.2.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -type-fest@^2.5.3: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -23818,7 +18086,7 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: +typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== @@ -23854,16 +18122,11 @@ typescript@4.8.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== -"typescript@^3 || ^4", typescript@^4.5.2: +typescript@^4.5.2: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typescript@next: - version "5.2.0-dev.20230720" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.0-dev.20230720.tgz#9eb5d0d5a9b935d8d6b496701cfff09d1e6f1bde" - integrity sha512-uZPSzgA2ZfMYqCafPbJ67YLwiVXeo93rT2iackGNerTEFs7wRBr2ENVRBIP33g5xCV0fFqN+e0l4oLvQjCZUKw== - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -23952,20 +18215,6 @@ unique-filename@^1.1.1: dependencies: unique-slug "^2.0.0" -unique-filename@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" - integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== - dependencies: - unique-slug "^3.0.0" - -unique-filename@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" - integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== - dependencies: - unique-slug "^4.0.0" - unique-slug@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" @@ -23973,20 +18222,6 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-slug@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" - integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== - dependencies: - imurmurhash "^0.1.4" - -unique-slug@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" - integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== - dependencies: - imurmurhash "^0.1.4" - unist-builder@2.0.3, unist-builder@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" @@ -24045,11 +18280,6 @@ unist-util-visit@2.0.3, unist-util-visit@^2.0.0: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" -universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== - universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -24100,11 +18330,6 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -upath@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" - integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== - update-browserslist-db@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" @@ -24242,21 +18467,6 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-compile-cache@2.3.0, v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - v8-to-istanbul@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" @@ -24266,7 +18476,7 @@ v8-to-istanbul@^8.1.0: convert-source-map "^1.6.0" source-map "^0.7.3" -v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: +v8-to-istanbul@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== @@ -24275,7 +18485,7 @@ v8-to-istanbul@^9.0.0, v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: +validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -24283,26 +18493,12 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== - dependencies: - builtins "^1.0.3" - -validate-npm-package-name@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" - integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== - dependencies: - builtins "^5.0.0" - value-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== -vary@^1, vary@~1.1.2: +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== @@ -24363,26 +18559,14 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - -walk-up-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" - integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== - -walker@^1.0.7, walker@^1.0.8, walker@~1.0.5: +walker@^1.0.7, walker@~1.0.5: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: makeerror "1.0.12" -warning@^4.0.2, warning@^4.0.3: +warning@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== @@ -24407,7 +18591,7 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.1" -watchpack@^2.2.0, watchpack@^2.3.1, watchpack@^2.4.0: +watchpack@^2.2.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== @@ -24422,7 +18606,7 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -wcwidth@^1.0.0, wcwidth@^1.0.1: +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== @@ -24434,6 +18618,11 @@ web-namespaces@^1.0.0: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== +web-streams-polyfill@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -24449,11 +18638,6 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - webpack-bundle-analyzer@^4.4.2: version "4.9.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d" @@ -24489,24 +18673,6 @@ webpack-cli@^5.0.1: rechoir "^0.8.0" webpack-merge "^5.7.3" -webpack-cli@~4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d" - integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.1.1" - "@webpack-cli/info" "^1.4.1" - "@webpack-cli/serve" "^1.6.1" - colorette "^2.0.14" - commander "^7.0.0" - execa "^5.0.0" - 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@^3.7.3: version "3.7.3" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" @@ -24609,14 +18775,6 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@^5.0.9: - version "5.9.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" - integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - webpack-merge@^5.7.3, webpack-merge@^5.8.0: version "5.8.0" resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" @@ -24625,13 +18783,6 @@ webpack-merge@^5.7.3, webpack-merge@^5.8.0: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-plugin-hash-output@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/webpack-plugin-hash-output/-/webpack-plugin-hash-output-3.2.1.tgz#771e844ee3e94d53e116a607c20f06409113ead3" - integrity sha512-Iu4Sox3/bdiqd6TdYwZAExuH+XNbnJStPrwh6yhzOflwc/hZUP9MdiZDbFwTXrmm9ZwoXNUmvn7C0Qj4qRez2A== - dependencies: - outdent "^0.7.0" - webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" @@ -24686,7 +18837,7 @@ webpack@4: watchpack "^1.7.4" webpack-sources "^1.4.1" -"webpack@>=4.43.0 <6.0.0", webpack@^5, webpack@^5.9.0: +"webpack@>=4.43.0 <6.0.0", webpack@^5.9.0: version "5.88.2" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== @@ -24746,36 +18897,6 @@ webpack@^5.77.0: watchpack "^2.4.0" webpack-sources "^3.2.3" -webpack@~5.71.0: - version "5.71.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.71.0.tgz#b01fcf379570b8c5ee06ca06c829ca168c951884" - integrity sha512-g4dFT7CFG8LY0iU5G8nBL6VlkT21Z7dcYDpJAEJV5Q1WLb9UwnFbrem1k7K52ILqEmomN7pnzWFxxE6SlDY56A== - 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.4.1" - acorn-import-assertions "^1.7.6" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.9.2" - 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-better-errors "^1.0.2" - 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.3.1" - 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" @@ -24797,31 +18918,11 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -24888,21 +18989,21 @@ which-typed-array@^1.1.9: has-tostringtag "^1.0.0" is-typed-array "^1.1.10" -which@^1.2.9, which@^1.3.1: +which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +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" -wide-align@^1.1.0, wide-align@^1.1.2, wide-align@^1.1.5: +wide-align@^1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -24921,10 +19022,10 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wordwrap@^1.0.0: version "1.0.0" @@ -24945,15 +19046,6 @@ worker-rpc@^0.1.0: dependencies: microevent.ts "~0.1.1" -"wrap-ansi-cjs@npm:wrap-ansi@^7.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" - wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -24962,15 +19054,6 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -24980,29 +19063,20 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== +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 "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" + 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@^2.0.0, write-file-atomic@^2.4.2: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -25013,74 +19087,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.0, write-file-atomic@^4.0.1, write-file-atomic@^4.0.2: - 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" - -write-json-file@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" - integrity sha512-84+F0igFp2dPD6UpAQjOUX3CdKUOqUzn6oE9sDBNzUXINR5VceJ1rauZltqQB/bcYsx3EpKys4C7/PivKUAiWQ== - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - pify "^3.0.0" - sort-keys "^2.0.0" - write-file-atomic "^2.0.0" - -write-json-file@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" - integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.15" - make-dir "^2.1.0" - pify "^4.0.1" - sort-keys "^2.0.0" - write-file-atomic "^2.4.2" - -write-json-file@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-4.3.0.tgz#908493d6fd23225344af324016e4ca8f702dd12d" - integrity sha512-PxiShnxf0IlnQuMYOPPhPkhExoCQuTUNPOa/2JWCYTmBquU9njyyDuwRKN26IZBlp4yn1nt+Agh2HOOBl+55HQ== - dependencies: - detect-indent "^6.0.0" - graceful-fs "^4.1.15" - is-plain-obj "^2.0.0" - make-dir "^3.0.0" - sort-keys "^4.0.0" - write-file-atomic "^3.0.0" - -write-pkg@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-3.2.0.tgz#0e178fe97820d389a8928bc79535dbe68c2cff21" - integrity sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw== - dependencies: - sort-keys "^2.0.0" - write-json-file "^2.2.0" - -write-pkg@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039" - integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA== - dependencies: - sort-keys "^2.0.0" - type-fest "^0.4.1" - write-json-file "^3.2.0" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - ws@8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" @@ -25091,7 +19097,7 @@ ws@^7.3.1, ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: +ws@^8.13.0, ws@^8.2.3: version "8.13.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== @@ -25108,11 +19114,6 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - xmlbuilder@^15.1.1: version "15.1.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5" @@ -25163,29 +19164,16 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.0.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -25193,22 +19181,6 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" -yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" @@ -25222,7 +19194,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.3.0, yargs@^17.6.2: +yargs@^17.3.0: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -25235,19 +19207,6 @@ yargs@^17.3.0, yargs@^17.6.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yargs@^17.3.1: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yargs@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" @@ -25275,21 +19234,11 @@ yauzl@^2.10.0: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zod@3.17.3: - version "3.17.3" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.17.3.tgz#86abbc670ff0063a4588d85a4dcc917d6e4af2ba" - integrity sha512-4oKP5zvG6GGbMlqBkI5FESOAweldEhSOZ6LI6cG+JzUT7ofj1ZOC0PJudpQOpT1iqOFpYYtX5Pw0+o403y4bcg== - zod@^3.21.4: version "3.21.4" resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db"