From 78f2046a4e3762a58f21a955dd086105ee4f653e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Mon, 24 Feb 2025 21:27:07 +0100 Subject: [PATCH] New plugin workspace: manage (#2569) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- .github/CODEOWNERS | 1 + workspaces/manage/.changeset/README.md | 8 + workspaces/manage/.changeset/config.json | 14 + workspaces/manage/.dockerignore | 8 + workspaces/manage/.editorconfig | 10 + workspaces/manage/.eslintignore | 1 + workspaces/manage/.eslintrc.js | 1 + workspaces/manage/.gitignore | 54 + workspaces/manage/.prettierignore | 5 + workspaces/manage/README.md | 22 + workspaces/manage/app-config.yaml | 84 + workspaces/manage/backstage.json | 3 + workspaces/manage/catalog-info.yaml | 13 + workspaces/manage/examples/entities.yaml | 53 + workspaces/manage/examples/org.yaml | 17 + workspaces/manage/package.json | 64 + workspaces/manage/packages/README.md | 9 + workspaces/manage/packages/app/.eslintignore | 1 + workspaces/manage/packages/app/.eslintrc.js | 1 + workspaces/manage/packages/app/CHANGELOG.md | 82 + .../manage/packages/app/e2e-tests/app.test.ts | 27 + workspaces/manage/packages/app/knip-report.md | 19 + workspaces/manage/packages/app/package.json | 85 + .../app/public/android-chrome-192x192.png | Bin 0 -> 13599 bytes .../packages/app/public/apple-touch-icon.png | Bin 0 -> 12619 bytes .../packages/app/public/favicon-16x16.png | Bin 0 -> 883 bytes .../packages/app/public/favicon-32x32.png | Bin 0 -> 1686 bytes .../manage/packages/app/public/favicon.ico | Bin 0 -> 15086 bytes .../manage/packages/app/public/index.html | 60 + .../manage/packages/app/public/manifest.json | 15 + .../manage/packages/app/public/robots.txt | 2 + .../packages/app/public/safari-pinned-tab.svg | 1 + .../manage/packages/app/src/App.test.tsx | 44 + workspaces/manage/packages/app/src/App.tsx | 145 + workspaces/manage/packages/app/src/apis.ts | 44 + .../app/src/components/Root/LogoFull.tsx | 45 + .../app/src/components/Root/LogoIcon.tsx | 46 + .../packages/app/src/components/Root/Root.tsx | 130 + .../packages/app/src/components/Root/index.ts | 16 + .../app/src/components/catalog/EntityPage.tsx | 414 + .../app/src/components/manage/Manage.tsx | 58 + .../app/src/components/search/SearchPage.tsx | 139 + workspaces/manage/packages/app/src/index.tsx | 21 + .../manage/packages/app/src/setupTests.ts | 16 + .../manage/packages/backend/.eslintrc.js | 1 + .../manage/packages/backend/CHANGELOG.md | 107 + workspaces/manage/packages/backend/README.md | 59 + .../manage/packages/backend/knip-report.md | 31 + .../manage/packages/backend/package.json | 66 + .../manage/packages/backend/src/index.ts | 49 + .../backend/src/plugins/tech-insights.ts | 206 + .../manage-module-tech-insights/.eslintrc.js | 1 + .../manage-module-tech-insights/README.md | 57 + .../catalog-info.yaml | 10 + .../manage-module-tech-insights/package.json | 68 + .../manage-module-tech-insights/report.api.md | 135 + .../src/api/DefaultManageTechInsightsApi.ts | 77 + .../src/api/ManageTechInsights.ts | 45 + .../src/api/api.ts | 27 + .../src/api/impl.ts | 37 + .../src/api/index.ts | 22 + .../src/columns/NoData.tsx | 35 + .../src/columns/columns-multiple.tsx | 79 + .../src/columns/columns-single.tsx | 182 + .../src/columns/columns.tsx | 56 + .../src/columns/hooks.ts | 52 + .../src/columns/index.tsx | 17 + .../src/components/Cards/Cards.tsx | 167 + .../src/components/Cards/index.ts | 17 + .../src/components/Grid/Grid.tsx | 146 + .../src/components/Grid/index.ts | 17 + .../ManageProviderTechInsights.tsx | 202 + .../src/components/ManageProvider/index.ts | 20 + .../src/components/index.ts | 20 + .../manage-module-tech-insights/src/index.ts | 32 + .../src/setupTests.ts | 16 + .../src/title/index.ts | 45 + .../src/utils/index.ts | 79 + .../manage/plugins/manage-react/.eslintrc.js | 1 + .../manage/plugins/manage-react/README.md | 86 + .../plugins/manage-react/catalog-info.yaml | 10 + .../manage/plugins/manage-react/package.json | 73 + .../manage/plugins/manage-react/report.api.md | 417 + .../manage-react/src/api/DefaultManageApi.ts | 53 + .../plugins/manage-react/src/api/ManageApi.ts | 36 + .../plugins/manage-react/src/api/api.ts | 70 + .../plugins/manage-react/src/api/index.ts | 24 + .../plugins/manage-react/src/api/types.ts | 38 + .../src/components/Accordion/Accordion.tsx | 118 + .../src/components/Accordion/index.ts | 17 + .../CurrentKindProvider.tsx | 116 + .../components/CurrentKindProvider/index.ts | 25 + .../components/CurrentKindProvider/types.ts | 25 + .../src/components/GaugeCard/GaugeCard.tsx | 69 + .../src/components/GaugeCard/index.ts | 17 + .../src/components/GaugeGrid/GaugeGrid.tsx | 131 + .../src/components/GaugeGrid/index.ts | 17 + .../src/components/KindOrder/KindOrder.tsx | 104 + .../src/components/KindOrder/index.ts | 16 + .../OwnedEntitiesProvider.tsx | 198 + .../OwnedEntitiesProvider/catalog.ts | 181 + .../OwnedEntitiesProvider/index.tsx | 45 + .../components/OwnedEntitiesProvider/types.ts | 23 + .../OwnedGroupsProvider.tsx | 134 + .../components/OwnedGroupsProvider/index.ts | 17 + .../ReorderableTabs/ReorderableTabs.tsx | 125 + .../src/components/ReorderableTabs/index.ts | 17 + .../TabContentFullHeight.tsx | 93 + .../components/TabContentFullHeight/index.ts | 17 + .../useMutationObserver.ts | 56 + .../TabContentFullHeight/usePosition.ts | 69 + .../TabContentFullHeight/useResizeObserver.ts | 47 + .../UserSettingsProvider.tsx | 107 + .../components/UserSettingsProvider/index.ts | 20 + .../src/components/column-providers/types.ts | 74 + .../src/components/icons/ColumnIconError.tsx | 46 + .../components/icons/ColumnIconPercent.tsx | 78 + .../src/components/icons/index.ts | 23 + .../plugins/manage-react/src/hooks/index.ts | 20 + .../src/hooks/use-accordion-key.ts | 39 + .../manage-react/src/hooks/use-order.ts | 175 + .../src/hooks/use-user-settings.ts | 92 + .../manage/plugins/manage-react/src/index.ts | 96 + .../manage/plugins/manage-react/src/plugin.ts | 83 + .../plugins/manage-react/src/setupTests.ts | 16 + .../plugins/manage-react/src/utils/index.ts | 54 + workspaces/manage/plugins/manage/.eslintrc.js | 1 + workspaces/manage/plugins/manage/README.md | 176 + .../manage/plugins/manage/catalog-info.yaml | 10 + .../manage/plugins/manage/docs/components.png | Bin 0 -> 290602 bytes .../manage/plugins/manage/docs/settings.png | Bin 0 -> 274853 bytes workspaces/manage/plugins/manage/package.json | 70 + .../manage/plugins/manage/report.api.md | 142 + .../ManageEntitiesList/ReRender.tsx | 32 + .../components/ManageEntitiesList/index.ts | 22 + .../ManageEntitiesList/table-settings.tsx | 35 + .../components/ManageEntitiesList/table.tsx | 325 + .../components/ManageEntitiesList/utils.ts | 42 + .../components/ManagePage/ManagePage.test.tsx | 111 + .../src/components/ManagePage/ManagePage.tsx | 128 + .../src/components/ManagePage/index.tsx | 17 + .../ManagePageFilters/ManagePageFilters.tsx | 59 + .../src/components/ManagePageFilters/index.ts | 17 + .../ManagePageFilters/useFilters.ts | 22 + .../src/components/ManageTabs/ManageTabs.tsx | 367 + .../manage/src/components/ManageTabs/index.ts | 22 + .../manage/src/components/ManageTabs/types.ts | 24 + .../OrganizationGraph/OrganizationGraph.tsx | 111 + .../src/components/OrganizationGraph/index.ts | 16 + .../components/Settings/DefaultSettings.tsx | 40 + .../Settings/KindOrderCard/KindOrderCard.tsx | 75 + .../Settings/KindOrderCard/index.ts | 16 + .../src/components/Settings/Settings.tsx | 35 + .../components/Settings/SettingsProvider.tsx | 44 + .../Settings/TabOrderCard/TabOrderCard.tsx | 66 + .../components/Settings/TabOrderCard/index.ts | 16 + .../manage/src/components/Settings/index.ts | 19 + .../src/components/TabsOrder/TabsOrder.tsx | 35 + .../manage/src/components/TabsOrder/index.ts | 16 + workspaces/manage/plugins/manage/src/index.ts | 49 + .../manage/plugins/manage/src/plugin.ts | 96 + .../manage/plugins/manage/src/routes.ts | 20 + .../manage/plugins/manage/src/setupTests.ts | 16 + workspaces/manage/plugins/manage/src/types.ts | 26 + .../manage/plugins/manage/test/catalog.ts | 87 + workspaces/manage/tsconfig.json | 18 + workspaces/manage/yarn.lock | 32935 ++++++++++++++++ 167 files changed, 42724 insertions(+) create mode 100644 workspaces/manage/.changeset/README.md create mode 100644 workspaces/manage/.changeset/config.json create mode 100644 workspaces/manage/.dockerignore create mode 100644 workspaces/manage/.editorconfig create mode 100644 workspaces/manage/.eslintignore create mode 100644 workspaces/manage/.eslintrc.js create mode 100644 workspaces/manage/.gitignore create mode 100644 workspaces/manage/.prettierignore create mode 100644 workspaces/manage/README.md create mode 100644 workspaces/manage/app-config.yaml create mode 100644 workspaces/manage/backstage.json create mode 100644 workspaces/manage/catalog-info.yaml create mode 100644 workspaces/manage/examples/entities.yaml create mode 100644 workspaces/manage/examples/org.yaml create mode 100644 workspaces/manage/package.json create mode 100644 workspaces/manage/packages/README.md create mode 100644 workspaces/manage/packages/app/.eslintignore create mode 100644 workspaces/manage/packages/app/.eslintrc.js create mode 100644 workspaces/manage/packages/app/CHANGELOG.md create mode 100644 workspaces/manage/packages/app/e2e-tests/app.test.ts create mode 100644 workspaces/manage/packages/app/knip-report.md create mode 100644 workspaces/manage/packages/app/package.json create mode 100644 workspaces/manage/packages/app/public/android-chrome-192x192.png create mode 100644 workspaces/manage/packages/app/public/apple-touch-icon.png create mode 100644 workspaces/manage/packages/app/public/favicon-16x16.png create mode 100644 workspaces/manage/packages/app/public/favicon-32x32.png create mode 100644 workspaces/manage/packages/app/public/favicon.ico create mode 100644 workspaces/manage/packages/app/public/index.html create mode 100644 workspaces/manage/packages/app/public/manifest.json create mode 100644 workspaces/manage/packages/app/public/robots.txt create mode 100644 workspaces/manage/packages/app/public/safari-pinned-tab.svg create mode 100644 workspaces/manage/packages/app/src/App.test.tsx create mode 100644 workspaces/manage/packages/app/src/App.tsx create mode 100644 workspaces/manage/packages/app/src/apis.ts create mode 100644 workspaces/manage/packages/app/src/components/Root/LogoFull.tsx create mode 100644 workspaces/manage/packages/app/src/components/Root/LogoIcon.tsx create mode 100644 workspaces/manage/packages/app/src/components/Root/Root.tsx create mode 100644 workspaces/manage/packages/app/src/components/Root/index.ts create mode 100644 workspaces/manage/packages/app/src/components/catalog/EntityPage.tsx create mode 100644 workspaces/manage/packages/app/src/components/manage/Manage.tsx create mode 100644 workspaces/manage/packages/app/src/components/search/SearchPage.tsx create mode 100644 workspaces/manage/packages/app/src/index.tsx create mode 100644 workspaces/manage/packages/app/src/setupTests.ts create mode 100644 workspaces/manage/packages/backend/.eslintrc.js create mode 100644 workspaces/manage/packages/backend/CHANGELOG.md create mode 100644 workspaces/manage/packages/backend/README.md create mode 100644 workspaces/manage/packages/backend/knip-report.md create mode 100644 workspaces/manage/packages/backend/package.json create mode 100644 workspaces/manage/packages/backend/src/index.ts create mode 100644 workspaces/manage/packages/backend/src/plugins/tech-insights.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/.eslintrc.js create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/README.md create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/catalog-info.yaml create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/package.json create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/report.api.md create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/api/DefaultManageTechInsightsApi.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/api/ManageTechInsights.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/api/api.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/api/impl.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/api/index.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/columns/NoData.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-multiple.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-single.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/columns/hooks.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/columns/index.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/Cards.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/index.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/Grid.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/index.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/ManageProviderTechInsights.tsx create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/index.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/components/index.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/index.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/setupTests.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/title/index.ts create mode 100644 workspaces/manage/plugins/manage-module-tech-insights/src/utils/index.ts create mode 100644 workspaces/manage/plugins/manage-react/.eslintrc.js create mode 100644 workspaces/manage/plugins/manage-react/README.md create mode 100644 workspaces/manage/plugins/manage-react/catalog-info.yaml create mode 100644 workspaces/manage/plugins/manage-react/package.json create mode 100644 workspaces/manage/plugins/manage-react/report.api.md create mode 100644 workspaces/manage/plugins/manage-react/src/api/DefaultManageApi.ts create mode 100644 workspaces/manage/plugins/manage-react/src/api/ManageApi.ts create mode 100644 workspaces/manage/plugins/manage-react/src/api/api.ts create mode 100644 workspaces/manage/plugins/manage-react/src/api/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/api/types.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/Accordion/Accordion.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/Accordion/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/CurrentKindProvider.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/types.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/GaugeCard/GaugeCard.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/GaugeCard/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/GaugeGrid/GaugeGrid.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/GaugeGrid/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/KindOrder/KindOrder.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/KindOrder/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/OwnedEntitiesProvider.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/catalog.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/index.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/types.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/OwnedGroupsProvider.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/ReorderableTabs.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/TabContentFullHeight.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useMutationObserver.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/usePosition.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useResizeObserver.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/UserSettingsProvider.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/column-providers/types.ts create mode 100644 workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconError.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconPercent.tsx create mode 100644 workspaces/manage/plugins/manage-react/src/components/icons/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/hooks/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/hooks/use-accordion-key.ts create mode 100644 workspaces/manage/plugins/manage-react/src/hooks/use-order.ts create mode 100644 workspaces/manage/plugins/manage-react/src/hooks/use-user-settings.ts create mode 100644 workspaces/manage/plugins/manage-react/src/index.ts create mode 100644 workspaces/manage/plugins/manage-react/src/plugin.ts create mode 100644 workspaces/manage/plugins/manage-react/src/setupTests.ts create mode 100644 workspaces/manage/plugins/manage-react/src/utils/index.ts create mode 100644 workspaces/manage/plugins/manage/.eslintrc.js create mode 100644 workspaces/manage/plugins/manage/README.md create mode 100644 workspaces/manage/plugins/manage/catalog-info.yaml create mode 100644 workspaces/manage/plugins/manage/docs/components.png create mode 100644 workspaces/manage/plugins/manage/docs/settings.png create mode 100644 workspaces/manage/plugins/manage/package.json create mode 100644 workspaces/manage/plugins/manage/report.api.md create mode 100644 workspaces/manage/plugins/manage/src/components/ManageEntitiesList/ReRender.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManageEntitiesList/index.ts create mode 100644 workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table-settings.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManageEntitiesList/utils.ts create mode 100644 workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.test.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManagePage/index.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManagePageFilters/ManagePageFilters.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManagePageFilters/index.ts create mode 100644 workspaces/manage/plugins/manage/src/components/ManagePageFilters/useFilters.ts create mode 100644 workspaces/manage/plugins/manage/src/components/ManageTabs/ManageTabs.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/ManageTabs/index.ts create mode 100644 workspaces/manage/plugins/manage/src/components/ManageTabs/types.ts create mode 100644 workspaces/manage/plugins/manage/src/components/OrganizationGraph/OrganizationGraph.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/OrganizationGraph/index.ts create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/DefaultSettings.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/KindOrderCard.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/index.ts create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/Settings.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/SettingsProvider.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/TabOrderCard.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/index.ts create mode 100644 workspaces/manage/plugins/manage/src/components/Settings/index.ts create mode 100644 workspaces/manage/plugins/manage/src/components/TabsOrder/TabsOrder.tsx create mode 100644 workspaces/manage/plugins/manage/src/components/TabsOrder/index.ts create mode 100644 workspaces/manage/plugins/manage/src/index.ts create mode 100644 workspaces/manage/plugins/manage/src/plugin.ts create mode 100644 workspaces/manage/plugins/manage/src/routes.ts create mode 100644 workspaces/manage/plugins/manage/src/setupTests.ts create mode 100644 workspaces/manage/plugins/manage/src/types.ts create mode 100644 workspaces/manage/plugins/manage/test/catalog.ts create mode 100644 workspaces/manage/tsconfig.json create mode 100644 workspaces/manage/yarn.lock diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3935cbfb5..b8e8826f8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -37,6 +37,7 @@ yarn.lock @backstage/community-plugins /workspaces/keycloak @backstage/community-plugins-maintainers @AndrienkoAleksandr @schultzp2020 @dzemanov /workspaces/kiali @backstage/community-plugins-maintainers @aljesusg @josunect @leandroberetta /workspaces/linguist @backstage/community-plugins-maintainers @awanlin +/workspaces/manage @backstage/community-plugins-maintainers @grantila /workspaces/matomo @backstage/community-plugins-maintainers @yashoswalyo @deshmukhmayur @riginoommen /workspaces/mend @backstage/community-plugins-maintainers @dariuszsobkowicz /workspaces/mta @backstage/community-plugins-maintainers @ibolton336 diff --git a/workspaces/manage/.changeset/README.md b/workspaces/manage/.changeset/README.md new file mode 100644 index 000000000..e5b6d8d6a --- /dev/null +++ b/workspaces/manage/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/workspaces/manage/.changeset/config.json b/workspaces/manage/.changeset/config.json new file mode 100644 index 000000000..8208df00f --- /dev/null +++ b/workspaces/manage/.changeset/config.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "privatePackages": { + "tag": false, + "version": false + } +} diff --git a/workspaces/manage/.dockerignore b/workspaces/manage/.dockerignore new file mode 100644 index 000000000..05edb6265 --- /dev/null +++ b/workspaces/manage/.dockerignore @@ -0,0 +1,8 @@ +.git +.yarn/cache +.yarn/install-state.gz +node_modules +packages/*/src +packages/*/node_modules +plugins +*.local.yaml diff --git a/workspaces/manage/.editorconfig b/workspaces/manage/.editorconfig new file mode 100644 index 000000000..1ed453a37 --- /dev/null +++ b/workspaces/manage/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true + +[*.{js,json,yml}] +charset = utf-8 +indent_style = space +indent_size = 2 diff --git a/workspaces/manage/.eslintignore b/workspaces/manage/.eslintignore new file mode 100644 index 000000000..e5b19947f --- /dev/null +++ b/workspaces/manage/.eslintignore @@ -0,0 +1 @@ +playwright.config.ts diff --git a/workspaces/manage/.eslintrc.js b/workspaces/manage/.eslintrc.js new file mode 100644 index 000000000..59b86f841 --- /dev/null +++ b/workspaces/manage/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('../../.eslintrc.cjs'); diff --git a/workspaces/manage/.gitignore b/workspaces/manage/.gitignore new file mode 100644 index 000000000..fbf813909 --- /dev/null +++ b/workspaces/manage/.gitignore @@ -0,0 +1,54 @@ +# macOS +.DS_Store + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Coverage directory generated when running tests with coverage +coverage + +# Dependencies +node_modules/ + +# Yarn 3 files +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Node version directives +.nvmrc + +# dotenv environment variables file +.env +.env.test + +# Build output +dist +dist-types + +# Temporary change files created by Vim +*.swp + +# MkDocs build output +site + +# Local configuration files +*.local.yaml + +# Sensitive credentials +*-credentials.yaml + +# vscode database functionality support files +*.session.sql + +# E2E test reports +e2e-test-report/ diff --git a/workspaces/manage/.prettierignore b/workspaces/manage/.prettierignore new file mode 100644 index 000000000..1cfaa8947 --- /dev/null +++ b/workspaces/manage/.prettierignore @@ -0,0 +1,5 @@ +dist +dist-types +coverage +.vscode +.eslintrc.js diff --git a/workspaces/manage/README.md b/workspaces/manage/README.md new file mode 100644 index 000000000..9f44c8785 --- /dev/null +++ b/workspaces/manage/README.md @@ -0,0 +1,22 @@ +# Manage page + +This plugin offers a place for developers to manage things they and their team own. + +Read the [documentation](./plugins/manage/README.md) for the frontend plugin. + +![Components tab](./plugins/manage/docs/components.png) + +## Packages + +- [manage](./plugins/manage/README.md) - The frontend plugin for the Manage page +- [manage-module-tech-insights](./plugins/manage-module-tech-insights/README.md) - The tech insights module for the Manage plugin, to display tech insight checks in the entity tables, and/or display aggregated gauges. +- [manage-react](./plugins/manage-react/README.md) - A module for extending the Manage page with custom components, features, entity table columns, etc. + +## Local Development + +To start the Backstage App, run: + +```sh +yarn install +yarn dev +``` diff --git a/workspaces/manage/app-config.yaml b/workspaces/manage/app-config.yaml new file mode 100644 index 000000000..7ffdbd6b5 --- /dev/null +++ b/workspaces/manage/app-config.yaml @@ -0,0 +1,84 @@ +app: + title: Tech insights Example App + baseUrl: http://localhost:3000 + +organization: + name: Tech insights Example + +backend: + baseUrl: http://localhost:7007 + listen: + port: 7007 + csp: + connect-src: ["'self'", 'http:', 'https:'] + cors: + origin: http://localhost:3000 + methods: [GET, HEAD, PATCH, POST, PUT, DELETE] + credentials: true + database: + client: better-sqlite3 + connection: ':memory:' + +integrations: + github: + - host: github.com + token: ${GITHUB_TOKEN} + +techdocs: + builder: 'local' + generator: + runIn: 'local' + publisher: + type: 'local' + +auth: + providers: + guest: + userEntityRef: user:default/guest + +catalog: + import: + entityFilename: catalog-info.yaml + pullRequestBranchName: backstage-integration + rules: + - allow: [Component, System, API, Resource, Location] + locations: + # Local example data, file locations are relative to the backend process, typically `packages/backend` + - type: file + target: ../../examples/entities.yaml + + # Local example organizational data + - type: file + target: ../../examples/org.yaml + rules: + - allow: [User, Group] + +techInsights: + factRetrievers: + entityOwnershipFactRetriever: + cadence: '*/1 * * * *' + lifecycle: { timeToLive: { weeks: 2 } } + entityMetadataFactRetriever: + cadence: '*/1 * * * *' + lifecycle: { timeToLive: { weeks: 2 } } + techdocsFactRetriever: + cadence: '*/1 * * * *' + lifecycle: { timeToLive: { weeks: 2 } } + apiDefinitionFactRetriever: + cadence: '*/1 * * * *' + lifecycle: { timeToLive: { weeks: 2 } } +# See packages/backend/src/index.ts for programmatically registration +# factChecker: +# checks: +# groupOwnerCheck: +# type: json-rules-engine +# name: Group Owner Check +# description: Verifies that a group has been set as the spec.owner for this entity +# factIds: +# - entityOwnershipFactRetriever +# rule: +# conditions: +# all: +# - fact: hasGroupOwner +# operator: equal +# value: true diff --git a/workspaces/manage/backstage.json b/workspaces/manage/backstage.json new file mode 100644 index 000000000..a0197e8fd --- /dev/null +++ b/workspaces/manage/backstage.json @@ -0,0 +1,3 @@ +{ + "version": "1.35.0" +} diff --git a/workspaces/manage/catalog-info.yaml b/workspaces/manage/catalog-info.yaml new file mode 100644 index 000000000..d7b89302d --- /dev/null +++ b/workspaces/manage/catalog-info.yaml @@ -0,0 +1,13 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: manage + description: An example of a Backstage application. + # Example for optional annotations + # annotations: + # github.com/project-slug: backstage/backstage + # backstage.io/techdocs-ref: dir:. +spec: + type: website + owner: john@example.com + lifecycle: experimental diff --git a/workspaces/manage/examples/entities.yaml b/workspaces/manage/examples/entities.yaml new file mode 100644 index 000000000..e2f8e6290 --- /dev/null +++ b/workspaces/manage/examples/entities.yaml @@ -0,0 +1,53 @@ +--- +# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-system +apiVersion: backstage.io/v1alpha1 +kind: System +metadata: + name: examples +spec: + owner: guests +--- +# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-component +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: example-website +spec: + type: website + lifecycle: experimental + owner: guests + system: examples + providesApis: [example-grpc-api] +--- +# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: example-grpc-api +spec: + type: grpc + lifecycle: experimental + owner: guests + system: examples + definition: | + syntax = "proto3"; + + service Exampler { + rpc Example (ExampleMessage) returns (ExampleMessage) {}; + } + + message ExampleMessage { + string example = 1; + }; +--- +# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: example-service + title: Example service +spec: + type: service + lifecycle: experimental + owner: guests + system: examples diff --git a/workspaces/manage/examples/org.yaml b/workspaces/manage/examples/org.yaml new file mode 100644 index 000000000..a10e81fc7 --- /dev/null +++ b/workspaces/manage/examples/org.yaml @@ -0,0 +1,17 @@ +--- +# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-user +apiVersion: backstage.io/v1alpha1 +kind: User +metadata: + name: guest +spec: + memberOf: [guests] +--- +# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-group +apiVersion: backstage.io/v1alpha1 +kind: Group +metadata: + name: guests +spec: + type: team + children: [] diff --git a/workspaces/manage/package.json b/workspaces/manage/package.json new file mode 100644 index 000000000..adbf57acd --- /dev/null +++ b/workspaces/manage/package.json @@ -0,0 +1,64 @@ +{ + "name": "@internal/manage", + "version": "1.0.0", + "private": true, + "engines": { + "node": "18 || 20" + }, + "scripts": { + "dev": "yarn workspaces foreach -A --include backend --include app --parallel --jobs unlimited -v -i run start", + "start": "yarn workspace app start", + "start-backend": "yarn workspace backend start", + "build:backend": "yarn workspace backend build", + "tsc": "tsc", + "tsc:full": "tsc --skipLibCheck false --incremental false", + "build:all": "backstage-cli repo build --all", + "clean": "backstage-cli repo clean", + "test": "backstage-cli repo test", + "test:all": "backstage-cli repo test --coverage", + "fix": "backstage-cli repo fix", + "lint": "backstage-cli repo lint --since origin/main", + "lint:all": "backstage-cli repo lint", + "prettier:check": "prettier --check .", + "prettier:write": "prettier --write .", + "new": "backstage-cli new --scope @backstage-community", + "build:api-reports": "yarn build:api-reports:only --tsc", + "build:api-reports:only": "backstage-repo-tools api-reports -o ae-wrong-input-file-type,ae-undocumented --validate-release-tags", + "postinstall": "cd ../../ && yarn install" + }, + "workspaces": { + "packages": [ + "packages/*", + "plugins/*" + ] + }, + "repository": { + "type": "git", + "url": "https://github.com/backstage/community-plugins", + "directory": "workspaces/manage" + }, + "devDependencies": { + "@backstage/cli": "^0.29.5", + "@backstage/e2e-test-utils": "^0.1.1", + "@backstage/repo-tools": "^0.12.1", + "@changesets/cli": "^2.27.1", + "knip": "^5.27.4", + "node-gyp": "^11.0.0", + "prettier": "^2.3.2", + "typescript": "~5.3.0" + }, + "resolutions": { + "@types/react": "^18", + "@types/react-dom": "^18" + }, + "prettier": "@backstage/cli/config/prettier", + "lint-staged": { + "*.{js,jsx,ts,tsx,mjs,cjs}": [ + "eslint --fix", + "prettier --write" + ], + "*.{json,md}": [ + "prettier --write" + ] + } +} diff --git a/workspaces/manage/packages/README.md b/workspaces/manage/packages/README.md new file mode 100644 index 000000000..6327fa0a9 --- /dev/null +++ b/workspaces/manage/packages/README.md @@ -0,0 +1,9 @@ +# The Packages Folder + +This is where your own applications and centrally managed libraries live, each +in a separate folder of its own. + +From the start there's an `app` folder (for the frontend) and a `backend` folder +(for the Node backend), but you can also add more modules in here that house +your core additions and adaptations, such as themes, common React component +libraries, utilities, and similar. diff --git a/workspaces/manage/packages/app/.eslintignore b/workspaces/manage/packages/app/.eslintignore new file mode 100644 index 000000000..a48cf0de7 --- /dev/null +++ b/workspaces/manage/packages/app/.eslintignore @@ -0,0 +1 @@ +public diff --git a/workspaces/manage/packages/app/.eslintrc.js b/workspaces/manage/packages/app/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/manage/packages/app/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/manage/packages/app/CHANGELOG.md b/workspaces/manage/packages/app/CHANGELOG.md new file mode 100644 index 000000000..a6651478d --- /dev/null +++ b/workspaces/manage/packages/app/CHANGELOG.md @@ -0,0 +1,82 @@ +# app + +## 0.0.11 + +### Patch Changes + +- Updated dependencies [7a14237] + - @backstage-community/plugin-tech-insights@0.3.39 + +## 0.0.10 + +### Patch Changes + +- Updated dependencies [caa9401] + - @backstage-community/plugin-tech-insights@0.3.38 + +## 0.0.9 + +### Patch Changes + +- Updated dependencies [e516773] +- Updated dependencies [e516773] + - @backstage-community/plugin-tech-insights@0.3.37 + +## 0.0.8 + +### Patch Changes + +- Updated dependencies [42a2c31] + - @backstage-community/plugin-tech-insights@0.3.36 + +## 0.0.7 + +### Patch Changes + +- Updated dependencies [1d33996] + - @backstage-community/plugin-tech-insights@0.3.35 + +## 0.0.6 + +### Patch Changes + +- Updated dependencies [a84eb44] + - @backstage-community/plugin-tech-insights@0.3.34 + +## 0.0.5 + +### Patch Changes + +- Updated dependencies [00d148d] + - @backstage-community/plugin-tech-insights@0.3.33 + +## 0.0.4 + +### Patch Changes + +- Updated dependencies [83a5e80] + - @backstage-community/plugin-tech-insights@0.3.32 + +## 0.0.3 + +### Patch Changes + +- Updated dependencies [0265767] + - @backstage-community/plugin-tech-insights@0.3.31 + +## 0.0.2 + +### Patch Changes + +- Updated dependencies [7ac338c] +- Updated dependencies [794cc8b] +- Updated dependencies [a8d8d44] + - @backstage-community/plugin-tech-insights@0.3.30 + +## 0.0.1 + +### Patch Changes + +- Updated dependencies [cbad35a] +- Updated dependencies [cbad35a] + - @backstage-community/plugin-tech-insights@0.3.29 diff --git a/workspaces/manage/packages/app/e2e-tests/app.test.ts b/workspaces/manage/packages/app/e2e-tests/app.test.ts new file mode 100644 index 000000000..839ff883d --- /dev/null +++ b/workspaces/manage/packages/app/e2e-tests/app.test.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { test, expect } from '@playwright/test'; + +test('App should render the welcome page', async ({ page }) => { + await page.goto('/'); + + const enterButton = page.getByRole('button', { name: 'Enter' }); + await expect(enterButton).toBeVisible(); + await enterButton.click(); + + await expect(page.getByText('My Company Catalog')).toBeVisible(); +}); diff --git a/workspaces/manage/packages/app/knip-report.md b/workspaces/manage/packages/app/knip-report.md new file mode 100644 index 000000000..cfa6d1f79 --- /dev/null +++ b/workspaces/manage/packages/app/knip-report.md @@ -0,0 +1,19 @@ +# Knip report + +## Unused dependencies (4) + +| Name | Location | Severity | +| :---------------------------------------- | :----------- | :------- | +| @backstage-community/plugin-tech-insights | package.json | error | +| react-router | package.json | error | +| react-use | package.json | error | +| history | package.json | error | + +## Unused devDependencies (4) + +| Name | Location | Severity | +| :-------------------------- | :----------- | :------- | +| @testing-library/user-event | package.json | error | +| @backstage/test-utils | package.json | error | +| @testing-library/dom | package.json | error | +| cross-env | package.json | error | diff --git a/workspaces/manage/packages/app/package.json b/workspaces/manage/packages/app/package.json new file mode 100644 index 000000000..74247062a --- /dev/null +++ b/workspaces/manage/packages/app/package.json @@ -0,0 +1,85 @@ +{ + "name": "app", + "version": "0.0.11", + "private": true, + "bundled": true, + "repository": { + "type": "git", + "url": "https://github.com/backstage/community-plugins", + "directory": "workspaces/manage/packages/app" + }, + "backstage": { + "role": "frontend" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "test": "backstage-cli package test", + "lint": "backstage-cli package lint" + }, + "dependencies": { + "@backstage-community/plugin-github-actions": "^0.6.16", + "@backstage-community/plugin-manage": "workspace:^", + "@backstage-community/plugin-manage-module-tech-insights": "workspace:^", + "@backstage-community/plugin-manage-react": "workspace:^", + "@backstage-community/plugin-tech-insights": "^0.4.0", + "@backstage-community/plugin-tech-radar": "^0.7.4", + "@backstage/app-defaults": "^1.5.16", + "@backstage/catalog-model": "^1.7.3", + "@backstage/cli": "^0.29.5", + "@backstage/core-app-api": "^1.15.4", + "@backstage/core-components": "^0.16.3", + "@backstage/core-plugin-api": "^1.10.3", + "@backstage/integration-react": "^1.2.3", + "@backstage/plugin-api-docs": "^0.12.3", + "@backstage/plugin-catalog": "^1.26.1", + "@backstage/plugin-catalog-common": "^1.1.3", + "@backstage/plugin-catalog-graph": "^0.4.15", + "@backstage/plugin-catalog-import": "^0.12.9", + "@backstage/plugin-catalog-react": "^1.15.1", + "@backstage/plugin-org": "^0.6.35", + "@backstage/plugin-permission-react": "^0.4.30", + "@backstage/plugin-scaffolder": "^1.27.4", + "@backstage/plugin-search": "^1.4.22", + "@backstage/plugin-search-react": "^1.8.5", + "@backstage/plugin-techdocs": "^1.12.1", + "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.20", + "@backstage/plugin-techdocs-react": "^1.2.13", + "@backstage/plugin-user-settings": "^0.8.18", + "@backstage/theme": "^0.6.3", + "@material-ui/core": "^4.12.2", + "@material-ui/icons": "^4.9.1", + "history": "^5.0.0", + "react": "^18.0.2", + "react-dom": "^18.0.2", + "react-router": "^6.3.0", + "react-router-dom": "^6.3.0", + "react-use": "^17.2.4" + }, + "devDependencies": { + "@backstage/test-utils": "^1.7.4", + "@playwright/test": "^1.32.3", + "@testing-library/dom": "^9.0.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "@types/react-dom": "*", + "cross-env": "^7.0.0" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/manage/packages/app/public/android-chrome-192x192.png b/workspaces/manage/packages/app/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..eec0ae25b971cae8eb0033c9af7e0f676d1df663 GIT binary patch literal 13599 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 EANz~b2mk;8 literal 0 HcmV?d00001 diff --git a/workspaces/manage/packages/app/public/apple-touch-icon.png b/workspaces/manage/packages/app/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3158830ac778a62ff8f08da0e9eeee6e8ada8bfc GIT binary patch literal 12619 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 VSn|oqbSlsa22WQ%mvv4FO#qym7y1AI literal 0 HcmV?d00001 diff --git a/workspaces/manage/packages/app/public/favicon-32x32.png b/workspaces/manage/packages/app/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..c0915ece75949f3d917134f55193949927edc633 GIT binary patch literal 1686 zcmd5*YdF&j82@WYD9ojqT$Wo{SSXitp^eRqxy{@++t}P`atlKxQX0)YMm6_KR%p4F z$}J+6LMeH2OXWDHjylI#AJ2#L{k+fbeSgn;`91HK_szmP+3%H7kpcicc}5$z1N!Px-7om}akWbt233fdJ10ExN)z&Z~ATcQ$c2>@ad0I)&=0IMPZ zfJBuET&w|L$8)@+J4!Sl|Nk(stgJlvmnlJ&;dZvl8tO{Q%IJ*5_~q$1+xa={mdc0(T`t!w?RZl>^IxA*%bGu3bF$<*nzTrF> zoQ&9oiO|s=ORAp|1maSVle9kTR(cJ300u{&4iq#dewwjMjZ;umbia|8`fV}#)u6uZ z2{{=Vn6Y8_#3SbXb1ic-&s#nMteerJ5NT@9WJFf_0Z{rXvToRrSOV|5nT6}g)=)7clCVKtHJ1*VPs-V;@XTM)*hF8A>dvO zHk*Y?X8JaA;})mFp7;7TRRuk~8$R*Snh{9txf3X8a4%y!TuP;MHGAGHB;T*cTs()( zPBU^uyOrcpI-AkwlQc~ccBy9xRRz@U7IH^D@piFSO__BF#e(AN-^z2yOmV!NrfGJV z)K=@)T;PiA16X29aqmP@px{GT+&pJ*OCU>i#GE8dw3RuCdu^ zY|d<%y|L(_@zJ9#_m z=Lc$*iilj{bjSDeNH|lRP>yLE)Yq?l!XVsP?uHhR(xnf>5p}vuAuF-j7*tA0oTAH zhFP&ZPMN7z8!K6i|K8u7|AYJvRll0p!ov{KSr|$njU-`o&7fVZN5@WQ|g`Mlirnap=oY~b#iCdHeScp|7sct zd}FL!1NSuuCnVle?ygaP975V!)pzN#*|A{{1* z$fS~)G%HFBO+IIv4>f5HNGY_6SF`0>Gf0kWIFv^nU=X CgrE5U literal 0 HcmV?d00001 diff --git a/workspaces/manage/packages/app/public/favicon.ico b/workspaces/manage/packages/app/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5e45e5dfbde6f39603d5be60d933c1af14dffb1e GIT binary patch literal 15086 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 D+pS%} literal 0 HcmV?d00001 diff --git a/workspaces/manage/packages/app/public/index.html b/workspaces/manage/packages/app/public/index.html new file mode 100644 index 000000000..18da7c477 --- /dev/null +++ b/workspaces/manage/packages/app/public/index.html @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + <%= config.getOptionalString('app.title') ?? 'Backstage' %> + + + +
+ + + diff --git a/workspaces/manage/packages/app/public/manifest.json b/workspaces/manage/packages/app/public/manifest.json new file mode 100644 index 000000000..4a7c1b4ec --- /dev/null +++ b/workspaces/manage/packages/app/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Backstage", + "name": "Backstage", + "icons": [ + { + "src": "favicon.ico", + "sizes": "48x48", + "type": "image/png" + } + ], + "start_url": "./index.html", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/workspaces/manage/packages/app/public/robots.txt b/workspaces/manage/packages/app/public/robots.txt new file mode 100644 index 000000000..01b0f9a10 --- /dev/null +++ b/workspaces/manage/packages/app/public/robots.txt @@ -0,0 +1,2 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * diff --git a/workspaces/manage/packages/app/public/safari-pinned-tab.svg b/workspaces/manage/packages/app/public/safari-pinned-tab.svg new file mode 100644 index 000000000..0f500b300 --- /dev/null +++ b/workspaces/manage/packages/app/public/safari-pinned-tab.svg @@ -0,0 +1 @@ +Created by potrace 1.11, written by Peter Selinger 2001-2013 \ No newline at end of file diff --git a/workspaces/manage/packages/app/src/App.test.tsx b/workspaces/manage/packages/app/src/App.test.tsx new file mode 100644 index 000000000..1f5b24568 --- /dev/null +++ b/workspaces/manage/packages/app/src/App.test.tsx @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { render, waitFor } from '@testing-library/react'; +import App from './App'; + +describe('App', () => { + it('should render', async () => { + process.env = { + NODE_ENV: 'test', + APP_CONFIG: [ + { + data: { + app: { title: 'Test' }, + backend: { baseUrl: 'http://localhost:7007' }, + techdocs: { + storageUrl: 'http://localhost:7007/api/techdocs/static/docs', + }, + }, + context: 'test', + }, + ] as any, + }; + + const rendered = render(); + + await waitFor(() => { + expect(rendered.baseElement).toBeInTheDocument(); + }); + }); +}); diff --git a/workspaces/manage/packages/app/src/App.tsx b/workspaces/manage/packages/app/src/App.tsx new file mode 100644 index 000000000..864e17159 --- /dev/null +++ b/workspaces/manage/packages/app/src/App.tsx @@ -0,0 +1,145 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { Navigate, Route } from 'react-router-dom'; +import { apiDocsPlugin, ApiExplorerPage } from '@backstage/plugin-api-docs'; +import { + CatalogEntityPage, + CatalogIndexPage, + catalogPlugin, +} from '@backstage/plugin-catalog'; +import { + CatalogImportPage, + catalogImportPlugin, +} from '@backstage/plugin-catalog-import'; +import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; +import { orgPlugin } from '@backstage/plugin-org'; +import { SearchPage } from '@backstage/plugin-search'; +import { TechRadarPage } from '@backstage-community/plugin-tech-radar'; +import { + TechDocsIndexPage, + techdocsPlugin, + TechDocsReaderPage, +} from '@backstage/plugin-techdocs'; +import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; +import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; +import { UserSettingsPage } from '@backstage/plugin-user-settings'; +import { apis } from './apis'; +import { entityPage } from './components/catalog/EntityPage'; +import { searchPage } from './components/search/SearchPage'; +import { Root } from './components/Root'; +import { + techInsightsPlugin, + TechInsightsScorecardPage, +} from '@backstage-community/plugin-tech-insights'; + +import { + AlertDisplay, + OAuthRequestDialog, + SignInPage, +} from '@backstage/core-components'; +import { createApp } from '@backstage/app-defaults'; +import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; +import { CatalogGraphPage } from '@backstage/plugin-catalog-graph'; +import { RequirePermission } from '@backstage/plugin-permission-react'; +import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha'; +import { ManagePage } from '@backstage-community/plugin-manage'; +import { Manage } from './components/manage/Manage'; + +const app = createApp({ + apis, + plugins: [techInsightsPlugin], + bindRoutes({ bind }) { + bind(catalogPlugin.externalRoutes, { + createComponent: scaffolderPlugin.routes.root, + viewTechDoc: techdocsPlugin.routes.docRoot, + createFromTemplate: scaffolderPlugin.routes.selectedTemplate, + }); + bind(apiDocsPlugin.externalRoutes, { + registerApi: catalogImportPlugin.routes.importPage, + }); + bind(scaffolderPlugin.externalRoutes, { + registerComponent: catalogImportPlugin.routes.importPage, + viewTechDoc: techdocsPlugin.routes.docRoot, + }); + bind(orgPlugin.externalRoutes, { + catalogIndex: catalogPlugin.routes.catalogIndex, + }); + }, + components: { + SignInPage: props => , + }, +}); + +const routes = ( + + } /> + + + + } + /> + } /> + } + > + {entityPage} + + } /> + } + > + + + + + } /> + } /> + } + /> + + + + } + /> + }> + {searchPage} + + } /> + } /> + } /> + +); + +export default app.createRoot( + <> + + + + {routes} + + , +); diff --git a/workspaces/manage/packages/app/src/apis.ts b/workspaces/manage/packages/app/src/apis.ts new file mode 100644 index 000000000..c89386145 --- /dev/null +++ b/workspaces/manage/packages/app/src/apis.ts @@ -0,0 +1,44 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + ScmIntegrationsApi, + scmIntegrationsApiRef, + ScmAuth, +} from '@backstage/integration-react'; +import { + AnyApiFactory, + configApiRef, + createApiFactory, +} from '@backstage/core-plugin-api'; +import { + createManageTechInsightsApiFactory, + manageTechInsightsApiRef, +} from '@backstage-community/plugin-manage-module-tech-insights'; +import { createManageApiFactory } from '@backstage-community/plugin-manage-react'; + +export const apis: AnyApiFactory[] = [ + createApiFactory({ + api: scmIntegrationsApiRef, + deps: { configApi: configApiRef }, + factory: ({ configApi }) => ScmIntegrationsApi.fromConfig(configApi), + }), + ScmAuth.createDefaultApiFactory(), + createManageTechInsightsApiFactory(), + createManageApiFactory({ + kindOrder: ['component', 'api', 'template', 'system'], + extensions: [manageTechInsightsApiRef], + }), +]; diff --git a/workspaces/manage/packages/app/src/components/Root/LogoFull.tsx b/workspaces/manage/packages/app/src/components/Root/LogoFull.tsx new file mode 100644 index 000000000..4c4513755 --- /dev/null +++ b/workspaces/manage/packages/app/src/components/Root/LogoFull.tsx @@ -0,0 +1,45 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { makeStyles } from '@material-ui/core'; + +const useStyles = makeStyles({ + svg: { + width: 'auto', + height: 30, + }, + path: { + fill: '#7df3e1', + }, +}); +const LogoFull = () => { + const classes = useStyles(); + + return ( + + + + ); +}; + +export default LogoFull; diff --git a/workspaces/manage/packages/app/src/components/Root/LogoIcon.tsx b/workspaces/manage/packages/app/src/components/Root/LogoIcon.tsx new file mode 100644 index 000000000..b53cf5f01 --- /dev/null +++ b/workspaces/manage/packages/app/src/components/Root/LogoIcon.tsx @@ -0,0 +1,46 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { makeStyles } from '@material-ui/core'; + +const useStyles = makeStyles({ + svg: { + width: 'auto', + height: 28, + }, + path: { + fill: '#7df3e1', + }, +}); + +const LogoIcon = () => { + const classes = useStyles(); + + return ( + + + + ); +}; + +export default LogoIcon; diff --git a/workspaces/manage/packages/app/src/components/Root/Root.tsx b/workspaces/manage/packages/app/src/components/Root/Root.tsx new file mode 100644 index 000000000..e82406919 --- /dev/null +++ b/workspaces/manage/packages/app/src/components/Root/Root.tsx @@ -0,0 +1,130 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { PropsWithChildren } from 'react'; +import { makeStyles } from '@material-ui/core'; +import CategoryIcon from '@material-ui/icons/Category'; +import HomeIcon from '@material-ui/icons/Home'; +import ExtensionIcon from '@material-ui/icons/Extension'; +import MapIcon from '@material-ui/icons/MyLocation'; +import LibraryBooks from '@material-ui/icons/LibraryBooks'; +import CreateComponentIcon from '@material-ui/icons/AddCircleOutline'; +import LogoFull from './LogoFull'; +import LogoIcon from './LogoIcon'; +import { + Settings as SidebarSettings, + UserSettingsSignInAvatar, +} from '@backstage/plugin-user-settings'; +import { SidebarSearchModal } from '@backstage/plugin-search'; +import { + Sidebar, + sidebarConfig, + SidebarDivider, + SidebarGroup, + SidebarItem, + SidebarPage, + SidebarScrollWrapper, + SidebarSpace, + useSidebarOpenState, + Link, +} from '@backstage/core-components'; +import { useRouteRef } from '@backstage/core-plugin-api'; +import MenuIcon from '@material-ui/icons/Menu'; +import SearchIcon from '@material-ui/icons/Search'; +import EmojiObjectsIcon from '@material-ui/icons/EmojiObjects'; +import ManageIcon from '@material-ui/icons/Ballot'; +import { managePlugin } from '@backstage-community/plugin-manage'; + +const useSidebarLogoStyles = makeStyles({ + root: { + width: sidebarConfig.drawerWidthClosed, + height: 3 * sidebarConfig.logoHeight, + display: 'flex', + flexFlow: 'row nowrap', + alignItems: 'center', + marginBottom: -14, + }, + link: { + width: sidebarConfig.drawerWidthClosed, + marginLeft: 24, + }, +}); + +const SidebarLogo = () => { + const classes = useSidebarLogoStyles(); + const { isOpen } = useSidebarOpenState(); + + return ( +
+ + {isOpen ? : } + +
+ ); +}; + +export const Root = ({ children }: PropsWithChildren<{}>) => { + const managePage = useRouteRef(managePlugin.routes.root); + + return ( + + + + } to="/search"> + + + + }> + {/* Global nav, not org-specific */} + + + + + + + {/* End global nav */} + + + + + + + + + } + to="/settings" + > + + + + {children} + + ); +}; diff --git a/workspaces/manage/packages/app/src/components/Root/index.ts b/workspaces/manage/packages/app/src/components/Root/index.ts new file mode 100644 index 000000000..6e933a21b --- /dev/null +++ b/workspaces/manage/packages/app/src/components/Root/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { Root } from './Root'; diff --git a/workspaces/manage/packages/app/src/components/catalog/EntityPage.tsx b/workspaces/manage/packages/app/src/components/catalog/EntityPage.tsx new file mode 100644 index 000000000..4e34c1d9e --- /dev/null +++ b/workspaces/manage/packages/app/src/components/catalog/EntityPage.tsx @@ -0,0 +1,414 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { Button, Grid } from '@material-ui/core'; +import { + EntityApiDefinitionCard, + EntityConsumedApisCard, + EntityConsumingComponentsCard, + EntityHasApisCard, + EntityProvidedApisCard, + EntityProvidingComponentsCard, +} from '@backstage/plugin-api-docs'; +import { + EntityAboutCard, + EntityDependsOnComponentsCard, + EntityDependsOnResourcesCard, + EntityHasComponentsCard, + EntityHasResourcesCard, + EntityHasSubcomponentsCard, + EntityHasSystemsCard, + EntityLayout, + EntityLinksCard, + EntitySwitch, + EntityOrphanWarning, + EntityProcessingErrorsPanel, + isComponentType, + isKind, + hasCatalogProcessingErrors, + isOrphan, + hasRelationWarnings, + EntityRelationWarning, +} from '@backstage/plugin-catalog'; +import { + isGithubActionsAvailable, + EntityGithubActionsContent, +} from '@backstage-community/plugin-github-actions'; +import { + EntityUserProfileCard, + EntityGroupProfileCard, + EntityMembersListCard, + EntityOwnershipCard, +} from '@backstage/plugin-org'; +import { EntityTechdocsContent } from '@backstage/plugin-techdocs'; +import { EmptyState } from '@backstage/core-components'; +import { + Direction, + EntityCatalogGraphCard, +} from '@backstage/plugin-catalog-graph'; +import { + RELATION_API_CONSUMED_BY, + RELATION_API_PROVIDED_BY, + RELATION_CONSUMES_API, + RELATION_DEPENDENCY_OF, + RELATION_DEPENDS_ON, + RELATION_HAS_PART, + RELATION_PART_OF, + RELATION_PROVIDES_API, +} from '@backstage/catalog-model'; + +import { TechDocsAddons } from '@backstage/plugin-techdocs-react'; +import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib'; +import { EntityTechInsightsScorecardCard } from '@backstage-community/plugin-tech-insights'; + +const techdocsContent = ( + + + + + +); + +const cicdContent = ( + // This is an example of how you can implement your company's logic in entity page. + // You can for example enforce that all components of type 'service' should use GitHubActions + + + + + + + + Read more + + } + /> + + +); + +const entityWarningContent = ( + <> + + + + + + + + + + + + + + + + + + + + + + + + +); + +const overviewContent = ( + + {entityWarningContent} + + + + + + + + + + + + + + + + + + +); + +const serviceEntityPage = ( + + + {overviewContent} + + + + {cicdContent} + + + + + + + + + + + + + + + + + + + + + + + + + + {techdocsContent} + + +); + +const websiteEntityPage = ( + + + {overviewContent} + + + + {cicdContent} + + + + + + + + + + + + + + + {techdocsContent} + + +); + +/** + * NOTE: This page is designed to work on small screens such as mobile devices. + * This is based on Material UI Grid. If breakpoints are used, each grid item must set the `xs` prop to a column size or to `true`, + * since this does not default. If no breakpoints are used, the items will equitably share the available space. + * https://material-ui.com/components/grid/#basic-grid. + */ + +const defaultEntityPage = ( + + + {overviewContent} + + + + {techdocsContent} + + +); + +const componentPage = ( + + + {serviceEntityPage} + + + + {websiteEntityPage} + + + {defaultEntityPage} + +); + +const apiPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + +const userPage = ( + + + + {entityWarningContent} + + + + + + + + + +); + +const groupPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + +); + +const systemPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + + + + + + + + + + + + + +); + +const domainPage = ( + + + + {entityWarningContent} + + + + + + + + + + + + +); + +export const entityPage = ( + + + + + + + + + {defaultEntityPage} + +); diff --git a/workspaces/manage/packages/app/src/components/manage/Manage.tsx b/workspaces/manage/packages/app/src/components/manage/Manage.tsx new file mode 100644 index 000000000..cd4c7216f --- /dev/null +++ b/workspaces/manage/packages/app/src/components/manage/Manage.tsx @@ -0,0 +1,58 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; + +import { + MANAGE_KIND_COMMON, + ManageTabs, + OrganizationGraph, +} from '@backstage-community/plugin-manage'; +import { + manageTechInsightsColumns, + ManageTechInsightsCards, + ManageTechInsightsGrid, +} from '@backstage-community/plugin-manage-module-tech-insights'; + +export function Manage() { + return ( + , + columns: [manageTechInsightsColumns({ combined: true })], + }} + starred={{ + header: , + columns: [manageTechInsightsColumns({ combined: true })], + }} + kinds={{ + [MANAGE_KIND_COMMON]: { + header: , + columns: [manageTechInsightsColumns()], + }, + component: { + columns: [manageTechInsightsColumns({ combined: true })], + }, + }} + tabsAfter={[ + { + path: 'organization', + title: 'Organization', + children: , + }, + ]} + /> + ); +} diff --git a/workspaces/manage/packages/app/src/components/search/SearchPage.tsx b/workspaces/manage/packages/app/src/components/search/SearchPage.tsx new file mode 100644 index 000000000..773b412cb --- /dev/null +++ b/workspaces/manage/packages/app/src/components/search/SearchPage.tsx @@ -0,0 +1,139 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { makeStyles, Theme, Grid, Paper } from '@material-ui/core'; + +import { CatalogSearchResultListItem } from '@backstage/plugin-catalog'; +import { + catalogApiRef, + CATALOG_FILTER_EXISTS, +} from '@backstage/plugin-catalog-react'; +import { TechDocsSearchResultListItem } from '@backstage/plugin-techdocs'; + +import { SearchType } from '@backstage/plugin-search'; +import { + SearchBar, + SearchFilter, + SearchResult, + SearchPagination, + useSearch, +} from '@backstage/plugin-search-react'; +import { + CatalogIcon, + Content, + DocsIcon, + Header, + Page, +} from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; + +const useStyles = makeStyles((theme: Theme) => ({ + bar: { + padding: theme.spacing(1, 0), + }, + filters: { + padding: theme.spacing(2), + marginTop: theme.spacing(2), + }, + filter: { + '& + &': { + marginTop: theme.spacing(2.5), + }, + }, +})); + +const SearchPage = () => { + const classes = useStyles(); + const { types } = useSearch(); + const catalogApi = useApi(catalogApiRef); + + return ( + +
+ + + + + + + + + , + }, + { + value: 'techdocs', + name: 'Documentation', + icon: , + }, + ]} + /> + + {types.includes('techdocs') && ( + { + // Return a list of entities which are documented. + const { items } = await catalogApi.getEntities({ + fields: ['metadata.name'], + filter: { + 'metadata.annotations.backstage.io/techdocs-ref': + CATALOG_FILTER_EXISTS, + }, + }); + + const names = items.map(entity => entity.metadata.name); + names.sort(); + return names; + }} + /> + )} + + + + + + + + } /> + } /> + + + + + + ); +}; + +export const searchPage = ; diff --git a/workspaces/manage/packages/app/src/index.tsx b/workspaces/manage/packages/app/src/index.tsx new file mode 100644 index 000000000..233899123 --- /dev/null +++ b/workspaces/manage/packages/app/src/index.tsx @@ -0,0 +1,21 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@backstage/cli/asset-types'; +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; + +ReactDOM.createRoot(document.getElementById('root')!).render(); diff --git a/workspaces/manage/packages/app/src/setupTests.ts b/workspaces/manage/packages/app/src/setupTests.ts new file mode 100644 index 000000000..658016ffd --- /dev/null +++ b/workspaces/manage/packages/app/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import '@testing-library/jest-dom'; diff --git a/workspaces/manage/packages/backend/.eslintrc.js b/workspaces/manage/packages/backend/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/manage/packages/backend/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/manage/packages/backend/CHANGELOG.md b/workspaces/manage/packages/backend/CHANGELOG.md new file mode 100644 index 000000000..8b0aed4f4 --- /dev/null +++ b/workspaces/manage/packages/backend/CHANGELOG.md @@ -0,0 +1,107 @@ +# backend + +## 0.0.11 + +### Patch Changes + +- Updated dependencies [7a14237] + - @backstage-community/plugin-tech-insights-backend@1.2.2 + - @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.59 + - @backstage-community/plugin-tech-insights-node@1.0.2 + - app@0.0.11 + +## 0.0.10 + +### Patch Changes + +- Updated dependencies [6a4787a] + - @backstage-community/plugin-tech-insights-backend@1.2.1 + +## 0.0.9 + +### Patch Changes + +- Updated dependencies [0f5c58a] +- Updated dependencies [e516773] +- Updated dependencies [e516773] + - @backstage-community/plugin-tech-insights-backend@1.2.0 + - @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.58 + - @backstage-community/plugin-tech-insights-node@1.0.1 + - app@0.0.9 + +## 0.0.8 + +### Patch Changes + +- Updated dependencies [fad299b] + - @backstage-community/plugin-tech-insights-backend@1.1.0 + - app@0.0.8 + +## 0.0.7 + +### Patch Changes + +- Updated dependencies [9871d0b] +- Updated dependencies [9871d0b] + - @backstage-community/plugin-tech-insights-node@1.0.0 + - @backstage-community/plugin-tech-insights-backend@1.0.0 + - @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.57 + +## 0.0.6 + +### Patch Changes + +- Updated dependencies [1d33996] + - @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.56 + - @backstage-community/plugin-tech-insights-node@0.6.7 + - app@0.0.7 + - @backstage-community/plugin-tech-insights-backend@0.6.3 + +## 0.0.5 + +### Patch Changes + +- @backstage-community/plugin-tech-insights-backend@0.6.2 +- @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.55 +- @backstage-community/plugin-tech-insights-node@0.6.6 +- app@0.0.6 + +## 0.0.4 + +### Patch Changes + +- Updated dependencies [ae2ee8a] +- Updated dependencies [00d148d] + - @backstage-community/plugin-tech-insights-backend@0.6.1 + - @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.54 + - @backstage-community/plugin-tech-insights-node@0.6.5 + - app@0.0.5 + +## 0.0.3 + +### Patch Changes + +- Updated dependencies [e49b4eb] + - @backstage-community/plugin-tech-insights-backend@0.6.0 + - app@0.0.3 + +## 0.0.2 + +### Patch Changes + +- Updated dependencies [7ac338c] +- Updated dependencies [a8d8d44] +- Updated dependencies [794cc8b] + - @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.53 + - @backstage-community/plugin-tech-insights-backend@0.5.35 + - @backstage-community/plugin-tech-insights-node@0.6.4 + - app@0.0.2 + +## 0.0.1 + +### Patch Changes + +- Updated dependencies [cbad35a] + - @backstage-community/plugin-tech-insights-backend-module-jsonfc@0.1.52 + - @backstage-community/plugin-tech-insights-backend@0.5.34 + - app@0.0.1 diff --git a/workspaces/manage/packages/backend/README.md b/workspaces/manage/packages/backend/README.md new file mode 100644 index 000000000..3607b0a09 --- /dev/null +++ b/workspaces/manage/packages/backend/README.md @@ -0,0 +1,59 @@ +# example-backend + +This package is an EXAMPLE of a Backstage backend. + +The main purpose of this package is to provide a test bed for Backstage plugins +that have a backend part. Feel free to experiment locally or within your fork by +adding dependencies and routes to this backend, to try things out. + +Our goal is to eventually amend the create-app flow of the CLI, such that a +production ready version of a backend skeleton is made alongside the frontend +app. Until then, feel free to experiment here! + +## Development + +To run the example backend, first go to the project root and run + +```bash +yarn install +``` + +You should only need to do this once. + +After that, go to the `packages/backend` directory and run + +```bash +yarn start +``` + +If you want to override any configuration locally, for example adding any secrets, +you can do so in `app-config.local.yaml`. + +The backend starts up on port 7007 per default. + +## Populating The Catalog + +If you want to use the catalog functionality, you need to add so called +locations to the backend. These are places where the backend can find some +entity descriptor data to consume and serve. For more information, see +[Software Catalog Overview - Adding Components to the Catalog](https://backstage.io/docs/features/software-catalog/#adding-components-to-the-catalog). + +To get started quickly, this template already includes some statically configured example locations +in `app-config.yaml` under `catalog.locations`. You can remove and replace these locations as you +like, and also override them for local development in `app-config.local.yaml`. + +## Authentication + +We chose [Passport](http://www.passportjs.org/) as authentication platform due +to its comprehensive set of supported authentication +[strategies](http://www.passportjs.org/packages/). + +Read more about the +[auth-backend](https://github.com/backstage/backstage/blob/master/plugins/auth-backend/README.md) +and +[how to add a new provider](https://github.com/backstage/backstage/blob/master/docs/auth/add-auth-provider.md) + +## Documentation + +- [Backstage Readme](https://github.com/backstage/backstage/blob/master/README.md) +- [Backstage Documentation](https://backstage.io/docs) diff --git a/workspaces/manage/packages/backend/knip-report.md b/workspaces/manage/packages/backend/knip-report.md new file mode 100644 index 000000000..82fa68674 --- /dev/null +++ b/workspaces/manage/packages/backend/knip-report.md @@ -0,0 +1,31 @@ +# Knip report + +## Unused dependencies (17) + +| Name | Location | Severity | +| :-------------------------------------------------------------- | :----------- | :------- | +| @backstage-community/plugin-tech-insights-backend-module-jsonfc | package.json | error | +| @backstage/plugin-auth-backend-module-github-provider | package.json | error | +| @backstage-community/plugin-tech-insights-backend | package.json | error | +| @backstage-community/plugin-tech-insights-node | package.json | error | +| @backstage/plugin-search-backend-node | package.json | error | +| @backstage/plugin-permission-common | package.json | error | +| @backstage/plugin-permission-node | package.json | error | +| @backstage/plugin-auth-node | package.json | error | +| @backstage/backend-common | package.json | error | +| @backstage/config | package.json | error | +| better-sqlite3 | package.json | error | +| dockerode | package.json | error | +| node-gyp | package.json | error | +| winston | package.json | error | +| app | package.json | error | +| pg | package.json | error | + +## Unused devDependencies (4) + +| Name | Location | Severity | +| :------------------------------- | :----------- | :------- | +| @types/express-serve-static-core | package.json | error | +| @types/dockerode | package.json | error | +| @types/express | package.json | error | +| @types/luxon | package.json | error | diff --git a/workspaces/manage/packages/backend/package.json b/workspaces/manage/packages/backend/package.json new file mode 100644 index 000000000..8348fdf3c --- /dev/null +++ b/workspaces/manage/packages/backend/package.json @@ -0,0 +1,66 @@ +{ + "name": "backend", + "version": "0.0.11", + "main": "dist/index.cjs.js", + "types": "src/index.ts", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/backstage/community-plugins", + "directory": "workspaces/manage/packages/backend" + }, + "backstage": { + "role": "backend" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "build-image": "docker build ../.. -f Dockerfile --tag backstage" + }, + "dependencies": { + "@backstage-community/plugin-tech-insights-backend": "^2.1.1", + "@backstage-community/plugin-tech-insights-backend-module-jsonfc": "^0.3.1", + "@backstage-community/plugin-tech-insights-common": "^0.4.0", + "@backstage-community/plugin-tech-insights-node": "^2.2.0", + "@backstage/backend-defaults": "^0.6.2", + "@backstage/backend-plugin-api": "^1.1.1", + "@backstage/catalog-client": "^1.9.1", + "@backstage/catalog-model": "^1.7.3", + "@backstage/config": "^1.3.2", + "@backstage/plugin-app-backend": "^0.4.4", + "@backstage/plugin-auth-backend": "^0.24.2", + "@backstage/plugin-auth-backend-module-github-provider": "^0.2.4", + "@backstage/plugin-auth-backend-module-guest-provider": "^0.2.4", + "@backstage/plugin-auth-node": "^0.5.6", + "@backstage/plugin-catalog-backend": "^1.30.0", + "@backstage/plugin-permission-backend": "^0.5.53", + "@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.4", + "@backstage/plugin-permission-common": "^0.8.4", + "@backstage/plugin-permission-node": "^0.8.7", + "@backstage/plugin-proxy-backend": "^0.5.10", + "@backstage/plugin-search-backend": "^1.8.0", + "@backstage/plugin-search-backend-module-catalog": "^0.3.0", + "@backstage/plugin-search-backend-module-techdocs": "^0.3.5", + "@backstage/plugin-search-backend-node": "^1.3.7", + "@backstage/plugin-techdocs-backend": "^1.11.5", + "app": "link:../app", + "better-sqlite3": "^9.0.0", + "dockerode": "^3.3.1", + "node-gyp": "^11.0.0", + "pg": "^8.11.3", + "winston": "^3.2.1" + }, + "devDependencies": { + "@backstage/cli": "^0.29.5", + "@types/dockerode": "^3.3.0", + "@types/express": "^4.17.6", + "@types/express-serve-static-core": "^4.17.5", + "@types/luxon": "^2.0.4" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/manage/packages/backend/src/index.ts b/workspaces/manage/packages/backend/src/index.ts new file mode 100644 index 000000000..c1248b1bd --- /dev/null +++ b/workspaces/manage/packages/backend/src/index.ts @@ -0,0 +1,49 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { createBackend } from '@backstage/backend-defaults'; + +const backend = createBackend(); + +backend.add(import('@backstage/plugin-app-backend')); +backend.add(import('@backstage/plugin-proxy-backend')); +backend.add(import('@backstage/plugin-techdocs-backend')); + +// auth plugin +backend.add(import('@backstage/plugin-auth-backend')); +// See https://backstage.io/docs/backend-system/building-backends/migrating#the-auth-plugin +backend.add(import('@backstage/plugin-auth-backend-module-guest-provider')); +// See https://backstage.io/docs/auth/guest/provider + +// catalog plugin +backend.add(import('@backstage/plugin-catalog-backend')); + +// permission plugin +backend.add(import('@backstage/plugin-permission-backend')); +backend.add( + import('@backstage/plugin-permission-backend-module-allow-all-policy'), +); + +// search plugin +backend.add(import('@backstage/plugin-search-backend')); +backend.add(import('@backstage/plugin-search-backend-module-catalog')); +backend.add(import('@backstage/plugin-search-backend-module-techdocs')); + +// tech insights +backend.add(import('@backstage-community/plugin-tech-insights-backend')); +backend.add(import('./plugins/tech-insights')); + +backend.start(); diff --git a/workspaces/manage/packages/backend/src/plugins/tech-insights.ts b/workspaces/manage/packages/backend/src/plugins/tech-insights.ts new file mode 100644 index 000000000..65f9623f0 --- /dev/null +++ b/workspaces/manage/packages/backend/src/plugins/tech-insights.ts @@ -0,0 +1,206 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + coreServices, + createBackendModule, +} from '@backstage/backend-plugin-api'; +import { CatalogClient } from '@backstage/catalog-client'; +import { Entity, ApiEntityV1alpha1 } from '@backstage/catalog-model'; + +import { + JSON_RULE_ENGINE_CHECK_TYPE, + JsonRulesEngineFactCheckerFactory, +} from '@backstage-community/plugin-tech-insights-backend-module-jsonfc'; +import { + FactRetriever, + FactRetrieverContext, + techInsightsFactCheckerFactoryExtensionPoint, + techInsightsFactRetrieversExtensionPoint, +} from '@backstage-community/plugin-tech-insights-node'; +import { + entityMetadataFactRetriever, + techdocsFactRetriever, +} from '@backstage-community/plugin-tech-insights-backend'; + +export const checks = [ + { + id: 'groupOwnerCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'Group Owner Check', + description: + 'Verifies that a Group has been set as the owner for this entity', + factIds: ['entityOwnershipFactRetriever'], + rule: { + conditions: { + all: [ + { + fact: 'hasGroupOwner', + operator: 'equal', + value: true, + }, + ], + }, + }, + }, + { + id: 'titleCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'Title Check', + description: 'Verifies that an entity has a title', + factIds: ['entityMetadataFactRetriever'], + rule: { + conditions: { + all: [ + { + fact: 'hasTitle', + operator: 'equal', + value: true, + }, + ], + }, + }, + }, + { + id: 'descriptionCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'Description Check', + description: 'Verifies that an entity has a description', + factIds: ['entityMetadataFactRetriever'], + rule: { + conditions: { + all: [ + { + fact: 'hasDescription', + operator: 'equal', + value: true, + }, + ], + }, + }, + }, + { + id: 'apiDefinitionCheck', + type: JSON_RULE_ENGINE_CHECK_TYPE, + name: 'API definition Check', + description: 'Verifies that a API has a definition set', + factIds: ['apiDefinitionFactRetriever'], + rule: { + conditions: { + all: [ + { + fact: 'hasDefinition', + operator: 'equal', + value: true, + }, + ], + }, + }, + }, +]; + +export const apiDefinitionFactRetriever: FactRetriever = { + id: 'apiDefinitionFactRetriever', + version: '0.0.1', + title: 'API Definition', + description: 'Generates facts which indicate the completeness of API spec', + schema: { + hasDefinition: { + type: 'boolean', + description: 'The entity has a definition in spec', + }, + }, + handler: async ({ discovery, auth }: FactRetrieverContext) => { + const { token } = await auth.getPluginRequestToken({ + onBehalfOf: await auth.getOwnServiceCredentials(), + targetPluginId: 'catalog', + }); + const catalogClient = new CatalogClient({ + discoveryApi: discovery, + }); + const entities = await catalogClient.getEntities( + { filter: { kind: ['API'] } }, + { token }, + ); + + return entities.items.map((entity: Entity) => { + return { + entity: { + namespace: entity.metadata.namespace!, + kind: entity.kind, + name: entity.metadata.name, + }, + facts: { + hasDefinition: + (entity as ApiEntityV1alpha1).spec?.definition && + (entity as ApiEntityV1alpha1).spec?.definition.length > 0, + }, + }; + }); + }, +}; + +export default createBackendModule({ + pluginId: 'tech-insights', + moduleId: 'generic-fact-retrievers', + register(reg) { + reg.registerInit({ + deps: { + logger: coreServices.logger, + techInsightsFactCheckerFactory: + techInsightsFactCheckerFactoryExtensionPoint, + techInsightsFactRetrievers: techInsightsFactRetrieversExtensionPoint, + }, + async init({ + logger, + techInsightsFactCheckerFactory, + techInsightsFactRetrievers, + }) { + techInsightsFactCheckerFactory.setFactCheckerFactory( + new JsonRulesEngineFactCheckerFactory({ + logger, + checks, + }), + ); + + techInsightsFactRetrievers.addFactRetrievers({ + apiDefinitionFactRetriever, + entityMetadataFactRetriever: { + ...entityMetadataFactRetriever, + entityFilter: [ + { + kind: [ + 'location', + 'domain', + 'system', + 'component', + 'api', + 'resource', + 'template', + ], + }, + ], + }, + techdocsFactRetriever: { + ...techdocsFactRetriever, + entityFilter: [ + { kind: ['component', 'system', 'api', 'template'] }, + ], + }, + }); + }, + }); + }, +}); diff --git a/workspaces/manage/plugins/manage-module-tech-insights/.eslintrc.js b/workspaces/manage/plugins/manage-module-tech-insights/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/manage/plugins/manage-module-tech-insights/README.md b/workspaces/manage/plugins/manage-module-tech-insights/README.md new file mode 100644 index 000000000..d9e7f5ded --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/README.md @@ -0,0 +1,57 @@ +# Manage page extension: tech-insights + +To add columns to the table of owned entities, showing tech insight checks, use the `manageTechInsightsColumns` function. To show gauges (e.g. above the tables), use `ManageTechInsightsCards` or `ManageTechInsightsGrid`. + +First, ensure to install the tech-insight module by adding its API ref to `createManageApiFactory`: + +```ts +import { + createManageTechInsightsApiFactory, + manageTechInsightsApiRef, +} from '@backstage-community/plugin-manage-module-tech-insights'; + +[ + // ..., + createManageTechInsightsApiFactory(), + createManageApiFactory({ + extensions: [manageTechInsightsApiRef], + }), +]; +``` + +In `Manage.tsx` (as described in the README for `@backstage-community/plugin-manage`): + +```tsx +import { + manageTechInsightsColumns, + ManageTechInsightsCards, + ManageTechInsightsGrid, +} from '@backstage-community/plugin-manage-module-tech-insights'; + +export function Manage() { + return ( + , + columns: [manageTechInsightsColumns({ combined: true })], + }} + starred={{ + header: , + columns: [manageTechInsightsColumns({ combined: true })], + }} + kinds={{ + [MANAGE_KIND_COMMON]: { + header: , + columns: [manageTechInsightsColumns()], + }, + component: { + // There are maybe too many tech-insights checks for components to + // show one per column. + // The `combined` option squeezes them into one column. + columns: [manageTechInsightsColumns({ combined: true })], + }, + }} + /> + ); +} +``` diff --git a/workspaces/manage/plugins/manage-module-tech-insights/catalog-info.yaml b/workspaces/manage/plugins/manage-module-tech-insights/catalog-info.yaml new file mode 100644 index 000000000..a7244c5c7 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/catalog-info.yaml @@ -0,0 +1,10 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage-plugin-manage-module-tech-insights + title: '@backstage/plugin-manage-module-tech-insights' + description: Manage page, Tech Insights module +spec: + lifecycle: experimental + type: backstage-frontend-plugin + owner: maintainers diff --git a/workspaces/manage/plugins/manage-module-tech-insights/package.json b/workspaces/manage/plugins/manage-module-tech-insights/package.json new file mode 100644 index 000000000..cb899ef33 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/package.json @@ -0,0 +1,68 @@ +{ + "name": "@backstage-community/plugin-manage-module-tech-insights", + "description": "Manage plugin - Tech Insights module", + "version": "0.1.0", + "backstage": { + "role": "frontend-plugin-module", + "pluginId": "manage", + "pluginPackages": [ + "@backstage-community/plugin-manage-module-tech-insights" + ], + "pluginPackage": "@backstage-community/plugin-manage" + }, + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/manage-module-tech-insights" + }, + "keywords": [ + "backstage", + "manage", + "page", + "tech-insights", + "tech", + "insights" + ], + "sideEffects": false, + "scripts": { + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage-community/plugin-manage-react": "workspace:^", + "@backstage-community/plugin-tech-insights": "^0.4.0", + "@backstage-community/plugin-tech-insights-common": "^0.4.0", + "@backstage/catalog-model": "^1.7.3", + "@backstage/core-components": "^0.16.3", + "@backstage/core-plugin-api": "^1.10.3", + "@backstage/plugin-catalog-react": "^1.15.1", + "@mui/material": "^5.15.16", + "@mui/styles": "^5", + "react-use": "^17.5.0" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + }, + "devDependencies": { + "@backstage/cli": "^0.29.5", + "@types/react": "^18.3.12" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/report.api.md b/workspaces/manage/plugins/manage-module-tech-insights/report.api.md new file mode 100644 index 000000000..c94029430 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/report.api.md @@ -0,0 +1,135 @@ +## API Report File for "@backstage-community/plugin-manage-module-tech-insights" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { ApiFactory } from '@backstage/core-plugin-api'; +import { ApiRef } from '@backstage/core-plugin-api'; +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import { GaugeCardProps } from '@backstage-community/plugin-manage-react'; +import { GridOwnProps } from '@mui/material/Grid'; +import type { ManageColumnModule } from '@backstage-community/plugin-manage-react'; +import type { ManageModuleApi } from '@backstage-community/plugin-manage-react'; +import type { ProgressColor } from '@backstage-community/plugin-manage-react'; +import { PropsWithChildren } from 'react'; +import { default as React_2 } from 'react'; +import type { ReactNode } from 'react'; + +// @public +export function createManageTechInsightsApiFactory( + options?: DefaultManageApiOptions, +): ApiFactory< + ManageTechInsights, + DefaultManageTechInsightsApi, + { + [x: string]: unknown; + } +>; + +// @public +export interface DefaultManageApiOptions { + checkFilter?: (check: Check) => boolean; + getPercentColor?: (percent: number) => ProgressColor; + mapTitle?: ManageTechInsightsMapTitle; +} + +// @public +export class DefaultManageTechInsightsApi implements ManageTechInsights { + constructor(options?: DefaultManageApiOptions); + // (undocumented) + readonly checkFilter: (check: Check) => boolean; + // (undocumented) + readonly getPercentColor: (percent: number) => ProgressColor; + // (undocumented) + getProvider: () => typeof ManageProviderTechInsights; + // (undocumented) + readonly mapTitle: ManageTechInsightsMapTitle; +} + +// @public (undocumented) +export function ManageProviderTechInsights( + props: PropsWithChildren<{}>, +): React_2.JSX.Element; + +// @public +export interface ManageTechInsights extends ManageModuleApi { + checkFilter: (check: Check) => boolean; + getPercentColor: (percent: number) => ProgressColor; + mapTitle: ManageTechInsightsMapTitle; +} + +// @public +export const manageTechInsightsApiRef: ApiRef; + +// @public +export function ManageTechInsightsCards( + props: ManageTechInsightsCardsProps, +): React_2.JSX.Element; + +// @public +export interface ManageTechInsightsCardsProps { + // (undocumented) + containerProps?: Pick< + GridOwnProps, + | 'classes' + | 'columns' + | 'columnSpacing' + | 'direction' + | 'rowSpacing' + | 'spacing' + | 'sx' + | 'wrap' + | 'zeroMinWidth' + >; + // (undocumented) + gaugeCardProps?: GaugeCardProps; + inAccordion?: boolean; + mapTitle?: ManageTechInsightsMapTitle; +} + +// @public +export function manageTechInsightsColumns( + options?: ManageTechInsightsOptions, +): ManageColumnModule; + +// @public +export function ManageTechInsightsGrid( + props: ManageTechInsightsGridProps, +): React_2.JSX.Element; + +// @public +export interface ManageTechInsightsGridProps { + inAccordion?: boolean; + mapTitle?: ManageTechInsightsMapTitle; +} + +// @public (undocumented) +export type ManageTechInsightsMapTitle = ( + check: Check, +) => ManageTechInsightsTitle; + +// @public +export interface ManageTechInsightsOptions { + checkFilter?: (check: Check) => boolean; + combined?: boolean; + showEmpty?: boolean; +} + +// @public (undocumented) +export type ManageTechInsightsTitle = + | ManageTechInsightsTitleAsObject + | ManageTechInsightsTitleAsElement; + +// @public (undocumented) +export type ManageTechInsightsTitleAsElement = { + content: ReactNode; +}; + +// @public (undocumented) +export type ManageTechInsightsTitleAsObject = { + title: string; + tooltip?: ReactNode; +}; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/api/DefaultManageTechInsightsApi.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/api/DefaultManageTechInsightsApi.ts new file mode 100644 index 000000000..52531f16c --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/api/DefaultManageTechInsightsApi.ts @@ -0,0 +1,77 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import type { ProgressColor } from '@backstage-community/plugin-manage-react'; + +import type { ManageTechInsights } from './ManageTechInsights'; +import { ManageProviderTechInsights } from '../components/ManageProvider'; +import { ManageTechInsightsMapTitle } from '../title'; + +function defaultGetPercentColor(percent: number): ProgressColor { + if (percent >= 100) return 'success'; + else if (percent > 50) return 'warning'; + return 'error'; +} + +/** + * Options for the {@link DefaultManageTechInsightsApi}. + * + * @public + */ +export interface DefaultManageApiOptions { + /** + * Custom filter to only show certain checks. + */ + checkFilter?: (check: Check) => boolean; + + /** + * Override the default colors for gauges. + * + * @param percent - number between 0 and 100 + */ + getPercentColor?: (percent: number) => ProgressColor; + + /** + * The default mapping of checks to titles for the + * {@link ManageTechInsightsCards} and {@link ManageTechInsightsGrid} + * components. + */ + mapTitle?: ManageTechInsightsMapTitle; +} + +const defaultMapTitle: ManageTechInsightsMapTitle = check => ({ + title: check.name, + tooltip: check.description, +}); + +/** + * Default implementation of the {@link ManageTechInsights} API. + * + * @public + */ +export class DefaultManageTechInsightsApi implements ManageTechInsights { + readonly checkFilter: (check: Check) => boolean; + readonly getPercentColor: (percent: number) => ProgressColor; + readonly mapTitle: ManageTechInsightsMapTitle; + + public constructor(options: DefaultManageApiOptions = {}) { + this.checkFilter = options.checkFilter ?? (() => true); + this.getPercentColor = options.getPercentColor ?? defaultGetPercentColor; + this.mapTitle = options.mapTitle ?? defaultMapTitle; + } + + getProvider = () => ManageProviderTechInsights; +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/api/ManageTechInsights.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/api/ManageTechInsights.ts new file mode 100644 index 000000000..0d99b5a75 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/api/ManageTechInsights.ts @@ -0,0 +1,45 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import type { + ManageModuleApi, + ProgressColor, +} from '@backstage-community/plugin-manage-react'; +import { ManageTechInsightsMapTitle } from '../title'; + +/** + * ManageTechInsights API, which is a `ManageModuleApi` with additional + * features used in the manage-module-tech-insights plugin. + * + * @public + */ +export interface ManageTechInsights extends ManageModuleApi { + /** + * Custom filter to only show certain checks. + */ + checkFilter: (check: Check) => boolean; + + /** + * Function to deduce what color to use of percentage gauges. + */ + getPercentColor: (percent: number) => ProgressColor; + + /** + * The mapping of checks to titles for the `ManageTechInsightsCards` and + * `ManageTechInsightsGrid` + */ + mapTitle: ManageTechInsightsMapTitle; +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/api/api.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/api/api.ts new file mode 100644 index 000000000..c8ee48592 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/api/api.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createApiRef } from '@backstage/core-plugin-api'; + +import type { ManageTechInsights } from './ManageTechInsights'; + +/** + * ApiRef for the manage tech insights plugin. + * + * @public + */ +export const manageTechInsightsApiRef = createApiRef({ + id: 'manage-tech-insights', +}); diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/api/impl.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/api/impl.ts new file mode 100644 index 000000000..9cccba6f8 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/api/impl.ts @@ -0,0 +1,37 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createApiFactory } from '@backstage/core-plugin-api'; + +import type { DefaultManageApiOptions } from './DefaultManageTechInsightsApi'; +import { DefaultManageTechInsightsApi } from './DefaultManageTechInsightsApi'; +import { manageTechInsightsApiRef } from './api'; + +/** + * Factory for creating the manage tech insights API. + * + * @public + */ +export function createManageTechInsightsApiFactory( + options?: DefaultManageApiOptions, +) { + return createApiFactory({ + api: manageTechInsightsApiRef, + deps: {}, + factory() { + return new DefaultManageTechInsightsApi(options); + }, + }); +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/api/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/api/index.ts new file mode 100644 index 000000000..82790d587 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/api/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageTechInsights } from './ManageTechInsights'; + +export type { DefaultManageApiOptions } from './DefaultManageTechInsightsApi'; +export { DefaultManageTechInsightsApi } from './DefaultManageTechInsightsApi'; + +export { manageTechInsightsApiRef } from './api'; +export { createManageTechInsightsApiFactory } from './impl'; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/columns/NoData.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/NoData.tsx new file mode 100644 index 000000000..6a1d775f0 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/NoData.tsx @@ -0,0 +1,35 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; + +import { makeStyles } from '@mui/styles'; +import Tooltip from '@mui/material/Tooltip'; + +const useStyles = makeStyles((theme: any) => ({ + root: { + paddingLeft: theme.spacing(2), + }, +})); + +export function NoData() { + const { root } = useStyles(); + + return ( + +
+
+ ); +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-multiple.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-multiple.tsx new file mode 100644 index 000000000..3239f6df1 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-multiple.tsx @@ -0,0 +1,79 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useMemo } from 'react'; + +import { stringifyEntityRef } from '@backstage/catalog-model'; +import { TechInsightsCheckIcon } from '@backstage-community/plugin-tech-insights'; +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import { + ColumnIconError, + type ManageColumn, + type GetColumnsFunc, +} from '@backstage-community/plugin-manage-react'; + +import { eqCheck } from '../utils'; + +import { useEntityInsights } from './hooks'; +import { NoData } from './NoData'; + +export function makeGetColumns( + checkFilter: ((check: Check) => boolean) | undefined, + showEmpty: boolean, +): GetColumnsFunc { + return function useColumns(entities): ManageColumn[] { + const { responses, checks } = useEntityInsights( + entities, + checkFilter, + showEmpty, + ); + + return useMemo( + () => + checks.map( + (check): ManageColumn => ({ + id: `tech-insights-${check.id}`, + title: check.name, + render: ({ entity }) => { + const entityRef = stringifyEntityRef(entity); + const response = responses.get(entityRef); + if (!response) { + return <>; + } + + const foundCheck = response.find(res => + eqCheck(res.check, check), + ); + + if (!foundCheck) { + return ; + } + + return ( + + } + /> + ); + }, + }), + ), + [checks, responses], + ); + }; +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-single.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-single.tsx new file mode 100644 index 000000000..83a9bbe1c --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns-single.tsx @@ -0,0 +1,182 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useMemo } from 'react'; + +import Tooltip from '@mui/material/Tooltip'; +import List from '@mui/material/List'; +import ListItem from '@mui/material/ListItem'; +import ListItemIcon from '@mui/material/ListItemIcon'; +import ListItemText from '@mui/material/ListItemText'; +import Grid from '@mui/material/Grid'; +import Typography from '@mui/material/Typography'; + +import { useApi } from '@backstage/core-plugin-api'; +import { Entity, stringifyEntityRef } from '@backstage/catalog-model'; +import { TechInsightsCheckIcon } from '@backstage-community/plugin-tech-insights'; +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import { + ColumnIconError, + ColumnIconPercent, + type ManageColumn, + type GetColumnFunc, + ProgressColor, +} from '@backstage-community/plugin-manage-react'; + +import { eqCheck } from '../utils'; +import { manageTechInsightsApiRef } from '../api'; + +import { useEntityInsights, UseEntityInsightsResult } from './hooks'; +import { NoData } from './NoData'; + +interface CombinedColumnProps { + entity: Entity; + useEntityInsightsResult: UseEntityInsightsResult; + getPercentColor: (percent: number) => ProgressColor; +} + +function CombinedColumn(props: CombinedColumnProps) { + const { + entity, + useEntityInsightsResult: { responses, checks, renderers }, + getPercentColor, + } = props; + + const entityRef = stringifyEntityRef(entity); + const results = responses.get(entityRef); + if (!results) { + return ; + } + + // Order the results the same way all the time + const validResults = checks + .flatMap(check => + results + .filter(res => eqCheck(res.check, check)) + .map(result => ({ + result, + renderer: renderers.get(result.check.type), + })), + ) + .filter((v): v is NonNullable => !!v); + + const tooltipList = validResults + .map(({ result }) => { + return ( + + + + } + /> + + + + ); + }) + .filter((v): v is NonNullable => !!v); + + const wrapTooltip = (child: JSX.Element) => + tooltipList.length === 0 ? ( + child + ) : ( + + {tooltipList} + + } + children={child} + /> + ); + + if (!validResults.length) { + return ; + } + + const succeeded = validResults.filter( + ({ result, renderer }) => !renderer?.isFailed?.(result), + ).length; + const rate = succeeded / validResults.length; + + const percent = Math.round(rate * 100); + + const color = getPercentColor(percent); + + return ( + + {wrapTooltip( + +
+ +
+
, + )} + + + {succeeded}/{validResults.length} + + +
+ ); +} + +export function makeGetColumn( + checkFilter: ((check: Check) => boolean) | undefined, + showEmpty: boolean, +): GetColumnFunc { + return function useColumn(entities): ManageColumn { + const { getPercentColor } = useApi(manageTechInsightsApiRef); + + const useEntityInsightsResult = useEntityInsights( + entities, + checkFilter, + showEmpty, + ); + + // We need unique id's for the columns if their render function has changed, + // or there's gonna be a UI warning from material-table + const id = useMemo(() => { + const newId = `${Math.random() * 1.001}`.slice(2); + return newId; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [useEntityInsightsResult, getPercentColor]); + + return useMemo( + () => ({ + id: `tech-insights-merged-result-${id}`, + title: 'Tech Insights', + render: ({ entity }) => { + return ( + + ); + }, + }), + [id, useEntityInsightsResult, getPercentColor], + ); + }; +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns.tsx new file mode 100644 index 000000000..fd0f2997f --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/columns.tsx @@ -0,0 +1,56 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import type { ManageColumnModule } from '@backstage-community/plugin-manage-react'; + +import { makeGetColumn } from './columns-single'; +import { makeGetColumns } from './columns-multiple'; + +/** + * Options for {@link manageTechInsightsColumns}. + * + * @public + */ +export interface ManageTechInsightsOptions { + /** Combine all checks into a single columns with percentage bar */ + combined?: boolean; + + /** Only use these checks (defaults to all). */ + checkFilter?: (check: Check) => boolean; + + /** Also show checks that are empty for all entities of the certain kind. */ + showEmpty?: boolean; +} + +/** + * Create a column module for displaying tech insights checks. + * + * @public + */ +export function manageTechInsightsColumns( + options?: ManageTechInsightsOptions, +): ManageColumnModule { + const { combined = false, checkFilter, showEmpty = false } = options ?? {}; + + if (combined) { + return { + getColumn: makeGetColumn(checkFilter, showEmpty), + }; + } + return { + getColumns: makeGetColumns(checkFilter, showEmpty), + }; +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/columns/hooks.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/hooks.ts new file mode 100644 index 000000000..35cfa767a --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/hooks.ts @@ -0,0 +1,52 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useApi } from '@backstage/core-plugin-api'; +import { Entity } from '@backstage/catalog-model'; +import { techInsightsApiRef } from '@backstage-community/plugin-tech-insights'; +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; + +import { useManageTechInsights } from '../components/ManageProvider'; +import { filterEmptyChecks, stringifyCheck } from '../utils'; + +export function useEntityInsights( + entities: Entity[], + checkFilter: ((check: Check) => boolean) | undefined, + showEmpty: boolean, +) { + const { allChecks, bulkCheckResponse, renderers } = + useManageTechInsights(checkFilter); + const techInsightsApi = useApi(techInsightsApiRef); + + const { usedChecks, responses } = filterEmptyChecks( + bulkCheckResponse, + entities, + showEmpty, + ); + + const filteredChecks = allChecks.filter(check => + showEmpty ? true : usedChecks.has(stringifyCheck(check)), + ); + + return { + techInsightsApi, + responses, + checks: filteredChecks, + renderers, + }; +} + +export type UseEntityInsightsResult = ReturnType; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/columns/index.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/index.tsx new file mode 100644 index 000000000..f9b409eff --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/columns/index.tsx @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageTechInsightsOptions } from './columns'; +export { manageTechInsightsColumns } from './columns'; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/Cards.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/Cards.tsx new file mode 100644 index 000000000..a75c7debe --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/Cards.tsx @@ -0,0 +1,167 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { ReactNode, useCallback } from 'react'; + +import { makeStyles } from '@mui/styles'; +import Box from '@mui/material/Box'; +import Grid, { GridOwnProps } from '@mui/material/Grid'; +import Tooltip from '@mui/material/Tooltip'; + +import { useApi } from '@backstage/core-plugin-api'; +import { GaugePropsGetColor } from '@backstage/core-components'; +import { + useCurrentKinds, + useOwnedEntities, + GaugeCard, + GaugeCardProps, + ManageAccordion, +} from '@backstage-community/plugin-manage-react'; + +import { + ResponsesForCheck, + useManageTechInsightsForEntities, +} from '../ManageProvider/ManageProviderTechInsights'; +import { manageTechInsightsApiRef } from '../../api'; +import { + isTitleAsObject, + ManageTechInsightsMapTitle, + ManageTechInsightsTitle, +} from '../../title'; +import { useAccordionTitle } from '../../utils'; + +const useStyles = makeStyles({ + root: { + cursor: 'default', + }, +}); + +/** + * Props for {@link ManageTechInsightsCards}. + * + * @public + */ +export interface ManageTechInsightsCardsProps { + containerProps?: Pick< + GridOwnProps, + | 'classes' + | 'columns' + | 'columnSpacing' + | 'direction' + | 'rowSpacing' + | 'spacing' + | 'sx' + | 'wrap' + | 'zeroMinWidth' + >; + gaugeCardProps?: GaugeCardProps; + + /** + * Map the title of the check to either an object `{ title, tooltip? }` or to + * a JSX element. + */ + mapTitle?: ManageTechInsightsMapTitle; + + /** + * Render the cards inside an accordion. + * + * Defaults to false. + */ + inAccordion?: boolean; +} + +function Title({ + titleInfo, +}: { + titleInfo: ManageTechInsightsTitle; +}): ReactNode { + const { root } = useStyles(); + + if (isTitleAsObject(titleInfo)) { + return titleInfo.tooltip ? ( + +
{titleInfo.title}
+
+ ) : ( +
{titleInfo.title}
+ ); + } + return
{titleInfo.content}
; +} + +/** + * Display a set of cards for the tech insights checks given the current shown + * entities. + * + * @public + */ +export function ManageTechInsightsCards(props: ManageTechInsightsCardsProps) { + const { containerProps, gaugeCardProps, inAccordion } = props; + + const kinds = useCurrentKinds(); + const entities = useOwnedEntities(kinds); + + const { checks, responsesForCheck } = + useManageTechInsightsForEntities(entities); + + const { getPercentColor, mapTitle: defaultMapTitle } = useApi( + manageTechInsightsApiRef, + ); + + const mapTitle = props.mapTitle ?? defaultMapTitle; + + const getRatio = (theseResponses: ResponsesForCheck) => { + const tot = theseResponses.length; + const succ = tot - theseResponses.filter(resp => resp.failed).length; + + return tot === 0 ? 1 : succ / tot; + }; + + const getColor = useCallback( + args => { + const rawColor = getPercentColor(args.value); + const muiColor = + rawColor === 'inherit' ? 'inherit' : args.palette[rawColor].main; + + return muiColor; + }, + [getPercentColor], + ); + + const grid = ( + + {checks.map(({ check, uniq }) => ( + + } + getColor={getColor} + /> + + ))} + + ); + + const accordionTitle = useAccordionTitle(); + + return inAccordion ? ( + + {grid} + + ) : ( + {grid} + ); +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/index.ts new file mode 100644 index 000000000..f6ab6b228 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Cards/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageTechInsightsCardsProps } from './Cards'; +export { ManageTechInsightsCards } from './Cards'; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/Grid.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/Grid.tsx new file mode 100644 index 000000000..f0d9316f8 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/Grid.tsx @@ -0,0 +1,146 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { ReactNode, useCallback, useMemo } from 'react'; + +import { makeStyles, useTheme } from '@mui/styles'; +import Box from '@mui/material/Box'; +import Tooltip from '@mui/material/Tooltip'; + +import { useApi } from '@backstage/core-plugin-api'; +import { + useCurrentKinds, + useOwnedEntities, + GaugeGrid, + ManageAccordion, +} from '@backstage-community/plugin-manage-react'; + +import { + ResponsesForCheck, + useManageTechInsightsForEntities, +} from '../ManageProvider/ManageProviderTechInsights'; +import { manageTechInsightsApiRef } from '../../api'; +import { + isTitleAsObject, + ManageTechInsightsMapTitle, + ManageTechInsightsTitle, +} from '../../title'; +import { useAccordionTitle } from '../../utils'; + +const useStyles = makeStyles({ + root: { + cursor: 'default', + }, +}); + +/** + * Props for {@link ManageTechInsightsGrid}. + * + * @public + */ +export interface ManageTechInsightsGridProps { + /** + * Map the title of the check to either an object `{ title, tooltip? }` or to + * a JSX element. + */ + mapTitle?: ManageTechInsightsMapTitle; + + /** + * Render the grid inside an accordion. + * + * Defaults to true. + */ + inAccordion?: boolean; +} + +function Title({ + titleInfo, +}: { + titleInfo: ManageTechInsightsTitle; +}): ReactNode { + const { root } = useStyles(); + + if (isTitleAsObject(titleInfo)) { + return titleInfo.tooltip ? ( + +
{titleInfo.title}
+
+ ) : ( +
{titleInfo.title}
+ ); + } + return
{titleInfo.content}
; +} + +/** + * Display a set of grid boxes for the tech insights checks given the current + * shown entities. + * + * @public + */ +export function ManageTechInsightsGrid(props: ManageTechInsightsGridProps) { + const { palette } = useTheme(); + const kinds = useCurrentKinds(); + const entities = useOwnedEntities(kinds); + + const { inAccordion = true } = props; + + const { checks, responsesForCheck } = + useManageTechInsightsForEntities(entities); + + const { getPercentColor, mapTitle: defaultMapTitle } = useApi( + manageTechInsightsApiRef, + ); + + const mapTitle = props.mapTitle ?? defaultMapTitle; + + const getRatio = (theseResponses: ResponsesForCheck) => { + const tot = theseResponses.length; + const succ = tot - theseResponses.filter(resp => resp.failed).length; + + return tot === 0 ? 1 : succ / tot; + }; + + const getColor = useCallback( + (progress: number) => { + const rawColor = getPercentColor(progress * 100); + const muiColor = + rawColor === 'inherit' + ? 'inherit' + : palette[rawColor]?.main ?? 'inherit'; + return muiColor; + }, + [getPercentColor, palette], + ); + + const items = useMemo(() => { + return checks.map(({ check, uniq }) => ({ + title: , + progress: getRatio(responsesForCheck.get(uniq) ?? []), + })); + }, [checks, mapTitle, responsesForCheck]); + + const accordionTitle = useAccordionTitle(); + + return inAccordion ? ( + <ManageAccordion title={accordionTitle} name="tech-insights"> + <GaugeGrid items={items} getColor={getColor} /> + </ManageAccordion> + ) : ( + <Box> + <GaugeGrid items={items} getColor={getColor} /> + </Box> + ); +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/index.ts new file mode 100644 index 000000000..0d5ea993c --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/components/Grid/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageTechInsightsGridProps } from './Grid'; +export { ManageTechInsightsGrid } from './Grid'; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/ManageProviderTechInsights.tsx b/workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/ManageProviderTechInsights.tsx new file mode 100644 index 000000000..5198976ba --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/ManageProviderTechInsights.tsx @@ -0,0 +1,202 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { + PropsWithChildren, + createContext, + useContext, + useMemo, +} from 'react'; + +import useAsync from 'react-use/lib/useAsync'; + +import { useApi } from '@backstage/core-plugin-api'; +import { + Entity, + parseEntityRef, + stringifyEntityRef, +} from '@backstage/catalog-model'; +import { + CheckResultRenderer, + techInsightsApiRef, +} from '@backstage-community/plugin-tech-insights'; +import { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import { + BulkCheckResponse, + CheckResult, +} from '@backstage-community/plugin-tech-insights-common'; +import { useManagedEntities } from '@backstage-community/plugin-manage-react'; + +import { stringifyCheck } from '../../utils'; +import { manageTechInsightsApiRef } from '../../api/api'; + +/** + * @internal + */ +export interface ManageTechInsightsContext { + allChecks: Check[]; + bulkCheckResponse: BulkCheckResponse | undefined; + renderers: Map<string, CheckResultRenderer>; +} + +const ctx = createContext<ManageTechInsightsContext>(undefined as any); + +const { Provider } = ctx; + +/** @public */ +export function ManageProviderTechInsights(props: PropsWithChildren<{}>) { + const techInsightsApi = useApi(techInsightsApiRef); + const ownedEntities = useManagedEntities(); + + const asyncState = useAsync(async () => { + const entityRefs = ownedEntities.map(entity => + parseEntityRef(stringifyEntityRef(entity)), + ); + + const [allChecks, bulkCheckResponse] = await Promise.all([ + techInsightsApi.getAllChecks(), + techInsightsApi.runBulkChecks(entityRefs), + ]); + + return { allChecks, bulkCheckResponse }; + }, [ownedEntities, techInsightsApi]); + + const state: ManageTechInsightsContext = useMemo(() => { + const allChecks = asyncState.value?.allChecks ?? []; + const bulkCheckResponse = asyncState.value?.bulkCheckResponse; + + const allRenderers = techInsightsApi.getCheckResultRenderers( + allChecks.map(check => check.type), + ); + const renderers = new Map( + allRenderers.map(renderer => [renderer.type, renderer]), + ); + + return { + allChecks, + bulkCheckResponse, + renderers, + }; + }, [asyncState.value, techInsightsApi]); + + return <Provider value={state} children={props.children} />; +} + +/** + * @internal + */ +export function useManageTechInsights(checkFilter?: (check: Check) => boolean) { + const manageTechInsightsApi = useApi(manageTechInsightsApiRef); + const context = useContext(ctx); + + const filter = checkFilter ?? manageTechInsightsApi.checkFilter; + + return useMemo(() => { + return { + ...context, + allChecks: context.allChecks.filter(filter), + bulkCheckResponse: (context.bulkCheckResponse ?? []).map(response => ({ + ...response, + results: response.results.filter(res => filter(res.check)), + })), + }; + }, [context, filter]); +} + +/** + * @internal + */ +export type ResponsesForCheck = Array<{ + entity: string; + result: CheckResult; + renderer: CheckResultRenderer | undefined; + failed: boolean; +}>; + +/** + * @internal + */ +export interface DecoratedCheck { + uniq: string; + renderer: CheckResultRenderer | undefined; + check: Check; +} + +/** + * @internal + */ +export interface UseManageTechInsightsForEntitiesResult { + checks: DecoratedCheck[]; + responses: BulkCheckResponse; + responsesForCheck: Map<string, ResponsesForCheck>; +} + +/** + * @internal + */ +export function useManageTechInsightsForEntities( + entities: Entity[], + checkFilter?: (check: Check) => boolean, +): UseManageTechInsightsForEntitiesResult { + const { allChecks, bulkCheckResponse, renderers } = + useManageTechInsights(checkFilter); + + return useMemo((): UseManageTechInsightsForEntitiesResult => { + const entitySet = new Set( + entities.map(entity => + stringifyEntityRef(entity).toLocaleLowerCase('en-US'), + ), + ); + + const responses = (bulkCheckResponse ?? []).filter(resp => + entitySet.has(resp.entity.toLocaleLowerCase('en-US')), + ); + + const responsesForCheck = new Map<string, ResponsesForCheck>(); + + const uniqueChecks = new Set( + responses.flatMap(resp => + resp.results.map(chkRes => { + const stringified = stringifyCheck(chkRes.check); + + const renderer = renderers.get(chkRes.check.type); + + const checkResponses = responsesForCheck.get(stringified) ?? []; + checkResponses.push({ + entity: resp.entity, + result: chkRes, + renderer, + failed: !renderer?.isFailed ? false : renderer.isFailed(chkRes), + }); + responsesForCheck.set(stringified, checkResponses); + + return stringified; + }), + ), + ); + + const checks = allChecks + .filter(check => uniqueChecks.has(stringifyCheck(check))) + .map( + (check): DecoratedCheck => ({ + check, + uniq: stringifyCheck(check), + renderer: renderers.get(check.type), + }), + ); + + return { checks, responses, responsesForCheck }; + }, [allChecks, bulkCheckResponse, renderers, entities]); +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/index.ts new file mode 100644 index 000000000..e61890675 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/components/ManageProvider/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageTechInsightsContext } from './ManageProviderTechInsights'; +export { + ManageProviderTechInsights, + useManageTechInsights, +} from './ManageProviderTechInsights'; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/components/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/components/index.ts new file mode 100644 index 000000000..fbc305385 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/components/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageTechInsightsCardsProps } from './Cards'; +export { ManageTechInsightsCards } from './Cards'; + +export type { ManageTechInsightsGridProps } from './Grid'; +export { ManageTechInsightsGrid } from './Grid'; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/index.ts new file mode 100644 index 000000000..e10231354 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/index.ts @@ -0,0 +1,32 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type * from './api'; +export * from './api'; + +export type * from './components'; +export * from './components'; + +export type { ManageProviderTechInsights } from './components/ManageProvider'; + +export type { ManageTechInsightsOptions } from './columns'; +export { manageTechInsightsColumns } from './columns'; + +export type { + ManageTechInsightsTitleAsObject, + ManageTechInsightsTitleAsElement, + ManageTechInsightsTitle, + ManageTechInsightsMapTitle, +} from './title'; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/setupTests.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/setupTests.ts new file mode 100644 index 000000000..c7ce5c098 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/title/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/title/index.ts new file mode 100644 index 000000000..601b6dedd --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/title/index.ts @@ -0,0 +1,45 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { ReactNode } from 'react'; + +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; + +/** @public */ +export type ManageTechInsightsTitleAsObject = { + title: string; + tooltip?: ReactNode; +}; + +/** @public */ +export type ManageTechInsightsTitleAsElement = { content: ReactNode }; + +/** @public */ +export type ManageTechInsightsTitle = + | ManageTechInsightsTitleAsObject + | ManageTechInsightsTitleAsElement; + +/** @public */ +export type ManageTechInsightsMapTitle = ( + check: Check, +) => ManageTechInsightsTitle; + +export function isTitleAsObject( + titleInfo: ManageTechInsightsTitle, +): titleInfo is ManageTechInsightsTitleAsObject { + return ( + typeof (titleInfo as ManageTechInsightsTitleAsObject).title !== 'undefined' + ); +} diff --git a/workspaces/manage/plugins/manage-module-tech-insights/src/utils/index.ts b/workspaces/manage/plugins/manage-module-tech-insights/src/utils/index.ts new file mode 100644 index 000000000..4737defb1 --- /dev/null +++ b/workspaces/manage/plugins/manage-module-tech-insights/src/utils/index.ts @@ -0,0 +1,79 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { stringifyEntityRef, type Entity } from '@backstage/catalog-model'; + +import type { Check } from '@backstage-community/plugin-tech-insights-common/client'; +import type { + BulkCheckResponse, + CheckResponse, + CheckResult, +} from '@backstage-community/plugin-tech-insights-common'; +import { useCurrentKindTitle } from '@backstage-community/plugin-manage-react'; + +export function stringifyCheck(check: Check | CheckResponse): string { + return `${check.id}-${check.name}-${check.type}`; +} + +export function eqCheck(a: Check | CheckResponse, b: Check | CheckResponse) { + return stringifyCheck(a) === stringifyCheck(b); +} + +/** + * Given a bulk response, it filters checks that are defined for the given + * entities. + * + * It also filters out checks that are undefined for all entities, if chosen to. + * + * Returns: + * { + * responses: Map<entity string ref, CheckResult[]> + * usedChecks: Set<string> // stringified checks + * } + * + * @internal + */ +export function filterEmptyChecks( + bulkCheckResponse: BulkCheckResponse | undefined, + entities: Entity[], + includeEmpty = false, +): { responses: Map<string, CheckResult[]>; usedChecks: Set<string> } { + const responses = new Map<string, CheckResult[]>(); + + const usedChecks = new Set<string>(); + + const entitiesSet = new Set( + entities.map(entity => stringifyEntityRef(entity)), + ); + + bulkCheckResponse + ?.filter(resp => entitiesSet.has(resp.entity)) + ?.forEach(resp => { + responses.set(resp.entity, resp.results); + + resp.results.forEach(res => { + if (includeEmpty || typeof res.result !== 'undefined') + usedChecks.add(stringifyCheck(res.check)); + }); + }); + + return { responses, usedChecks }; +} + +export function useAccordionTitle() { + const kindTitle = useCurrentKindTitle(); + + return `Tech insights of your ${kindTitle}`; +} diff --git a/workspaces/manage/plugins/manage-react/.eslintrc.js b/workspaces/manage/plugins/manage-react/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/manage/plugins/manage-react/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/manage/plugins/manage-react/README.md b/workspaces/manage/plugins/manage-react/README.md new file mode 100644 index 000000000..fbca96d57 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/README.md @@ -0,0 +1,86 @@ +# Manage, react package + +This package is used by the Manage plugin, and contains components and hooks useful for building components to be used in the Manage page, in an entity tab or outside, or an entity table column. + +It also acts as the base for all packages that extends the entity table columns and need a provider. Those packages can provide an api ref of a type that extends the exported type `ManageModuleApi`. When defining the `manageApiRef`, an implementor can add this api ref when doing `createManageApiFactory([...])`. + +The hooks in this package can generally be used anywhere in the manage page unless stated otherwise. + +## Hooks + +### useOwnedKinds + +Returns the kinds configured in the ManagePage component (or defaults to the original kinds in Backstage). If the parameter `onlyOwned` is true, it will only return the kinds of entities actually owned by the user. + +### useOwnedEntities + +Returns an array of all owned entities. By passing a kind (or array of kinds) as parameter, only entities of those kinds are returned. + +### useManagedEntities + +Returns all managed entities, i.e. owned entities and starred entities. + +### useOwners + +Returns an object on the form: + +```ts +{ + groups: Entity[]; + ownedEntityRefs: string[]; +} +``` + +`ownedEntityRefs` is a list of entity refs for all owners (incl. the current user). `groups` is a list of `Entity` objects for the owners that are groups. + +These lists are ordered by: + +1. Immediate group membership +2. Groups higher up the group hierarchy +3. User + +Within each such category, the entities are ordered by their title/name alpha-numerically. + +### useCurrentKind + +Returns the _current_ kind, if used within an entity tab. If called from outside an entity tab, returns `undefined`. + +### useCurrentKinds + +Same as `useCurrentKind` but returns an array of kinds, either only the _current_ kind, but fallbacks to the result of `useOwnedKinds`, + +### useCurrentKindTitle + +Returns the name (title) of the current kind, e.g. "components" or "systems". Can also be "entities" if the combined view is used, or "starred entities" if that tab is active. + +This can be used by modules that extend the page, and is currently used by `@backstage-community/plugin-manage-module-tech-insights` for the accordion title. + +## Components + +### Accordion + +This is a MUI Accordion with the expanded state saved in user settings. + +### GaugeCard + +This is the `@backstage/core-components` `GuageCard` component with pre-defined props to make them appear the same, when showing multiple gauges from different plugin modules. + +### GaugeGrid + +Similar to `GaugeCard`, `GaugeGrid` can be used instead, which shows smaller cards for each Gauge. + +### ColumnIconError + +When implementing a column provider, this component can act as a fallback error icon. + +### ColumnIconPercent + +When implementing a column provider, this component can show a (circular) percentage gauge. + +### ReorderableTabs + +A component rendering tabs (although as a button group) with drag-and-drop support. This is used in the Settings page to give the user the ability to reorder the tabs and kinds. + +### TabContentFullHeight + +The helper component `TabContentFullHeight` can be used as a wrapper around the content for a tab. It sets its exact height to adapt to the screen size (and updates when the window changes size). The optional boolean prop `resizeChild` which can be set to also update the size of the (one and only) child component. The prop `bottomMargin` can be used to set a bottom margin other than the default. diff --git a/workspaces/manage/plugins/manage-react/catalog-info.yaml b/workspaces/manage/plugins/manage-react/catalog-info.yaml new file mode 100644 index 000000000..082092ca9 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/catalog-info.yaml @@ -0,0 +1,10 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage-plugin-manage-react + title: '@backstage/plugin-manage-react' + description: Manage page. React components. +spec: + lifecycle: experimental + type: backstage-frontend-plugin + owner: maintainers diff --git a/workspaces/manage/plugins/manage-react/package.json b/workspaces/manage/plugins/manage-react/package.json new file mode 100644 index 000000000..4a4521c45 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/package.json @@ -0,0 +1,73 @@ +{ + "name": "@backstage-community/plugin-manage-react", + "description": "Manage plugin - react package", + "version": "0.1.0", + "backstage": { + "role": "web-library", + "pluginId": "manage", + "pluginPackages": [ + "@backstage-community/plugin-manage", + "@backstage-community/plugin-manage-react" + ] + }, + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/manage-react" + }, + "keywords": [ + "backstage", + "manage", + "page", + "manage-page", + "components" + ], + "sideEffects": false, + "scripts": { + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/catalog-model": "^1.7.3", + "@backstage/core-components": "^0.16.3", + "@backstage/core-plugin-api": "^1.10.3", + "@backstage/plugin-catalog-react": "^1.15.1", + "@backstage/types": "^1.2.1", + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@dnd-kit/sortable": "^10.0.0", + "@mui/icons-material": "^5.16.7", + "@mui/material": "^5.15.16", + "@mui/styles": "^5", + "already": "^2.2.1", + "pluralize": "^8.0.0", + "react-use": "^17.5.0" + }, + "peerDependencies": { + "@dnd-kit/utilities": "*", + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + }, + "devDependencies": { + "@backstage/cli": "^0.29.5", + "@types/pluralize": "^0.0.33", + "@types/react": "^18.3.12" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/manage/plugins/manage-react/report.api.md b/workspaces/manage/plugins/manage-react/report.api.md new file mode 100644 index 000000000..8c562a4a5 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/report.api.md @@ -0,0 +1,417 @@ +## API Report File for "@backstage-community/plugin-manage-react" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +/// <reference types="react" /> + +import { ApiFactory } from '@backstage/core-plugin-api'; +import { ApiRef } from '@backstage/core-plugin-api'; +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { CircularProgressProps } from '@mui/material/CircularProgress'; +import { ComponentProps } from 'react'; +import type { ComponentType } from 'react'; +import { Entity } from '@backstage/catalog-model'; +import { GaugeCard as GaugeCard_2 } from '@backstage/core-components'; +import { GaugePropsGetColor } from '@backstage/core-components'; +import { GridOwnProps } from '@mui/material/Grid'; +import { JsonValue } from '@backstage/types'; +import { PropsWithChildren } from 'react'; +import { default as React_2 } from 'react'; +import { ReactNode } from 'react'; + +// @public +export interface ApiFactoryOptions { + extensions?: Iterable<ManageModuleApiRef>; + kindOrder?: string[]; +} + +// @public +export function arrayify<T>(t: T | T[] | Iterable<T> | undefined): T[]; + +// @public +export function ColumnIconError( + props: ColumnIconErrorProps, +): React_2.JSX.Element; + +// @public +export interface ColumnIconErrorProps { + title?: string; +} + +// @public +export function ColumnIconPercent( + props: ColumnIconPercentProps, +): React_2.JSX.Element; + +// @public +export interface ColumnIconPercentProps { + // (undocumented) + color?: ProgressColor; + // (undocumented) + percent: number; + // (undocumented) + title?: string; +} + +// @public +export function createManageApiFactory(options?: ApiFactoryOptions): ApiFactory< + ManageApi, + DefaultManageApi, + { + [x: string]: any; + } +>; + +// @public +export function createUserSettingsContext<T extends JsonValue>( + feature: string, + settingsKey: string, + options?: CreateUserSettingsContextOptions<T>, +): UserSettingsContextResult<T>; + +// @public (undocumented) +export interface CreateUserSettingsContextOptions<T extends JsonValue> { + coerce?: (value: JsonValue) => T; + // (undocumented) + defaultValue?: T | undefined; +} + +// @public +export function CurrentKindProvider( + props: PropsWithChildren< + | { + kind: string; + starred?: never; + } + | { + kind?: never; + starred: true; + } + >, +): React_2.JSX.Element; + +// @public +export class DefaultManageApi implements ManageApi { + constructor({ kindOrder, providers }: DefaultManageApiOptions); + // (undocumented) + getProviders: () => readonly ManageProvider[]; + // (undocumented) + readonly kindOrder: string[]; +} + +// @public (undocumented) +export interface DefaultManageApiOptions { + kindOrder?: string[]; + providers: Iterable<ManageModuleApi>; +} + +// @public (undocumented) +export const GaugeCard: ManageGaugeCard; + +// @public (undocumented) +export type GaugeCardProps = Pick< + ComponentProps<typeof GaugeCard_2>, + 'size' | 'alignGauge' | 'variant' | 'description' | 'subheader' +>; + +// @public (undocumented) +export const GaugeGrid: ManageGaugeGrid; + +// @public (undocumented) +export type GetColumnFunc = (entities: Entity[]) => ManageColumn; + +// @public (undocumented) +export type GetColumnsFunc = (entities: Entity[]) => ManageColumn[]; + +// @public +export function isManageColumnModuleMultiple( + column: ManageColumnModule, +): column is ManageColumnModuleMultiple; + +// @public (undocumented) +export interface ItemWithKey<T> { + // (undocumented) + key: string; + // (undocumented) + value: T; +} + +// @public +export const KindOrderProvider: (props: { + children?: ReactNode; +}) => JSX.Element; + +// @public +export const KindStarred: unique symbol; + +// @public (undocumented) +export type KindStarredType = typeof KindStarred; + +// @public +export function ManageAccordion( + props: PropsWithChildren<ManageAccordionProps>, +): React_2.JSX.Element; + +// @public +export interface ManageAccordionProps { + defaultExpanded?: boolean; + name: string; + perKind?: boolean; + title: string; +} + +// @public (undocumented) +export interface ManageApi { + getProviders(): Iterable<ManageProvider>; + readonly kindOrder: string[]; +} + +// @public +export const manageApiRef: ApiRef<ManageApi>; + +// @public (undocumented) +export interface ManageColumn { + // (undocumented) + id: string; + // (undocumented) + render: (opts: { entity: Entity }) => ReactNode; + // (undocumented) + title: string; +} + +// @public (undocumented) +export type ManageColumnModule = + | ManageColumnModuleMultiple + | ManageColumnModuleSingle; + +// @public (undocumented) +export interface ManageColumnModuleMultiple { + // (undocumented) + getColumn?: never; + // (undocumented) + getColumns: GetColumnsFunc; +} + +// @public (undocumented) +export interface ManageColumnModuleSingle { + // (undocumented) + getColumn: GetColumnFunc; + // (undocumented) + getColumns?: never; +} + +// @public +export function ManageGaugeCard( + props: ManageGaugeCardProps, +): React_2.JSX.Element; + +// @public (undocumented) +export interface ManageGaugeCardProps { + gaugeCardProps?: GaugeCardProps; + getColor: GaugePropsGetColor; + progress: number; + title: ReactNode; +} + +// @public (undocumented) +export function ManageGaugeGrid( + props: ManageGaugeGridProps, +): React_2.JSX.Element; + +// @public (undocumented) +export interface ManageGaugeGridProps { + // (undocumented) + containerProps?: Pick< + GridOwnProps, + | 'classes' + | 'columns' + | 'columnSpacing' + | 'direction' + | 'rowSpacing' + | 'spacing' + | 'sx' + | 'wrap' + | 'zeroMinWidth' + >; + getColor: (percent: number) => string; + items: { + title: ReactNode; + description?: ReactNode; + progress: number; + }[]; + noBottomMargin?: boolean; +} + +// @public +export interface ManageModuleApi { + getProvider?: () => ManageProvider; +} + +// @public +export type ManageModuleApiRef = ApiRef<ManageModuleApi>; + +// @public +export function ManageOwnedProvider( + props: PropsWithChildren<OwnedEntitiesProviderProps>, +): React_2.JSX.Element; + +// @public (undocumented) +export type ManageProvider = ComponentType<{ + children?: ReactNode | undefined; +}>; + +// @public (undocumented) +export const manageReactPlugin: BackstagePlugin<{}, {}, {}>; + +// @public +export function ManageReorderableTabs( + props: ReorderableTabsProps, +): React_2.JSX.Element; + +// @public (undocumented) +export function ManageTabContentFullHeight({ + children, + bottomMargin, + resizeChild, +}: PropsWithChildren<TabContentFullHeightProps>): React_2.JSX.Element; + +// @public (undocumented) +export interface OwnedEntitiesProviderProps { + // (undocumented) + kinds?: string[]; +} + +// @public (undocumented) +export const OwnedProvider: ManageOwnedProvider; + +// @public +export interface Owners { + // (undocumented) + groups: Entity[]; + // (undocumented) + ownedEntityRefs: string[]; +} + +// @public +export function pluralizeKind(kind: string): string; + +// @public (undocumented) +export type ProgressColor = Extract<CircularProgressProps['color'], string>; + +// @public (undocumented) +export const ReorderableTabs: ManageReorderableTabs; + +// @public +export interface ReorderableTabsProps { + // (undocumented) + onChange?: (idOrder: string[]) => void; + // (undocumented) + tabs: { + id: string; + title: string; + }[]; +} + +// @public +export function simplifyColumns( + column: ManageColumnModule, +): ManageColumnModuleMultiple; + +// @public (undocumented) +export const TabContentFullHeight: ManageTabContentFullHeight; + +// @public +export interface TabContentFullHeightProps { + bottomMargin?: number; + resizeChild?: boolean; +} + +// @public +export function useAccordionKey(key: string, uniquePerKind?: boolean): string; + +// @public +export function useCurrentKind(): string | KindStarredType | undefined; + +// @public +export function useCurrentKinds( + onlyOwned?: boolean, +): (string | KindStarredType)[]; + +// @public +export function useCurrentKindTitle(): string; + +// @public +export function useKindOrder<T extends string | KindStarredType>( + kinds: T[], +): T[]; + +// @public +export function useManagedEntities(): Entity[]; + +// @public +export function useOrder<T, U>( + items: T[], + keys: U[], + options: UseOrderOptions<T, U>, +): T[]; + +// @public (undocumented) +export function useOrder<T extends string>( + items: T[], + keys: T[], + options?: Partial<UseOrderOptions<T, T>>, +): T[]; + +// @public +export interface UseOrderOptions<T, U> { + caseSensitive?: boolean; + itemsMemoMethod?: 'reference' | 'key'; + joiner?: (keys: string[]) => string; + keyOf: (item: T) => U; + keysMemoMethod?: 'reference' | 'key'; + nonFoundCompare?: (a: ItemWithKey<T>, b: ItemWithKey<T>) => number; + stringifyItem?: (item: T) => string; + stringifyKey?: (key: U) => string; +} + +// @public +export function useOwnedEntities( + kind?: string | KindStarredType | (string | KindStarredType)[], +): Entity[]; + +// @public +export function useOwnedKinds(onlyOwned?: boolean): string[]; + +// @public +export function useOwners(): Owners; + +// @public (undocumented) +export interface UserSettingsContextResult<T extends JsonValue> { + // (undocumented) + Provider: (props: PropsWithChildren<{}>) => JSX.Element; + // (undocumented) + useSetSetting: () => (value: T) => void; + // (undocumented) + useSetting: () => T | undefined; +} + +// @public +export const useSetKindOrder: () => (value: string[]) => void; + +// @public +export function useUserSettings<T extends JsonValue>( + feature: string, + key: string, + options?: UseUserSettingsOptions<T>, +): [value: T | undefined, setValue: (value: T) => void, isSettled: boolean]; + +// @public +export interface UseUserSettingsOptions<T extends JsonValue> { + coerce?: (value: JsonValue) => T; + // (undocumented) + defaultValue?: T | undefined; +} + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/manage/plugins/manage-react/src/api/DefaultManageApi.ts b/workspaces/manage/plugins/manage-react/src/api/DefaultManageApi.ts new file mode 100644 index 000000000..44aa550f1 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/api/DefaultManageApi.ts @@ -0,0 +1,53 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { ManageApi, ManageProvider } from './ManageApi'; +import { ManageModuleApi } from './types'; + +/** @public */ +export interface DefaultManageApiOptions { + /** + * The kind order to use when rendering the owned entities. + */ + kindOrder?: string[]; + + /** + * Manage providers to include. These will be mounted top-level, so that any + * component in the Manage page can access them + */ + providers: Iterable<ManageModuleApi>; +} + +/** + * Default implementation of the ManageApi. + * + * @public + */ +export class DefaultManageApi implements ManageApi { + public readonly kindOrder: string[]; + readonly #providers: ManageProvider[] = []; + + public constructor({ kindOrder, providers }: DefaultManageApiOptions) { + this.kindOrder = kindOrder ?? []; + + this.#providers = Array.from(providers) + .map(provider => provider.getProvider?.()) + .filter((v): v is NonNullable<typeof v> => !!v); + } + + getProviders = (): readonly ManageProvider[] => { + return this.#providers; + }; +} diff --git a/workspaces/manage/plugins/manage-react/src/api/ManageApi.ts b/workspaces/manage/plugins/manage-react/src/api/ManageApi.ts new file mode 100644 index 000000000..56b3ca953 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/api/ManageApi.ts @@ -0,0 +1,36 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { ComponentType, ReactNode } from 'react'; + +/** @public */ +export type ManageProvider = ComponentType<{ + children?: ReactNode | undefined; +}>; + +/** @public */ +export interface ManageApi { + /** + * The order of kinds to show for e.g. tabs. + * + * Kinds not part of this list will appear afterwards. + */ + readonly kindOrder: string[]; + + /** + * Get the list of registered Providers for the manage page + */ + getProviders(): Iterable<ManageProvider>; +} diff --git a/workspaces/manage/plugins/manage-react/src/api/api.ts b/workspaces/manage/plugins/manage-react/src/api/api.ts new file mode 100644 index 000000000..84bed33b1 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/api/api.ts @@ -0,0 +1,70 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createApiFactory, createApiRef } from '@backstage/core-plugin-api'; + +import type { ManageApi } from './ManageApi'; +import { DefaultManageApi } from './DefaultManageApi'; +import { ManageModuleApiRef } from './types'; + +/** + * ApiRef for the Manage API. + * + * @public + */ +export const manageApiRef = createApiRef<ManageApi>({ id: 'manage' }); + +/** + * Options for creating the Manage API. + * + * @public + */ +export interface ApiFactoryOptions { + /** + * The kind order to use when rendering the owned entities. + */ + kindOrder?: string[]; + + /** + * Optional Manage extensions to include in the API. + */ + extensions?: Iterable<ManageModuleApiRef>; +} + +/** + * Default API factory for the Manage plugin. + * + * This simplifies the API creation by providing a default implementation. + * + * @public + */ +export function createManageApiFactory(options?: ApiFactoryOptions) { + const { kindOrder, extensions = [] } = options ?? {}; + + const apiDeps = Object.fromEntries( + Array.from(extensions).map(apiRef => [apiRef.id, apiRef]), + ); + + return createApiFactory({ + api: manageApiRef, + deps: apiDeps, + factory(deps) { + return new DefaultManageApi({ + kindOrder, + providers: Object.values(deps), + }); + }, + }); +} diff --git a/workspaces/manage/plugins/manage-react/src/api/index.ts b/workspaces/manage/plugins/manage-react/src/api/index.ts new file mode 100644 index 000000000..1fbea3b7e --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/api/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageProvider, ManageApi } from './ManageApi'; + +export type { ManageModuleApi, ManageModuleApiRef } from './types'; + +export type { DefaultManageApiOptions } from './DefaultManageApi'; +export { DefaultManageApi } from './DefaultManageApi'; + +export type { ApiFactoryOptions } from './api'; +export { manageApiRef, createManageApiFactory } from './api'; diff --git a/workspaces/manage/plugins/manage-react/src/api/types.ts b/workspaces/manage/plugins/manage-react/src/api/types.ts new file mode 100644 index 000000000..223e5fa5c --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/api/types.ts @@ -0,0 +1,38 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ApiRef } from '@backstage/core-plugin-api'; + +import { ManageProvider } from './ManageApi'; + +/** + * This is a base interface for plugin modules to extends, to register + * themselves as extensions to the Manage plugin. + * + * @public + */ +export interface ManageModuleApi { + /** + * Get an optional ManageProvider component. + */ + getProvider?: () => ManageProvider; +} + +/** + * Base type for extension APIs. + * + * @public + */ +export type ManageModuleApiRef = ApiRef<ManageModuleApi>; diff --git a/workspaces/manage/plugins/manage-react/src/components/Accordion/Accordion.tsx b/workspaces/manage/plugins/manage-react/src/components/Accordion/Accordion.tsx new file mode 100644 index 000000000..601779c08 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/Accordion/Accordion.tsx @@ -0,0 +1,118 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { ComponentProps, PropsWithChildren, useCallback } from 'react'; + +import { makeStyles } from '@mui/styles'; +import Accordion from '@mui/material/Accordion'; +import AccordionSummary from '@mui/material/AccordionSummary'; +import AccordionDetails from '@mui/material/AccordionDetails'; +import Typography from '@mui/material/Typography'; +import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; + +import { useAccordionKey, useUserSettings } from '../../hooks'; + +const useStyles = makeStyles(theme => ({ + root: { + marginBottom: theme.spacing(2), + }, + summary: { + marginTop: theme.spacing(0.5), + marginBottom: theme.spacing(0), + '&.Mui-expanded': { + marginTop: theme.spacing(0.5), + marginBottom: theme.spacing(1), + }, + }, + details: { + paddingBottom: 0, + }, +})); + +/** + * Props for {@link ManageAccordion} + * + * @public + */ +export interface ManageAccordionProps { + /** + * Title of the accordion + */ + title: string; + + /** + * Name of the accordion. This will be used to create accordion keys to save + * the open/close state. This is intended to be a feature/plugin name. + */ + name: string; + + /** + * Make the accordion default-expanded. Defaults to false. + */ + defaultExpanded?: boolean; + + /** + * Saves the expanded state per kind. Defaults to false, meaning the expanded + * state is shared between all kinds. + */ + perKind?: boolean; +} + +type AccordionOnChange = NonNullable< + ComponentProps<typeof Accordion>['onChange'] +>; + +/** + * Renders a MUI Accordion with a title and content. The open/close state of the + * accordion is saved in the user settings. + * + * @public + */ +export function ManageAccordion( + props: PropsWithChildren<ManageAccordionProps>, +) { + const { title, name, defaultExpanded, perKind = false, children } = props; + + const accordionKey = useAccordionKey('manage-accordion', perKind); + + const [expanded, setExpanded] = useUserSettings(name, accordionKey, { + defaultValue: defaultExpanded ?? false, + }); + + const onChange = useCallback<AccordionOnChange>( + (_, value) => { + setExpanded(value); + }, + [setExpanded], + ); + + const { root, summary, details } = useStyles(); + + return ( + <Accordion classes={{ root }} expanded={expanded} onChange={onChange}> + <AccordionSummary + expandIcon={<ExpandMoreIcon />} + classes={{ content: summary }} + > + <Typography variant="h6" component="span"> + {title} + </Typography> + </AccordionSummary> + <AccordionDetails classes={{ root: details }}> + {children} + </AccordionDetails> + </Accordion> + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/Accordion/index.ts b/workspaces/manage/plugins/manage-react/src/components/Accordion/index.ts new file mode 100644 index 000000000..e5f968a25 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/Accordion/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageAccordionProps } from './Accordion'; +export { ManageAccordion } from './Accordion'; diff --git a/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/CurrentKindProvider.tsx b/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/CurrentKindProvider.tsx new file mode 100644 index 000000000..6a4609b34 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/CurrentKindProvider.tsx @@ -0,0 +1,116 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { + createContext, + PropsWithChildren, + useContext, + useMemo, +} from 'react'; + +import { useOwnedKinds } from '../OwnedEntitiesProvider/OwnedEntitiesProvider'; +import { pluralizeKind } from '../../utils'; +import { KindStarred, KindStarredType } from './types'; + +interface CurrentKindContext { + kind: string | KindStarredType; +} + +const ctx = createContext<CurrentKindContext>(undefined as any); + +const { Provider } = ctx; + +/** + * Provider used by `@backstage-community/plugin-manage`, and shouldn't be used + * elsewhere. + * + * @public + */ +export function CurrentKindProvider( + props: PropsWithChildren< + { kind: string; starred?: never } | { kind?: never; starred: true } + >, +) { + const { kind, starred, children } = props; + + const value = useMemo(() => { + if (starred) { + return { kind: KindStarred as KindStarredType }; + } + return { kind }; + }, [kind, starred]); + + return <Provider value={value}>{children}</Provider>; +} + +/** + * Returns the current kind, i.e. if the component is inside a tab with only + * components, or systems, e.g. + * + * If rendered outside such a tab, returns undefined. + * + * @public + */ +export function useCurrentKind(): string | KindStarredType | undefined { + const context = useContext(ctx); + if (!context) { + return undefined; + } + return context.kind; +} + +/** + * Same as {@link useCurrentKind} except if not used inside a kind tab, it + * fallbacks to all owned entity kinds. + * + * @param onlyOwned - Only return kinds for entities actually owned, otherwise + * all configured kinds + * + * @public + */ +export function useCurrentKinds( + onlyOwned = false, +): (string | KindStarredType)[] { + const context = useContext(ctx); + + const currentKind = useMemo(() => { + if (!context) { + return undefined; + } + return [context.kind as string | KindStarredType]; + }, [context]); + + const ownedKinds = useOwnedKinds(onlyOwned); + + return currentKind ?? ownedKinds; +} + +/** + * + * Returns the title for the current kind, e.g. "components" or + * "starred entities". + * + * @public + */ +export function useCurrentKindTitle() { + const kind = useCurrentKind(); + if (!kind) { + return 'entities'; + } + if (kind === KindStarred) { + return 'starred entities'; + } + return `${pluralizeKind(kind)}`; +} diff --git a/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/index.ts b/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/index.ts new file mode 100644 index 000000000..c0b508913 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/index.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { + CurrentKindProvider, + useCurrentKind, + useCurrentKinds, + useCurrentKindTitle, +} from './CurrentKindProvider'; + +export type { KindStarredType } from './types'; +export { KindStarred } from './types'; diff --git a/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/types.ts b/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/types.ts new file mode 100644 index 000000000..20afd13c9 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/CurrentKindProvider/types.ts @@ -0,0 +1,25 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Symbol used to represent starred entities. This is a special "kind". + * + * @public + */ +export const KindStarred = Symbol('Starred entities'); + +/** @public */ +export type KindStarredType = typeof KindStarred; diff --git a/workspaces/manage/plugins/manage-react/src/components/GaugeCard/GaugeCard.tsx b/workspaces/manage/plugins/manage-react/src/components/GaugeCard/GaugeCard.tsx new file mode 100644 index 000000000..127f58367 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/GaugeCard/GaugeCard.tsx @@ -0,0 +1,69 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { ComponentProps, ReactNode } from 'react'; + +import { GaugeCard, GaugePropsGetColor } from '@backstage/core-components'; + +/** @public */ +export type GaugeCardProps = Pick< + ComponentProps<typeof GaugeCard>, + 'size' | 'alignGauge' | 'variant' | 'description' | 'subheader' +>; + +/** @public */ +export interface ManageGaugeCardProps { + /** + * Title of the card + */ + title: ReactNode; + + /** + * A number between 0 and 1 defining the progress (0% - 100%) + */ + progress: number; + + /** + * Function which turns a value into a color + */ + getColor: GaugePropsGetColor; + + /** + * Optional gauge card props + */ + gaugeCardProps?: GaugeCardProps; +} + +/** + * This component is `@backstage/core-component`'s GaugeCard with pre-defined + * defaults. + * + * @public + */ +export function ManageGaugeCard(props: ManageGaugeCardProps) { + const { title, progress, getColor, gaugeCardProps } = props; + + return ( + <GaugeCard + size="small" + alignGauge="bottom" + variant="fullHeight" + {...gaugeCardProps} + title={title as string} + progress={progress} + getColor={getColor} + /> + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/GaugeCard/index.ts b/workspaces/manage/plugins/manage-react/src/components/GaugeCard/index.ts new file mode 100644 index 000000000..fe9f6ed28 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/GaugeCard/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageGaugeCardProps, GaugeCardProps } from './GaugeCard'; +export { ManageGaugeCard } from './GaugeCard'; diff --git a/workspaces/manage/plugins/manage-react/src/components/GaugeGrid/GaugeGrid.tsx b/workspaces/manage/plugins/manage-react/src/components/GaugeGrid/GaugeGrid.tsx new file mode 100644 index 000000000..47343400e --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/GaugeGrid/GaugeGrid.tsx @@ -0,0 +1,131 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { ReactNode } from 'react'; + +import { makeStyles } from '@mui/styles'; +import Box from '@mui/material/Box'; +import Grid, { GridOwnProps } from '@mui/material/Grid'; +import Typography from '@mui/material/Typography'; + +const useStyles = makeStyles(theme => ({ + gridRootWithoutBottomMargin: { + marginBottom: 0, + }, + gridItem: { + overflow: 'visible', + }, + box: { + lineHeight: 0, + borderRadius: theme.shape.borderRadius, + borderWidth: 1, + borderLeftWidth: 3, + borderStyle: 'solid', + borderColor: theme.palette.divider, + backgroundColor: theme.palette.background.paper, + // boxShadow: theme.shadows[2], + }, + percentText: { + color: theme.palette.text.secondary, + }, +})); + +/** @public */ +export interface ManageGaugeGridProps { + containerProps?: Pick< + GridOwnProps, + | 'classes' + | 'columns' + | 'columnSpacing' + | 'direction' + | 'rowSpacing' + | 'spacing' + | 'sx' + | 'wrap' + | 'zeroMinWidth' + >; + + /** + * Items to display in the grid + */ + items: { + /** + * Title of the card + */ + title: ReactNode; + + /** + * Description of the item + */ + description?: ReactNode; + + /** + * A number between 0 and 1 defining the progress (0% - 100%) + */ + progress: number; + }[]; + + /** + * Function which turns a progress number (between 0 and 1) into a color + */ + getColor: (percent: number) => string; + + /** + * Optionally disable the bottom margin of the grid + */ + noBottomMargin?: boolean; +} + +/** @public */ +export function ManageGaugeGrid(props: ManageGaugeGridProps) { + const { containerProps, items, getColor, noBottomMargin } = props; + + const { gridRootWithoutBottomMargin, gridItem, box, percentText } = + useStyles(); + + const content = ( + <Grid + columnSpacing={2} + marginBottom={2} + {...containerProps} + className={noBottomMargin ? gridRootWithoutBottomMargin : undefined} + container + > + {items.map(({ title, progress }, i) => { + const value = progress * 100; + const color = getColor(progress); + + return ( + <Grid item key={i} padding={0} className={gridItem}> + <div className={box} style={{ borderLeftColor: color }}> + <Grid container spacing={0} padding={1} columnSpacing={1}> + <Grid item> + <Typography variant="body2" className={percentText}> + {Math.round(value)}% + </Typography> + </Grid> + <Grid item alignContent="center"> + {title} + </Grid> + </Grid> + </div> + </Grid> + ); + })} + </Grid> + ); + + return <Box>{content}</Box>; +} diff --git a/workspaces/manage/plugins/manage-react/src/components/GaugeGrid/index.ts b/workspaces/manage/plugins/manage-react/src/components/GaugeGrid/index.ts new file mode 100644 index 000000000..26630b120 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/GaugeGrid/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageGaugeGridProps } from './GaugeGrid'; +export { ManageGaugeGrid } from './GaugeGrid'; diff --git a/workspaces/manage/plugins/manage-react/src/components/KindOrder/KindOrder.tsx b/workspaces/manage/plugins/manage-react/src/components/KindOrder/KindOrder.tsx new file mode 100644 index 000000000..d2de4124a --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/KindOrder/KindOrder.tsx @@ -0,0 +1,104 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useMemo } from 'react'; + +import { useApi } from '@backstage/core-plugin-api'; + +import type { KindStarredType } from '../CurrentKindProvider'; +import { createUserSettingsContext } from '../UserSettingsProvider'; +import { manageApiRef } from '../../api'; +import { joinKinds, kindToOpaqueString } from '../../utils'; +import { useOrder } from '../../hooks/use-order'; + +const userSettingsFeature = '$manage-page-kind'; +const userSettingsKey = 'order'; + +const coerceStringArray = (arr: any): string[] => { + if (!Array.isArray(arr)) { + return []; + } + return arr.map(value => (typeof value !== 'string' ? `${value}` : value)); +}; + +const userSettingsContext = createUserSettingsContext( + userSettingsFeature, + userSettingsKey, + { + defaultValue: [], + coerce: coerceStringArray, + }, +); + +/** + * This is an internal API and should not be used directly. + * + * @public + */ +export const KindOrderProvider = userSettingsContext.Provider; + +/** + * This hook is internal and should not be used directly. + * + * @public + */ +export const useSetKindOrder = userSettingsContext.useSetSetting; + +const useKindOrderUserSetting = userSettingsContext.useSetting; + +/** + * Re-order kinds to adhere to the configured kind order (case-insensitive), + * i.e. configured in the API. + */ +function useKindOrderFromApi( + kinds: (string | KindStarredType)[], +): (string | KindStarredType)[] { + const manageApi = useApi(manageApiRef); + const { kindOrder } = manageApi; + + const lcKindOrder = useMemo( + () => kindOrder.map(kind => kind.toLocaleLowerCase('en-US')), + [kindOrder], + ); + + return useOrder(kinds, lcKindOrder, { + keyOf: (kind: string | KindStarredType) => + kindToOpaqueString(kind).toLocaleLowerCase('en-US'), + stringifyKey: key => kindToOpaqueString(key), + nonFoundCompare: (a, b) => a.key.localeCompare(b.key), + joiner: joinKinds, + }); +} + +/** + * Re-order kinds to adhere to the user settings kind order (case-insensitive) + * while falling back to the order as configured in the API. + * + * @public + */ +export function useKindOrder<T extends string | KindStarredType>( + kinds: T[], +): T[] { + const userSettingsOrder = useKindOrderUserSetting() ?? []; + const apiOrder = useKindOrderFromApi(kinds); + + const orderBy = userSettingsOrder.length > 0 ? userSettingsOrder : apiOrder; + + return useOrder(kinds, orderBy, { + keyOf: (kind: string | KindStarredType) => + kindToOpaqueString(kind).toLocaleLowerCase('en-US'), + stringifyKey: key => kindToOpaqueString(key), + }); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/KindOrder/index.ts b/workspaces/manage/plugins/manage-react/src/components/KindOrder/index.ts new file mode 100644 index 000000000..f8a8b1a27 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/KindOrder/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { KindOrderProvider, useSetKindOrder, useKindOrder } from './KindOrder'; diff --git a/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/OwnedEntitiesProvider.tsx b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/OwnedEntitiesProvider.tsx new file mode 100644 index 000000000..a602f9aa5 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/OwnedEntitiesProvider.tsx @@ -0,0 +1,198 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { + PropsWithChildren, + createContext, + useContext, + useMemo, +} from 'react'; + +import useAsync, { AsyncState } from 'react-use/lib/useAsync'; + +import { useApi } from '@backstage/core-plugin-api'; +import { + catalogApiRef, + useStarredEntities, +} from '@backstage/plugin-catalog-react'; +import { Entity, stringifyEntityRef } from '@backstage/catalog-model'; +import { ErrorPanel, Progress } from '@backstage/core-components'; + +import { useOwners } from '../OwnedGroupsProvider'; +import { useKindOrder } from '../KindOrder'; +import { arrayify, joinKinds } from '../../utils'; +import { getOwnedEntities } from './catalog'; +import { defaultKinds } from './types'; +import { + type KindStarredType, + KindStarred, +} from '../CurrentKindProvider/types'; + +interface OwnedEntitiesProviderContext { + kinds: string[]; + asyncEntities: AsyncState<Entity[]>; + entities: Entity[]; + starredEntities: Entity[]; +} + +const ctx = createContext<OwnedEntitiesProviderContext>(undefined as any); +const { Provider } = ctx; + +export interface OwnedEntitiesProviderProps { + kinds?: string[]; +} + +export function OwnedEntitiesProvider( + props: PropsWithChildren<OwnedEntitiesProviderProps>, +) { + const { kinds = defaultKinds } = props; + + const { starredEntities: starredEntityRefs } = useStarredEntities(); + + const catalogApi = useApi(catalogApiRef); + const owners = useOwners(); + + const entities = useAsync(async (): Promise<Entity[]> => { + if (owners.ownedEntityRefs.length === 0) { + return []; + } + + return getOwnedEntities(catalogApi, kinds, owners.ownedEntityRefs); + }, [kinds, owners.ownedEntityRefs]); + + const starredEntityRefList = Array.from(starredEntityRefs); + const starredEntities = useAsync(async (): Promise<Entity[]> => { + return ( + await catalogApi.getEntitiesByRefs({ + entityRefs: starredEntityRefList, + }) + ).items.filter((v): v is NonNullable<typeof v> => !!v); + }, [starredEntityRefList.join(' $ ')]); + + const value = useMemo( + (): OwnedEntitiesProviderContext => ({ + kinds, + asyncEntities: entities, + entities: entities.value ?? [], + starredEntities: starredEntities.value ?? [], + }), + [kinds, entities, starredEntities], + ); + + if (value.asyncEntities.loading || starredEntities.loading) { + return <Progress />; + } else if (value.asyncEntities.error) { + return <ErrorPanel error={value.asyncEntities.error} />; + } + + return <Provider value={value}>{props.children}</Provider>; +} + +/** + * Return all kinds given to <ManagePage> + * + * @param onlyOwned - Only return kinds for entities actually owned, otherwise + * all configured kinds + * + * @public + */ +export function useOwnedKinds(onlyOwned = false): string[] { + const { kinds, entities } = useContext(ctx); + + const ownedEntities = useMemo( + () => + new Set( + !onlyOwned + ? [] + : (entities ?? []).map(entity => + entity.kind.toLocaleLowerCase('en-US'), + ), + ), + [onlyOwned, entities], + ); + + return useMemo(() => { + if (!onlyOwned) { + return kinds; + } + + return kinds.filter(kind => { + const lcKind = kind.toLocaleLowerCase('en-US'); + return ownedEntities.has(lcKind); + }); + }, [onlyOwned, kinds, ownedEntities]); +} + +/** + * Returns all owned entities, possibly filtered by kind. + * + * By default all owned entities are returned, but by passing a kind (or array + * of kinds), only those will be returned. There is a special kind `KindStarred` + * exported by this package, will reflects the starred entities. + * + * @public + */ +export function useOwnedEntities( + kind?: string | KindStarredType | (string | KindStarredType)[], +): Entity[] { + const { kinds: ownedKinds, entities, starredEntities } = useContext(ctx); + + const kinds = arrayify(kind ?? ownedKinds); + const orderedKinds = useKindOrder(kinds); + + return useMemo( + (): Entity[] => { + const lcKinds = orderedKinds.map(curKind => + typeof curKind === 'symbol' + ? curKind + : curKind?.toLocaleLowerCase('en-US'), + ); + + const filteredEntities = (entities ?? []).filter(entity => + lcKinds.includes(entity.kind.toLocaleLowerCase('en-US')), + ); + return lcKinds.flatMap(curKind => + curKind === KindStarred + ? starredEntities + : filteredEntities.filter( + entity => entity.kind.toLocaleLowerCase('en-US') === curKind, + ), + ); + }, + // eslint-disable-next-line react-hooks/exhaustive-deps + [joinKinds(orderedKinds), entities, starredEntities], + ); +} + +/** + * Returns all managed entites, i.e. owned entities and starred entities. + * + * @public + */ +export function useManagedEntities(): Entity[] { + const { entities, starredEntities } = useContext(ctx); + + return useMemo((): Entity[] => { + const set = new Set<string>(); + return ([] as Entity[]).concat(entities, starredEntities).filter(entity => { + const entityRef = stringifyEntityRef(entity); + if (set.has(entityRef)) { + return false; + } + set.add(entityRef); + return true; + }); + }, [entities, starredEntities]); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/catalog.ts b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/catalog.ts new file mode 100644 index 000000000..c668a0b5d --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/catalog.ts @@ -0,0 +1,181 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { PromiseElement } from 'already'; + +import { + Entity, + stringifyEntityRef, + RELATION_OWNED_BY, +} from '@backstage/catalog-model'; +import { CatalogApi } from '@backstage/plugin-catalog-react'; + +import { arrayify } from '../../utils'; + +/** + * Finds all parents (groups) of a set of entity refs. + * This will include pseudo groups. + */ +export async function queryAncestry( + catalogApi: CatalogApi, + entityRefs: string[], +): Promise<Entity[]> { + const entityMap = new Map<string, Entity>(); + + const recurse = async (children: string[]) => { + const entities = await catalogApi.getEntitiesByRefs({ + entityRefs: children, + }); + + entities.items + .filter((entity): entity is Entity => !!entity) + .forEach(entity => { + const entityRef = stringifyEntityRef(entity); + entityMap.set(entityRef, entity); + }); + + const parents = entities.items.flatMap(entity => + (entity?.relations || []) + .filter(rel => rel.type === 'childOf') + .map(rel => rel.targetRef), + ); + + const unseenParents = parents.filter(parent => !entityMap.has(parent)); + + if (unseenParents.length > 0) { + await recurse(unseenParents); + } + }; + + await recurse(entityRefs); + + return [...entityMap.values()]; +} + +async function getOwnedEntitiesByOwnedRef( + catalogApi: CatalogApi, + entityKind: string | string[], + ownerEntityRef: string, +): Promise<Entity[]> { + const items: Entity[] = []; + let ancestry: PromiseElement<ReturnType<typeof catalogApi.queryEntities>>; + + ancestry = await catalogApi.queryEntities({ + filter: { + 'relations.ownedBy': ownerEntityRef, + kind: entityKind, + }, + }); + items.push(...ancestry.items); + + while (ancestry.pageInfo.nextCursor && ancestry.items.length > 0) { + ancestry = await catalogApi.queryEntities({ + cursor: ancestry.pageInfo.nextCursor, + }); + items.push(...ancestry.items); + } + + return items; +} + +async function getOwnedEntitiesByOwnedRefs( + catalogApi: CatalogApi, + entityKind: string | string[], + ownerEntityRefs: string[], +): Promise<Entity[]> { + const entities: Entity[][] = []; + await Promise.all( + // Querying the entities concurrently is way faster than combining them into + // a single filter array in one call (a factor of over 100x). + // Probably a backend implementation issue, or that it has to re-create + // combined cursors. + ownerEntityRefs.map(async ownerEntityRef => { + const items = await getOwnedEntitiesByOwnedRef( + catalogApi, + entityKind, + ownerEntityRef, + ); + entities.push(items); + }), + ); + + return ([] as Entity[]).concat(...entities); +} + +/** + * Finds all entities of a certain kind, owned by a set of entity refs. + * + * Sorts the result to the same order as the owner entity refs, and internally + * within the same owner entity ref according to the title/name. + */ +export async function getOwnedEntities( + catalogApi: CatalogApi, + entityKind: string | string[], + ownerEntityRefs: string[], +): Promise<Entity[]> { + const items = await getOwnedEntitiesByOwnedRefs( + catalogApi, + entityKind, + ownerEntityRefs, + ); + + const kinds = Array.from( + new Set([ + ...arrayify(entityKind).map(kind => kind.toLocaleLowerCase('en-US')), + ...items.map(entity => entity.kind.toLocaleLowerCase('en-US')), + ]), + ); + + const lookupItems = items.map(entity => ({ + entity, + kind: entity.kind.toLocaleLowerCase('en-US'), + relOwnedBy: entity.relations + ?.find(rel => rel.type === RELATION_OWNED_BY) + ?.targetRef?.toLocaleLowerCase('en-US'), + title: (entity.metadata.title ?? entity.metadata.name).toLocaleLowerCase( + 'en-US', + ), + })); + + return ( + lookupItems + // Sort the found entities by the: + // 1. Order of the entity kind + // 2. Order of the entity owner + // 3. Order of the entity title + .sort((a, b) => { + if (a.kind !== b.kind) { + return kinds.indexOf(a.kind) < kinds.indexOf(b.kind) ? -1 : 1; + } + + const aOwner = a.relOwnedBy; + const bOwner = b.relOwnedBy; + + if (aOwner === bOwner) { + return a.title.localeCompare(b.title); + } + + if (!aOwner) return -1; + if (!bOwner) return 1; + + const aIndex = ownerEntityRefs.indexOf(aOwner); + const bIndex = ownerEntityRefs.indexOf(bOwner); + if (aIndex === -1) return -1; + if (bIndex === -1) return 1; + return aIndex - bIndex; + }) + .map(({ entity }) => entity) + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/index.tsx b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/index.tsx new file mode 100644 index 000000000..788d14a72 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/index.tsx @@ -0,0 +1,45 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { PropsWithChildren } from 'react'; + +import { OwnedGroupsProvider } from '../OwnedGroupsProvider'; +import { OwnedEntitiesProvider } from './OwnedEntitiesProvider'; + +export { + useOwnedKinds, + useOwnedEntities, + useManagedEntities, +} from './OwnedEntitiesProvider'; + +/** @public */ +export interface OwnedEntitiesProviderProps { + kinds?: string[]; +} + +/** + * This is an internal component and should not be used directly. + * + * @public + */ +export function ManageOwnedProvider( + props: PropsWithChildren<OwnedEntitiesProviderProps>, +) { + return ( + <OwnedGroupsProvider> + <OwnedEntitiesProvider kinds={props.kinds} children={props.children} /> + </OwnedGroupsProvider> + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/types.ts b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/types.ts new file mode 100644 index 000000000..3d91e3853 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/types.ts @@ -0,0 +1,23 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export const defaultKinds = [ + 'System', + 'Component', + 'API', + 'Template', + 'Resource', + 'Domain', +]; diff --git a/workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/OwnedGroupsProvider.tsx b/workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/OwnedGroupsProvider.tsx new file mode 100644 index 000000000..36904c403 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/OwnedGroupsProvider.tsx @@ -0,0 +1,134 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { + PropsWithChildren, + createContext, + useContext, + useMemo, +} from 'react'; + +import useAsync from 'react-use/lib/useAsync'; + +import { useApi, identityApiRef } from '@backstage/core-plugin-api'; +import { ErrorPanel, Progress } from '@backstage/core-components'; +import { catalogApiRef } from '@backstage/plugin-catalog-react'; +import { + Entity, + RELATION_HAS_MEMBER, + stringifyEntityRef, +} from '@backstage/catalog-model'; + +import { queryAncestry } from '../OwnedEntitiesProvider/catalog'; + +/** + * This type contains the owned groups and all owner entity refs. + * + * @public + */ +export interface Owners { + groups: Entity[]; + ownedEntityRefs: string[]; +} + +type OwnedGroupProviderContext = Owners; + +const ctx = createContext<OwnedGroupProviderContext>(undefined as any); +const { Provider } = ctx; + +/** @internal */ +export function OwnedGroupsProvider(props: PropsWithChildren<{}>) { + const identityApi = useApi(identityApiRef); + const catalogApi = useApi(catalogApiRef); + const asyncState = useAsync(async () => { + const identity = await identityApi.getBackstageIdentity(); + + const ancestry = orderOwnership( + await queryAncestry(catalogApi, identity.ownershipEntityRefs), + ); + + return { + groups: ancestry.filter(entity => entity.kind === 'Group'), + ownedEntityRefs: ancestry.map(entity => stringifyEntityRef(entity)), + }; + }, [identityApi]); + + const value = useMemo( + (): OwnedGroupProviderContext => ({ + groups: asyncState.value?.groups ?? [], + ownedEntityRefs: asyncState.value?.ownedEntityRefs ?? [], + }), + [asyncState], + ); + + if (asyncState.error) { + return <ErrorPanel error={asyncState.error} />; + } else if (asyncState.loading) { + return <Progress />; + } + + return <Provider value={value}>{props.children}</Provider>; +} + +/** + * Returns the owners of the current user. + * + * @public + */ +export function useOwners(): Owners { + return useContext(ctx); +} + +// Order the ownership entities by: +// 1. Immediate group membership +// 2. Groups higher up the group hierarchy +// 3. User +function orderOwnership(entities: Entity[]): Entity[] { + const decoratedEntities = entities.map(entity => ({ + entity, + title: (entity.metadata.title ?? entity.metadata.name).toLocaleLowerCase( + 'en-US', + ), + kind: entity.kind.toLocaleLowerCase('en-US'), + })); + + const userEntity = decoratedEntities.find( + entity => entity.kind === 'user', + )?.entity; + const userEntityRef = userEntity ? stringifyEntityRef(userEntity) : undefined; + + return decoratedEntities + .sort((a, b) => { + if (a.kind === 'user') return 1; + else if (b.kind === 'user') return -1; + + const directOwnedA = a.entity.relations?.some( + rel => + rel.type === RELATION_HAS_MEMBER && rel.targetRef === userEntityRef, + ); + + const directOwnedB = b.entity.relations?.some( + rel => + rel.type === RELATION_HAS_MEMBER && rel.targetRef === userEntityRef, + ); + + if (directOwnedA && directOwnedB) return 0; + else if (directOwnedA) return -1; + else if (directOwnedB) return 1; + + return a.title.localeCompare(b.title); + }) + .map(({ entity }) => entity); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/index.ts b/workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/index.ts new file mode 100644 index 000000000..5eeff8119 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/OwnedGroupsProvider/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { Owners } from './OwnedGroupsProvider'; +export { useOwners, OwnedGroupsProvider } from './OwnedGroupsProvider'; diff --git a/workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/ReorderableTabs.tsx b/workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/ReorderableTabs.tsx new file mode 100644 index 000000000..e7f20e8ab --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/ReorderableTabs.tsx @@ -0,0 +1,125 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { CSSProperties, useCallback, useMemo } from 'react'; + +import { useTheme } from '@mui/styles'; +import Button from '@mui/material/Button'; +import ButtonGroup from '@mui/material/ButtonGroup'; + +import { + DndContext, + useSensors, + useSensor, + PointerSensor, + closestCenter, + DragEndEvent, +} from '@dnd-kit/core'; +import { + arrayMove, + horizontalListSortingStrategy, + SortableContext, + useSortable, +} from '@dnd-kit/sortable'; +import { + restrictToHorizontalAxis, + restrictToParentElement, +} from '@dnd-kit/modifiers'; +import { CSS } from '@dnd-kit/utilities'; + +/** + * Props for {@link ReorderableTabs} + * + * @public + */ +export interface ReorderableTabsProps { + tabs: { id: string; title: string }[]; + onChange?: (idOrder: string[]) => void; +} + +/** + * Generic component for reordering tabs (or any other similar set of items) + * using drag-and-drop. + * + * @public + */ +export function ManageReorderableTabs(props: ReorderableTabsProps) { + const { tabs, onChange } = props; + + const sensors = useSensors(useSensor(PointerSensor)); + + const items = useMemo(() => { + return tabs.map(tab => tab.id); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [tabs.map(tab => tab.id).join(' $ ')]); + + const handleDragEnd = useCallback( + (event: DragEndEvent) => { + const { active, over } = event; + if (over && active.id !== over.id) { + const oldIndex = items.indexOf(active.id as string); + const newIndex = items.indexOf(over.id as string); + + const newItems = arrayMove(items, oldIndex, newIndex); + + onChange?.(newItems); + } + }, + [onChange, items], + ); + + return ( + <DndContext + sensors={sensors} + collisionDetection={closestCenter} + modifiers={[restrictToHorizontalAxis, restrictToParentElement]} + onDragEnd={handleDragEnd} + > + <SortableContext items={items} strategy={horizontalListSortingStrategy}> + <ButtonGroup variant="outlined"> + {tabs.map(({ id, title }) => ( + <ReorderableTab key={id} id={id} title={title} /> + ))} + </ButtonGroup> + </SortableContext> + </DndContext> + ); +} + +function ReorderableTab({ id, title }: { id: string; title: string }) { + const { attributes, listeners, setNodeRef, transform, transition } = + useSortable({ id }); + + const { typography } = useTheme(); + + if (transform) { + transform.scaleX = 1; + transform.scaleY = 1; + } + + const style: CSSProperties = { + transform: CSS.Transform.toString(transform), + transition, + fontWeight: 'bold', + fontSize: typography.caption.fontSize, + textTransform: 'uppercase', + }; + + return ( + <Button ref={setNodeRef} style={style} {...attributes} {...listeners}> + {title} + </Button> + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/index.ts b/workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/index.ts new file mode 100644 index 000000000..c75ef824b --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/ReorderableTabs/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ReorderableTabsProps } from './ReorderableTabs'; +export { ManageReorderableTabs } from './ReorderableTabs'; diff --git a/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/TabContentFullHeight.tsx b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/TabContentFullHeight.tsx new file mode 100644 index 000000000..77c8458dd --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/TabContentFullHeight.tsx @@ -0,0 +1,93 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { + CSSProperties, + PropsWithChildren, + useCallback, + useEffect, + useMemo, + useState, +} from 'react'; + +import { usePosition } from './usePosition'; +import { useMutationObserver } from './useMutationObserver'; + +/** + * Props for {@link TabContentFullHeight} + * + * @public + */ +export interface TabContentFullHeightProps { + /** + * Bottom margin. + * + * Defaults to 48px (24px for the page and 24px for the tabbed content) + */ + bottomMargin?: number; + + /** + * Set to true, to also resize the first child element (unless it's a progress + * bar). This is useful to e.g. force a Table component to be full-height. + */ + resizeChild?: boolean; +} + +/** @public */ +export function ManageTabContentFullHeight({ + children, + bottomMargin = 48, + resizeChild, +}: PropsWithChildren<TabContentFullHeightProps>) { + const [element, setElement] = useState<Element | undefined>(undefined); + + const rect = usePosition(element); + + const childHeight = useMemo(() => { + return !rect + ? undefined + : rect.client.height - rect.element.top - bottomMargin; + }, [rect, bottomMargin]); + + const style = useMemo((): CSSProperties => { + if (typeof childHeight === 'undefined') { + return {}; + } + return { + height: childHeight, + }; + }, [childHeight]); + + const mutation = useMutationObserver(element); + + useEffect(() => { + if (resizeChild && element && element.children.length === 1) { + const child = element.children.item(0) as HTMLElement; + if (child.role !== 'progressbar') { + child.style.height = `${childHeight}px`; + } + } + }, [resizeChild, mutation, element, childHeight]); + + const setRef = useCallback((el: Element | null) => { + setElement(el ?? undefined); + }, []); + + return ( + <div id="fpp" ref={setRef} style={style}> + {children} + </div> + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/index.ts b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/index.ts new file mode 100644 index 000000000..7cfc5b523 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { TabContentFullHeightProps } from './TabContentFullHeight'; +export { ManageTabContentFullHeight } from './TabContentFullHeight'; diff --git a/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useMutationObserver.ts b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useMutationObserver.ts new file mode 100644 index 000000000..bfb50ce5e --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useMutationObserver.ts @@ -0,0 +1,56 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useMemo, useState } from 'react'; + +import useIsomorphicLayoutEffect from 'react-use/esm/useIsomorphicLayoutEffect'; + +export function useMutationObserver( + element: Element | undefined, + options: MutationObserverInit = { + childList: true, + subtree: true, + attributes: true, + }, +) { + const [mutation, setMutation] = useState<MutationRecord | undefined>( + undefined, + ); + + const observer = useMemo( + () => + new window.MutationObserver(entries => { + if (entries[0]) { + setMutation(entries[0]); + } + }), + // eslint-disable-next-line react-hooks/exhaustive-deps + [], + ); + + useIsomorphicLayoutEffect(() => { + if (!element) { + return; + } + observer.observe(element, options); + + // eslint-disable-next-line consistent-return + return () => { + observer.disconnect(); + }; + }, [element]); + + return mutation; +} diff --git a/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/usePosition.ts b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/usePosition.ts new file mode 100644 index 000000000..7a9902a96 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/usePosition.ts @@ -0,0 +1,69 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useMemo, useState } from 'react'; + +import { useResizeObserver } from './useResizeObserver'; + +export interface UsePositionClientSize { + width: number; + height: number; +} + +export interface UsePositionElementPosition { + left: number; + top: number; +} + +export interface UsePositionResult { + client: UsePositionClientSize; + element: UsePositionElementPosition; +} + +export function usePosition(element: Element | undefined) { + const [clientSize, setClientSize] = useState< + UsePositionClientSize | undefined + >(undefined); + const [elementPos, setElementPos] = useState< + UsePositionElementPosition | undefined + >(undefined); + + useResizeObserver(entry => { + const divRect = entry.target.getBoundingClientRect(); + setElementPos({ + left: divRect.left, + top: divRect.top, + }); + }, element); + + useResizeObserver(entry => { + setClientSize({ + height: entry.contentRect.height, + width: entry.contentRect.width, + }); + }, window.document.documentElement); + + const result = useMemo((): UsePositionResult | undefined => { + if (!clientSize || !elementPos) { + return undefined; + } + return { + client: clientSize, + element: elementPos, + }; + }, [clientSize, elementPos]); + + return result; +} diff --git a/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useResizeObserver.ts b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useResizeObserver.ts new file mode 100644 index 000000000..1f53260e9 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/TabContentFullHeight/useResizeObserver.ts @@ -0,0 +1,47 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useMemo } from 'react'; + +import useIsomorphicLayoutEffect from 'react-use/esm/useIsomorphicLayoutEffect'; + +export function useResizeObserver( + cb: (entry: ResizeObserverEntry) => void, + element: Element | undefined, +) { + const observer = useMemo( + () => + new window.ResizeObserver(entries => { + if (entries[0]) { + cb(entries[0]); + } + }), + // eslint-disable-next-line react-hooks/exhaustive-deps + [], + ); + + useIsomorphicLayoutEffect(() => { + if (!element) { + return; + } + + observer.observe(element); + + // eslint-disable-next-line consistent-return + return () => { + observer.disconnect(); + }; + }, [element]); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/UserSettingsProvider.tsx b/workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/UserSettingsProvider.tsx new file mode 100644 index 000000000..cdc9e94a9 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/UserSettingsProvider.tsx @@ -0,0 +1,107 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { + PropsWithChildren, + createContext, + useContext, + useMemo, +} from 'react'; + +import { Progress } from '@backstage/core-components'; +import { JsonValue } from '@backstage/types'; + +import { useUserSettings } from '../../hooks/use-user-settings'; + +/** @public */ +export interface CreateUserSettingsContextOptions<T extends JsonValue> { + defaultValue?: T | undefined; + + /** + * If the value stored is an invalid shape, this function can coerce it + * to the right type + */ + coerce?: (value: JsonValue) => T; +} + +interface InternalContext<T extends JsonValue> { + value: T | undefined; + isSettled: boolean; +} + +/** @public */ +export interface UserSettingsContextResult<T extends JsonValue> { + Provider: (props: PropsWithChildren<{}>) => JSX.Element; + useSetting: () => T | undefined; + useSetSetting: () => (value: T) => void; +} + +/** + * Create a Provider and hooks for a user settings, one for getting and one for + * setting. + + * @public + */ +export function createUserSettingsContext<T extends JsonValue>( + feature: string, + settingsKey: string, + options?: CreateUserSettingsContextOptions<T>, +): UserSettingsContextResult<T> { + const ctx = createContext<InternalContext<T> | undefined>(undefined); + + const useSetting = (): T | undefined => { + const value = useContext(ctx); + + if (value === undefined) { + throw new Error('UserSettingsProvider not found'); + } + + return value.value; + }; + + const useSetSetting = (): ((value: T) => void) => { + const [_, setSetting] = useUserSettings(feature, settingsKey, options); + + return setSetting; + }; + + const Provider = ({ children }: PropsWithChildren<{}>) => { + const [settingsValue, _, isSettled] = useUserSettings( + feature, + settingsKey, + options, + ); + + const value = useMemo( + () => ({ + value: settingsValue, + isSettled, + }), + [settingsValue, isSettled], + ); + + if (!value.isSettled) { + return <Progress />; + } + + return <ctx.Provider value={value} children={children} />; + }; + + return { + Provider, + useSetting, + useSetSetting, + }; +} diff --git a/workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/index.ts b/workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/index.ts new file mode 100644 index 000000000..4bffd00cf --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/UserSettingsProvider/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { + CreateUserSettingsContextOptions, + UserSettingsContextResult, +} from './UserSettingsProvider'; +export { createUserSettingsContext } from './UserSettingsProvider'; diff --git a/workspaces/manage/plugins/manage-react/src/components/column-providers/types.ts b/workspaces/manage/plugins/manage-react/src/components/column-providers/types.ts new file mode 100644 index 000000000..2794ea472 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/column-providers/types.ts @@ -0,0 +1,74 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { ReactNode } from 'react'; + +import { Entity } from '@backstage/catalog-model'; + +/** @public */ +export interface ManageColumn { + id: string; + title: string; + render: (opts: { entity: Entity }) => ReactNode; +} + +/** @public */ +export type GetColumnsFunc = (entities: Entity[]) => ManageColumn[]; + +/** @public */ +export type GetColumnFunc = (entities: Entity[]) => ManageColumn; + +/** @public */ +export interface ManageColumnModuleMultiple { + getColumns: GetColumnsFunc; + getColumn?: never; +} +/** @public */ +export interface ManageColumnModuleSingle { + getColumns?: never; + getColumn: GetColumnFunc; +} + +/** @public */ +export type ManageColumnModule = + | ManageColumnModuleMultiple + | ManageColumnModuleSingle; + +/** + * Check if a column is a set of columns, or a single one + * + * @public + */ +export function isManageColumnModuleMultiple( + column: ManageColumnModule, +): column is ManageColumnModuleMultiple { + return !!(column as ManageColumnModuleMultiple).getColumns; +} + +/** + * Ensure a column (or multiple columns) are multiple columns, for simplicity + * + * @public + */ +export function simplifyColumns( + column: ManageColumnModule, +): ManageColumnModuleMultiple { + if (isManageColumnModuleMultiple(column)) { + return column; + } + return { + getColumns: (entities: Entity[]) => [column.getColumn(entities)], + }; +} diff --git a/workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconError.tsx b/workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconError.tsx new file mode 100644 index 000000000..976e02cd9 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconError.tsx @@ -0,0 +1,46 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; + +import Tooltip from '@mui/material/Tooltip'; +import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; + +/** + * Props for {@link ColumnIconError} + * + * @public + */ +export interface ColumnIconErrorProps { + /** + * Optional title to show in a tooltip + */ + title?: string; +} + +/** + * A column icon for errors + * + * @public + */ +export function ColumnIconError(props: ColumnIconErrorProps) { + return props.title ? ( + <Tooltip title={props.title}> + <ErrorOutlineIcon /> + </Tooltip> + ) : ( + <ErrorOutlineIcon /> + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconPercent.tsx b/workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconPercent.tsx new file mode 100644 index 000000000..31a9dd9de --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/icons/ColumnIconPercent.tsx @@ -0,0 +1,78 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; + +import Box from '@mui/material/Box'; +import CircularProgress, { + CircularProgressProps, +} from '@mui/material/CircularProgress'; +import Tooltip from '@mui/material/Tooltip'; +import Typography from '@mui/material/Typography'; + +/** @public */ +export type ProgressColor = Extract<CircularProgressProps['color'], string>; + +/** + * Props for {@link ColumnIconPercent} + * + * @public + */ +export interface ColumnIconPercentProps { + title?: string; + percent: number; + color?: ProgressColor; +} + +/** + * A column icon for showing a percentage as a circular gauge + * + * @public + */ +export function ColumnIconPercent(props: ColumnIconPercentProps) { + const inner = ( + <CircularProgressWithLabel + variant="determinate" + color={props.color} + value={props.percent} + /> + ); + + return props.title ? <Tooltip title={props.title}>{inner}</Tooltip> : inner; +} + +function CircularProgressWithLabel(props: CircularProgressProps) { + return ( + <Box position="relative" display="inline-flex"> + <CircularProgress variant="determinate" {...props} /> + <Box + top={0} + left={0} + bottom={0} + right={0} + position="absolute" + display="flex" + alignItems="center" + justifyContent="center" + > + <Typography + variant="caption" + component="div" + color="textSecondary" + >{`${Math.round(props.value ?? 0)}%`}</Typography> + </Box> + </Box> + ); +} diff --git a/workspaces/manage/plugins/manage-react/src/components/icons/index.ts b/workspaces/manage/plugins/manage-react/src/components/icons/index.ts new file mode 100644 index 000000000..6e807c829 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/components/icons/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ColumnIconErrorProps } from './ColumnIconError'; +export { ColumnIconError } from './ColumnIconError'; + +export type { + ProgressColor, + ColumnIconPercentProps, +} from './ColumnIconPercent'; +export { ColumnIconPercent } from './ColumnIconPercent'; diff --git a/workspaces/manage/plugins/manage-react/src/hooks/index.ts b/workspaces/manage/plugins/manage-react/src/hooks/index.ts new file mode 100644 index 000000000..71dd880d6 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/hooks/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { useAccordionKey } from './use-accordion-key'; +export type { UseUserSettingsOptions } from './use-user-settings'; +export { useUserSettings } from './use-user-settings'; +export type { ItemWithKey, UseOrderOptions } from './use-order'; +export { useOrder } from './use-order'; diff --git a/workspaces/manage/plugins/manage-react/src/hooks/use-accordion-key.ts b/workspaces/manage/plugins/manage-react/src/hooks/use-accordion-key.ts new file mode 100644 index 000000000..1925da1f5 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/hooks/use-accordion-key.ts @@ -0,0 +1,39 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { KindStarred, useCurrentKind } from '../components/CurrentKindProvider'; + +/** + * Get the accordion key for the current view (combined, not combined, starred) + * + * @param key - A key for the kind of accordion, e.g. a feature or plugin name + * @param uniquePerKind - If true, the key will be unique per kind, defaults to false + * + * @public + */ +export function useAccordionKey(key: string, uniquePerKind?: boolean): string { + const kind = useCurrentKind(); + + if (kind === KindStarred) { + return `$manage-${key}-$starred`; + } else if (!kind) { + return `$manage-${key}-$combined`; + } + + if (uniquePerKind) { + return `$manage-${key}-${kind}`; + } + return `$manage-${key}-$kind`; +} diff --git a/workspaces/manage/plugins/manage-react/src/hooks/use-order.ts b/workspaces/manage/plugins/manage-react/src/hooks/use-order.ts new file mode 100644 index 000000000..0ce0e9b52 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/hooks/use-order.ts @@ -0,0 +1,175 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useMemo } from 'react'; + +/** @public */ +export interface ItemWithKey<T> { + value: T; + key: string; +} + +/** + * Options for the useOrder hook. + * + * @public + */ +export interface UseOrderOptions<T, U> { + /** + * Lookup a key, given an item. + * Should return a string, but can be anything else. If not a string, + * the item will be appended at the end of the returned array. + */ + keyOf: (item: T) => U; + + /** + * Compare function, to order the items that are not found in the ordered list + * of keys. + */ + nonFoundCompare?: (a: ItemWithKey<T>, b: ItemWithKey<T>) => number; + + /** Treat keys as case sensitive */ + caseSensitive?: boolean; // default: false + + /** Stringify an item. Will fallback to keyOf. */ + stringifyItem?: (item: T) => string; + + /** Stringify a key. Will fallback to an identity function for strings */ + stringifyKey?: (key: U) => string; + + /** Custom function for joining a list of strings to a single string */ + joiner?: (keys: string[]) => string; + + /** + * Memoization method for the items. Can be 'reference' or 'key' (default). + * + * If set to 'reference', the items will be memoized by reference and the + * result will be a new array if the input array reference is changed. + */ + itemsMemoMethod?: 'reference' | 'key'; + + /** + * Memoization method for the items. Can be 'reference' or 'key' (default). + * + * If set to 'reference', the items will be memoized by reference and the + * result will be a new array if the input array reference is changed. + */ + keysMemoMethod?: 'reference' | 'key'; +} + +const defaultKeyOf = ((item: string) => item) as any; +const defaultJoiner = (v: string[]) => v.join(' @@ '); + +/** + * Orders a list of items according to an ordered list of keys. + * + * Items not found in the ordered list of keys will be placed at the end in the + * same order as the input. + * Items whose key is not a string will be placed at the very end of the list. + * + * @public + */ +export function useOrder<T, U>( + items: T[], + keys: U[], + options: UseOrderOptions<T, U>, +): T[]; +/** @public */ +export function useOrder<T extends string>( + items: T[], + keys: T[], + options?: Partial<UseOrderOptions<T, T>>, +): T[]; +/** @public */ +export function useOrder<T, U>( + items: T[], + keys: U[], + options?: Partial<UseOrderOptions<T, U>>, +): T[] { + const { + keyOf = defaultKeyOf, + nonFoundCompare, + caseSensitive = false, + stringifyItem = (item: T) => `${keyOf(item)}`, + stringifyKey = (key: U) => `${key}`, + joiner = defaultJoiner, + itemsMemoMethod = 'key', + keysMemoMethod = 'key', + } = options ?? {}; + + const ensureCase = caseSensitive + ? (s: string) => s + : (s: string) => s.toLocaleLowerCase('en-US'); + + const joinedItems = ensureCase( + joiner(items.map(item => stringifyItem(item))), + ); + const joinedKeys = ensureCase(joiner(keys.map(k => stringifyKey(k)))); + + const memoItems = itemsMemoMethod === 'reference' ? items : joinedItems; + const memoKeys = keysMemoMethod === 'reference' ? keys : joinedKeys; + + return useMemo(() => { + const casedKeys = keys.map(key => ensureCase(stringifyKey(key))); + + const itemsWithKeys: ItemWithKey<T>[] = items.map(value => ({ + value, + key: ensureCase(keyOf(value)), + })); + + const orderableItems: ItemWithKey<T>[] = []; + const unorderableItems: ItemWithKey<T>[] = []; + const nonstringItems: T[] = []; + + itemsWithKeys.forEach(item => { + const key = item.key; + if (typeof key === 'string') { + const casedKey = ensureCase(key); + if (casedKeys.includes(casedKey)) { + orderableItems.push(item); + } else { + unorderableItems.push(item); + } + } else { + nonstringItems.push(item.value); + } + }); + + orderableItems.sort((a, b) => { + const aKey = a.key as string; + const bKey = b.key as string; + + const indexA = casedKeys.indexOf(aKey); + const indexB = casedKeys.indexOf(bKey); + + // Since we know that each item exist in the keys array, + // we can safely assume that the indexes are not -1. + return indexA < indexB ? -1 : 1; + }); + + if (nonFoundCompare) { + unorderableItems.sort(nonFoundCompare); + } + + return ([] as T[]).concat( + orderableItems.map(item => item.value), + unorderableItems.map(item => item.value), + nonstringItems, + ); + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [memoItems, memoKeys]); +} diff --git a/workspaces/manage/plugins/manage-react/src/hooks/use-user-settings.ts b/workspaces/manage/plugins/manage-react/src/hooks/use-user-settings.ts new file mode 100644 index 000000000..9bddfd42d --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/hooks/use-user-settings.ts @@ -0,0 +1,92 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useCallback, useEffect, useMemo } from 'react'; + +import useObservable from 'react-use/lib/useObservable'; + +import { storageApiRef, useApi } from '@backstage/core-plugin-api'; +import { JsonValue } from '@backstage/types'; + +function useUserStorage() { + return useApi(storageApiRef).forBucket('manage-page'); +} + +/** + * Options for the useUserSettings hook. + * + * @public + */ +export interface UseUserSettingsOptions<T extends JsonValue> { + defaultValue?: T | undefined; + + /** + * If the value stored is an invalid shape, this function can coerce it + * to the right type + */ + coerce?: (value: JsonValue) => T; +} + +/** + * Create/use a settings saved per-user. + * + * @param feature - The name of the feature/plugin + * @param key - The particular settings name + * + * @public + */ +export function useUserSettings<T extends JsonValue>( + feature: string, + key: string, + options?: UseUserSettingsOptions<T>, +): [value: T | undefined, setValue: (value: T) => void, isSettled: boolean] { + const { defaultValue, coerce } = options ?? {}; + + const userStorage = useUserStorage(); + + const storageKey = useMemo(() => `${feature}:${key}`, [feature, key]); + + const observableStorage = useMemo( + () => userStorage.observe$<T>(storageKey), + [userStorage, storageKey], + ); + const current = + useObservable(observableStorage) ?? userStorage.snapshot(storageKey); + + const isNotSet = current.presence === 'absent'; + const isSettled = current.presence === 'present'; + + const value = current?.value ?? defaultValue; + + const setValue = useCallback( + (val: T) => { + userStorage.set(storageKey, val); + }, + [userStorage, storageKey], + ); + + useEffect(() => { + if (isNotSet && defaultValue !== undefined) { + setValue(defaultValue); + } + }, [setValue, isNotSet, defaultValue]); + + const coercedValue = useMemo(() => { + return coerce ? coerce(value ?? null) : value; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [value]); + + return [coercedValue, setValue, isSettled]; +} diff --git a/workspaces/manage/plugins/manage-react/src/index.ts b/workspaces/manage/plugins/manage-react/src/index.ts new file mode 100644 index 000000000..c7dd3790a --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/index.ts @@ -0,0 +1,96 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type * from './api'; +export * from './api'; + +export * from './plugin'; + +export type { ManageAccordionProps } from './components/Accordion'; +export { ManageAccordion } from './components/Accordion'; + +export type * from './components/CurrentKindProvider'; +export * from './components/CurrentKindProvider'; + +export { + KindOrderProvider, + useSetKindOrder, + useKindOrder, +} from './components/KindOrder'; + +export { + useOwnedKinds, + useOwnedEntities, + useManagedEntities, +} from './components/OwnedEntitiesProvider'; + +export type { Owners } from './components/OwnedGroupsProvider'; +export { useOwners } from './components/OwnedGroupsProvider'; + +export type { + OwnedEntitiesProviderProps, + ManageOwnedProvider, +} from './components/OwnedEntitiesProvider'; + +export type { + ManageGaugeCardProps, + ManageGaugeCard, + GaugeCardProps, +} from './components/GaugeCard'; +export type { + ManageGaugeGrid, + ManageGaugeGridProps, +} from './components/GaugeGrid'; + +export type * from './components/icons'; +export * from './components/icons'; + +export type { + ReorderableTabsProps, + ManageReorderableTabs, +} from './components/ReorderableTabs'; + +export type { + ManageTabContentFullHeight, + TabContentFullHeightProps, +} from './components/TabContentFullHeight'; + +export type { + CreateUserSettingsContextOptions, + UserSettingsContextResult, +} from './components/UserSettingsProvider'; +export { createUserSettingsContext } from './components/UserSettingsProvider'; + +export type { + ItemWithKey, + UseOrderOptions, + UseUserSettingsOptions, +} from './hooks'; +export { useAccordionKey, useOrder, useUserSettings } from './hooks'; + +export type { + ManageColumn, + ManageColumnModuleMultiple, + ManageColumnModuleSingle, + ManageColumnModule, + GetColumnsFunc, + GetColumnFunc, +} from './components/column-providers/types'; +export { + isManageColumnModuleMultiple, + simplifyColumns, +} from './components/column-providers/types'; + +export { arrayify, pluralizeKind } from './utils'; diff --git a/workspaces/manage/plugins/manage-react/src/plugin.ts b/workspaces/manage/plugins/manage-react/src/plugin.ts new file mode 100644 index 000000000..dea47c963 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/plugin.ts @@ -0,0 +1,83 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + createComponentExtension, + createPlugin, +} from '@backstage/core-plugin-api'; + +/** @public */ +export const manageReactPlugin = createPlugin({ + id: 'manage-react', +}); + +/** @public */ +export const OwnedProvider = manageReactPlugin.provide( + createComponentExtension({ + name: 'OwnedProvider', + component: { + lazy: () => + import('./components/OwnedEntitiesProvider').then( + m => m.ManageOwnedProvider, + ), + }, + }), +); + +/** @public */ +export const TabContentFullHeight = manageReactPlugin.provide( + createComponentExtension({ + name: 'TabContentFullHeight', + component: { + lazy: () => + import('./components/TabContentFullHeight').then( + m => m.ManageTabContentFullHeight, + ), + }, + }), +); + +/** @public */ +export const GaugeCard = manageReactPlugin.provide( + createComponentExtension({ + name: 'GaugeCard', + component: { + lazy: () => import('./components/GaugeCard').then(m => m.ManageGaugeCard), + }, + }), +); + +/** @public */ +export const GaugeGrid = manageReactPlugin.provide( + createComponentExtension({ + name: 'GaugeGrid', + component: { + lazy: () => import('./components/GaugeGrid').then(m => m.ManageGaugeGrid), + }, + }), +); + +/** @public */ +export const ReorderableTabs = manageReactPlugin.provide( + createComponentExtension({ + name: 'ReorderableTabs', + component: { + lazy: () => + import('./components/ReorderableTabs').then( + m => m.ManageReorderableTabs, + ), + }, + }), +); diff --git a/workspaces/manage/plugins/manage-react/src/setupTests.ts b/workspaces/manage/plugins/manage-react/src/setupTests.ts new file mode 100644 index 000000000..8b9b6bd58 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/workspaces/manage/plugins/manage-react/src/utils/index.ts b/workspaces/manage/plugins/manage-react/src/utils/index.ts new file mode 100644 index 000000000..cccfc9b08 --- /dev/null +++ b/workspaces/manage/plugins/manage-react/src/utils/index.ts @@ -0,0 +1,54 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import pluralize from 'pluralize'; + +import type { KindStarredType } from '../components/CurrentKindProvider'; + +/** + * Ensure a value is an array + * + * @public + */ +export function arrayify<T>(t: T | T[] | Iterable<T> | undefined): T[] { + if (Array.isArray(t)) { + return t; + } + if (isIterable(t)) { + return Array.from(t); + } + return typeof t === 'undefined' || t === null ? [] : [t]; +} + +function isIterable(v: any): v is Iterable<any> { + return typeof v !== 'string' && typeof v?.[Symbol.iterator] === 'function'; +} + +export function kindToOpaqueString(kind: string | KindStarredType): string { + return typeof kind === 'string' ? kind : ` symbol$$${kind.description} `; +} + +export function joinKinds(kinds: (string | KindStarredType)[]): string { + return kinds.map(k => kindToOpaqueString(k)).join(' $ '); +} + +/** + * Returns the plural of a kind + * + * @public + */ +export function pluralizeKind(kind: string) { + return pluralize(kind); +} diff --git a/workspaces/manage/plugins/manage/.eslintrc.js b/workspaces/manage/plugins/manage/.eslintrc.js new file mode 100644 index 000000000..e2a53a6ad --- /dev/null +++ b/workspaces/manage/plugins/manage/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/workspaces/manage/plugins/manage/README.md b/workspaces/manage/plugins/manage/README.md new file mode 100644 index 000000000..44123e47f --- /dev/null +++ b/workspaces/manage/plugins/manage/README.md @@ -0,0 +1,176 @@ +# Manage + +This plugin offers a place for developers to manage things they and their team own. + +The Manage page is modular and customizable. It can be designed arbitrarily, but comes with a default implementation of a set of tabs for each view - entities (such as components and systems), starred entities and organization structure. Other tabs can be added as well. The entities tabs show a table of owned entities, and above and below these, custom React components can be rendered. The table can be extended with columns for additional information, such as tech-insight checks. + +The page is wrapped in a provider which has fetched all groups the user belongs to, and all entities owned by the user or any of these groups. Each built-in tab also wraps information about what kind of entity is shown, exposed as hooks. This is useful for extensions that provide gauges, statistics, etc. + +![Components tab](./docs/components.png) + +## Installation + +In `App.tsx`, add a route: + +```tsx +import { ManagePage } from '@backstage-community/plugin-manage'; + +// ... +<Route + path="/manage" + element={ + <ManagePage> + <Manage /> + </ManagePage> + } +/>; +``` + +Implement the `Manage` component somewhere, e.g. in `src/components/manage/Manage.tsx`: + +```tsx +import { ManageTabs } from '@backstage-community/plugin-manage'; + +export function Manage() { + return <ManageTabs />; +} +``` + +Add it to the sidebar (`src/components/Root/Root.tsx`): + +```tsx +import ManageIcon from '@material-ui/icons/Ballot'; +import { managePlugin } from '@backstage-community/plugin-manage'; + +export const Root = ({ children }: PropsWithChildren<{}>) => { + const managePage = useRouteRef(managePlugin.routes.root); + + // ... + <SidebarItem icon={ManageIcon} to={managePage()} text="Manage" />; + // ... +}; +``` + +Install the API (e.g. in `src/apis.ts`). The preferred order of the tabs to show for owned entities can be provided to the API factory function. + +```ts +import { createManageApiFactory } from '@backstage-community/plugin-manage-react'; + +export const apis = [ + // ..., + createManageApiFactory({ + kindOrder: ['component', 'api', 'system'], + }), +]; +``` + +## Configuration + +The `Manage` component can render anything, but the `ManageTabs` are useful to show as a minimum. It renders the user's owned entities in individual tabs per kind, and a tab for starred entities (by default, but can be turned off). + +`ManageTabs` can show custom tabs before and after the built-in ones using the `tabsBefore` and `tabsAfter` props. The `@backstage-community/plugin-manage` package provides a view for the organization graph for the current user which can be added as a tab like this: + +```tsx +import { + ManageTabs, + OrganizationGraph, +} from '@backstage-community/plugin-manage'; + +export function Manage() { + return ( + <ManageTabs + tabsAfter={[ + { + path: 'organization', + title: 'Organization', + children: <OrganizationGraph />, + }, + ]} + /> + ); +} +``` + +What to be displayed above and below the table, and the table columns, can be configured, either for any table or for certain kinds, for starred entities, and for the combined view (all entity kinds in one tab). + +- `commonHeader` and `commonFooter` are the components to show above and below each table. +- `commonColumns` are the extra columns to display in each table. +- `combined`, `kinds` and `starred` are used to configure the header, footer and columns for each specific table. + +Example (using the tech-insights module `@backstage-community-plugin-manage-module-tech-insights`): + +```tsx +<ManageTabs + combined={{ + header: <ManageTechInsightsCards inAccordion />, + columns: [manageTechInsightsColumns({ combined: true })], + }} + starred={{ + header: <ManageTechInsightsGrid />, + columns: [manageTechInsightsColumns({ combined: true })], + }} + kinds={{ + [MANAGE_KIND_COMMON]: { + header: <ManageTechInsightsCards inAccordion />, + columns: [manageTechInsightsColumns()], + }, + component: { + columns: [manageTechInsightsColumns({ combined: true })], + }, + }} +/> +``` + +### ManagePage configuration + +The top-level component `ManagePage` which is added to the flat routes can be configured to force entities to be showed combined (into one tab) or separate, by setting the `combined` prop. The `labels` prop can be used to completely override the right side of the header. It's possible to inject custom React Providers inside the manage page by adding them to the `providers` props. + +## Settings + +By default, a Settings tab will be added at the end of the tabs. This tab can be turned off or replaced by custom content. The default Settings page allows the user to reorder the tabs, e.g. to put a certain kind of entity first (or any other tab), so that it becomes the default when navigating to the Manage page. + +![Settings view](./docs/settings.png) + +To customize this view, set the `settings` prop for `ManagePage` to your custom component. The default settings are available as the components `TabOrderCard` and `KindOrderCard` exported from `@backstage-community/plugin-manage`. + +## Manage page extensions + +The manage page can be extended with functionality, e.g. columns to the owned entity tables, or other useful gauges, charts, statistics etc to display above or below the entity table, or in separate tabs. An example of an extension to the manage page is `@backstage-community/plugin-manage-module-tech-insights` which provides tech-insight checks as guages and columns to the entity tables, as well as aggregated gauges to render above or below the table. + +More information on how to build extensions, check out the README for `@backstage-community/plugin-manage-react` + +## Full-height custom tabs + +When adding a custom tab, it's sometimes useful to make its content full height (to the bottom of the window). + +Example of adding the `JiraUserIssuesTable` from `@axis-backstage/plugin-jira-dashboard` to a tab: + +```tsx +import { TabContentFullHeight } from '@backstage-community/plugin-manage-react'; +import { JiraUserIssuesTable } from '@axis-backstage/plugin-jira-dashboard'; + +// ... + +<ManageTabs + tabsAfter={[ + { + path: 'jira', + title: 'Jira', + children: ( + <TabContentFullHeight resizeChild> + <JiraUserIssuesTable + maxResults={40} + tableStyle={{ maxHeight: '100%', width: '100%' }} + style={{ + maxHeight: '100%', + padding: '20px', + overflowY: 'auto', + width: '100%', + }} + /> + </TabContentFullHeight> + ), + }, + ]} +/>; +``` diff --git a/workspaces/manage/plugins/manage/catalog-info.yaml b/workspaces/manage/plugins/manage/catalog-info.yaml new file mode 100644 index 000000000..75393a270 --- /dev/null +++ b/workspaces/manage/plugins/manage/catalog-info.yaml @@ -0,0 +1,10 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: backstage-plugin-manage + title: '@backstage/plugin-manage' + description: Manage page +spec: + lifecycle: experimental + type: backstage-frontend-plugin + owner: maintainers diff --git a/workspaces/manage/plugins/manage/docs/components.png b/workspaces/manage/plugins/manage/docs/components.png new file mode 100644 index 0000000000000000000000000000000000000000..66918e937f34a3bc2f6c7dc937102f5ed787a326 GIT binary patch literal 290602 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≠<zNhmZ24Uo8 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%0DMvVwiDGf{0U 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 literal 0 HcmV?d00001 diff --git a/workspaces/manage/plugins/manage/docs/settings.png b/workspaces/manage/plugins/manage/docs/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..3211e57a3b09aa85ebea06bab0bc4dbe2b051f17 GIT binary patch literal 274853 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�!> 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�HFrBdiB+sFksesZx0=EF`%Ub;AF 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%0AV5Po7ELHNq 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 AMgRZ+ literal 0 HcmV?d00001 diff --git a/workspaces/manage/plugins/manage/package.json b/workspaces/manage/plugins/manage/package.json new file mode 100644 index 000000000..60f566f8a --- /dev/null +++ b/workspaces/manage/plugins/manage/package.json @@ -0,0 +1,70 @@ +{ + "name": "@backstage-community/plugin-manage", + "description": "Manage plugin - Shows a Manage page relevant to the user", + "version": "0.1.0", + "backstage": { + "role": "frontend-plugin", + "pluginId": "manage", + "pluginPackages": [ + "@backstage-community/plugin-manage", + "@backstage-community/plugin-manage-react" + ] + }, + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/manage" + }, + "keywords": [ + "backstage", + "manage", + "page", + "manage-page", + "components" + ], + "sideEffects": false, + "scripts": { + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage-community/plugin-manage-react": "workspace:^", + "@backstage/catalog-model": "^1.7.3", + "@backstage/core-components": "^0.16.3", + "@backstage/core-plugin-api": "^1.10.3", + "@backstage/plugin-catalog-graph": "^0.4.15", + "@backstage/plugin-catalog-react": "^1.15.1", + "@mui/icons-material": "^5.16.7", + "@mui/material": "^5.15.16", + "@mui/styles": "^5", + "react-use": "^17.5.0" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.13.1 || ^17.0.0 || ^18.0.0", + "react-router-dom": "6.0.0-beta.0 || ^6.3.0" + }, + "devDependencies": { + "@backstage/cli": "^0.29.5", + "@backstage/plugin-catalog": "^1.26.1", + "@backstage/test-utils": "^1.7.4", + "@backstage/types": "^1.2.1", + "@types/react": "^18.3.12" + }, + "files": [ + "dist" + ] +} diff --git a/workspaces/manage/plugins/manage/report.api.md b/workspaces/manage/plugins/manage/report.api.md new file mode 100644 index 000000000..010851e21 --- /dev/null +++ b/workspaces/manage/plugins/manage/report.api.md @@ -0,0 +1,142 @@ +## API Report File for "@backstage-community/plugin-manage" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { ComponentProps } from 'react'; +import { ComponentType } from 'react'; +import { Entity } from '@backstage/catalog-model'; +import { Header } from '@backstage/core-components'; +import { ManageColumnModule } from '@backstage-community/plugin-manage-react'; +import { PropsWithChildren } from 'react'; +import { default as React_2 } from 'react'; +import { ReactNode } from 'react'; +import { RoutedTabs } from '@backstage/core-components'; +import { RouteRef } from '@backstage/core-plugin-api'; +import { TableOptions } from '@backstage/core-components'; + +// @public +export function DefaultSettings(): React_2.JSX.Element; + +// @public (undocumented) +export type HeaderProps = Partial<ComponentProps<typeof Header>>; + +// @public +export function KindOrderCard(): React_2.JSX.Element; + +// @public +export const MANAGE_KIND_COMMON = '$common'; + +// @public (undocumented) +export interface ManageColumnSimple { + // (undocumented) + component: ManageColumnSimpleComponent; + // (undocumented) + id: string; + // (undocumented) + title: string; +} + +// @public (undocumented) +export type ManageColumnSimpleComponent = + ComponentType<ManageColumnSimpleComponentProps>; + +// @public (undocumented) +export interface ManageColumnSimpleComponentProps { + // (undocumented) + entity: Entity; +} + +// @public (undocumented) +export interface ManageEntitiesTableProps { + // (undocumented) + columns?: TableColumn[]; + // (undocumented) + options?: TableOptions<TableRow>; + // (undocumented) + subtitle?: string; + // (undocumented) + title?: string; +} + +// @public +export interface ManageKindOptions { + columns?: TableColumn[]; + footer?: ReactNode; + header?: ReactNode; + tableOptions?: TableOptions<TableRow>; +} + +// @public (undocumented) +export const ManagePage: ManagePageImpl; + +// @public +export function ManagePageImpl<SupportedKinds extends string>( + props: PropsWithChildren<ManagePageProps<SupportedKinds> & HeaderProps>, +): React_2.JSX.Element; + +// @public +export interface ManagePageProps<SupportedKinds extends string> { + combined?: boolean; + header?: JSX.Element; + kinds?: SupportedKinds[]; + labels?: JSX.Element; + providers?: ComponentType<{ + children?: ReactNode | undefined; + }>[]; + themeId?: string; +} + +// @public (undocumented) +export const managePlugin: BackstagePlugin< + { + root: RouteRef<undefined>; + }, + {}, + {} +>; + +// @public (undocumented) +export const ManageTabs: ManageTabsImpl; + +// @public +export function ManageTabsImpl(props: ManageTabsProps): React_2.JSX.Element; + +// @public +export interface ManageTabsProps { + combined?: ManageKindOptions; + commonColumns?: TableColumn[]; + commonFooter?: ReactNode; + commonHeader?: ReactNode; + kinds?: Record<string, ManageKindOptions>; + onNothingOwned?: ReactNode; + settings?: boolean | ReactNode; + starred?: false | ManageKindOptions; + tabsAfter?: SubRouteTab[]; + tabsBefore?: SubRouteTab[]; +} + +// @public (undocumented) +export const OrganizationGraph: OrganizationGraphImpl; + +// @public +export function OrganizationGraphImpl(): React_2.JSX.Element; + +// @public (undocumented) +export type SubRouteTab = ComponentProps<typeof RoutedTabs>['routes'][number]; + +// @public (undocumented) +export type TableColumn = ManageColumnSimple | ManageColumnModule; + +// @public (undocumented) +export type TableRow = { + entity: Entity; + id?: string; +}; + +// @public +export function TabOrderCard(): React_2.JSX.Element; + +// (No @packageDocumentation comment for this package) +``` diff --git a/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/ReRender.tsx b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/ReRender.tsx new file mode 100644 index 000000000..97e3ba88f --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/ReRender.tsx @@ -0,0 +1,32 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { PropsWithChildren, useEffect, useState } from 'react'; + +import { Progress } from '@backstage/core-components'; + +export function ReRender(props: PropsWithChildren<{ uniq: any }>) { + const { children, uniq } = props; + + const [state, setState] = useState(uniq); + + useEffect(() => { + setTimeout(() => { + setState(uniq); + }, 1); + }, [uniq]); + + return state === uniq ? children : <Progress />; +} diff --git a/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/index.ts b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/index.ts new file mode 100644 index 000000000..7cee90a44 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManageEntitiesTableProps, TableRow, TableColumn } from './table'; +export { ManageEntitiesTable } from './table'; +export type { + ManageColumnSimpleComponentProps, + ManageColumnSimpleComponent, + ManageColumnSimple, +} from './utils'; diff --git a/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table-settings.tsx b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table-settings.tsx new file mode 100644 index 000000000..bcb85d5f3 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table-settings.tsx @@ -0,0 +1,35 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createUserSettingsContext } from '@backstage-community/plugin-manage-react'; + +const entitesTablePageSizeFeature = '$manage-page-entities-table'; +const entitesTablePageSizeKey = 'page-size'; + +export const defaultPageSize = 10; + +export const { + Provider: EntitiesTablePageSizeProvider, + useSetting: useEntitesTablePageSize, + useSetSetting: useSetEntitesTablePageSize, +} = createUserSettingsContext( + entitesTablePageSizeFeature, + entitesTablePageSizeKey, + { + defaultValue: defaultPageSize, + coerce: value => + typeof value === 'number' && !isNaN(value) ? value : defaultPageSize, + }, +); diff --git a/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table.tsx b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table.tsx new file mode 100644 index 000000000..cf7936960 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/table.tsx @@ -0,0 +1,325 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useCallback, useMemo, useRef } from 'react'; + +import Tooltip from '@mui/material/Tooltip'; +import { capitalize } from '@mui/material/utils'; +import BusinessIcon from '@mui/icons-material/Business'; +import ScatterPlotIcon from '@mui/icons-material/ScatterPlot'; +import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'; + +import { Table, TableOptions, TableColumn } from '@backstage/core-components'; +import { + Entity, + parseEntityRef, + stringifyEntityRef, +} from '@backstage/catalog-model'; +import { EntityRefLink } from '@backstage/plugin-catalog-react'; + +import { + KindStarred, + ManageColumnModule, + simplifyColumns, + useOwnedEntities, + useCurrentKindTitle, + pluralizeKind, +} from '@backstage-community/plugin-manage-react'; + +import { ManageColumnSimple, isManageColumnSimple } from './utils'; +import { ReRender } from './ReRender'; +import { + defaultPageSize, + EntitiesTablePageSizeProvider, + useEntitesTablePageSize, + useSetEntitesTablePageSize, +} from './table-settings'; + +/** @public */ +export type TableRow = { + entity: Entity; + id?: string; +}; + +function Lifecycle(props: { entity: Entity }) { + const lifecycle = props.entity.spec?.lifecycle ?? ''; + + if (lifecycle === 'production') { + return ( + <Tooltip title="Production"> + <BusinessIcon style={{ fontSize: 'inherit' }} /> + </Tooltip> + ); + } else if (lifecycle === 'experimental') { + return ( + <Tooltip title="Experimental"> + <ScatterPlotIcon style={{ fontSize: 'inherit' }} /> + </Tooltip> + ); + } else if (lifecycle === 'deprecated') { + return ( + <Tooltip title="Deprecated"> + <DeleteOutlineIcon style={{ fontSize: 'inherit' }} /> + </Tooltip> + ); + } + + return <></>; +} + +/** @public */ +type Column = ManageColumnSimple | ManageColumnModule; + +export { type Column as TableColumn }; + +/** @public */ +export interface ManageEntitiesTableProps { + columns?: Column[]; + options?: TableOptions<TableRow>; + title?: string; + subtitle?: string; +} + +/** + * Props for the {@link ManageEntitiesTable} component. + * + * @public + */ +export interface ManageEntitiesTableSpecificProps + extends ManageEntitiesTableProps { + kind?: string; + starred?: boolean; +} + +const defaultPageSizeOptions = [defaultPageSize, 25, 50, 100]; + +function ManageEntitiesTableInner( + props: ManageEntitiesTableSpecificProps & { entities: Entity[] }, +) { + const { kind, options, entities, title, subtitle } = props; + + const defaultColumns: TableColumn<TableRow>[] = useMemo( + () => [ + ...(kind === undefined + ? [ + { + title: 'Kind', + render(data) { + return data.entity.kind; + }, + } satisfies TableColumn<TableRow>, + ] + : []), + { + title: kind ? capitalize(kind) : 'Name', + render(data, _type) { + return ( + <> + <EntityRefLink + title={data.entity.metadata.name} + hideIcon + entityRef={data.entity} + /> + </> + ); + }, + } satisfies TableColumn<TableRow>, + { + title: 'Title', + render(data, _type) { + return ( + <> + <Lifecycle entity={data.entity} /> + <EntityRefLink entityRef={data.entity} /> + </> + ); + }, + }, + ...(kind === 'component' + ? [ + { + title: 'Type', + render(data) { + return data.entity.spec?.type; + }, + } satisfies TableColumn<TableRow>, + ] + : []), + { + title: 'Owner', + render(data, _type) { + if (data.entity.spec?.owner) { + const owner = parseEntityRef(`${data.entity.spec.owner}`, { + defaultKind: 'group', + }); + return <EntityRefLink entityRef={owner} />; + } + return <></>; + }, + }, + ], + [kind], + ); + + const simpleColsRef = useRef<{ + renderers: Map<Column, TableColumn<TableRow>>; + }>({} as any); + simpleColsRef.current.renderers ??= new Map(); + + const setOnce = useCallback((col: ManageColumnSimple) => { + let tableColumn = simpleColsRef.current.renderers.get(col); + if (!tableColumn) { + tableColumn = { + title: col.title, + id: col.id, + render(data) { + return <col.component entity={data.entity} />; + }, + }; + simpleColsRef.current.renderers.set(col, tableColumn); + } + return tableColumn; + }, []); + + const extraColumns = (props.columns ?? []).flatMap( + (col): TableColumn<TableRow> | TableColumn<TableRow>[] => + isManageColumnSimple(col) + ? setOnce(col) + : simplifyColumns(col) + .getColumns(entities) + .map(innerCol => innerCol), + ); + + const columns: TableColumn<TableRow>[] = [...defaultColumns, ...extraColumns]; + + const data: TableRow[] = useMemo( + () => + entities.map(entity => ({ + entity, + id: stringifyEntityRef(entity), + })), + [entities], + ); + + const pageSizeOptions = options?.pageSizeOptions ?? defaultPageSizeOptions; + // const [pageSize = defaultPageSize, setPageSize] = useEntitesTablePageSize( + // options?.pageSize ?? pageSizeOptions[0] ?? defaultPageSize, + // ); + const pageSize = useEntitesTablePageSize() ?? defaultPageSize; + const setPageSize = useSetEntitesTablePageSize(); + const paging = options?.paging ?? pageSizeOptions[0] < data.length; + + const customOptions: TableOptions<TableRow> = { + pageSize, + pageSizeOptions, + paging, + }; + + const kindTitle = useCurrentKindTitle(); + const tableTitle = title ?? `Your ${kindTitle}`; + const tableSubtitle = + subtitle ?? + `These ${ + kind ? pluralizeKind(kind) : 'entities' + } are owned by you, or groups you belong to`; + + const onPageChange = useCallback( + (_: number, newPageSize: number) => { + if (pageSize !== newPageSize) { + setPageSize(newPageSize); + } + }, + [pageSize, setPageSize], + ); + + const table = ( + <Table + title={tableTitle} + subtitle={tableSubtitle} + columns={columns} + data={data} + options={{ + padding: 'dense', + search: false, + paginationPosition: 'top', + showFirstLastPageButtons: true, + emptyRowsWhenPaging: false, + ...options, + ...customOptions, + }} + onPageChange={onPageChange} + /> + ); + + return table; +} + +function ManageEntitiesOwned(props: ManageEntitiesTableSpecificProps) { + const entities = useOwnedEntities(props.kind); + + return ( + <EntitiesTablePageSizeProvider> + <ManageEntitiesTableInner + columns={props.columns} + kind={props.kind} + options={props.options} + entities={entities} + /> + </EntitiesTablePageSizeProvider> + ); +} + +function ManageEntitiesStarred(props: ManageEntitiesTableSpecificProps) { + const entities = useOwnedEntities(KindStarred); + + return ( + <EntitiesTablePageSizeProvider> + <ManageEntitiesTableInner + columns={props.columns} + options={props.options} + entities={entities} + subtitle="" + /> + </EntitiesTablePageSizeProvider> + ); +} + +/** + * The table that shows entities of a certain kind (or all kinds, or starred + * entities) + * + * @public + */ +export function ManageEntitiesTable(props: ManageEntitiesTableSpecificProps) { + const { starred } = props; + + return ( + <ReRender uniq={`cols-${props.columns?.length}-${props.kind}`}> + {starred ? ( + <ManageEntitiesStarred + columns={props.columns} + kind={props.kind} + options={props.options} + /> + ) : ( + <ManageEntitiesOwned + columns={props.columns} + kind={props.kind} + options={props.options} + /> + )} + </ReRender> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/utils.ts b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/utils.ts new file mode 100644 index 000000000..193bf85f1 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageEntitiesList/utils.ts @@ -0,0 +1,42 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import type { ComponentType } from 'react'; + +import type { Entity } from '@backstage/catalog-model'; + +import type { ManageColumnModule } from '@backstage-community/plugin-manage-react'; + +/** @public */ +export interface ManageColumnSimpleComponentProps { + entity: Entity; +} + +/** @public */ +export type ManageColumnSimpleComponent = + ComponentType<ManageColumnSimpleComponentProps>; + +/** @public */ +export interface ManageColumnSimple { + title: string; + id: string; + component: ManageColumnSimpleComponent; +} + +export function isManageColumnSimple( + column: ManageColumnSimple | ManageColumnModule, +): column is ManageColumnSimple { + return !!(column as ManageColumnSimple).component; +} diff --git a/workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.test.tsx b/workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.test.tsx new file mode 100644 index 000000000..a14c422f7 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.test.tsx @@ -0,0 +1,111 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React from 'react'; +import { renderInTestApp, TestApiProvider } from '@backstage/test-utils'; +import { + catalogApiRef, + StarredEntitiesApi, + starredEntitiesApiRef, +} from '@backstage/plugin-catalog-react'; +import { catalogPlugin } from '@backstage/plugin-catalog'; +import { Observable } from '@backstage/types'; + +import { + ManageApi, + manageApiRef, +} from '@backstage-community/plugin-manage-react'; + +import { ManagePageImpl } from './ManagePage'; +import { ManageTabsImpl } from '../ManageTabs'; +import { mockCatalogApi } from '../../../test/catalog'; + +const starredEntities: StarredEntitiesApi = { + toggleStarred: async () => {}, + starredEntitie$: () => + ({ + subscribe: () => ({ + unsubscribe: () => {}, + closed: true, + }), + } as Observable<Set<string>>), +}; + +describe('ManagePage', () => { + it('should render an empty page if nothing owned', async () => { + const mockApi: ManageApi = { + getProviders: () => [], + kindOrder: [], + }; + + const apis = [ + [manageApiRef, mockApi], + [catalogApiRef, mockCatalogApi({ empty: true })], + [starredEntitiesApiRef, starredEntities], + ] as const; + + const { getByText } = await renderInTestApp( + <TestApiProvider apis={apis}> + <ManagePageImpl subtitle="Things you own"> + <ManageTabsImpl /> + </ManagePageImpl> + </TestApiProvider>, + { + mountedRoutes: { + '/catalog': catalogPlugin.routes.catalogIndex, + '/catalog/:kind/:namespace/:name': catalogPlugin.routes.catalogEntity, + }, + }, + ); + + expect(getByText('Manage')?.tagName).toBe('H1'); + expect(getByText('Things you own')).toBeDefined(); + expect( + getByText("You and your team(s) don't own any entities"), + ).toBeDefined(); + }); + + it('should render a table of owned entities', async () => { + const mockApi: ManageApi = { + getProviders: () => [], + kindOrder: [], + }; + + const apis = [ + [manageApiRef, mockApi], + [catalogApiRef, mockCatalogApi()], + [starredEntitiesApiRef, starredEntities], + ] as const; + + const { getByText } = await renderInTestApp( + <TestApiProvider apis={apis}> + <ManagePageImpl subtitle="Things you own"> + <ManageTabsImpl /> + </ManagePageImpl> + </TestApiProvider>, + { + mountedRoutes: { + '/catalog': catalogPlugin.routes.catalogIndex, + '/catalog/:kind/:namespace/:name': catalogPlugin.routes.catalogEntity, + }, + }, + ); + + expect(getByText('Manage')?.tagName).toBe('H1'); + expect(getByText('Things you own')).toBeDefined(); + expect(getByText('The Foo')).toBeDefined(); + }); +}); diff --git a/workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.tsx b/workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.tsx new file mode 100644 index 000000000..129173b00 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManagePage/ManagePage.tsx @@ -0,0 +1,128 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { + ComponentType, + ReactNode, + ComponentProps, + PropsWithChildren, +} from 'react'; + +import { Content, Header, Page } from '@backstage/core-components'; +import { useApi } from '@backstage/core-plugin-api'; +import { + KindOrderProvider, + manageApiRef, + OwnedProvider, +} from '@backstage-community/plugin-manage-react'; + +import { ManagePageFilters } from '../ManagePageFilters/ManagePageFilters'; +import { useManagePageCombined } from '../ManagePageFilters'; + +/** + * Props for the {@link ManagePage} component. + * + * @public + */ +export interface ManagePageProps<SupportedKinds extends string> { + /** + * Any set of `<Header>` components for the page header. Defaults to a switch + * of combined / not combined view unless + * {@link ManagePageProps.combined | combined} is specified. + */ + labels?: JSX.Element; + + /** + * Custom page header. Can be set to `<></>` to remove the header completely. + */ + header?: JSX.Element; + + /** + * Set combined view on or off. Leave empty for a toggle in the header labels + * section. + */ + combined?: boolean; + + /** + * Theme for the `<Page>` component. + */ + themeId?: string; + + /** + * Owner entity kinds to fetch + */ + kinds?: SupportedKinds[]; + + /** + * Providers for custom manage page features + */ + providers?: ComponentType<{ children?: ReactNode | undefined }>[]; +} + +/** @public */ +export type HeaderProps = Partial<ComponentProps<typeof Header>>; + +/** + * The main page for for Manage plugin. + * + * @public + */ +export function ManagePageImpl<SupportedKinds extends string>( + props: PropsWithChildren<ManagePageProps<SupportedKinds> & HeaderProps>, +) { + const { + combined, + labels = typeof combined === 'undefined' ? <ManagePageFilters /> : <></>, + header, + themeId, + children, + kinds, + providers: propProviders = [], + ...headerProps + } = props; + + // Initialize the state, set default value + useManagePageCombined(combined); + + const manageApi = useApi(manageApiRef); + const providers = [...propProviders, ...manageApi.getProviders()]; + + const headerComponent = header ?? ( + <Header + {...headerProps} + title={headerProps.title ?? 'Manage'} + subtitle={headerProps.subtitle ?? 'Things you own and work with'} + children={labels} + /> + ); + + return ( + <Page themeId={themeId ?? 'home'}> + {headerComponent} + <Content> + <KindOrderProvider> + <OwnedProvider kinds={kinds}> + {providers.reduce( + (prev, Provider) => ( + <Provider children={prev} /> + ), + children, + )} + </OwnedProvider> + </KindOrderProvider> + </Content> + </Page> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/ManagePage/index.tsx b/workspaces/manage/plugins/manage/src/components/ManagePage/index.tsx new file mode 100644 index 000000000..096844cac --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManagePage/index.tsx @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { ManagePageProps, HeaderProps } from './ManagePage'; +export { ManagePageImpl } from './ManagePage'; diff --git a/workspaces/manage/plugins/manage/src/components/ManagePageFilters/ManagePageFilters.tsx b/workspaces/manage/plugins/manage/src/components/ManagePageFilters/ManagePageFilters.tsx new file mode 100644 index 000000000..71206c1ac --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManagePageFilters/ManagePageFilters.tsx @@ -0,0 +1,59 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useCallback } from 'react'; + +import { makeStyles } from '@mui/styles'; +import FormGroup from '@mui/material/FormGroup'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import Switch from '@mui/material/Switch'; +import Typography from '@mui/material/Typography'; + +import { useManagePageCombined } from './useFilters'; + +const useStyles = makeStyles(theme => ({ + label: { + color: theme.page.fontColor, + userSelect: 'none', + }, +})); + +export function ManagePageFilters() { + const { label } = useStyles(); + const [combined, setCombined] = useManagePageCombined(); + + const handleChange = useCallback( + (_event: unknown, checked: boolean) => { + setCombined(checked); + }, + [setCombined], + ); + + return ( + <FormGroup row> + <FormControlLabel + control={ + <Switch + checked={combined ?? false} + onChange={handleChange} + name="manage-page-combined" + color="primary" + /> + } + label={<Typography className={label}>Combine entities</Typography>} + /> + </FormGroup> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/ManagePageFilters/index.ts b/workspaces/manage/plugins/manage/src/components/ManagePageFilters/index.ts new file mode 100644 index 000000000..b5f0b89d5 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManagePageFilters/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { ManagePageFilters } from './ManagePageFilters'; +export { useManagePageCombined } from './useFilters'; diff --git a/workspaces/manage/plugins/manage/src/components/ManagePageFilters/useFilters.ts b/workspaces/manage/plugins/manage/src/components/ManagePageFilters/useFilters.ts new file mode 100644 index 000000000..d4aab222d --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManagePageFilters/useFilters.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { useUserSettings } from '@backstage-community/plugin-manage-react'; + +export function useManagePageCombined(defaultValue?: boolean) { + return useUserSettings<boolean>('$manage-page-filter', 'combined', { + defaultValue, + }); +} diff --git a/workspaces/manage/plugins/manage/src/components/ManageTabs/ManageTabs.tsx b/workspaces/manage/plugins/manage/src/components/ManageTabs/ManageTabs.tsx new file mode 100644 index 000000000..8f6926d56 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageTabs/ManageTabs.tsx @@ -0,0 +1,367 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import React, { ComponentProps, ReactNode, useMemo } from 'react'; + +import Alert from '@mui/material/Alert'; +import { capitalize } from '@mui/material/utils'; + +import { RoutedTabs, TableOptions } from '@backstage/core-components'; + +import { + CurrentKindProvider, + useKindOrder, + useOwnedKinds, + arrayify, + pluralizeKind, + useOrder, +} from '@backstage-community/plugin-manage-react'; + +import { + TableColumn, + ManageEntitiesTable, + TableRow, +} from '../ManageEntitiesList'; +import { useManagePageCombined } from '../ManagePageFilters'; +import { MANAGE_KIND_COMMON } from './types'; +import { Settings } from '../Settings'; +import { TabsOrderProvider, useTabsOrder } from '../TabsOrder'; + +/** @public */ +export type SubRouteTab = ComponentProps<typeof RoutedTabs>['routes'][number]; + +/** + * Options for configuring how an entity kind is displayed. + * + * @public + */ +export interface ManageKindOptions { + /** + * A component header (or array of header components) to show above the entity + * table. + */ + header?: ReactNode; + + /** + * A component footer (or array of footer components) to show above the entity + * table. + */ + footer?: ReactNode; + + /** + * An array of columns to display in the entity table. + */ + columns?: TableColumn[]; + + /** + * Table options for the entity table. + */ + tableOptions?: TableOptions<TableRow>; +} + +/** + * Props for {@link ManageTabs}. + * + * @public + */ +export interface ManageTabsProps { + /** + * A component header (or array of header components) to show above all entity + * kind tables. + */ + commonHeader?: ReactNode; + + /** + * A component footer (or array of footer components) to show below all entity + * kind tables. + */ + commonFooter?: ReactNode; + + /** + * An array of columns to display in all entity tables. + */ + commonColumns?: TableColumn[]; + + /** + * Show all entities (of different kinds) in the same table, instead of + * rendering tabs for each kind. + */ + combined?: ManageKindOptions; + + /** + * Configuration of headers, footers and columns to display per entity kind. + * + * A special kind (imported as `MANAGE_KIND_COMMON`) can be used to specify + * headers, footers and columns for all kinds. They can be overwritten by + * specific kinds if a value is not undefined - an empty array will overwrite + * and clear a value in `MANAGE_KIND_COMMON`. + */ + kinds?: Record<string, ManageKindOptions>; + + /** + * Turn off the 'Starred entities' tab, or specify its options. + */ + starred?: false | ManageKindOptions; + + /** + * Tabs to show _before_ the entity kind tabs + */ + tabsBefore?: SubRouteTab[]; + + /** + * Tabs to show _after_ the entity kind tabs + */ + tabsAfter?: SubRouteTab[]; + + /** + * If the user and corresponding groups don't own any entities, show this + * component at the top + */ + onNothingOwned?: ReactNode; + + /** + * Render a "Settings" tab at the end of the tabs. This tab will contain a + * way for users to re-order the tabs. + * + * If set to `true` (default), a default settings view will be added. + * If set to `false`, no settings tab will be shown. + * This can also be a custom component to render as the settings tab. + */ + settings?: boolean | ReactNode; +} + +const defaultNothingOwned = ( + <Alert severity="info">You and your team(s) don't own any entities</Alert> +); + +/** + * The main component for displaying tabs for entities, and other custom tabs. + * + * @public + */ +export function ManageTabsImpl(props: ManageTabsProps) { + return ( + <TabsOrderProvider> + <ManageTabsInner {...props} /> + </TabsOrderProvider> + ); +} + +function ManageTabsInner(props: ManageTabsProps) { + const { + combined, + commonColumns = [], + kinds: kindSetup, + starred = {}, + tabsBefore = [], + tabsAfter = [], + settings = true, + } = props; + + const tabOrder = useTabsOrder() ?? []; + + const [settingsCombined] = useManagePageCombined(); + + const kindSetupMap = useMemo( + (): Map<string, ManageKindOptions> => + new Map( + Object.entries(kindSetup ?? {}).map(([name, options]) => [ + name.toLocaleLowerCase('en-US'), + options, + ]), + ), + [kindSetup], + ); + + const commonHeader = arrayify(props.commonHeader); + const commonFooter = arrayify(props.commonFooter); + + const ownedKinds = useOwnedKinds(true) ?? []; + const kinds = useKindOrder(ownedKinds); + + const onNothingOwned = + kinds.length === 0 ? props.onNothingOwned ?? defaultNothingOwned : null; + + const allKindsHeader = kindSetupMap.get(MANAGE_KIND_COMMON)?.header; + const allKindsFooter = kindSetupMap.get(MANAGE_KIND_COMMON)?.footer; + const allKindsColumns = kindSetupMap.get(MANAGE_KIND_COMMON)?.columns; + const allKindsTableOptions = + kindSetupMap.get(MANAGE_KIND_COMMON)?.tableOptions; + + const makeTable = (kind: string) => { + const { + header: headers, + footer: footers, + columns, + tableOptions: kindTableOptions, + } = kindSetupMap.get(kind) ?? {}; + + const kindHeaders = [ + ...commonHeader, + ...arrayify(headers ?? allKindsHeader), + ]; + const kindFooters = [ + ...commonFooter, + ...arrayify(footers ?? allKindsFooter), + ]; + const kindColumns = arrayify(columns ?? allKindsColumns); + const allColumns = [...commonColumns, ...(kindColumns ?? [])]; + const tableOptions = kindTableOptions ?? allKindsTableOptions; + + return ( + <CurrentKindProvider kind={kind}> + {renderArray(kindHeaders?.length ? null : commonHeader)} + {renderArray(kindHeaders)} + <ManageEntitiesTable + columns={allColumns} + kind={kind} + options={tableOptions} + /> + {renderArray(kindFooters)} + {renderArray(kindFooters?.length ? null : commonFooter)} + </CurrentKindProvider> + ); + }; + + const makeGenericTable = ( + options: ManageKindOptions & { starred?: boolean }, + ): JSX.Element => { + const table = ( + <> + {renderArray(commonHeader)} + {renderArray(options.header ?? null)} + <ManageEntitiesTable + columns={options.columns} + options={options.tableOptions} + starred={options.starred ?? false} + /> + {renderArray(options.footer ?? null)} + {renderArray(commonFooter)} + </> + ); + return table; + }; + + const makeStarredTab = (): SubRouteTab[] => { + if (!starred) { + return []; + } + + const header = arrayify(starred.header); + const footer = arrayify(starred.footer); + const kindColumns = arrayify(starred.columns ?? allKindsColumns); + const allColumns = [...commonColumns, ...kindColumns]; + + return [ + { + path: 'starred-entities', + title: 'Starred entities', + children: ( + <CurrentKindProvider starred> + {makeGenericTable({ + columns: allColumns, + tableOptions: starred.tableOptions, + starred: true, + header, + footer, + })} + </CurrentKindProvider> + ), + }, + ]; + }; + + const starredTab = makeStarredTab(); + + const tabs = [ + ...tabsBefore, + { + path: 'entities', + title: 'Entities...', + children: <></>, + }, + ...starredTab, + ...tabsAfter, + ]; + + const orderedTabs = Array.from( + useOrder(tabs, tabOrder, { keyOf: tab => tab.path }), + ); + + if (settings) { + const tabsForSettings = Array.from(orderedTabs); + orderedTabs.push({ + path: 'settings', + title: 'Settings', + children: <Settings tabs={tabsForSettings} content={settings} />, + }); + } + + const makeCombinedEntitiesTab = (): SubRouteTab => ({ + path: 'entities', + title: 'Entities', + children: makeGenericTable(combined ?? {}), + }); + + const makeSeparateEntitiesTabs = (): SubRouteTab[] => { + return kinds + .filter(rawKind => typeof rawKind === 'string') + .map((rawKind): SubRouteTab => { + const kind = rawKind.toLocaleLowerCase('en-US'); + + return { + path: kind, + title: capitalize(pluralizeKind(rawKind)), + children: makeTable(kind), + }; + }); + }; + + return ( + <> + {onNothingOwned} + <RoutedTabs + routes={orderedTabs.flatMap(tab => { + if (tab.path === 'entities') { + if (settingsCombined) { + return makeCombinedEntitiesTab(); + } + return makeSeparateEntitiesTabs(); + } + return tab; + })} + key="manage-routed-tabs" + /> + </> + ); +} + +function maybeArrayify<T>(v: T | T[] | null): T[] | null { + if (!v) { + return null; + } + return arrayify(v); +} + +function renderArray<T extends ReactNode>(v: T | T[] | null): ReactNode { + const arr = maybeArrayify(v); + if (!arr) { + return null; + } + return arr.map((item, index) => ( + <React.Fragment key={index}>{item}</React.Fragment> + )); +} diff --git a/workspaces/manage/plugins/manage/src/components/ManageTabs/index.ts b/workspaces/manage/plugins/manage/src/components/ManageTabs/index.ts new file mode 100644 index 000000000..2f45aabd9 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageTabs/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export type { + SubRouteTab, + ManageTabsProps, + ManageKindOptions, +} from './ManageTabs'; +export { ManageTabsImpl } from './ManageTabs'; +export { MANAGE_KIND_COMMON } from './types'; diff --git a/workspaces/manage/plugins/manage/src/components/ManageTabs/types.ts b/workspaces/manage/plugins/manage/src/components/ManageTabs/types.ts new file mode 100644 index 000000000..21f35dbd1 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/ManageTabs/types.ts @@ -0,0 +1,24 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * A special "kind" that can be used to configure all kinds. Settings for this + * kind are shared with all tabs for entities, unless they are individuall + * configured. + * + * @public + */ +export const MANAGE_KIND_COMMON = '$common'; diff --git a/workspaces/manage/plugins/manage/src/components/OrganizationGraph/OrganizationGraph.tsx b/workspaces/manage/plugins/manage/src/components/OrganizationGraph/OrganizationGraph.tsx new file mode 100644 index 000000000..77ec00db1 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/OrganizationGraph/OrganizationGraph.tsx @@ -0,0 +1,111 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useCallback, useMemo } from 'react'; + +import { useNavigate } from 'react-router-dom'; + +import { + Direction, + EntityNode, + EntityRelationsGraph, +} from '@backstage/plugin-catalog-graph'; +import { getCompoundEntityRef, parseEntityRef } from '@backstage/catalog-model'; +import { EmptyState } from '@backstage/core-components'; +import { useAnalytics, useRouteRef } from '@backstage/core-plugin-api'; +import { + entityRouteRef, + humanizeEntityRef, +} from '@backstage/plugin-catalog-react'; +import { useOwners } from '@backstage-community/plugin-manage-react'; + +/** + * An organization view for the current user. + * + * @public + */ +export function OrganizationGraphImpl() { + const { ownedEntityRefs } = useOwners(); + + const userEntityRef = useMemo(() => { + return ownedEntityRefs + .map(entityRef => parseEntityRef(entityRef)) + .find( + compoundEntityRef => + compoundEntityRef.kind.toLocaleLowerCase('en-US') === 'user', + ); + }, [ownedEntityRefs]); + + const navigate = useNavigate(); + const analytics = useAnalytics(); + const catalogEntityRoute = useRouteRef(entityRouteRef); + + const onNodeClick = useCallback( + (node: EntityNode) => { + const entity = node.entity + ? getCompoundEntityRef(node.entity) + : parseEntityRef(node.id); + + const path = catalogEntityRoute({ + kind: entity.kind.toLocaleLowerCase('en-US'), + namespace: entity.namespace.toLocaleLowerCase('en-US'), + name: entity.name, + }); + analytics.captureEvent( + 'click', + node.entity.metadata.title ?? humanizeEntityRef(entity), + { attributes: { to: path } }, + ); + navigate(path); + }, + [catalogEntityRoute, navigate, analytics], + ); + + if (!userEntityRef) { + return <EmptyState title="Current user not found" missing="data" />; + } + + return ( + <div + style={{ + display: 'flex', + flexDirection: 'row', + minHeight: 400, + maxHeight: 600, + }} + > + <EntityRelationsGraph + rootEntityNames={userEntityRef} + kinds={['Group']} + curve="curveMonotoneX" + direction={Direction.TOP_BOTTOM} + mergeRelations + maxDepth={Infinity} + unidirectional + relations={[ + 'hasPart', + 'partOf', + 'parentOf', + 'childOf', + 'hasMember', + 'memberOf', + ]} + onNodeClick={onNodeClick} + showArrowHeads + zoom="enable-on-click" + /> + </div> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/OrganizationGraph/index.ts b/workspaces/manage/plugins/manage/src/components/OrganizationGraph/index.ts new file mode 100644 index 000000000..f81f8b4b3 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/OrganizationGraph/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { OrganizationGraphImpl } from './OrganizationGraph'; diff --git a/workspaces/manage/plugins/manage/src/components/Settings/DefaultSettings.tsx b/workspaces/manage/plugins/manage/src/components/Settings/DefaultSettings.tsx new file mode 100644 index 000000000..e61a8c76c --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/DefaultSettings.tsx @@ -0,0 +1,40 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; + +import Grid from '@mui/material/Grid'; + +import { TabOrderCard } from './TabOrderCard'; +import { KindOrderCard } from './KindOrderCard'; + +/** + * A component that renders the default settings. These are the `TabOrderCard` + * and `KindOrderCard`. + * + * @public + */ +export function DefaultSettings() { + return ( + <Grid container spacing={3} direction="column"> + <Grid item> + <TabOrderCard /> + </Grid> + <Grid item> + <KindOrderCard /> + </Grid> + </Grid> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/KindOrderCard.tsx b/workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/KindOrderCard.tsx new file mode 100644 index 000000000..fc967506a --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/KindOrderCard.tsx @@ -0,0 +1,75 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useCallback, useMemo } from 'react'; + +import { capitalize } from '@mui/material/utils'; +import Box from '@mui/material/Box'; +import Card from '@mui/material/Card'; +import CardHeader from '@mui/material/CardHeader'; +import CardContent from '@mui/material/CardContent'; +import Button from '@mui/material/Button'; + +import { + pluralizeKind, + ReorderableTabs, + useKindOrder, + useOwnedKinds, + useSetKindOrder, +} from '@backstage-community/plugin-manage-react'; + +/** + * The KindOrder card that is displayed in the default settings page. + * + * @public + */ +export function KindOrderCard() { + const setTabOrder = useSetKindOrder(); + + const onReset = useCallback(() => { + setTabOrder([]); + }, [setTabOrder]); + + const kinds = useOwnedKinds(); + const orderedKinds = useKindOrder(kinds); + + const orderedTabs = useMemo( + () => + orderedKinds.map(kind => ({ + id: kind, + title: capitalize(pluralizeKind(kind)), + })), + [orderedKinds], + ); + + return ( + <Card> + <CardHeader + title="Kind order" + subheader="Reorder the entity kinds to your liking by dragging them" + action={ + <Button aria-label="reset" onClick={onReset}> + Reset + </Button> + } + /> + <CardContent> + <Box> + <ReorderableTabs tabs={orderedTabs} onChange={setTabOrder} /> + </Box> + </CardContent> + </Card> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/index.ts b/workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/index.ts new file mode 100644 index 000000000..b9f2b23c1 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/KindOrderCard/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { KindOrderCard } from './KindOrderCard'; diff --git a/workspaces/manage/plugins/manage/src/components/Settings/Settings.tsx b/workspaces/manage/plugins/manage/src/components/Settings/Settings.tsx new file mode 100644 index 000000000..e4367040a --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/Settings.tsx @@ -0,0 +1,35 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { ReactNode } from 'react'; + +import { SettingsProvider } from './SettingsProvider'; +import { DefaultSettings } from './DefaultSettings'; + +export interface SettingsProps { + tabs: { path: string; title: string }[]; + + content?: ReactNode; +} + +export function Settings(props: SettingsProps) { + const { tabs, content } = props; + + return ( + <SettingsProvider tabs={tabs}> + {content === true ? <DefaultSettings /> : content} + </SettingsProvider> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/Settings/SettingsProvider.tsx b/workspaces/manage/plugins/manage/src/components/Settings/SettingsProvider.tsx new file mode 100644 index 000000000..90bea6397 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/SettingsProvider.tsx @@ -0,0 +1,44 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { createContext, PropsWithChildren, useMemo } from 'react'; + +export interface SettingsContext { + tabs: { path: string; title: string }[]; +} + +const ctx = createContext<SettingsContext>(null as any); + +export interface SettingsProviderProps { + tabs: { path: string; title: string }[]; +} + +export function SettingsProvider({ + tabs, + children, +}: PropsWithChildren<SettingsProviderProps>) { + const value = useMemo(() => ({ tabs }), [tabs]); + + return <ctx.Provider value={value} children={children} />; +} + +export function useSettings() { + const settings = React.useContext(ctx); + if (!settings) { + throw new Error('No settings provider found'); + } + + return settings; +} diff --git a/workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/TabOrderCard.tsx b/workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/TabOrderCard.tsx new file mode 100644 index 000000000..8ef233e4e --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/TabOrderCard.tsx @@ -0,0 +1,66 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React, { useCallback, useMemo } from 'react'; + +import Box from '@mui/material/Box'; +import Card from '@mui/material/Card'; +import CardHeader from '@mui/material/CardHeader'; +import CardContent from '@mui/material/CardContent'; +import Button from '@mui/material/Button'; + +import { ReorderableTabs } from '@backstage-community/plugin-manage-react'; + +import { useSetTabsOrder } from '../../TabsOrder'; +import { useSettings } from '../SettingsProvider'; + +/** + * The TabOrder card that is displayed in the default settings page. + * + * @public + */ +export function TabOrderCard() { + const { tabs } = useSettings(); + + const setTabOrder = useSetTabsOrder(); + + const onReset = useCallback(() => { + setTabOrder([]); + }, [setTabOrder]); + + const orderedTabs = useMemo( + () => tabs.map(tab => ({ id: tab.path, title: tab.title })), + [tabs], + ); + + return ( + <Card> + <CardHeader + title="Tab order" + subheader="Reorder the tabs to your liking by dragging them" + action={ + <Button aria-label="reset" onClick={onReset}> + Reset + </Button> + } + /> + <CardContent> + <Box> + <ReorderableTabs tabs={orderedTabs} onChange={setTabOrder} /> + </Box> + </CardContent> + </Card> + ); +} diff --git a/workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/index.ts b/workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/index.ts new file mode 100644 index 000000000..5549e13f5 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/TabOrderCard/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { TabOrderCard } from './TabOrderCard'; diff --git a/workspaces/manage/plugins/manage/src/components/Settings/index.ts b/workspaces/manage/plugins/manage/src/components/Settings/index.ts new file mode 100644 index 000000000..0180522f6 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/Settings/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { Settings } from './Settings'; +export { DefaultSettings } from './DefaultSettings'; +export { KindOrderCard } from './KindOrderCard'; +export { TabOrderCard } from './TabOrderCard'; diff --git a/workspaces/manage/plugins/manage/src/components/TabsOrder/TabsOrder.tsx b/workspaces/manage/plugins/manage/src/components/TabsOrder/TabsOrder.tsx new file mode 100644 index 000000000..118f6b906 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/TabsOrder/TabsOrder.tsx @@ -0,0 +1,35 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createUserSettingsContext } from '@backstage-community/plugin-manage-react'; + +const userSettingsFeature = '$manage-page-tabs'; +const userSettingsKey = 'order'; + +const coerceStringArray = (arr: any): string[] => { + if (!Array.isArray(arr)) { + return []; + } + return arr.map(value => (typeof value !== 'string' ? `${value}` : value)); +}; + +export const { + Provider: TabsOrderProvider, + useSetting: useTabsOrder, + useSetSetting: useSetTabsOrder, +} = createUserSettingsContext(userSettingsFeature, userSettingsKey, { + defaultValue: [], + coerce: coerceStringArray, +}); diff --git a/workspaces/manage/plugins/manage/src/components/TabsOrder/index.ts b/workspaces/manage/plugins/manage/src/components/TabsOrder/index.ts new file mode 100644 index 000000000..0ff46507d --- /dev/null +++ b/workspaces/manage/plugins/manage/src/components/TabsOrder/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { TabsOrderProvider, useTabsOrder, useSetTabsOrder } from './TabsOrder'; diff --git a/workspaces/manage/plugins/manage/src/index.ts b/workspaces/manage/plugins/manage/src/index.ts new file mode 100644 index 000000000..c2b532f54 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/index.ts @@ -0,0 +1,49 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export * from './plugin'; + +export type { + TableRow, + ManageEntitiesTableProps, + TableColumn, + ManageColumnSimpleComponentProps, + ManageColumnSimpleComponent, + ManageColumnSimple, +} from './components/ManageEntitiesList'; + +export type { + ManagePageProps, + HeaderProps, + ManagePageImpl, +} from './components/ManagePage'; + +export type { + SubRouteTab, + ManageTabsProps, + ManageKindOptions, + ManageTabsImpl, +} from './components/ManageTabs'; + +export type { OrganizationGraphImpl } from './components/OrganizationGraph'; + +export { MANAGE_KIND_COMMON } from './components/ManageTabs'; + +export { + DefaultSettings, + KindOrderCard, + TabOrderCard, +} from './components/Settings'; diff --git a/workspaces/manage/plugins/manage/src/plugin.ts b/workspaces/manage/plugins/manage/src/plugin.ts new file mode 100644 index 000000000..c0f0bc6b0 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/plugin.ts @@ -0,0 +1,96 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { + createComponentExtension, + createPlugin, + createRoutableExtension, +} from '@backstage/core-plugin-api'; + +import { createManageApiFactory } from '@backstage-community/plugin-manage-react'; + +import { rootRouteRef } from './routes'; + +/** @public */ +export const managePlugin = createPlugin({ + id: 'manage', + routes: { + root: rootRouteRef, + }, + apis: [createManageApiFactory()], +}); + +/** @public */ +export const ManagePage = managePlugin.provide( + createRoutableExtension({ + name: 'ManagePage', + component: () => + import('./components/ManagePage').then(m => m.ManagePageImpl), + mountPoint: rootRouteRef, + }), +); + +/** @public */ +export const ManageTabs = managePlugin.provide( + createComponentExtension({ + name: 'ManageTabs', + component: { + lazy: () => import('./components/ManageTabs').then(m => m.ManageTabsImpl), + }, + }), +); + +/** @public */ +export const OrganizationGraph = managePlugin.provide( + createComponentExtension({ + name: 'OrganizationGraph', + component: { + lazy: () => + import('./components/OrganizationGraph').then( + m => m.OrganizationGraphImpl, + ), + }, + }), +); + +/** @public */ +export const DefaultSettings = managePlugin.provide( + createComponentExtension({ + name: 'DefaultSettings', + component: { + lazy: () => import('./components/Settings').then(m => m.DefaultSettings), + }, + }), +); + +/** @public */ +export const KindOrderCard = managePlugin.provide( + createComponentExtension({ + name: 'KindOrderCard', + component: { + lazy: () => import('./components/Settings').then(m => m.KindOrderCard), + }, + }), +); + +/** @public */ +export const TabOrderCard = managePlugin.provide( + createComponentExtension({ + name: 'TabOrderCard', + component: { + lazy: () => import('./components/Settings').then(m => m.TabOrderCard), + }, + }), +); diff --git a/workspaces/manage/plugins/manage/src/routes.ts b/workspaces/manage/plugins/manage/src/routes.ts new file mode 100644 index 000000000..cc6c008c2 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/routes.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { createRouteRef } from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'Manage Page', +}); diff --git a/workspaces/manage/plugins/manage/src/setupTests.ts b/workspaces/manage/plugins/manage/src/setupTests.ts new file mode 100644 index 000000000..c7ce5c098 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/setupTests.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2024 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export {}; diff --git a/workspaces/manage/plugins/manage/src/types.ts b/workspaces/manage/plugins/manage/src/types.ts new file mode 100644 index 000000000..422deecf9 --- /dev/null +++ b/workspaces/manage/plugins/manage/src/types.ts @@ -0,0 +1,26 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** @public */ +export type EntityKind = + | 'System' + | 'Group' + | 'Component' + | 'API' + | 'Domain' + | 'Location' + | 'Resource' + | 'User'; diff --git a/workspaces/manage/plugins/manage/test/catalog.ts b/workspaces/manage/plugins/manage/test/catalog.ts new file mode 100644 index 000000000..c69d66841 --- /dev/null +++ b/workspaces/manage/plugins/manage/test/catalog.ts @@ -0,0 +1,87 @@ +/* + * Copyright 2025 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Entity, RELATION_OWNED_BY } from '@backstage/catalog-model'; +import type { QueryEntitiesInitialRequest } from '@backstage/catalog-client'; +import type { CatalogApi } from '@backstage/plugin-catalog-react'; + +const entities: Record<string, Entity> = { + 'user:default/guest': { + apiVersion: 'backstage.io/v1alpha1', + kind: 'User', + metadata: { + name: 'Guest', + }, + }, + 'component:default/foo': { + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + name: 'foo', + title: 'The Foo', + }, + relations: [ + { + type: RELATION_OWNED_BY, + targetRef: 'user:default/guest', + }, + ], + }, +}; + +function makeQueryEntitiesResponse(items: Entity[]) { + return { + items, + totalItems: items.length, + pageInfo: {}, + }; +} + +export interface MockCatalogApiOptions { + empty?: boolean; +} + +export const mockCatalogApi = ( + options: MockCatalogApiOptions = {}, +): Partial<CatalogApi> => { + return { + getEntities: async () => ({ items: [] }), + getEntitiesByRefs: async request => { + return { items: request.entityRefs.map(ref => entities[ref]) }; + }, + queryEntities: async (request: QueryEntitiesInitialRequest) => { + if (request.filter && !options.empty) { + return makeQueryEntitiesResponse( + [request.filter] + .flat() + .flatMap(filter => + filter[`relations.${RELATION_OWNED_BY}`] + ? Object.values(entities).filter(entity => + entity.relations?.some( + rel => + rel.type === RELATION_OWNED_BY && + rel.targetRef === + filter[`relations.${RELATION_OWNED_BY}`], + ), + ) + : [], + ), + ); + } + + return makeQueryEntitiesResponse([]); + }, + }; +}; diff --git a/workspaces/manage/tsconfig.json b/workspaces/manage/tsconfig.json new file mode 100644 index 000000000..aed5129a4 --- /dev/null +++ b/workspaces/manage/tsconfig.json @@ -0,0 +1,18 @@ +{ + "extends": "@backstage/cli/config/tsconfig.json", + "include": [ + "packages/*/src", + "plugins/*/src", + "plugins/*/dev", + "plugins/*/migrations" + ], + "files": ["node_modules/@backstage/cli/asset-types/asset-types.d.ts"], + "exclude": ["node_modules"], + "compilerOptions": { + "outDir": "dist-types", + "rootDir": ".", + "lib": ["DOM", "DOM.Iterable", "ScriptHost", "ES2022"], + "target": "ES2022", + "useUnknownInCatchVariables": false + } +} diff --git a/workspaces/manage/yarn.lock b/workspaces/manage/yarn.lock new file mode 100644 index 000000000..b00fdf167 --- /dev/null +++ b/workspaces/manage/yarn.lock @@ -0,0 +1,32935 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10 + +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.1 + resolution: "@adobe/css-tools@npm:4.4.1" + checksum: 10/a0ea05517308593a52728936a833b1075c4cf1a6b68baaea817063f34e75faa1dba1209dd285003c4f8072804227dfa563e7e903f72ae2d39cb520aaee3f4bcc + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/f3451525379c68a73eb0a1e65247fbf28c0cccd126d93af21c75fceff77773d43c0d4a2d51978fb131aff25b5f2cb41a9fe48cc296e61ae65e679c4f6918b0ab + languageName: node + linkType: hard + +"@apidevtools/json-schema-ref-parser@npm:11.7.2": + version: 11.7.2 + resolution: "@apidevtools/json-schema-ref-parser@npm:11.7.2" + dependencies: + "@jsdevtools/ono": "npm:^7.1.3" + "@types/json-schema": "npm:^7.0.15" + js-yaml: "npm:^4.1.0" + checksum: 10/8e80207c28aad234d3710fcfcf307691000bfbda40edb2ea4fdaf8158d026eb2b15a6471076490c2f40304df5b7bdd4be33d9979acef6cbfaf459b8bd1d79bf2 + languageName: node + linkType: hard + +"@apidevtools/json-schema-ref-parser@npm:^11.7.2": + version: 11.7.3 + resolution: "@apidevtools/json-schema-ref-parser@npm:11.7.3" + dependencies: + "@jsdevtools/ono": "npm:^7.1.3" + "@types/json-schema": "npm:^7.0.15" + js-yaml: "npm:^4.1.0" + checksum: 10/ab496d84f8deca4e5e3ab4adb28825fb1e90655561cf7b70b6dc7b8cf95e49ea9fa3440c265d1d115a43e673b94a79005af05b5d76f77a8934ed1c2fae6762c9 + languageName: node + linkType: hard + +"@apidevtools/openapi-schemas@npm:^2.1.0": + version: 2.1.0 + resolution: "@apidevtools/openapi-schemas@npm:2.1.0" + checksum: 10/4ca78f79ee2e5a162d16d140f939ca90d51265014ea2e500955286ad3acd11b75db4179b7b4bae245b09a981baeb8d80b81bc24c61d6c471a4a4707ed277ebf2 + languageName: node + linkType: hard + +"@apidevtools/swagger-methods@npm:^3.0.2": + version: 3.0.2 + resolution: "@apidevtools/swagger-methods@npm:3.0.2" + checksum: 10/d06b1ac5c1956613c4c6be695612ef860cd4e962b93a509ca551735a328a856cae1e33399cac1dcbf8333ba22b231746f3586074769ef0e172cf549ec9e7eaae + languageName: node + linkType: hard + +"@apidevtools/swagger-parser@npm:^10.1.0": + version: 10.1.1 + resolution: "@apidevtools/swagger-parser@npm:10.1.1" + dependencies: + "@apidevtools/json-schema-ref-parser": "npm:11.7.2" + "@apidevtools/openapi-schemas": "npm:^2.1.0" + "@apidevtools/swagger-methods": "npm:^3.0.2" + "@jsdevtools/ono": "npm:^7.1.3" + ajv: "npm:^8.17.1" + ajv-draft-04: "npm:^1.0.0" + call-me-maybe: "npm:^1.0.2" + peerDependencies: + openapi-types: ">=7" + checksum: 10/8fdda3a2883ceebdb72f4267c3e85f81735a58fc70d5eb4c1b0662a6b39df4e62228d52bcd9e1bde1f6d5b3d4db411b1047975d3acf03b9e8dd02655d8c138c1 + languageName: node + linkType: hard + +"@apisyouwonthate/style-guide@npm:^1.4.0": + version: 1.5.0 + resolution: "@apisyouwonthate/style-guide@npm:1.5.0" + dependencies: + "@stoplight/spectral-formats": "npm:^1.2.0" + "@stoplight/spectral-functions": "npm:^1.6.1" + checksum: 10/cabc978a4f44a54cf76d4a38186c714e89d1ca0cba3814ff2cfed3f0752ef46ebef35df16f45add25235c103f5d7d4b1f9e79ecec0e3596a912e5401b6d3df20 + languageName: node + linkType: hard + +"@asamuzakjp/css-color@npm:^2.8.2": + version: 2.8.3 + resolution: "@asamuzakjp/css-color@npm:2.8.3" + dependencies: + "@csstools/css-calc": "npm:^2.1.1" + "@csstools/css-color-parser": "npm:^3.0.7" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + lru-cache: "npm:^10.4.3" + checksum: 10/3fbd6b975cfca220a0620843776e7d266b880293a9e3364a48de11ca3eb54af8209343d01842a7c98d2737e457294a7621a5f6671aaf5f12e1634d10808f2508 + languageName: node + linkType: hard + +"@asyncapi/avro-schema-parser@npm:^3.0.24": + version: 3.0.24 + resolution: "@asyncapi/avro-schema-parser@npm:3.0.24" + dependencies: + "@asyncapi/parser": "npm:^3.1.0" + "@types/json-schema": "npm:^7.0.11" + avsc: "npm:^5.7.6" + checksum: 10/df9aafed25e1ef68d6b6b221e7e9536693fbf3b75e555ca1e46bfd317a007695718eb4ea5c8be2134ced064678cff9a0b8eca10c11bad3bcd6165684aa8fffb5 + languageName: node + linkType: hard + +"@asyncapi/openapi-schema-parser@npm:^3.0.24": + version: 3.0.24 + resolution: "@asyncapi/openapi-schema-parser@npm:3.0.24" + dependencies: + "@asyncapi/parser": "npm:^3.1.0" + "@openapi-contrib/openapi-schema-to-json-schema": "npm:~3.2.0" + ajv: "npm:^8.11.0" + ajv-errors: "npm:^3.0.0" + ajv-formats: "npm:^2.1.1" + checksum: 10/e0620871dda58fc8936489514ed6db081f3b452c5713edb0e9540438625f039d50a058a4b0fdec8e6602f7f337559fe6228868c147ad6e4d653fca9c4794105b + languageName: node + linkType: hard + +"@asyncapi/parser@npm:^3.1.0, @asyncapi/parser@npm:^3.3.0, @asyncapi/parser@npm:^3.4.0": + version: 3.4.0 + resolution: "@asyncapi/parser@npm:3.4.0" + dependencies: + "@asyncapi/specs": "npm:^6.8.0" + "@openapi-contrib/openapi-schema-to-json-schema": "npm:~3.2.0" + "@stoplight/json": "npm:3.21.0" + "@stoplight/json-ref-readers": "npm:^1.2.2" + "@stoplight/json-ref-resolver": "npm:^3.1.5" + "@stoplight/spectral-core": "npm:^1.18.3" + "@stoplight/spectral-functions": "npm:^1.7.2" + "@stoplight/spectral-parsers": "npm:^1.0.2" + "@stoplight/spectral-ref-resolver": "npm:^1.0.3" + "@stoplight/types": "npm:^13.12.0" + "@types/json-schema": "npm:^7.0.11" + "@types/urijs": "npm:^1.19.19" + ajv: "npm:^8.17.1" + ajv-errors: "npm:^3.0.0" + ajv-formats: "npm:^2.1.1" + avsc: "npm:^5.7.5" + js-yaml: "npm:^4.1.0" + jsonpath-plus: "npm:^10.0.0" + node-fetch: "npm:2.6.7" + checksum: 10/67de9ca4a5257b9fb39e16349d9e3aa0f5d34b0343e5d9c0ea05f35171b604f356ab54ac769783caf580f5f3ef90914267aa60b17783ffbfa07af6af071f9f64 + languageName: node + linkType: hard + +"@asyncapi/protobuf-schema-parser@npm:^3.3.0": + version: 3.4.0 + resolution: "@asyncapi/protobuf-schema-parser@npm:3.4.0" + dependencies: + "@asyncapi/parser": "npm:^3.4.0" + "@types/protocol-buffers-schema": "npm:^3.4.3" + protobufjs: "npm:^7.4.0" + checksum: 10/e04ab346e0145d735a4d4238d7adc74ea469b588be10507363e6e216822b3501b786f2c33d0451ace20ac9e6dace411458b6b8045388bed0300278e7fa2e3822 + languageName: node + linkType: hard + +"@asyncapi/react-component@npm:^2.3.3": + version: 2.5.0 + resolution: "@asyncapi/react-component@npm:2.5.0" + dependencies: + "@asyncapi/avro-schema-parser": "npm:^3.0.24" + "@asyncapi/openapi-schema-parser": "npm:^3.0.24" + "@asyncapi/parser": "npm:^3.3.0" + "@asyncapi/protobuf-schema-parser": "npm:^3.3.0" + highlight.js: "npm:^10.7.2" + isomorphic-dompurify: "npm:^2.14.0" + marked: "npm:^4.0.14" + openapi-sampler: "npm:^1.2.1" + react-error-boundary: "npm:^4.1.2" + use-resize-observer: "npm:^9.1.0" + peerDependencies: + react: ">=18.0.0" + react-dom: ">=18.0.0" + checksum: 10/c580abe2be35f645494fccfb3fbd614b8090827f6bf42dc0514c093d71ccae8bc247d3e07bce9b8a636cbd01d2d70fe6891d77c68000013aa6df3186d3b55a8f + languageName: node + linkType: hard + +"@asyncapi/specs@npm:^6.8.0": + version: 6.8.0 + resolution: "@asyncapi/specs@npm:6.8.0" + dependencies: + "@types/json-schema": "npm:^7.0.11" + checksum: 10/4789e27ff134c0e426327873258da4c8b3ca4156136e698d21af5ca708adce9174ee8ceddaa36a85ed7a1ff6d7cc4bf7eaf88f0e66205f3440879d0297e76671 + languageName: node + linkType: hard + +"@aws-crypto/crc32@npm:5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/crc32@npm:5.2.0" + dependencies: + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + tslib: "npm:^2.6.2" + checksum: 10/1b0a56ad4cb44c9512d8b1668dcf9306ab541d3a73829f435ca97abaec8d56f3db953db03ad0d0698754fea16fcd803d11fa42e0889bc7b803c6a030b04c63de + languageName: node + linkType: hard + +"@aws-crypto/crc32c@npm:5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/crc32c@npm:5.2.0" + dependencies: + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + tslib: "npm:^2.6.2" + checksum: 10/08bd1db17d7c772fa6e34b38a360ce77ad041164743113eefa8343c2af917a419697daf090c5854129ef19f3a9673ed1fd8446e03eb32c8ed52d2cc409b0dee7 + languageName: node + linkType: hard + +"@aws-crypto/sha1-browser@npm:5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/sha1-browser@npm:5.2.0" + dependencies: + "@aws-crypto/supports-web-crypto": "npm:^5.2.0" + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + "@aws-sdk/util-locate-window": "npm:^3.0.0" + "@smithy/util-utf8": "npm:^2.0.0" + tslib: "npm:^2.6.2" + checksum: 10/239f4c59cce9abd33c01117b10553fbef868a063e74faf17edb798c250d759a2578841efa2837e5e51854f52ef57dbc40780b073cae20f89ebed6a8cc7fa06f1 + languageName: node + linkType: hard + +"@aws-crypto/sha256-browser@npm:5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/sha256-browser@npm:5.2.0" + dependencies: + "@aws-crypto/sha256-js": "npm:^5.2.0" + "@aws-crypto/supports-web-crypto": "npm:^5.2.0" + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + "@aws-sdk/util-locate-window": "npm:^3.0.0" + "@smithy/util-utf8": "npm:^2.0.0" + tslib: "npm:^2.6.2" + checksum: 10/2b1b701ca6caa876333b4eb2b96e5187d71ebb51ebf8e2d632690dbcdedeff038202d23adcc97e023437ed42bb1963b7b463e343687edf0635fd4b98b2edad1a + languageName: node + linkType: hard + +"@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/sha256-js@npm:5.2.0" + dependencies: + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + tslib: "npm:^2.6.2" + checksum: 10/f46aace7b873c615be4e787ab0efd0148ef7de48f9f12c7d043e05c52e52b75bb0bf6dbcb9b2852d940d7724fab7b6d5ff1469160a3dd024efe7a68b5f70df8c + languageName: node + linkType: hard + +"@aws-crypto/supports-web-crypto@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/supports-web-crypto@npm:5.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/6ed0c7e17f4f6663d057630805c45edb35d5693380c24ab52d4c453ece303c6c8a6ade9ee93c97dda77d9f6cae376ffbb44467057161c513dffa3422250edaf5 + languageName: node + linkType: hard + +"@aws-crypto/util@npm:5.2.0, @aws-crypto/util@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/util@npm:5.2.0" + dependencies: + "@aws-sdk/types": "npm:^3.222.0" + "@smithy/util-utf8": "npm:^2.0.0" + tslib: "npm:^2.6.2" + checksum: 10/f80a174c404e1ad4364741c942f440e75f834c08278fa754349fe23a6edc679d480ea9ced5820774aee58091ed270067022d8059ecf1a7ef452d58134ac7e9e1 + languageName: node + linkType: hard + +"@aws-sdk/abort-controller@npm:^3.347.0": + version: 3.370.0 + resolution: "@aws-sdk/abort-controller@npm:3.370.0" + dependencies: + "@aws-sdk/types": "npm:3.370.0" + tslib: "npm:^2.5.0" + checksum: 10/14721d79b1c7115a073e2e09e11787d6a6aeb8cce25ab5776f315f375fedad3a7390dd0e028f608507eb31b6d01e448663f19c3333b64edf2d4ca842d7d76a8e + languageName: node + linkType: hard + +"@aws-sdk/client-codecommit@npm:^3.350.0": + version: 3.731.1 + resolution: "@aws-sdk/client-codecommit@npm:3.731.1" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/credential-provider-node": "npm:3.731.1" + "@aws-sdk/middleware-host-header": "npm:3.731.0" + "@aws-sdk/middleware-logger": "npm:3.731.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.731.0" + "@aws-sdk/middleware-user-agent": "npm:3.731.0" + "@aws-sdk/region-config-resolver": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-endpoints": "npm:3.731.0" + "@aws-sdk/util-user-agent-browser": "npm:3.731.0" + "@aws-sdk/util-user-agent-node": "npm:3.731.0" + "@smithy/config-resolver": "npm:^4.0.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/fetch-http-handler": "npm:^5.0.0" + "@smithy/hash-node": "npm:^4.0.0" + "@smithy/invalid-dependency": "npm:^4.0.0" + "@smithy/middleware-content-length": "npm:^4.0.0" + "@smithy/middleware-endpoint": "npm:^4.0.0" + "@smithy/middleware-retry": "npm:^4.0.0" + "@smithy/middleware-serde": "npm:^4.0.0" + "@smithy/middleware-stack": "npm:^4.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/node-http-handler": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/url-parser": "npm:^4.0.0" + "@smithy/util-base64": "npm:^4.0.0" + "@smithy/util-body-length-browser": "npm:^4.0.0" + "@smithy/util-body-length-node": "npm:^4.0.0" + "@smithy/util-defaults-mode-browser": "npm:^4.0.0" + "@smithy/util-defaults-mode-node": "npm:^4.0.0" + "@smithy/util-endpoints": "npm:^3.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-retry": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + "@types/uuid": "npm:^9.0.1" + tslib: "npm:^2.6.2" + uuid: "npm:^9.0.1" + checksum: 10/e8d1730427985b04b2dd8f852e904d6b1ae52bd4a3182b65ebcbb81935b89508c4e38fbd560ea76a716e478c63f3a5a1fad03c11aa15225b29e5db9b81d73165 + languageName: node + linkType: hard + +"@aws-sdk/client-cognito-identity@npm:3.731.1": + version: 3.731.1 + resolution: "@aws-sdk/client-cognito-identity@npm:3.731.1" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/credential-provider-node": "npm:3.731.1" + "@aws-sdk/middleware-host-header": "npm:3.731.0" + "@aws-sdk/middleware-logger": "npm:3.731.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.731.0" + "@aws-sdk/middleware-user-agent": "npm:3.731.0" + "@aws-sdk/region-config-resolver": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-endpoints": "npm:3.731.0" + "@aws-sdk/util-user-agent-browser": "npm:3.731.0" + "@aws-sdk/util-user-agent-node": "npm:3.731.0" + "@smithy/config-resolver": "npm:^4.0.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/fetch-http-handler": "npm:^5.0.0" + "@smithy/hash-node": "npm:^4.0.0" + "@smithy/invalid-dependency": "npm:^4.0.0" + "@smithy/middleware-content-length": "npm:^4.0.0" + "@smithy/middleware-endpoint": "npm:^4.0.0" + "@smithy/middleware-retry": "npm:^4.0.0" + "@smithy/middleware-serde": "npm:^4.0.0" + "@smithy/middleware-stack": "npm:^4.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/node-http-handler": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/url-parser": "npm:^4.0.0" + "@smithy/util-base64": "npm:^4.0.0" + "@smithy/util-body-length-browser": "npm:^4.0.0" + "@smithy/util-body-length-node": "npm:^4.0.0" + "@smithy/util-defaults-mode-browser": "npm:^4.0.0" + "@smithy/util-defaults-mode-node": "npm:^4.0.0" + "@smithy/util-endpoints": "npm:^3.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-retry": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/fdbefb3f481fbb1246df8aadff214675ddf5e99dd356eb9c2e6875f69b23bbb2fa901e37bc8aeff219aed38d78f5974d673a823c98a4f01b6e6ebb26795ae65f + languageName: node + linkType: hard + +"@aws-sdk/client-s3@npm:^3.350.0": + version: 3.733.0 + resolution: "@aws-sdk/client-s3@npm:3.733.0" + dependencies: + "@aws-crypto/sha1-browser": "npm:5.2.0" + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/credential-provider-node": "npm:3.731.1" + "@aws-sdk/middleware-bucket-endpoint": "npm:3.731.0" + "@aws-sdk/middleware-expect-continue": "npm:3.731.0" + "@aws-sdk/middleware-flexible-checksums": "npm:3.732.0" + "@aws-sdk/middleware-host-header": "npm:3.731.0" + "@aws-sdk/middleware-location-constraint": "npm:3.731.0" + "@aws-sdk/middleware-logger": "npm:3.731.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.731.0" + "@aws-sdk/middleware-sdk-s3": "npm:3.733.0" + "@aws-sdk/middleware-ssec": "npm:3.731.0" + "@aws-sdk/middleware-user-agent": "npm:3.731.0" + "@aws-sdk/region-config-resolver": "npm:3.731.0" + "@aws-sdk/signature-v4-multi-region": "npm:3.733.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-endpoints": "npm:3.731.0" + "@aws-sdk/util-user-agent-browser": "npm:3.731.0" + "@aws-sdk/util-user-agent-node": "npm:3.731.0" + "@aws-sdk/xml-builder": "npm:3.723.0" + "@smithy/config-resolver": "npm:^4.0.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/eventstream-serde-browser": "npm:^4.0.0" + "@smithy/eventstream-serde-config-resolver": "npm:^4.0.0" + "@smithy/eventstream-serde-node": "npm:^4.0.0" + "@smithy/fetch-http-handler": "npm:^5.0.0" + "@smithy/hash-blob-browser": "npm:^4.0.0" + "@smithy/hash-node": "npm:^4.0.0" + "@smithy/hash-stream-node": "npm:^4.0.0" + "@smithy/invalid-dependency": "npm:^4.0.0" + "@smithy/md5-js": "npm:^4.0.0" + "@smithy/middleware-content-length": "npm:^4.0.0" + "@smithy/middleware-endpoint": "npm:^4.0.0" + "@smithy/middleware-retry": "npm:^4.0.0" + "@smithy/middleware-serde": "npm:^4.0.0" + "@smithy/middleware-stack": "npm:^4.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/node-http-handler": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/url-parser": "npm:^4.0.0" + "@smithy/util-base64": "npm:^4.0.0" + "@smithy/util-body-length-browser": "npm:^4.0.0" + "@smithy/util-body-length-node": "npm:^4.0.0" + "@smithy/util-defaults-mode-browser": "npm:^4.0.0" + "@smithy/util-defaults-mode-node": "npm:^4.0.0" + "@smithy/util-endpoints": "npm:^3.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-retry": "npm:^4.0.0" + "@smithy/util-stream": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + "@smithy/util-waiter": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/9b86dade55337efccbcddecaba1002dee0cb6e7078276a1347426e8595b720ff01591717be3bea1785b7b51b006f982655c2a3aeef177d8be540940d4a8f9c3f + languageName: node + linkType: hard + +"@aws-sdk/client-sso@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/client-sso@npm:3.731.0" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/middleware-host-header": "npm:3.731.0" + "@aws-sdk/middleware-logger": "npm:3.731.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.731.0" + "@aws-sdk/middleware-user-agent": "npm:3.731.0" + "@aws-sdk/region-config-resolver": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-endpoints": "npm:3.731.0" + "@aws-sdk/util-user-agent-browser": "npm:3.731.0" + "@aws-sdk/util-user-agent-node": "npm:3.731.0" + "@smithy/config-resolver": "npm:^4.0.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/fetch-http-handler": "npm:^5.0.0" + "@smithy/hash-node": "npm:^4.0.0" + "@smithy/invalid-dependency": "npm:^4.0.0" + "@smithy/middleware-content-length": "npm:^4.0.0" + "@smithy/middleware-endpoint": "npm:^4.0.0" + "@smithy/middleware-retry": "npm:^4.0.0" + "@smithy/middleware-serde": "npm:^4.0.0" + "@smithy/middleware-stack": "npm:^4.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/node-http-handler": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/url-parser": "npm:^4.0.0" + "@smithy/util-base64": "npm:^4.0.0" + "@smithy/util-body-length-browser": "npm:^4.0.0" + "@smithy/util-body-length-node": "npm:^4.0.0" + "@smithy/util-defaults-mode-browser": "npm:^4.0.0" + "@smithy/util-defaults-mode-node": "npm:^4.0.0" + "@smithy/util-endpoints": "npm:^3.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-retry": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/49ccf945adce0f7100128313a05c85c1c317554347dc5c4992d02a9602e8e1e45741431372caeba5f4f4b54d333c37c5b59dacf15b66fad3bdbea832d775dbef + languageName: node + linkType: hard + +"@aws-sdk/client-sts@npm:^3.350.0": + version: 3.731.1 + resolution: "@aws-sdk/client-sts@npm:3.731.1" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/credential-provider-node": "npm:3.731.1" + "@aws-sdk/middleware-host-header": "npm:3.731.0" + "@aws-sdk/middleware-logger": "npm:3.731.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.731.0" + "@aws-sdk/middleware-user-agent": "npm:3.731.0" + "@aws-sdk/region-config-resolver": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-endpoints": "npm:3.731.0" + "@aws-sdk/util-user-agent-browser": "npm:3.731.0" + "@aws-sdk/util-user-agent-node": "npm:3.731.0" + "@smithy/config-resolver": "npm:^4.0.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/fetch-http-handler": "npm:^5.0.0" + "@smithy/hash-node": "npm:^4.0.0" + "@smithy/invalid-dependency": "npm:^4.0.0" + "@smithy/middleware-content-length": "npm:^4.0.0" + "@smithy/middleware-endpoint": "npm:^4.0.0" + "@smithy/middleware-retry": "npm:^4.0.0" + "@smithy/middleware-serde": "npm:^4.0.0" + "@smithy/middleware-stack": "npm:^4.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/node-http-handler": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/url-parser": "npm:^4.0.0" + "@smithy/util-base64": "npm:^4.0.0" + "@smithy/util-body-length-browser": "npm:^4.0.0" + "@smithy/util-body-length-node": "npm:^4.0.0" + "@smithy/util-defaults-mode-browser": "npm:^4.0.0" + "@smithy/util-defaults-mode-node": "npm:^4.0.0" + "@smithy/util-endpoints": "npm:^3.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-retry": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/00213794a7bb3a1bed836619f9847e25d10fea3c7a6ab6d24333fe2e8eb87ee346321811c9a33e0b436e678701535b91480ac4332506f504d4241dc070f49697 + languageName: node + linkType: hard + +"@aws-sdk/core@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/core@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/signature-v4": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + fast-xml-parser: "npm:4.4.1" + tslib: "npm:^2.6.2" + checksum: 10/e4de7d02963f522b9dcfbd70c79d0f42a1454c6709e1074a66939d8f646f5c5c288c398351464c9c79be3464bb38bde80fe65257c1378a58f7b4f0316551ec21 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-cognito-identity@npm:3.731.1": + version: 3.731.1 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.731.1" + dependencies: + "@aws-sdk/client-cognito-identity": "npm:3.731.1" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/ceb81811d473e83223cc9907568180c6e61a422899d2dbead2565d70ef5f49004662f963ff132d1fb5cc3b04f2892f893e17ee5a98c060930eaa80472221de3f + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-env@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.731.0" + dependencies: + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/744e78570041e3a67d57234480098f0ac83ba2471dbe93fe2892fd3ff7772c50d80a0384f428009c776e90d81e99259e9eba84bbdccc2de97735f1aeec8ba6e6 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-http@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.731.0" + dependencies: + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/fetch-http-handler": "npm:^5.0.0" + "@smithy/node-http-handler": "npm:^4.0.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/util-stream": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/04dfea4959c836478b1a90ae75cb0c072eb0fbfbd2ef4665841417d1a8a26e9b5469a0106477d4d49df612bf835bc230e19560e2b096ce830b0b2339971470d6 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.731.1": + version: 3.731.1 + resolution: "@aws-sdk/credential-provider-ini@npm:3.731.1" + dependencies: + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/credential-provider-env": "npm:3.731.0" + "@aws-sdk/credential-provider-http": "npm:3.731.0" + "@aws-sdk/credential-provider-process": "npm:3.731.0" + "@aws-sdk/credential-provider-sso": "npm:3.731.1" + "@aws-sdk/credential-provider-web-identity": "npm:3.731.1" + "@aws-sdk/nested-clients": "npm:3.731.1" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/credential-provider-imds": "npm:^4.0.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/shared-ini-file-loader": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/54989a40d0ffb515f57ee3c94fd81c4bbc1258710b618bc87e5ee64bc66a1f7a06ebad8f7046e99063e76801072350e2d203a79a2bd0a7f468e61914bf47eff4 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-node@npm:3.731.1, @aws-sdk/credential-provider-node@npm:^3.350.0": + version: 3.731.1 + resolution: "@aws-sdk/credential-provider-node@npm:3.731.1" + dependencies: + "@aws-sdk/credential-provider-env": "npm:3.731.0" + "@aws-sdk/credential-provider-http": "npm:3.731.0" + "@aws-sdk/credential-provider-ini": "npm:3.731.1" + "@aws-sdk/credential-provider-process": "npm:3.731.0" + "@aws-sdk/credential-provider-sso": "npm:3.731.1" + "@aws-sdk/credential-provider-web-identity": "npm:3.731.1" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/credential-provider-imds": "npm:^4.0.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/shared-ini-file-loader": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/ba4864454d4c7539143f6eab7c29c30aa797bf67766da9f47c95e830ae3bb8c6f6cf19d380573d834bb204a0a21f21329e94bb5d07a2ff1a357bbfbde6c516fc + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-process@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.731.0" + dependencies: + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/shared-ini-file-loader": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/99ffc83799363b3d219e7c0915a1d35afb75eb0e31293e43c570dcc9224e696eeea135839bb338644f2a231c3c03b11251d80c1c6fdbef470579a49889e9ba31 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-sso@npm:3.731.1": + version: 3.731.1 + resolution: "@aws-sdk/credential-provider-sso@npm:3.731.1" + dependencies: + "@aws-sdk/client-sso": "npm:3.731.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/token-providers": "npm:3.731.1" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/shared-ini-file-loader": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/c94152d91db43ebb496eabeeb34293e0a0cf05963f7db37acd4f66e6bc0dd7c9bb9622b46dfd06e8fb874ed27378e189daa6f6f30c1297c9fdddb9e79fa67d3f + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-web-identity@npm:3.731.1": + version: 3.731.1 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.731.1" + dependencies: + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/nested-clients": "npm:3.731.1" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/7a75d2a9581bfeab33b3c2de91408f6bb795a2a543fc46de307e2e58e553d0956f448393c09c96f92a954cb95fda365ed5dd3ab3cc08ed01a07372a774902097 + languageName: node + linkType: hard + +"@aws-sdk/credential-providers@npm:^3.350.0": + version: 3.733.0 + resolution: "@aws-sdk/credential-providers@npm:3.733.0" + dependencies: + "@aws-sdk/client-cognito-identity": "npm:3.731.1" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/credential-provider-cognito-identity": "npm:3.731.1" + "@aws-sdk/credential-provider-env": "npm:3.731.0" + "@aws-sdk/credential-provider-http": "npm:3.731.0" + "@aws-sdk/credential-provider-ini": "npm:3.731.1" + "@aws-sdk/credential-provider-node": "npm:3.731.1" + "@aws-sdk/credential-provider-process": "npm:3.731.0" + "@aws-sdk/credential-provider-sso": "npm:3.731.1" + "@aws-sdk/credential-provider-web-identity": "npm:3.731.1" + "@aws-sdk/nested-clients": "npm:3.731.1" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/credential-provider-imds": "npm:^4.0.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/6ebf0908f45ca97c6fc2f8f02d68885ef5b2be085e794c5be6c5110c91d3707e89b462c92b684d39c75c3549e509446ec502ae463264a68eac983eb9da51141d + languageName: node + linkType: hard + +"@aws-sdk/lib-storage@npm:^3.350.0": + version: 3.733.0 + resolution: "@aws-sdk/lib-storage@npm:3.733.0" + dependencies: + "@smithy/abort-controller": "npm:^4.0.0" + "@smithy/middleware-endpoint": "npm:^4.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + buffer: "npm:5.6.0" + events: "npm:3.3.0" + stream-browserify: "npm:3.0.0" + tslib: "npm:^2.6.2" + peerDependencies: + "@aws-sdk/client-s3": ^3.733.0 + checksum: 10/56c46226d66e133952cb0749713e939fa4d040e3650b1515b94a279bb3e04bfab50770783b696f9b4b2beac022605da7d50d52929e71922a99ab523d4d717ccd + languageName: node + linkType: hard + +"@aws-sdk/middleware-bucket-endpoint@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-arn-parser": "npm:3.723.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/util-config-provider": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/e1b6b939eafddf4e676ffc7fc390d2b243780c38d0caf8d94d13203d72d2b073dfe998705cab49082978010a86cb765b991c26fbb9d112750876531d279ebb25 + languageName: node + linkType: hard + +"@aws-sdk/middleware-expect-continue@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/0422038e6b23a6611ff8d6d4e42d0e369c5dbc4dd631dcbcb17dea8102a633211b63fe7bdc61f21dbd2179ed8b0546cf0f020c1514e36e07018af6f254428aba + languageName: node + linkType: hard + +"@aws-sdk/middleware-flexible-checksums@npm:3.732.0": + version: 3.732.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.732.0" + dependencies: + "@aws-crypto/crc32": "npm:5.2.0" + "@aws-crypto/crc32c": "npm:5.2.0" + "@aws-crypto/util": "npm:5.2.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/is-array-buffer": "npm:^4.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-stream": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/474b9140abd5647ee87798b6b229b8a193b6aff2731f3000a7957f884ec1f258c1c3b31fae785246ec5098074eb175d98f6553bb993989d6e08dc88a6131b4d4 + languageName: node + linkType: hard + +"@aws-sdk/middleware-host-header@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/4b391cda41b53cdec95f984721616f48f240cbc785327354a535ad42749b22eb0275c29f33d2452fa3e10151bc1982c5758bb233c7f458c7b7de52b86bd1cb8e + languageName: node + linkType: hard + +"@aws-sdk/middleware-location-constraint@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/279cedd431429d0572c7f68442587c1e193ec5b37200e94c5069aaa75e04ea24ce104b2c40189563807874b2e259a4a02b544d6f65cabff16fd277b0ab067b62 + languageName: node + linkType: hard + +"@aws-sdk/middleware-logger@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-logger@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/745e5cdb228471c346833bc4fd0662fc4a5c632dad1159081425c79e212b484dad66b0ff114400412bcdd3efbac6613480b78e7a394782e8e6e43c89ca798c90 + languageName: node + linkType: hard + +"@aws-sdk/middleware-recursion-detection@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/8e58e4729710f4c0ac094dda2509bb3a4e74f77e1dd6df47e89f476240ea3bf3e19ea390543657e03ff817592b3c1d9f035705743c0ee837a3b8b1945322fc7c + languageName: node + linkType: hard + +"@aws-sdk/middleware-sdk-s3@npm:3.733.0": + version: 3.733.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.733.0" + dependencies: + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-arn-parser": "npm:3.723.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/signature-v4": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/util-config-provider": "npm:^4.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-stream": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/2afe7dab4c82b1daf757a2fc4faf62eb6559b4a900410f97c25062ee90cdb99678ce9685cbd1684dc82900466d98c5774f2289ffb70af4dc04e0c52c8b498c6b + languageName: node + linkType: hard + +"@aws-sdk/middleware-ssec@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/4fb39b98b62a9a03f6853435bf79b3f3661c679efa7dfb7c055ca92ba053ae4269b49d3de539c3eb2a88232bf4206f1622f3cb0a52d571bee575cf9ddd7108a4 + languageName: node + linkType: hard + +"@aws-sdk/middleware-user-agent@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.731.0" + dependencies: + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-endpoints": "npm:3.731.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/dc9cd31db93b3b48f9aae9a26ba3caae786b074b50ffd0a2c48ec11b092a0a9623aa85bca92759f05537cc25bf9eb04ea449b221a651f930ebfb6b0b010da76d + languageName: node + linkType: hard + +"@aws-sdk/nested-clients@npm:3.731.1": + version: 3.731.1 + resolution: "@aws-sdk/nested-clients@npm:3.731.1" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:3.731.0" + "@aws-sdk/middleware-host-header": "npm:3.731.0" + "@aws-sdk/middleware-logger": "npm:3.731.0" + "@aws-sdk/middleware-recursion-detection": "npm:3.731.0" + "@aws-sdk/middleware-user-agent": "npm:3.731.0" + "@aws-sdk/region-config-resolver": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@aws-sdk/util-endpoints": "npm:3.731.0" + "@aws-sdk/util-user-agent-browser": "npm:3.731.0" + "@aws-sdk/util-user-agent-node": "npm:3.731.0" + "@smithy/config-resolver": "npm:^4.0.0" + "@smithy/core": "npm:^3.0.0" + "@smithy/fetch-http-handler": "npm:^5.0.0" + "@smithy/hash-node": "npm:^4.0.0" + "@smithy/invalid-dependency": "npm:^4.0.0" + "@smithy/middleware-content-length": "npm:^4.0.0" + "@smithy/middleware-endpoint": "npm:^4.0.0" + "@smithy/middleware-retry": "npm:^4.0.0" + "@smithy/middleware-serde": "npm:^4.0.0" + "@smithy/middleware-stack": "npm:^4.0.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/node-http-handler": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/smithy-client": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/url-parser": "npm:^4.0.0" + "@smithy/util-base64": "npm:^4.0.0" + "@smithy/util-body-length-browser": "npm:^4.0.0" + "@smithy/util-body-length-node": "npm:^4.0.0" + "@smithy/util-defaults-mode-browser": "npm:^4.0.0" + "@smithy/util-defaults-mode-node": "npm:^4.0.0" + "@smithy/util-endpoints": "npm:^3.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + "@smithy/util-retry": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/8abdbdb751fa3b4806e2bc3a7646cb3bf92872f9fc61745e1537e549b6d684c3c71b556fc84df5f5acc81dd86ed5985bb1213e6fa31cd9bf920912078593ec43 + languageName: node + linkType: hard + +"@aws-sdk/region-config-resolver@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/util-config-provider": "npm:^4.0.0" + "@smithy/util-middleware": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/4e33742b0b3103d4c42ab4f479a386c45b19c96a459fb749bf8e242168e964bfd2222cf97aa90dbad48a9185b7a81bb7fa41ba0f3a3a965162a02ca647718eef + languageName: node + linkType: hard + +"@aws-sdk/signature-v4-multi-region@npm:3.733.0": + version: 3.733.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.733.0" + dependencies: + "@aws-sdk/middleware-sdk-s3": "npm:3.733.0" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/protocol-http": "npm:^5.0.0" + "@smithy/signature-v4": "npm:^5.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/505a7104b6aaa27d247f510caa14df4faa94589611793af84e9c36c6a7dc48ae71b33a426a8c73ad9f3b1381895c1b8998588a296fa6210c058fcfdd5f17cfd3 + languageName: node + linkType: hard + +"@aws-sdk/token-providers@npm:3.731.1": + version: 3.731.1 + resolution: "@aws-sdk/token-providers@npm:3.731.1" + dependencies: + "@aws-sdk/nested-clients": "npm:3.731.1" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/property-provider": "npm:^4.0.0" + "@smithy/shared-ini-file-loader": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/dd450dd1a5574eee7441eb2accac8e71a428648ecaeaa8198d25c1292fe76ac363a909d5d3d2b158fe0d7bcc569f3a46771c39d90b82d7bcddb48c44509097e0 + languageName: node + linkType: hard + +"@aws-sdk/types@npm:3.370.0": + version: 3.370.0 + resolution: "@aws-sdk/types@npm:3.370.0" + dependencies: + "@smithy/types": "npm:^1.1.0" + tslib: "npm:^2.5.0" + checksum: 10/b1326dbb08356816982564d88bb95c58059a804e9b119ba498a2bfa65f7a61dcf167d1136329b832199a5d472aff18d4e86b9cd55929de1a9150be2e44c5d1c7 + languageName: node + linkType: hard + +"@aws-sdk/types@npm:3.731.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0": + version: 3.731.0 + resolution: "@aws-sdk/types@npm:3.731.0" + dependencies: + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/7d62f6cf949c16b16eed9230dd46423dde4b89b10d5fd1bf3ed10399655a8102b5ced9b289309ea035ddea67cfd6f80e182be53b938668cb0c2fc1e68fd21309 + languageName: node + linkType: hard + +"@aws-sdk/util-arn-parser@npm:3.723.0, @aws-sdk/util-arn-parser@npm:^3.310.0": + version: 3.723.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.723.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/558c187aff2af3c58e830468969f936103770d8830a37b56eea06f7964a2a80f3cd5cc4bfb71af3470ca2ef37e85f6b21318d61a68129c293eb47b337c5bfa9d + languageName: node + linkType: hard + +"@aws-sdk/util-endpoints@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/util-endpoints@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/types": "npm:^4.0.0" + "@smithy/util-endpoints": "npm:^3.0.0" + tslib: "npm:^2.6.2" + checksum: 10/c23d60c44c186a64cfb60fdaa971e931895f90d5c7160ad6e2800d0006a32607d9922b470e4d74556e386a8bc41213b3a570c462bb6bd678db30b2daefe3afeb + languageName: node + linkType: hard + +"@aws-sdk/util-locate-window@npm:^3.0.0": + version: 3.723.0 + resolution: "@aws-sdk/util-locate-window@npm:3.723.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/27e4952ac1915482bd717f978f10e2d2e2e95b0dbd0b2b63cb6864ffed6d8d889e350c4e2e0d1fa564dc5f1b60b994dad4ee62d922dfcbed5c126949dab2dd3a + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-browser@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.731.0" + dependencies: + "@aws-sdk/types": "npm:3.731.0" + "@smithy/types": "npm:^4.0.0" + bowser: "npm:^2.11.0" + tslib: "npm:^2.6.2" + checksum: 10/42755ec4bb0fde8ef8ff9d52558ac031ea12f1014bc28ddf3b795e6a816969dd791f3135488646081f827fc56b1ceab39bb2d691b7266286d40816d42029f254 + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-node@npm:3.731.0": + version: 3.731.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.731.0" + dependencies: + "@aws-sdk/middleware-user-agent": "npm:3.731.0" + "@aws-sdk/types": "npm:3.731.0" + "@smithy/node-config-provider": "npm:^4.0.0" + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: 10/d8369b4a07ad376d54ce03c48bb73fdcaece3fc5cc15b60f9b5e71f1efbab86803e59bef1958a4362725fb59317bf8f1d672c28c33adce9ae6ebe9bbea7c51fd + languageName: node + linkType: hard + +"@aws-sdk/xml-builder@npm:3.723.0": + version: 3.723.0 + resolution: "@aws-sdk/xml-builder@npm:3.723.0" + dependencies: + "@smithy/types": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/b748af17720b933ae96ec946a6fbc55ff2346be1f66fbf3d245b76fd1bdae71d074570bca7515109e5fd57cffb4b7d3ac1f0dc927af4039cbb190316e6aa8961 + languageName: node + linkType: hard + +"@azure/abort-controller@npm:^2.0.0, @azure/abort-controller@npm:^2.1.2": + version: 2.1.2 + resolution: "@azure/abort-controller@npm:2.1.2" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/484e34a8121e5815f764af4da1c8b51d4713106e43f1c44e59671773ffff52da066780821c7633cf601668daa1181a57a1c88f57854d60b62ecc5560f9c52932 + languageName: node + linkType: hard + +"@azure/core-auth@npm:^1.4.0, @azure/core-auth@npm:^1.8.0, @azure/core-auth@npm:^1.9.0": + version: 1.9.0 + resolution: "@azure/core-auth@npm:1.9.0" + dependencies: + "@azure/abort-controller": "npm:^2.0.0" + "@azure/core-util": "npm:^1.11.0" + tslib: "npm:^2.6.2" + checksum: 10/d1ae2847fddfad752b5f4092a3cbe7ad5809bc5c510447809b5e678abc3fc280af629c5155d2100f37ca8f43f88d7d3ea78279f98bd9f7eb44ec492f6cdbbe35 + languageName: node + linkType: hard + +"@azure/core-client@npm:^1.3.0, @azure/core-client@npm:^1.6.2, @azure/core-client@npm:^1.9.2": + version: 1.9.2 + resolution: "@azure/core-client@npm:1.9.2" + dependencies: + "@azure/abort-controller": "npm:^2.0.0" + "@azure/core-auth": "npm:^1.4.0" + "@azure/core-rest-pipeline": "npm:^1.9.1" + "@azure/core-tracing": "npm:^1.0.0" + "@azure/core-util": "npm:^1.6.1" + "@azure/logger": "npm:^1.0.0" + tslib: "npm:^2.6.2" + checksum: 10/0358b8245bf23943914eb77384955c994bf3ef84f862234cb3e261f9c602a9f4717beedafd48d1da902b15f3464a4211540976fabb4569039fac8e0d41e59ef1 + languageName: node + linkType: hard + +"@azure/core-http-compat@npm:^2.0.0": + version: 2.1.2 + resolution: "@azure/core-http-compat@npm:2.1.2" + dependencies: + "@azure/abort-controller": "npm:^2.0.0" + "@azure/core-client": "npm:^1.3.0" + "@azure/core-rest-pipeline": "npm:^1.3.0" + checksum: 10/2b64b2480db6ebb8b0f6e7e104f632d9266bbe08f44ea0117d84439a4ba8846ee533841e827c2766f63ef26709c89e61c0d250878660930bac521c7f45fab49c + languageName: node + linkType: hard + +"@azure/core-lro@npm:^2.2.0": + version: 2.7.2 + resolution: "@azure/core-lro@npm:2.7.2" + dependencies: + "@azure/abort-controller": "npm:^2.0.0" + "@azure/core-util": "npm:^1.2.0" + "@azure/logger": "npm:^1.0.0" + tslib: "npm:^2.6.2" + checksum: 10/73b4e1d74afc0dc647914db3a79b6212b653d853f6ff7105eb6e19ab2f7af11cef99d6388b3125179c8872db819930ac0ab9768b07c06a3033dd22fa546f8a09 + languageName: node + linkType: hard + +"@azure/core-paging@npm:^1.1.1": + version: 1.6.2 + resolution: "@azure/core-paging@npm:1.6.2" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/fb1d4c4fcd5705dbcd2332724d0ead324b988a874bfe739483cf65056b8ad5567aaa5ae02f4d0467c71c3be035bbd15682fe0d8f6e47043a66903d439593f5b8 + languageName: node + linkType: hard + +"@azure/core-rest-pipeline@npm:^1.10.1, @azure/core-rest-pipeline@npm:^1.17.0, @azure/core-rest-pipeline@npm:^1.3.0, @azure/core-rest-pipeline@npm:^1.9.1": + version: 1.18.2 + resolution: "@azure/core-rest-pipeline@npm:1.18.2" + dependencies: + "@azure/abort-controller": "npm:^2.0.0" + "@azure/core-auth": "npm:^1.8.0" + "@azure/core-tracing": "npm:^1.0.1" + "@azure/core-util": "npm:^1.11.0" + "@azure/logger": "npm:^1.0.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.0" + tslib: "npm:^2.6.2" + checksum: 10/f33b58d143ddf94b876281f2bcc95d3008afb7e85990c010ee891903c599cf7beba9998170f887004007b8c782315fd1ba0a8d6eec99009c7f3ac4143b699db1 + languageName: node + linkType: hard + +"@azure/core-tracing@npm:^1.0.0, @azure/core-tracing@npm:^1.0.1, @azure/core-tracing@npm:^1.1.2": + version: 1.2.0 + resolution: "@azure/core-tracing@npm:1.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/5d63ffc8f6361545b55b108b2898cda2b424db1a533d11a56890d53ba3b385e9be8f50cfd48a21b897351e1f4bbc56ede14d57187ea927d4489637fc93ebe615 + languageName: node + linkType: hard + +"@azure/core-util@npm:^1.11.0, @azure/core-util@npm:^1.2.0, @azure/core-util@npm:^1.6.1": + version: 1.11.0 + resolution: "@azure/core-util@npm:1.11.0" + dependencies: + "@azure/abort-controller": "npm:^2.0.0" + tslib: "npm:^2.6.2" + checksum: 10/16d39f4ed9e224c190f0ffcb040b4f0a9723946b4312784a7a2a227cf2c56cd68328ce28fa05d1109c2e88bb5b34af159264c854e876f182461976a65fa1b5e5 + languageName: node + linkType: hard + +"@azure/core-xml@npm:^1.4.3": + version: 1.4.4 + resolution: "@azure/core-xml@npm:1.4.4" + dependencies: + fast-xml-parser: "npm:^4.4.1" + tslib: "npm:^2.6.2" + checksum: 10/83370ce35008874caca25a335b29f19a243eec96f8c8a087d5f19f1652a494e2a5d0964cb892a0063bb456004b2ab80aaf785c0dcf83eea7e872a99076144e78 + languageName: node + linkType: hard + +"@azure/identity@npm:^4.0.0": + version: 4.6.0 + resolution: "@azure/identity@npm:4.6.0" + dependencies: + "@azure/abort-controller": "npm:^2.0.0" + "@azure/core-auth": "npm:^1.9.0" + "@azure/core-client": "npm:^1.9.2" + "@azure/core-rest-pipeline": "npm:^1.17.0" + "@azure/core-tracing": "npm:^1.0.0" + "@azure/core-util": "npm:^1.11.0" + "@azure/logger": "npm:^1.0.0" + "@azure/msal-browser": "npm:^4.0.1" + "@azure/msal-node": "npm:^2.15.0" + events: "npm:^3.0.0" + jws: "npm:^4.0.0" + open: "npm:^8.0.0" + stoppable: "npm:^1.1.0" + tslib: "npm:^2.2.0" + checksum: 10/76f9e42a7bf1207a9b11ad82d9e760839af22db851a90291ef8c39f4128c83a860ea7b351a80806471f7e1d0ef19d93b9d148934697355f0e6d961a005875cce + languageName: node + linkType: hard + +"@azure/logger@npm:^1.0.0": + version: 1.1.4 + resolution: "@azure/logger@npm:1.1.4" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/18bae2dcb0e6812a968282b87a6f9d6423533eeadea036b3e77856ce133d8286f4bb866a376d9f2882a88c55b25ff56a96f1a51fb1f1dd57856b937b42bcf46d + languageName: node + linkType: hard + +"@azure/msal-browser@npm:^4.0.1": + version: 4.0.2 + resolution: "@azure/msal-browser@npm:4.0.2" + dependencies: + "@azure/msal-common": "npm:15.0.2" + checksum: 10/6cb6c753e248e7f27d03fe3f66ce2bdf93f2133320e8e86eac5168fecf36f38c7d4de1a0c31466768d6963eb4756badcd0eb1793ac26619fd2ee0dfed240c18c + languageName: node + linkType: hard + +"@azure/msal-common@npm:14.16.0": + version: 14.16.0 + resolution: "@azure/msal-common@npm:14.16.0" + checksum: 10/1f650b00636cd657b93601a12f495cbc9c35b4ed06197468e24e86ed7a0227f9be8003186d8b00abe12532f26b8002811f553ade76fe2cb57a8e62b827b0152c + languageName: node + linkType: hard + +"@azure/msal-common@npm:15.0.2": + version: 15.0.2 + resolution: "@azure/msal-common@npm:15.0.2" + checksum: 10/9234a5166ef1e50e79a4187e31490ba34349b983994244d1d14351ad9bb347296ba9d9caed9f2fbd0d91bbcaee0560aa98887841ff31211f8f7d447bde3b2757 + languageName: node + linkType: hard + +"@azure/msal-node@npm:^2.15.0": + version: 2.16.2 + resolution: "@azure/msal-node@npm:2.16.2" + dependencies: + "@azure/msal-common": "npm:14.16.0" + jsonwebtoken: "npm:^9.0.0" + uuid: "npm:^8.3.0" + checksum: 10/52f07dc78263d9e44ee2b598072d939e606d822823d7ed680ca07a36c77f37cb49452c133a35206309d26f1d6acc05719bb70bcba62e0ffa7082dd05b882b109 + languageName: node + linkType: hard + +"@azure/storage-blob@npm:^12.5.0": + version: 12.26.0 + resolution: "@azure/storage-blob@npm:12.26.0" + dependencies: + "@azure/abort-controller": "npm:^2.1.2" + "@azure/core-auth": "npm:^1.4.0" + "@azure/core-client": "npm:^1.6.2" + "@azure/core-http-compat": "npm:^2.0.0" + "@azure/core-lro": "npm:^2.2.0" + "@azure/core-paging": "npm:^1.1.1" + "@azure/core-rest-pipeline": "npm:^1.10.1" + "@azure/core-tracing": "npm:^1.1.2" + "@azure/core-util": "npm:^1.6.1" + "@azure/core-xml": "npm:^1.4.3" + "@azure/logger": "npm:^1.0.0" + events: "npm:^3.0.0" + tslib: "npm:^2.2.0" + checksum: 10/dfe2f708db3f205a2a1aaab3d3282b0e070f635a5da4b1f7d32056da6104bc7d1be2cc61931ff1c9b468e9804ab9f098fc89ac8c2ddf29219355f847e801d26e + languageName: node + linkType: hard + +"@babel/code-frame@npm:7.0.0": + version: 7.0.0 + resolution: "@babel/code-frame@npm:7.0.0" + dependencies: + "@babel/highlight": "npm:^7.0.0" + checksum: 10/ac4d13f8678155249e272afe22f84710c2343a863767ab5a7c3a54f0fb5f6f57b192a5cb2a625d4f7f05f33ad806d8b9ab4ce83ba9ec280119e665a8bd48123d + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.8.3": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/db2c2122af79d31ca916755331bb4bac96feb2b334cdaca5097a6b467fdd41963b89b14b6836a14f083de7ff887fc78fa1b3c10b14e743d33e12dbfe5ee3d223 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.26.0, @babel/compat-data@npm:^7.26.5": + version: 7.26.5 + resolution: "@babel/compat-data@npm:7.26.5" + checksum: 10/afe35751f27bda80390fa221d5e37be55b7fc42cec80de9896086e20394f2306936c4296fcb4d62b683e3b49ba2934661ea7e06196ca2dacdc2e779fbea4a1a9 + languageName: node + linkType: hard + +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6, @babel/core@npm:^7.23.9": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10/65767bfdb1f02e80d3af4f138066670ef8fdd12293de85ef151758a901c191c797e86d2e99b11c4cdfca33c72385ecaf38bbd7fa692791ec44c77763496b9b93 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.5, @babel/generator@npm:^7.7.2": + version: 7.26.5 + resolution: "@babel/generator@npm:7.26.5" + dependencies: + "@babel/parser": "npm:^7.26.5" + "@babel/types": "npm:^7.26.5" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10/aa5f176155431d1fb541ca11a7deddec0fc021f20992ced17dc2f688a0a9584e4ff4280f92e8a39302627345cd325762f70f032764806c579c6fd69432542bcb + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" + dependencies: + "@babel/types": "npm:^7.25.9" + checksum: 10/41edda10df1ae106a9b4fe617bf7c6df77db992992afd46192534f5cff29f9e49a303231733782dd65c5f9409714a529f215325569f14282046e9d3b7a1ffb6c + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": + version: 7.26.5 + resolution: "@babel/helper-compilation-targets@npm:7.26.5" + dependencies: + "@babel/compat-data": "npm:^7.26.5" + "@babel/helper-validator-option": "npm:^7.25.9" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10/f3b5f0bfcd7b6adf03be1a494b269782531c6e415afab2b958c077d570371cf1bfe001c442508092c50ed3711475f244c05b8f04457d8dea9c34df2b741522bf + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/d1d47a7b5fd317c6cb1446b0e4f4892c19ddaa69ea0229f04ba8bea5f273fc8168441e7114ad36ff919f2d310f97310cec51adc79002e22039a7e1640ccaf248 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.26.3" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + regexpu-core: "npm:^6.2.0" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/4c44122ea11c4253ee78a9c083b7fbce96c725e2cb43cc864f0e8ea2749f7b6658617239c6278df9f132d09a7545c8fe0336ed2895ad7c80c71507828a7bc8ba + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.6.2, @babel/helper-define-polyfill-provider@npm:^0.6.3": + version: 0.6.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.3" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/b79a77ac8fbf1aaf6c7f99191871760508e87d75a374ff3c39c6599a17d9bb82284797cd451769305764e504546caf22ae63367b22d6e45e32d0a8f4a34aab53 + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/ef8cc1c1e600b012b312315f843226545a1a89f25d2f474ce2503fd939ca3f8585180f291a3a13efc56cf13eddc1d41a3a040eae9a521838fd59a6d04cc82490 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/e090be5dee94dda6cd769972231b21ddfae988acd76b703a480ac0c96f3334557d70a965bf41245d6ee43891e7571a8b400ccf2b2be5803351375d0f4e5bcf08 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/9841d2a62f61ad52b66a72d08264f23052d533afc4ce07aec2a6202adac0bfe43014c312f94feacb3291f4c5aafe681955610041ece2c276271adce3f570f2f5 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" + dependencies: + "@babel/types": "npm:^7.25.9" + checksum: 10/f09d0ad60c0715b9a60c31841b3246b47d67650c512ce85bbe24a3124f1a4d66377df793af393273bc6e1015b0a9c799626c48e53747581c1582b99167cc65dc + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.26.5, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.26.5 + resolution: "@babel/helper-plugin-utils@npm:7.26.5" + checksum: 10/1cc0fd8514da3bb249bed6c27227696ab5e84289749d7258098701cffc0c599b7f61ec40dd332f8613030564b79899d9826813c96f966330bcfc7145a8377857 + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-wrap-function": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/ea37ad9f8f7bcc27c109963b8ebb9d22bac7a5db2a51de199cb560e251d5593fe721e46aab2ca7d3e7a24b0aa4aff0eaf9c7307af9c2fd3a1d84268579073052 + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.26.5 + resolution: "@babel/helper-replace-supers@npm:7.26.5" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/traverse": "npm:^7.26.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/cfb911d001a8c3d2675077dbb74ee8d7d5533b22d74f8d775cefabf19c604f6cbc22cfeb94544fe8efa626710d920f04acb22923017e68f46f5fdb1cb08b32ad + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/fdbb5248932198bc26daa6abf0d2ac42cab9c2dbb75b7e9f40d425c8f28f09620b886d40e7f9e4e08ffc7aaa2cefe6fc2c44be7c20e81f7526634702fb615bdc + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10/c28656c52bd48e8c1d9f3e8e68ecafd09d949c57755b0d353739eb4eae7ba4f7e67e92e4036f1cd43378cc1397a2c943ed7bcaf5949b04ab48607def0258b775 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10/9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-wrap-function@npm:7.25.9" + dependencies: + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/988dcf49159f1c920d6b9486762a93767a6e84b5e593a6342bc235f3e47cc1cb0c048d8fca531a48143e6b7fce1ff12ddbf735cf5f62cb2f07192cf7c27b89cf + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" + dependencies: + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10/fd4757f65d10b64cfdbf4b3adb7ea6ffff9497c53e0786452f495d1f7794da7e0898261b4db65e1c62bbb9a360d7d78a1085635c23dfc3af2ab6dcba06585f86 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.0.0": + version: 7.25.9 + resolution: "@babel/highlight@npm:7.25.9" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.9" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/0d165283dd4eb312292cea8fec3ae0d376874b1885f476014f0136784ed5b564b2c2ba2d270587ed546ee92505056dab56493f7960c01c4e6394d71d1b2e7db6 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.5": + version: 7.26.5 + resolution: "@babel/parser@npm:7.26.5" + dependencies: + "@babel/types": "npm:^7.26.5" + bin: + parser: ./bin/babel-parser.js + checksum: 10/d92097066e3e26625a485149f54c27899e4d94d7ef2f76d8fc9de2019212e7951940a31c0003f26ccad22e664f89ff51e5d5fe80a11eafaaec2420655010533c + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/3c23ef34e3fd7da3578428cb488180ab6b7b96c9c141438374b6d87fa814d87de099f28098e5fc64726c19193a1da397e4d2351d40b459bcd2489993557e2c74 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/d3e14ab1cb9cb50246d20cab9539f2fbd1e7ef1ded73980c8ad7c0561b4d5e0b144d362225f0976d47898e04cbd40f2000e208b0913bd788346cf7791b96af91 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/a9d1ee3fd100d3eb6799a2f2bbd785296f356c531d75c9369f71541811fa324270258a374db103ce159156d006da2f33370330558d0133e6f7584152c34997ca + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 10/5b298b28e156f64de51cdb03a2c5b80c7f978815ef1026f3ae8b9fc48d28bf0a83817d8fbecb61ef8fb94a7201f62cca5103cc6e7b9e8f28e38f766d7905b378 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/cb893e5deb9312a0120a399835b6614a016c036714de7123c8edabccc56a09c4455016e083c5c4dd485248546d4e5e55fc0e9132b3c3a9bd16abf534138fe3f2 + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/fab70f399aa869275690ec6c7cedb4ef361d4e8b6f55c3d7b04bfee61d52fb93c87cec2c65d73cddbaca89fb8ef5ec0921fce675c9169d9d51f18305ab34e78a + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.12.13" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b58f2306df4a690ca90b763d832ec05202c50af787158ff8b50cdf3354359710bce2e1eb2b5135fcabf284756ac8eadf09ca74764aa7e76d12a5cac5f6b21e67 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/c122aa577166c80ee67f75aebebeef4150a132c4d3109d25d7fc058bf802946f883e330f20b78c1d3e3a5ada631c8780c263d2d01b5dbaecc69efefeedd42916 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.25.9, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.25.9 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bb609d1ffb50b58f0c1bac8810d0e46a4f6c922aa171c458f3a19d66ee545d36e782d3bffbbc1fed0dc65a558bdce1caf5279316583c0fff5a2c1658982a8563 + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.25.9, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.25.9 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0e9821e8ba7d660c36c919654e4144a70546942ae184e85b8102f2322451eae102cbfadbcadd52ce077a2b44b400ee52394c616feab7b5b9f791b910e933fd33 + languageName: node + linkType: hard + +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/c29f081224859483accf55fb4d091db2aac0dcd0d7954bac5ca889030cc498d3f771aa20eb2e9cd8310084ec394d85fa084b97faf09298b6bc9541182b3eb5bb + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/99306c44a4a791abd51a56d89fa61c4cfe805a58e070c7fb1cbf950886778a6c8c4f25a92d231f91da1746d14a338436073fd83038e607f03a2a98ac5340406b + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b3ad50fb93c171644d501864620ed23952a46648c4df10dc9c62cc9ad08031b66bd272cfdd708faeee07c23b6251b16f29ce0350473e4c79f0c32178d38ce3a6 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9": + version: 7.26.5 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.26.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.26.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/f2046c09bf8e588bfb1a6342d0eee733189102cf663ade27adb0130f3865123af5816b40a55ec8d8fa09271b54dfdaf977cd2f8e0b3dc97f18e690188d5a2174 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/89dcdd7edb1e0c2f44e3c568a8ad8202e2574a8a8308248550a9391540bc3f5c9fbd8352c60ae90769d46f58d3ab36f2c3a0fbc1c3620813d92ff6fccdfa79c8 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a8d69e2c285486b63f49193cbcf7a15e1d3a5f632c1c07d7a97f65306df7f554b30270b7378dde143f8b557d1f8f6336c643377943dec8ec405e4cd11e90b9ea + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 10/60cba3f125a7bc4f90706af0a011697c7ffd2eddfba336ed6f84c5f358c44c3161af18b0202475241a96dee7964d96dd3a342f46dbf85b75b38bb789326e1766 + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-classes@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/1914ebe152f35c667fba7bf17ce0d9d0f33df2fb4491990ce9bb1f9ec5ae8cbd11d95b0dc371f7a4cc5e7ce4cf89467c3e34857302911fc6bfb6494a77f7b37e + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/aa1a9064d6a9d3b569b8cae6972437315a38a8f6553ee618406da5122500a06c2f20b9fa93aeed04dd895923bf6f529c09fc79d4be987ec41785ceb7d2203122 + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/51b24fbead910ad0547463b2d214dd08076b22a66234b9f878b8bac117603dd23e05090ff86e9ffc373214de23d3e5bf1b095fe54cce2ca16b010264d90cf4f5 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/8bdf1bb9e6e3a2cc8154ae88a3872faa6dc346d6901994505fb43ac85f858728781f1219f40b67f7bb0687c507450236cb7838ac68d457e65637f98500aa161b + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/10dbb87bc09582416f9f97ca6c40563655abf33e3fd0fee25eeaeff28e946a06651192112a2bc2b18c314a638fa15c55b8365a677ef67aa490848cefdc57e1d8 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/f7233cf596be8c6843d31951afaf2464a62a610cb89c72c818c044765827fab78403ab8a7d3a6386f838c8df574668e2a48f6c206b1d7da965aff9c6886cb8e6 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/aaca1ccda819be9b2b85af47ba08ddd2210ff2dbea222f26e4cd33f97ab020884bf81a66197e50872721e9daf36ceb5659502c82199884ea74d5d75ecda5c58b + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.26.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0d8da2e552a50a775fe8e6e3c32621d20d3c5d1af7ab40ca2f5c7603de057b57b1b5850f74040e4ecbe36c09ac86d92173ad1e223a2a3b3df3cc359ca4349738 + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/4dfe8df86c5b1d085d591290874bb2d78a9063090d71567ed657a418010ad333c3f48af2c974b865f53bbb718987a065f89828d43279a7751db1a56c9229078d + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-for-of@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/63a2db7fe06c2e3f5fc1926f478dac66a5f7b3eaeb4a0ffae577e6f3cb3d822cb1ed2ed3798f70f5cb1aa06bc2ad8bcd1f557342f5c425fd83c37a8fc1cfd2ba + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-function-name@npm:7.25.9" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a8d7c8d019a6eb57eab5ca1be3e3236f175557d55b1f3b11f8ad7999e3fbb1cf37905fd8cb3a349bffb4163a558e9f33b63f631597fdc97c858757deac1b2fd7 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/e2498d84761cfd05aaea53799933d55af309c9d6204e66b38778792d171e4d1311ad34f334259a3aa3407dd0446f6bd3e390a1fcb8ce2e42fe5aabed0e41bee1 + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-literals@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3cca75823a38aab599bc151b0fa4d816b5e1b62d6e49c156aa90436deb6e13649f5505973151a10418b64f3f9d1c3da53e38a186402e0ed7ad98e482e70c0c14 + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/8c6febb4ac53852314d28b5e2c23d5dbbff7bf1e57d61f9672e0d97531ef7778b3f0ad698dcf1179f5486e626c77127508916a65eb846a89e98a92f70ed3537b + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/db92041ae87b8f59f98b50359e0bb172480f6ba22e5e76b13bdfe07122cbf0daa9cd8ad2e78dcb47939938fed88ad57ab5989346f64b3a16953fc73dea3a9b1f + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/75d34c6e709a23bcfa0e06f722c9a72b1d9ac3e7d72a07ef54a943d32f65f97cbbf0e387d874eb9d9b4c8d33045edfa8e8441d0f8794f3c2b9f1d71b928acf2c + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.26.3" + dependencies: + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/f817f02fa04d13f1578f3026239b57f1003bebcf9f9b8d854714bed76a0e4986c79bd6d2e0ac14282c5d309454a8dab683c179709ca753b0152a69c69f3a78e3 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/03145aa89b7c867941a03755216cfb503df6d475a78df84849a157fa5f2fcc17ba114a968d0579ae34e7c61403f35d1ba5d188fdfb9ad05f19354eb7605792f9 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/47d03485fedac828832d9fee33b3b982a6db8197e8651ceb5d001890e276150b5a7ee3e9780749e1ba76453c471af907a159108832c24f93453dd45221788e97 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/434346ba05cf74e3f4704b3bdd439287b95cd2a8676afcdc607810b8c38b6f4798cd69c1419726b2e4c7204e62e4a04d31b0360e91ca57a930521c9211e07789 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-new-target@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/07bb3a09028ee7b8e8ede6e6390e3b3aecc5cf9adb2fc5475ff58036c552b8a3f8e63d4c43211a60545f3307cdc15919f0e54cb5455d9546daed162dc54ff94e + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": + version: 7.26.6 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.26.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.26.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3832609f043dd1cd8076ab6a00a201573ef3f95bb2144d57787e4a973b3189884c16b4e77ff8e84a6ca47bc3b65bb7df10dca2f6163dfffc316ac96c37b0b5a6 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0528ef041ed88e8c3f51624ee87b8182a7f246fe4013f0572788e0727d20795b558f2b82e3989b5dd416cbd339500f0d88857de41b6d3b6fdacb1d5344bcc5b1 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a157ac5af2721090150858f301d9c0a3a0efb8ef66b90fce326d6cc0ae45ab97b6219b3e441bf8d72a2287e95eb04dd6c12544da88ea2345e70b3fac2c0ac9e2 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-super@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/1817b5d8b80e451ae1ad9080cca884f4f16df75880a158947df76a2ed8ab404d567a7dce71dd8051ef95f90fbe3513154086a32aba55cc76027f6cbabfbd7f98 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b46a8d1e91829f3db5c252583eb00d05a779b4660abeea5500fda0f8ffa3584fd18299443c22f7fddf0ed9dfdb73c782c43b445dc468d4f89803f2356963b406 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bc838a499fd9892e163b8bc9bfbc4bf0b28cc3232ee0a6406ae078257c8096518f871d09b4a32c11f4a2d6953c3bc1984619ef748f7ad45aed0b0d9689a8eb36 + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-parameters@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/014009a1763deb41fe9f0dbca2c4489ce0ac83dd87395f488492e8eb52399f6c883d5bd591bae3b8836f2460c3937fcebd07e57dce1e0bfe30cdbc63fdfc9d3a + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/6e3671b352c267847c53a170a1937210fa8151764d70d25005e711ef9b21969aaf422acc14f9f7fb86bc0e4ec43e7aefcc0ad9196ae02d262ec10f509f126a58 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/aa45bb5669b610afa763d774a4b5583bb60ce7d38e4fd2dedfd0703e73e25aa560e6c6124e155aa90b101601743b127d9e5d3eb00989a7e4b4ab9c2eb88475ba + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/436046ab07d54a9b44a384eeffec701d4e959a37a7547dda72e069e751ca7ff753d1782a8339e354b97c78a868b49ea97bf41bf5a44c6d7a3c0a05ad40eeb49c + languageName: node + linkType: hard + +"@babel/plugin-transform-react-constant-elements@npm:^7.18.12": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/d5843135107486c34320c4174fcd69e57335cc99a333a1d702a805675b22001be7f1b42b060faa745fd12af2c97f3825978ccbc94d12491e6b31b5c3b7c4632e + languageName: node + linkType: hard + +"@babel/plugin-transform-react-display-name@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/dc7affde0ed98e40f629ee92a2fc44fbd8008aabda1ddb3f5bd2632699d3289b08dff65b26cf3b89dab46397ec440f453d19856bbb3a9a83df5b4ac6157c5c39 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-development@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.9" + dependencies: + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/537d38369537f1eb56041c4b770bc0733fde1801a7f5ffef40a1217ea448f33ee2fa8e6098a58a82fd00e432c1b9426a66849496da419020c9eca3b1b1a23779 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-syntax-jsx": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/eb179ecdf0ae19aed254105cf78fbac35f9983f51ed04b7b67c863a4820a70a879bd5da250ac518321f86df20eac010e53e3411c8750c386d51da30e4814bfb6 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-pure-annotations@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.9" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/9995c0fc7c25d3aaaa0ce84233de02eab2564ea111d0813ec5baa538eb21520402879cc787ad1ad4c2061b99cebc3beb09910e64c9592e8ccb42ae62d9e4fd9a + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + regenerator-transform: "npm:^0.15.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/1c09e8087b476c5967282c9790fb8710e065eda77c60f6cb5da541edd59ded9d003d96f8ef640928faab4a0b35bf997673499a194973da4f0c97f0935807a482 + languageName: node + linkType: hard + +"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/726deca486bbd4b176f8a966eb0f4aabc19d9def3b8dabb8b3a656778eca0df1fda3f3c92b213aa5a184232fdafd5b7bd73b4e24ca4345c498ef6baff2bda4e1 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/8beda04481b25767acbd1f6b9ef7b3a9c12fbd9dcb24df45a6ad120e1dc4b247c073db60ac742f9093657d6d8c050501fc0606af042f81a3bb6a3ff862cddc47 + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/f774995d58d4e3a992b732cf3a9b8823552d471040e280264dd15e0735433d51b468fef04d75853d061309389c66bda10ce1b298297ce83999220eb0ad62741d + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-spread@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/fe72c6545267176cdc9b6f32f30f9ced37c1cafa1290e4436b83b8f377b4f1c175dad404228c96e3efdec75da692f15bfb9db2108fcd9ad260bc9968778ee41e + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/7454b00844dbe924030dd15e2b3615b36e196500c4c47e98dabc6b37a054c5b1038ecd437e910aabf0e43bf56b973cb148d3437d50f6e2332d8309568e3e979b + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/92eb1d6e2d95bd24abbb74fa7640d02b66ff6214e0bb616d7fda298a7821ce15132a4265d576a3502a347a3c9e94b6c69ed265bb0784664592fa076785a3d16a + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3ae240358f0b0cd59f8610d6c59d395c216fd1bab407f7de58b86d592f030fb42b4d18e2456a29bee4a2ff014c4c1e3404c8ae64462b1155d1c053b2f9d73438 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.25.9": + version: 7.26.5 + resolution: "@babel/plugin-transform-typescript@npm:7.26.5" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.26.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-syntax-typescript": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/28c315ed51cf6a23e14181ee8b265e6ae5bc474cd604e6dac5a4fa5aed114447972690a7d327d8f8e679b7fa18e52218fced0e2a039e4eb854c6016f00dff956 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/f138cbee539963fb3da13f684e6f33c9f7495220369ae12a682b358f1e25ac68936825562c38eae87f01ac9992b2129208b35ec18533567fc805ce5ed0ffd775 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/201f6f46c1beb399e79aa208b94c5d54412047511795ce1e790edcd189cef73752e6a099fdfc01b3ad12205f139ae344143b62f21f44bbe02338a95e8506a911 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/e8baae867526e179467c6ef5280d70390fa7388f8763a19a27c21302dd59b121032568be080749514b097097ceb9af716bf4b90638f1b3cf689aa837ba20150f + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/4445ef20de687cb4dcc95169742a8d9013d680aa5eee9186d8e25875bbfa7ee5e2de26a91177ccf70b1db518e36886abcd44750d28db5d7a9539f0efa6839f4b + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.19.4": + version: 7.26.0 + resolution: "@babel/preset-env@npm:7.26.0" + dependencies: + "@babel/compat-data": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" + "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions": "npm:^7.26.0" + "@babel/plugin-syntax-import-attributes": "npm:^7.26.0" + "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.9" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9" + "@babel/plugin-transform-block-scoping": "npm:^7.25.9" + "@babel/plugin-transform-class-properties": "npm:^7.25.9" + "@babel/plugin-transform-class-static-block": "npm:^7.26.0" + "@babel/plugin-transform-classes": "npm:^7.25.9" + "@babel/plugin-transform-computed-properties": "npm:^7.25.9" + "@babel/plugin-transform-destructuring": "npm:^7.25.9" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.9" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.9" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9" + "@babel/plugin-transform-for-of": "npm:^7.25.9" + "@babel/plugin-transform-function-name": "npm:^7.25.9" + "@babel/plugin-transform-json-strings": "npm:^7.25.9" + "@babel/plugin-transform-literals": "npm:^7.25.9" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.9" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.9" + "@babel/plugin-transform-modules-amd": "npm:^7.25.9" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-umd": "npm:^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-new-target": "npm:^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.9" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.9" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.9" + "@babel/plugin-transform-object-super": "npm:^7.25.9" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" + "@babel/plugin-transform-private-methods": "npm:^7.25.9" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" + "@babel/plugin-transform-property-literals": "npm:^7.25.9" + "@babel/plugin-transform-regenerator": "npm:^7.25.9" + "@babel/plugin-transform-regexp-modifiers": "npm:^7.26.0" + "@babel/plugin-transform-reserved-words": "npm:^7.25.9" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" + "@babel/plugin-transform-spread": "npm:^7.25.9" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.9" + "@babel/plugin-transform-template-literals": "npm:^7.25.9" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.9" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.9" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.9" + "@babel/preset-modules": "npm:0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2: "npm:^0.4.10" + babel-plugin-polyfill-corejs3: "npm:^0.10.6" + babel-plugin-polyfill-regenerator: "npm:^0.6.1" + core-js-compat: "npm:^3.38.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a7a80314f845deea713985a6316361c476621c76cfe5c6c28e8b9558f01634b49bbfdd3581ef94b5d6cff5c2b8830468aa53a73f5b5c1224db2dfea5db7e676f + languageName: node + linkType: hard + +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@babel/types": "npm:^7.4.4" + esutils: "npm:^2.0.2" + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 10/039aba98a697b920d6440c622aaa6104bb6076d65356b29dad4b3e6627ec0354da44f9621bafbeefd052cd4ac4d7f88c9a2ab094efcb50963cb352781d0c6428 + languageName: node + linkType: hard + +"@babel/preset-react@npm:^7.18.6": + version: 7.26.3 + resolution: "@babel/preset-react@npm:7.26.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-transform-react-display-name": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/88cb78c402b79f32389ee06451da51698d5b1da7641d9a47482883f537fe5441a138bd4c077d8533fd6d557406b08911c47b94402cea843db598e020bdd9a373 + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:^7.18.6": + version: 7.26.0 + resolution: "@babel/preset-typescript@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-syntax-jsx": "npm:^7.25.9" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9" + "@babel/plugin-transform-typescript": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/81a60826160163a3daae017709f42147744757b725b50c9024ef3ee5a402ee45fd2e93eaecdaaa22c81be91f7940916249cfb7711366431cfcacc69c95878c03 + languageName: node + linkType: hard + +"@babel/runtime-corejs3@npm:^7.20.7, @babel/runtime-corejs3@npm:^7.22.15, @babel/runtime-corejs3@npm:^7.24.7": + version: 7.26.0 + resolution: "@babel/runtime-corejs3@npm:7.26.0" + dependencies: + core-js-pure: "npm:^3.30.2" + regenerator-runtime: "npm:^0.14.0" + checksum: 10/fd813d8b5bfc412c083033638c937e13f621b3223161c4a20bb8532d77ae622b620915476bd265670f6a8fc1a76a017ffd738ad25ad24431953e3725247c6520 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.26.0 + resolution: "@babel/runtime@npm:7.26.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10/9f4ea1c1d566c497c052d505587554e782e021e6ccd302c2ad7ae8291c8e16e3f19d4a7726fb64469e057779ea2081c28b7dbefec6d813a22f08a35712c0f699 + languageName: node + linkType: hard + +"@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" + dependencies: + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/e861180881507210150c1335ad94aff80fd9e9be6202e1efa752059c93224e2d5310186ddcdd4c0f0b0fc658ce48cb47823f15142b5c00c8456dde54f5de80b2 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5": + version: 7.26.5 + resolution: "@babel/traverse@npm:7.26.5" + dependencies: + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.5" + "@babel/parser": "npm:^7.26.5" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.5" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10/b0131159450e3cd4208354cdea57e832e1a344fcc284b6ac84d1e13567a10501c4747bfd0ce637d2bd02277526b49372cfca71edd5c825cea74dcc9f52bb9225 + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.26.5 + resolution: "@babel/types@npm:7.26.5" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10/148f6bead7bc39371176ba681873c930087503a8bfd2b0dab5090de32752241806c95f4e87cee8b2976bb0277c6cbc150f16c333fc90269634b711d3711c0f18 + languageName: node + linkType: hard + +"@backstage-community/plugin-github-actions@npm:^0.6.16": + version: 0.6.27 + resolution: "@backstage-community/plugin-github-actions@npm:0.6.27" + dependencies: + "@backstage/catalog-model": "npm:^1.7.0" + "@backstage/core-compat-api": "npm:^0.3.1" + "@backstage/core-components": "npm:^0.15.1" + "@backstage/core-plugin-api": "npm:^1.10.0" + "@backstage/frontend-plugin-api": "npm:^0.9.0" + "@backstage/integration": "npm:^1.15.1" + "@backstage/integration-react": "npm:^1.2.0" + "@backstage/plugin-catalog-react": "npm:^1.14.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@octokit/rest": "npm:^19.0.3" + "@types/react": "npm:^16.13.1 || ^17.0.0 || ^18.0.0" + git-url-parse: "npm:^14.0.0" + luxon: "npm:^3.0.0" + react-use: "npm:^17.2.4" + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 10/3e6c2d91d74ed57c8fbed9e44cd54ccb82976c238efa61dac2fa939eec2f26eb9c76ab26a2193045b85c4a65a8b3ef24d7376051ab45b9c9977569a91b9a88b3 + languageName: node + linkType: hard + +"@backstage-community/plugin-manage-module-tech-insights@workspace:^, @backstage-community/plugin-manage-module-tech-insights@workspace:plugins/manage-module-tech-insights": + version: 0.0.0-use.local + resolution: "@backstage-community/plugin-manage-module-tech-insights@workspace:plugins/manage-module-tech-insights" + dependencies: + "@backstage-community/plugin-manage-react": "workspace:^" + "@backstage-community/plugin-tech-insights": "npm:^0.4.0" + "@backstage-community/plugin-tech-insights-common": "npm:^0.4.0" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/cli": "npm:^0.29.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@mui/material": "npm:^5.15.16" + "@mui/styles": "npm:^5" + "@types/react": "npm:^18.3.12" + react-use: "npm:^17.5.0" + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + languageName: unknown + linkType: soft + +"@backstage-community/plugin-manage-react@workspace:^, @backstage-community/plugin-manage-react@workspace:plugins/manage-react": + version: 0.0.0-use.local + resolution: "@backstage-community/plugin-manage-react@workspace:plugins/manage-react" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/cli": "npm:^0.29.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/types": "npm:^1.2.1" + "@dnd-kit/core": "npm:^6.3.1" + "@dnd-kit/modifiers": "npm:^9.0.0" + "@dnd-kit/sortable": "npm:^10.0.0" + "@mui/icons-material": "npm:^5.16.7" + "@mui/material": "npm:^5.15.16" + "@mui/styles": "npm:^5" + "@types/pluralize": "npm:^0.0.33" + "@types/react": "npm:^18.3.12" + already: "npm:^2.2.1" + pluralize: "npm:^8.0.0" + react-use: "npm:^17.5.0" + peerDependencies: + "@dnd-kit/utilities": "*" + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + languageName: unknown + linkType: soft + +"@backstage-community/plugin-manage@workspace:^, @backstage-community/plugin-manage@workspace:plugins/manage": + version: 0.0.0-use.local + resolution: "@backstage-community/plugin-manage@workspace:plugins/manage" + dependencies: + "@backstage-community/plugin-manage-react": "workspace:^" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/cli": "npm:^0.29.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/plugin-catalog": "npm:^1.26.1" + "@backstage/plugin-catalog-graph": "npm:^0.4.15" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/test-utils": "npm:^1.7.4" + "@backstage/types": "npm:^1.2.1" + "@mui/icons-material": "npm:^5.16.7" + "@mui/material": "npm:^5.15.16" + "@mui/styles": "npm:^5" + "@types/react": "npm:^18.3.12" + react-use: "npm:^17.5.0" + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + languageName: unknown + linkType: soft + +"@backstage-community/plugin-tech-insights-backend-module-jsonfc@npm:^0.3.1": + version: 0.3.1 + resolution: "@backstage-community/plugin-tech-insights-backend-module-jsonfc@npm:0.3.1" + dependencies: + "@backstage-community/plugin-tech-insights-common": "npm:^0.4.0" + "@backstage-community/plugin-tech-insights-node": "npm:^2.2.0" + "@backstage/backend-plugin-api": "npm:^1.1.0" + "@backstage/config": "npm:^1.3.1" + "@backstage/errors": "npm:^1.2.6" + "@backstage/types": "npm:^1.2.0" + ajv: "npm:^8.10.0" + json-rules-engine: "npm:^7.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + checksum: 10/ac16a78b01c6604307aeb5233977c00f9cc72d8e7084a1fa86223ca1b3e203b54cf4b24177f0f3d6ddf399a43d8e2735c8fbde969270c9ab31102bfec86d57e3 + languageName: node + linkType: hard + +"@backstage-community/plugin-tech-insights-backend@npm:^2.1.1": + version: 2.1.1 + resolution: "@backstage-community/plugin-tech-insights-backend@npm:2.1.1" + dependencies: + "@backstage-community/plugin-tech-insights-common": "npm:^0.4.0" + "@backstage-community/plugin-tech-insights-node": "npm:^2.2.0" + "@backstage/backend-defaults": "npm:^0.6.2" + "@backstage/backend-plugin-api": "npm:^1.1.0" + "@backstage/backend-test-utils": "npm:^1.2.0" + "@backstage/catalog-client": "npm:^1.9.0" + "@backstage/catalog-model": "npm:^1.7.2" + "@backstage/config": "npm:^1.3.1" + "@backstage/errors": "npm:^1.2.6" + "@backstage/types": "npm:^1.2.0" + "@types/express": "npm:^4.17.6" + "@types/luxon": "npm:^3.0.0" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + p-limit: "npm:^3.1.0" + semver: "npm:^7.5.3" + uuid: "npm:^9.0.0" + yn: "npm:^4.0.0" + checksum: 10/824e98ffd8c96cf41ef0dcb5e2fa4ee989f6c0fa30557e7c0ee644bc015ffc929420904b5af9ddb9d0fc0dd85bcd57e3b8c3f2dda37805269a22192b30fe8aef + languageName: node + linkType: hard + +"@backstage-community/plugin-tech-insights-common@npm:^0.4.0": + version: 0.4.0 + resolution: "@backstage-community/plugin-tech-insights-common@npm:0.4.0" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.0" + "@backstage/catalog-model": "npm:^1.7.2" + "@backstage/core-plugin-api": "npm:^1.10.2" + "@backstage/errors": "npm:^1.2.6" + "@backstage/types": "npm:^1.2.0" + "@types/luxon": "npm:^3.0.0" + fast-json-stable-stringify: "npm:^2.1.0" + luxon: "npm:^3.0.0" + qs: "npm:^6.12.3" + checksum: 10/305f1645ae43de07027b590f30bf0131a47f5653a795bb9b408a6f3a3172845e3b581649c5dc288b340d121828e4fe73a462a04d4b2edf65990ed626b5a66635 + languageName: node + linkType: hard + +"@backstage-community/plugin-tech-insights-node@npm:^2.2.0": + version: 2.2.0 + resolution: "@backstage-community/plugin-tech-insights-node@npm:2.2.0" + dependencies: + "@backstage-community/plugin-tech-insights-common": "npm:^0.4.0" + "@backstage/backend-plugin-api": "npm:^1.1.0" + "@backstage/catalog-model": "npm:^1.7.2" + "@backstage/config": "npm:^1.3.1" + "@backstage/types": "npm:^1.2.0" + "@types/luxon": "npm:^3.0.0" + luxon: "npm:^3.0.0" + checksum: 10/a4f25bca58f8b62a7de3e1360f88455751401aca536c2e6c9958be2b526786cab067d7d3503d6dc45afaa528842cbc97148b216eeb44e0d560de54539f6f9700 + languageName: node + linkType: hard + +"@backstage-community/plugin-tech-insights@npm:^0.4.0": + version: 0.4.0 + resolution: "@backstage-community/plugin-tech-insights@npm:0.4.0" + dependencies: + "@backstage-community/plugin-tech-insights-common": "npm:^0.4.0" + "@backstage/catalog-model": "npm:^1.7.2" + "@backstage/core-components": "npm:^0.16.2" + "@backstage/core-plugin-api": "npm:^1.10.2" + "@backstage/errors": "npm:^1.2.6" + "@backstage/plugin-catalog-react": "npm:^1.15.0" + "@backstage/types": "npm:^1.2.0" + "@material-table/exporters": "npm:^1.2.19" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@types/react": "npm:^16.13.1 || ^17.0.0 || ^18.0.0" + react-use: "npm:^17.2.4" + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 10/9ea2c4ce605acb339792ca117159aa0ca3db0732fdf053200a9bb1ddd93fceda126d8b63d54e0d6645d4b56eb559397848dd02c2f543f9b979e43cf9eaff261c + languageName: node + linkType: hard + +"@backstage-community/plugin-tech-radar@npm:^0.7.4": + version: 0.7.11 + resolution: "@backstage-community/plugin-tech-radar@npm:0.7.11" + dependencies: + "@backstage/core-compat-api": "npm:^0.3.1" + "@backstage/core-components": "npm:^0.15.1" + "@backstage/core-plugin-api": "npm:^1.10.0" + "@backstage/frontend-plugin-api": "npm:^0.9.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@types/react": "npm:^16.13.1 || ^17.0.0 || ^18.0.0" + color: "npm:^4.0.1" + d3-force: "npm:^3.0.0" + react-use: "npm:^17.2.4" + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + checksum: 10/26b9af15d5c8fa3f1bf11ae27b084189e4b45353c4ee7b72d6025d3f19ef0e5926f225083f99915a1e400cbb437f42bc0c9cc82d2dcdea796bb1e0f989541440 + languageName: node + linkType: hard + +"@backstage/app-defaults@npm:^1.5.16": + version: 1.5.16 + resolution: "@backstage/app-defaults@npm:1.5.16" + dependencies: + "@backstage/core-app-api": "npm:^1.15.4" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/theme": "npm:^0.6.3" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/41bf9957ce48daf74e5c8b7eaa19e30077ca45be6e106c5882d36acd52e7b1f100acb68687bf6f1e5d11b078002f35bd026937c1a0765adc6ac3571629e84a56 + languageName: node + linkType: hard + +"@backstage/backend-app-api@npm:^1.1.0": + version: 1.1.1 + resolution: "@backstage/backend-app-api@npm:1.1.1" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/cli-common": "npm:^0.1.15" + "@backstage/config": "npm:^1.3.2" + "@backstage/config-loader": "npm:^1.9.5" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/plugin-permission-node": "npm:^0.8.7" + "@backstage/types": "npm:^1.2.1" + "@manypkg/get-packages": "npm:^1.1.3" + compression: "npm:^1.7.4" + cookie: "npm:^0.7.0" + cors: "npm:^2.8.5" + helmet: "npm:^6.0.0" + jose: "npm:^5.0.0" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + logform: "npm:^2.3.2" + luxon: "npm:^3.0.0" + minimatch: "npm:^9.0.0" + minimist: "npm:^1.2.5" + morgan: "npm:^1.10.0" + node-forge: "npm:^1.3.1" + path-to-regexp: "npm:^8.0.0" + selfsigned: "npm:^2.0.0" + stoppable: "npm:^1.1.0" + triple-beam: "npm:^1.4.1" + uuid: "npm:^11.0.0" + winston: "npm:^3.2.1" + winston-transport: "npm:^4.5.0" + checksum: 10/54d8c5811aa0490e488f2a2362e41d844c1518e0aaaedc2967b509de6b6b27a4b5900e55463458199402445fe39cda43b4ad12ca5b37a08651c2065129b7323a + languageName: node + linkType: hard + +"@backstage/backend-common@npm:^0.25.0": + version: 0.25.0 + resolution: "@backstage/backend-common@npm:0.25.0" + dependencies: + "@aws-sdk/abort-controller": "npm:^3.347.0" + "@aws-sdk/client-codecommit": "npm:^3.350.0" + "@aws-sdk/client-s3": "npm:^3.350.0" + "@aws-sdk/credential-providers": "npm:^3.350.0" + "@aws-sdk/types": "npm:^3.347.0" + "@backstage/backend-dev-utils": "npm:^0.1.5" + "@backstage/backend-plugin-api": "npm:^1.0.0" + "@backstage/cli-common": "npm:^0.1.14" + "@backstage/config": "npm:^1.2.0" + "@backstage/config-loader": "npm:^1.9.1" + "@backstage/errors": "npm:^1.2.4" + "@backstage/integration": "npm:^1.15.0" + "@backstage/integration-aws-node": "npm:^0.1.12" + "@backstage/plugin-auth-node": "npm:^0.5.2" + "@backstage/types": "npm:^1.1.1" + "@google-cloud/storage": "npm:^7.0.0" + "@keyv/memcache": "npm:^1.3.5" + "@keyv/redis": "npm:^2.5.3" + "@kubernetes/client-node": "npm:0.20.0" + "@manypkg/get-packages": "npm:^1.1.3" + "@octokit/rest": "npm:^19.0.3" + "@types/cors": "npm:^2.8.6" + "@types/dockerode": "npm:^3.3.0" + "@types/express": "npm:^4.17.6" + "@types/luxon": "npm:^3.0.0" + "@types/webpack-env": "npm:^1.15.2" + archiver: "npm:^7.0.0" + base64-stream: "npm:^1.0.0" + compression: "npm:^1.7.4" + concat-stream: "npm:^2.0.0" + cors: "npm:^2.8.5" + dockerode: "npm:^4.0.0" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + fs-extra: "npm:^11.2.0" + git-url-parse: "npm:^14.0.0" + helmet: "npm:^6.0.0" + isomorphic-git: "npm:^1.23.0" + jose: "npm:^5.0.0" + keyv: "npm:^4.5.2" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + logform: "npm:^2.3.2" + luxon: "npm:^3.0.0" + minimatch: "npm:^9.0.0" + minimist: "npm:^1.2.5" + morgan: "npm:^1.10.0" + mysql2: "npm:^3.0.0" + node-fetch: "npm:^2.7.0" + node-forge: "npm:^1.3.1" + p-limit: "npm:^3.1.0" + path-to-regexp: "npm:^8.0.0" + pg: "npm:^8.11.3" + pg-format: "npm:^1.0.4" + raw-body: "npm:^2.4.1" + selfsigned: "npm:^2.0.0" + stoppable: "npm:^1.1.0" + tar: "npm:^6.1.12" + triple-beam: "npm:^1.4.1" + uuid: "npm:^9.0.0" + winston: "npm:^3.2.1" + winston-transport: "npm:^4.5.0" + yauzl: "npm:^3.0.0" + yn: "npm:^4.0.0" + peerDependencies: + pg-connection-string: ^2.3.0 + peerDependenciesMeta: + pg-connection-string: + optional: true + checksum: 10/4db059f9d095e9eed2c0bb887893be0ede063e0a9c5ddd2b99d6a785f2d8a64780740118bc17dd5905a0ee8b4d16ee617fa12f9fa571429887051aa3911489f8 + languageName: node + linkType: hard + +"@backstage/backend-defaults@npm:^0.6.0, @backstage/backend-defaults@npm:^0.6.2": + version: 0.6.2 + resolution: "@backstage/backend-defaults@npm:0.6.2" + dependencies: + "@aws-sdk/abort-controller": "npm:^3.347.0" + "@aws-sdk/client-codecommit": "npm:^3.350.0" + "@aws-sdk/client-s3": "npm:^3.350.0" + "@aws-sdk/credential-providers": "npm:^3.350.0" + "@aws-sdk/types": "npm:^3.347.0" + "@azure/identity": "npm:^4.0.0" + "@azure/storage-blob": "npm:^12.5.0" + "@backstage/backend-app-api": "npm:^1.1.0" + "@backstage/backend-dev-utils": "npm:^0.1.5" + "@backstage/backend-plugin-api": "npm:^1.1.0" + "@backstage/cli-common": "npm:^0.1.15" + "@backstage/cli-node": "npm:^0.2.11" + "@backstage/config": "npm:^1.3.1" + "@backstage/config-loader": "npm:^1.9.4" + "@backstage/errors": "npm:^1.2.6" + "@backstage/integration": "npm:^1.16.0" + "@backstage/integration-aws-node": "npm:^0.1.14" + "@backstage/plugin-auth-node": "npm:^0.5.5" + "@backstage/plugin-events-node": "npm:^0.4.6" + "@backstage/plugin-permission-node": "npm:^0.8.6" + "@backstage/types": "npm:^1.2.0" + "@google-cloud/storage": "npm:^7.0.0" + "@keyv/memcache": "npm:^2.0.1" + "@keyv/redis": "npm:^4.0.1" + "@manypkg/get-packages": "npm:^1.1.3" + "@octokit/rest": "npm:^19.0.3" + "@opentelemetry/api": "npm:^1.9.0" + "@types/cors": "npm:^2.8.6" + "@types/express": "npm:^4.17.6" + archiver: "npm:^7.0.0" + base64-stream: "npm:^1.0.0" + better-sqlite3: "npm:^11.0.0" + compression: "npm:^1.7.4" + concat-stream: "npm:^2.0.0" + cookie: "npm:^0.7.0" + cors: "npm:^2.8.5" + cron: "npm:^3.0.0" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + fs-extra: "npm:^11.2.0" + git-url-parse: "npm:^15.0.0" + helmet: "npm:^6.0.0" + isomorphic-git: "npm:^1.23.0" + jose: "npm:^5.0.0" + keyv: "npm:^5.2.1" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + logform: "npm:^2.3.2" + luxon: "npm:^3.0.0" + minimatch: "npm:^9.0.0" + minimist: "npm:^1.2.5" + mysql2: "npm:^3.0.0" + node-fetch: "npm:^2.7.0" + node-forge: "npm:^1.3.1" + p-limit: "npm:^3.1.0" + p-throttle: "npm:^4.1.1" + path-to-regexp: "npm:^8.0.0" + pg: "npm:^8.11.3" + pg-connection-string: "npm:^2.3.0" + pg-format: "npm:^1.0.4" + raw-body: "npm:^2.4.1" + selfsigned: "npm:^2.0.0" + tar: "npm:^6.1.12" + triple-beam: "npm:^1.4.1" + uuid: "npm:^11.0.0" + winston: "npm:^3.2.1" + winston-transport: "npm:^4.5.0" + yauzl: "npm:^3.0.0" + yn: "npm:^4.0.0" + zod: "npm:^3.22.4" + peerDependencies: + "@google-cloud/cloud-sql-connector": ^1.4.0 + peerDependenciesMeta: + "@google-cloud/cloud-sql-connector": + optional: true + checksum: 10/2594282d3f1cdce0b3b537f7c540d7d1430bf01e0960f92e8d8b4f55eaea5458ae515945d15cc58a592e1c3e4c2cb424f9660da0ea92d40145443b992beb2466 + languageName: node + linkType: hard + +"@backstage/backend-dev-utils@npm:^0.1.5": + version: 0.1.5 + resolution: "@backstage/backend-dev-utils@npm:0.1.5" + checksum: 10/acd0992047b420dc2ffbfe1ab4c730c5804ad6888a8aa1648df96659c6a4acafbf67784acc9437350fe377ae4acb6b6e772fe77a5976a462d37d6ef2c91b9514 + languageName: node + linkType: hard + +"@backstage/backend-openapi-utils@npm:^0.4.0, @backstage/backend-openapi-utils@npm:^0.4.1": + version: 0.4.1 + resolution: "@backstage/backend-openapi-utils@npm:0.4.1" + dependencies: + "@apidevtools/swagger-parser": "npm:^10.1.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + "@types/express": "npm:^4.17.6" + "@types/express-serve-static-core": "npm:^4.17.5" + ajv: "npm:^8.16.0" + express: "npm:^4.17.1" + express-openapi-validator: "npm:^5.0.4" + express-promise-router: "npm:^4.1.0" + get-port: "npm:^5.1.1" + json-schema-to-ts: "npm:^3.0.0" + lodash: "npm:^4.17.21" + mockttp: "npm:^3.13.0" + openapi-merge: "npm:^1.3.2" + openapi3-ts: "npm:^3.1.2" + checksum: 10/fb1d406f51a093312a906a621cee891a164534deb3df3549b87027c482a78330411a54b7392dd7158834848f0facea7b2922658612c0d95226c7c4f3b3d78d92 + languageName: node + linkType: hard + +"@backstage/backend-plugin-api@npm:^1.0.0, @backstage/backend-plugin-api@npm:^1.1.0, @backstage/backend-plugin-api@npm:^1.1.1": + version: 1.1.1 + resolution: "@backstage/backend-plugin-api@npm:1.1.1" + dependencies: + "@backstage/cli-common": "npm:^0.1.15" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/types": "npm:^1.2.1" + "@types/express": "npm:^4.17.6" + "@types/luxon": "npm:^3.0.0" + knex: "npm:^3.0.0" + luxon: "npm:^3.0.0" + checksum: 10/3355cfb0f603c5a4c4d18e804f8a87d554a84658cbf456ef46d801972b59b105337a19e75885df6eb286a6764b5b3bfeedf1529e1928f80673f7eff4de6822b1 + languageName: node + linkType: hard + +"@backstage/backend-test-utils@npm:^1.2.0": + version: 1.2.0 + resolution: "@backstage/backend-test-utils@npm:1.2.0" + dependencies: + "@backstage/backend-app-api": "npm:^1.1.0" + "@backstage/backend-defaults": "npm:^0.6.0" + "@backstage/backend-plugin-api": "npm:^1.1.0" + "@backstage/config": "npm:^1.3.1" + "@backstage/errors": "npm:^1.2.6" + "@backstage/plugin-auth-node": "npm:^0.5.5" + "@backstage/plugin-events-node": "npm:^0.4.6" + "@backstage/types": "npm:^1.2.0" + "@keyv/memcache": "npm:^2.0.1" + "@keyv/redis": "npm:^4.0.1" + "@types/express": "npm:^4.17.6" + "@types/express-serve-static-core": "npm:^4.17.5" + "@types/keyv": "npm:^4.2.0" + "@types/qs": "npm:^6.9.6" + better-sqlite3: "npm:^11.0.0" + cookie: "npm:^0.7.0" + express: "npm:^4.17.1" + fs-extra: "npm:^11.0.0" + keyv: "npm:^5.2.1" + knex: "npm:^3.0.0" + mysql2: "npm:^3.0.0" + pg: "npm:^8.11.3" + pg-connection-string: "npm:^2.3.0" + testcontainers: "npm:^10.0.0" + textextensions: "npm:^5.16.0" + uuid: "npm:^11.0.0" + yn: "npm:^4.0.0" + peerDependencies: + "@types/jest": "*" + checksum: 10/022899613e44debc3eb4a6fdf3ea237bb3b09a4eb3f2cde2a33984c3c968b8a13acdb46784514380dc7e704dcd6abdd2956dc6b9fe9a7d8f7249be33f92249e4 + languageName: node + linkType: hard + +"@backstage/catalog-client@npm:^1.9.0, @backstage/catalog-client@npm:^1.9.1": + version: 1.9.1 + resolution: "@backstage/catalog-client@npm:1.9.1" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/errors": "npm:^1.2.7" + cross-fetch: "npm:^4.0.0" + uri-template: "npm:^2.0.0" + checksum: 10/4e29bb4b6addf4330e298e08500efda6d7e9a416102abdd65dfbedb5e139d8911449f6bb91a90b2d571ddca53cb908c77a4a894fd34689f740e779e66020e13f + languageName: node + linkType: hard + +"@backstage/catalog-model@npm:^1.7.0, @backstage/catalog-model@npm:^1.7.2, @backstage/catalog-model@npm:^1.7.3": + version: 1.7.3 + resolution: "@backstage/catalog-model@npm:1.7.3" + dependencies: + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + ajv: "npm:^8.10.0" + lodash: "npm:^4.17.21" + checksum: 10/5c58e19cf30f392c6a9e49edd623fc0a5677d36a2f7ab1e09dadf54fff110e4c2bf3f967061ed7279a106526cd05cae8ac9bedfc03742773e7499807ed9f19c8 + languageName: node + linkType: hard + +"@backstage/cli-common@npm:^0.1.14, @backstage/cli-common@npm:^0.1.15": + version: 0.1.15 + resolution: "@backstage/cli-common@npm:0.1.15" + checksum: 10/cb097348ce5c533125ab367d15fa7b663c1c8071b6ab2a83305fbe1ca9d754c6b6b68112decdbca9685b47a4e7512ebd30066ee8c310ae0d66524f8e484ee5be + languageName: node + linkType: hard + +"@backstage/cli-node@npm:^0.2.11, @backstage/cli-node@npm:^0.2.12": + version: 0.2.12 + resolution: "@backstage/cli-node@npm:0.2.12" + dependencies: + "@backstage/cli-common": "npm:^0.1.15" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + "@manypkg/get-packages": "npm:^1.1.3" + "@yarnpkg/parsers": "npm:^3.0.0" + fs-extra: "npm:^11.2.0" + semver: "npm:^7.5.3" + zod: "npm:^3.22.4" + checksum: 10/4b8da8a94bfabe513a2a3f86b50868859f3a9003af2fa68ddc32ed2f5de72667edc2a994e297f2bc148cf3abf8646e428dd18c511e7703bc10f8b84201a88c99 + languageName: node + linkType: hard + +"@backstage/cli@npm:^0.29.5": + version: 0.29.5 + resolution: "@backstage/cli@npm:0.29.5" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/cli-common": "npm:^0.1.15" + "@backstage/cli-node": "npm:^0.2.12" + "@backstage/config": "npm:^1.3.2" + "@backstage/config-loader": "npm:^1.9.5" + "@backstage/errors": "npm:^1.2.7" + "@backstage/eslint-plugin": "npm:^0.1.10" + "@backstage/integration": "npm:^1.16.1" + "@backstage/release-manifests": "npm:^0.0.12" + "@backstage/types": "npm:^1.2.1" + "@manypkg/get-packages": "npm:^1.1.3" + "@module-federation/enhanced": "npm:^0.8.0" + "@octokit/graphql": "npm:^5.0.0" + "@octokit/graphql-schema": "npm:^13.7.0" + "@octokit/oauth-app": "npm:^4.2.0" + "@octokit/request": "npm:^6.0.0" + "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.7" + "@rollup/plugin-commonjs": "npm:^26.0.0" + "@rollup/plugin-json": "npm:^6.0.0" + "@rollup/plugin-node-resolve": "npm:^15.0.0" + "@rollup/plugin-yaml": "npm:^4.0.0" + "@spotify/eslint-config-base": "npm:^15.0.0" + "@spotify/eslint-config-react": "npm:^15.0.0" + "@spotify/eslint-config-typescript": "npm:^15.0.0" + "@sucrase/webpack-loader": "npm:^2.0.0" + "@svgr/core": "npm:6.5.x" + "@svgr/plugin-jsx": "npm:6.5.x" + "@svgr/plugin-svgo": "npm:6.5.x" + "@svgr/rollup": "npm:6.5.x" + "@svgr/webpack": "npm:6.5.x" + "@swc/core": "npm:^1.3.46" + "@swc/helpers": "npm:^0.5.0" + "@swc/jest": "npm:^0.2.22" + "@types/jest": "npm:^29.5.11" + "@types/webpack-env": "npm:^1.15.2" + "@typescript-eslint/eslint-plugin": "npm:^8.17.0" + "@typescript-eslint/parser": "npm:^8.16.0" + "@yarnpkg/lockfile": "npm:^1.1.0" + "@yarnpkg/parsers": "npm:^3.0.0" + bfj: "npm:^8.0.0" + buffer: "npm:^6.0.3" + chalk: "npm:^4.0.0" + chokidar: "npm:^3.3.1" + commander: "npm:^12.0.0" + cross-fetch: "npm:^4.0.0" + cross-spawn: "npm:^7.0.3" + css-loader: "npm:^6.5.1" + ctrlc-windows: "npm:^2.1.0" + esbuild: "npm:^0.24.0" + esbuild-loader: "npm:^4.0.0" + eslint: "npm:^8.6.0" + eslint-config-prettier: "npm:^9.0.0" + eslint-formatter-friendly: "npm:^7.0.0" + eslint-plugin-deprecation: "npm:^3.0.0" + eslint-plugin-import: "npm:^2.31.0" + eslint-plugin-jest: "npm:^28.9.0" + eslint-plugin-jsx-a11y: "npm:^6.10.2" + eslint-plugin-react: "npm:^7.37.2" + eslint-plugin-react-hooks: "npm:^5.0.0" + eslint-plugin-unused-imports: "npm:^4.1.4" + eslint-webpack-plugin: "npm:^4.2.0" + express: "npm:^4.17.1" + fork-ts-checker-webpack-plugin: "npm:^9.0.0" + fs-extra: "npm:^11.2.0" + git-url-parse: "npm:^15.0.0" + glob: "npm:^7.1.7" + global-agent: "npm:^3.0.0" + globby: "npm:^11.1.0" + handlebars: "npm:^4.7.3" + html-webpack-plugin: "npm:^5.6.3" + inquirer: "npm:^8.2.0" + jest: "npm:^29.7.0" + jest-cli: "npm:^29.7.0" + jest-css-modules: "npm:^2.1.0" + jest-environment-jsdom: "npm:^29.0.2" + jest-runtime: "npm:^29.0.2" + json-schema: "npm:^0.4.0" + lodash: "npm:^4.17.21" + mini-css-extract-plugin: "npm:^2.4.2" + minimatch: "npm:^9.0.0" + node-libs-browser: "npm:^2.2.1" + npm-packlist: "npm:^5.0.0" + ora: "npm:^5.3.0" + p-limit: "npm:^3.1.0" + p-queue: "npm:^6.6.2" + pirates: "npm:^4.0.6" + postcss: "npm:^8.1.0" + process: "npm:^0.11.10" + raw-loader: "npm:^4.0.2" + react-dev-utils: "npm:^12.0.0-next.60" + react-refresh: "npm:^0.14.0" + recursive-readdir: "npm:^2.2.2" + replace-in-file: "npm:^7.1.0" + rollup: "npm:^4.27.3" + rollup-plugin-dts: "npm:^6.1.0" + rollup-plugin-esbuild: "npm:^6.1.1" + rollup-plugin-postcss: "npm:^4.0.0" + rollup-pluginutils: "npm:^2.8.2" + semver: "npm:^7.5.3" + style-loader: "npm:^3.3.1" + sucrase: "npm:^3.20.2" + swc-loader: "npm:^0.2.3" + tar: "npm:^6.1.12" + terser-webpack-plugin: "npm:^5.1.3" + ts-morph: "npm:^24.0.0" + util: "npm:^0.12.3" + webpack: "npm:^5.94.0" + webpack-dev-server: "npm:^5.0.0" + yaml: "npm:^2.0.0" + yargs: "npm:^16.2.0" + yml-loader: "npm:^2.1.0" + yn: "npm:^4.0.0" + zod: "npm:^3.22.4" + peerDependencies: + "@rspack/core": ^1.0.10 + "@rspack/dev-server": ^1.0.9 + "@rspack/plugin-react-refresh": ^1.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + "@rspack/dev-server": + optional: true + "@rspack/plugin-react-refresh": + optional: true + bin: + backstage-cli: bin/backstage-cli + checksum: 10/10d6367072b5072ddc974a98056a07d215552bb2903b1ca38843edc732f835e143e9ee9bc28849af60b2e1c9ceef9c88e9126f5d659e26beab3a69c0189dc9a5 + languageName: node + linkType: hard + +"@backstage/config-loader@npm:^1.9.1, @backstage/config-loader@npm:^1.9.4, @backstage/config-loader@npm:^1.9.5": + version: 1.9.5 + resolution: "@backstage/config-loader@npm:1.9.5" + dependencies: + "@backstage/cli-common": "npm:^0.1.15" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + "@types/json-schema": "npm:^7.0.6" + ajv: "npm:^8.10.0" + chokidar: "npm:^3.5.2" + fs-extra: "npm:^11.2.0" + json-schema: "npm:^0.4.0" + json-schema-merge-allof: "npm:^0.8.1" + json-schema-traverse: "npm:^1.0.0" + lodash: "npm:^4.17.21" + minimist: "npm:^1.2.5" + typescript-json-schema: "npm:^0.65.0" + yaml: "npm:^2.0.0" + checksum: 10/aab0054fe4373d1722884893ae9d38aa159fc42ff498756f9fa9d173466d78aa176651379ba90175305b6b6804155ccf33a9f88491f2ab846cbf83e570feaebc + languageName: node + linkType: hard + +"@backstage/config@npm:^1.2.0, @backstage/config@npm:^1.3.1, @backstage/config@npm:^1.3.2": + version: 1.3.2 + resolution: "@backstage/config@npm:1.3.2" + dependencies: + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + ms: "npm:^2.1.3" + checksum: 10/cc2e4ff7cd0db7542ed258fb273826057aff1455f745c1f9379303c3407ea6ca4f9f908a73f29470b9ca3155ef4603263e9d1dda5bd4d6930c42e794c70885e4 + languageName: node + linkType: hard + +"@backstage/core-app-api@npm:^1.15.4": + version: 1.15.4 + resolution: "@backstage/core-app-api@npm:1.15.4" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + "@types/prop-types": "npm:^15.7.3" + history: "npm:^5.0.0" + i18next: "npm:^22.4.15" + lodash: "npm:^4.17.21" + prop-types: "npm:^15.7.2" + react-use: "npm:^17.2.4" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.22.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/7d33ec54c6e8051d72763a7990ec4ad7f0bc70574103923127e7be43f3402b8756f18ddb566f2c58ae5e246338f40e45307e69a515749836f1fa2d91666eb9b2 + languageName: node + linkType: hard + +"@backstage/core-compat-api@npm:^0.3.1, @backstage/core-compat-api@npm:^0.3.5": + version: 0.3.5 + resolution: "@backstage/core-compat-api@npm:0.3.5" + dependencies: + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/version-bridge": "npm:^1.0.10" + lodash: "npm:^4.17.21" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/cfd024c2bba6ad62f3b0d6e4a75261ccbce65808285f74b7b63078c179f5a103b0b4aea8fe2481745ef6c3790c2a4ade6157bb16fb316e4c8086769874ca91ba + languageName: node + linkType: hard + +"@backstage/core-components@npm:^0.15.1": + version: 0.15.1 + resolution: "@backstage/core-components@npm:0.15.1" + dependencies: + "@backstage/config": "npm:^1.2.0" + "@backstage/core-plugin-api": "npm:^1.10.0" + "@backstage/errors": "npm:^1.2.4" + "@backstage/theme": "npm:^0.6.0" + "@backstage/version-bridge": "npm:^1.0.10" + "@date-io/core": "npm:^1.3.13" + "@material-table/core": "npm:^3.1.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + "@types/react-sparklines": "npm:^1.7.0" + ansi-regex: "npm:^6.0.1" + classnames: "npm:^2.2.6" + d3-selection: "npm:^3.0.0" + d3-shape: "npm:^3.0.0" + d3-zoom: "npm:^3.0.0" + dagre: "npm:^0.8.5" + linkify-react: "npm:4.1.3" + linkifyjs: "npm:4.1.3" + lodash: "npm:^4.17.21" + pluralize: "npm:^8.0.0" + qs: "npm:^6.9.4" + rc-progress: "npm:3.5.1" + react-helmet: "npm:6.1.0" + react-hook-form: "npm:^7.12.2" + react-idle-timer: "npm:5.7.2" + react-markdown: "npm:^8.0.0" + react-sparklines: "npm:^1.7.0" + react-syntax-highlighter: "npm:^15.4.5" + react-use: "npm:^17.3.2" + react-virtualized-auto-sizer: "npm:^1.0.11" + react-window: "npm:^1.8.6" + remark-gfm: "npm:^3.0.1" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.22.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/48c765a7219255b4f230af13b6ba3e78cf0b23f1642a8175b6fa2498b7655dec662ea356f92fbbd9d834b55f8923540f879c0529a0bff0772ebff676152a2275 + languageName: node + linkType: hard + +"@backstage/core-components@npm:^0.16.2, @backstage/core-components@npm:^0.16.3": + version: 0.16.3 + resolution: "@backstage/core-components@npm:0.16.3" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/theme": "npm:^0.6.3" + "@backstage/version-bridge": "npm:^1.0.10" + "@date-io/core": "npm:^1.3.13" + "@material-table/core": "npm:^3.1.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + "@testing-library/react": "npm:^16.0.0" + "@types/react-sparklines": "npm:^1.7.0" + ansi-regex: "npm:^6.0.1" + classnames: "npm:^2.2.6" + d3-selection: "npm:^3.0.0" + d3-shape: "npm:^3.0.0" + d3-zoom: "npm:^3.0.0" + dagre: "npm:^0.8.5" + linkify-react: "npm:4.1.3" + linkifyjs: "npm:4.1.3" + lodash: "npm:^4.17.21" + pluralize: "npm:^8.0.0" + qs: "npm:^6.9.4" + rc-progress: "npm:3.5.1" + react-helmet: "npm:6.1.0" + react-hook-form: "npm:^7.12.2" + react-idle-timer: "npm:5.7.2" + react-markdown: "npm:^8.0.0" + react-sparklines: "npm:^1.7.0" + react-syntax-highlighter: "npm:^15.4.5" + react-use: "npm:^17.3.2" + react-virtualized-auto-sizer: "npm:^1.0.11" + react-window: "npm:^1.8.6" + remark-gfm: "npm:^3.0.1" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.22.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/6a58a466f7e5703368f66ce0cd0104ec96aa14bc98dc5d456b57ca98c24883601fcc29cca19b7910ca15ca059bcbe7e72a8cac324d74e6aba620c9e07dfe1c33 + languageName: node + linkType: hard + +"@backstage/core-plugin-api@npm:^1.10.0, @backstage/core-plugin-api@npm:^1.10.2, @backstage/core-plugin-api@npm:^1.10.3": + version: 1.10.3 + resolution: "@backstage/core-plugin-api@npm:1.10.3" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + history: "npm:^5.0.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/4c45b89da9f38f6afa581dcb0ccc74f5353c3db18f535223cfde98d8d7c06ceb85e18b6a2259d6519fe582b80821bee0d5b20fd3bb55862df132cd5692644312 + languageName: node + linkType: hard + +"@backstage/e2e-test-utils@npm:^0.1.1": + version: 0.1.1 + resolution: "@backstage/e2e-test-utils@npm:0.1.1" + dependencies: + "@manypkg/get-packages": "npm:^1.1.3" + fs-extra: "npm:^11.0.0" + peerDependencies: + "@playwright/test": ^1.32.3 + peerDependenciesMeta: + "@playwright/test": + optional: true + checksum: 10/3f7751452edd9a60cdb49176cf010ab5d7760287ecbe7b7b7c8218ceccce4263f86b27e0906a3d71744a2eafb530d6c1e2bacb8bc049b22922ae6c5a0764ff6a + languageName: node + linkType: hard + +"@backstage/errors@npm:^1.2.4, @backstage/errors@npm:^1.2.6, @backstage/errors@npm:^1.2.7": + version: 1.2.7 + resolution: "@backstage/errors@npm:1.2.7" + dependencies: + "@backstage/types": "npm:^1.2.1" + serialize-error: "npm:^8.0.1" + checksum: 10/99bbe2cbb9f6672afe30bab02ab1cf48daa8e994fb0c5b9390075ebf9357d5f7d450b9ea889e908e2823ee47cbf5405432e32171d338653bebf1b5914b735c35 + languageName: node + linkType: hard + +"@backstage/eslint-plugin@npm:^0.1.10": + version: 0.1.10 + resolution: "@backstage/eslint-plugin@npm:0.1.10" + dependencies: + "@manypkg/get-packages": "npm:^1.1.3" + minimatch: "npm:^9.0.0" + checksum: 10/7983d7ff71d940e7aa761d1a5663844dcd23fc4754efd46423e2996a66ac63b39d44866f49dad6794827b738bc9dcbbc1bdee2b3934e2cee477733bcb5a27b2f + languageName: node + linkType: hard + +"@backstage/frontend-app-api@npm:^0.10.4": + version: 0.10.4 + resolution: "@backstage/frontend-app-api@npm:0.10.4" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/core-app-api": "npm:^1.15.4" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-defaults": "npm:^0.1.5" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + lodash: "npm:^4.17.21" + zod: "npm:^3.22.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/b93025117c298cedf76c246a6fd227985ed3372bbcfbf6640ef5702d980bd1de8960d19e17873bd6c3c8f8734da0eb62644ccb5110a26eaec8f94ed9e74120f5 + languageName: node + linkType: hard + +"@backstage/frontend-defaults@npm:^0.1.5": + version: 0.1.5 + resolution: "@backstage/frontend-defaults@npm:0.1.5" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-app-api": "npm:^0.10.4" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-app": "npm:^0.1.5" + "@react-hookz/web": "npm:^24.0.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/729fe9b7195809192e4c1c785ecb494e6af51475abe999ba2891dffceaa931e739f4b6fb62f2ac0cdbb71030790cad183a604d31c1287949114642fc39d8ec07 + languageName: node + linkType: hard + +"@backstage/frontend-plugin-api@npm:^0.9.0, @backstage/frontend-plugin-api@npm:^0.9.4": + version: 0.9.4 + resolution: "@backstage/frontend-plugin-api@npm:0.9.4" + dependencies: + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + "@material-ui/core": "npm:^4.12.4" + lodash: "npm:^4.17.21" + zod: "npm:^3.22.4" + zod-to-json-schema: "npm:^3.21.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/34fb8c49bc418de1b56130b7b7f9295eafe92b10a189c1cf1659dce7cad2dbcd56d20e5671e21a1e3bd57f941d90b8946c070a1d351c8a9c7ea3d3a236e01101 + languageName: node + linkType: hard + +"@backstage/frontend-test-utils@npm:^0.2.5": + version: 0.2.5 + resolution: "@backstage/frontend-test-utils@npm:0.2.5" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/frontend-app-api": "npm:^0.10.4" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-app": "npm:^0.1.5" + "@backstage/test-utils": "npm:^1.7.4" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + zod: "npm:^3.22.4" + peerDependencies: + "@testing-library/react": ^16.0.0 + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/720bddad2da35b67cc3b6842518efccb7f9194cbbc6c17b29242e8a57321bf92b01b5f72e5e87aef9908553b4d55a5c92711f21bf0ead1448fd0b6ed6aeee2b4 + languageName: node + linkType: hard + +"@backstage/integration-aws-node@npm:^0.1.12, @backstage/integration-aws-node@npm:^0.1.14, @backstage/integration-aws-node@npm:^0.1.15": + version: 0.1.15 + resolution: "@backstage/integration-aws-node@npm:0.1.15" + dependencies: + "@aws-sdk/client-sts": "npm:^3.350.0" + "@aws-sdk/credential-provider-node": "npm:^3.350.0" + "@aws-sdk/credential-providers": "npm:^3.350.0" + "@aws-sdk/types": "npm:^3.347.0" + "@aws-sdk/util-arn-parser": "npm:^3.310.0" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + checksum: 10/92c52ad6f33ff270840b44bb060837f0f0b9f133c76c171f8aad29192580dd04c5d4db716ad6c07c8a4ebfc709458781bfb39def7ddadce64918d8b4352730ab + languageName: node + linkType: hard + +"@backstage/integration-react@npm:^1.2.0, @backstage/integration-react@npm:^1.2.3": + version: 1.2.3 + resolution: "@backstage/integration-react@npm:1.2.3" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/integration": "npm:^1.16.1" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/ca854eb745e6676b35daf050420eeadbf9c480f77b08a7788489a4768fb95c367493c5f4143e5eebff0f26dec1bc50758ebe9696abc600585d6e7a18e7893291 + languageName: node + linkType: hard + +"@backstage/integration@npm:^1.15.0, @backstage/integration@npm:^1.15.1, @backstage/integration@npm:^1.16.0, @backstage/integration@npm:^1.16.1": + version: 1.16.1 + resolution: "@backstage/integration@npm:1.16.1" + dependencies: + "@azure/identity": "npm:^4.0.0" + "@azure/storage-blob": "npm:^12.5.0" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@octokit/auth-app": "npm:^4.0.0" + "@octokit/rest": "npm:^19.0.3" + cross-fetch: "npm:^4.0.0" + git-url-parse: "npm:^15.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + checksum: 10/2bc2ce06e9c64f4b01d5b4d8cc97fafc732a28bd5412cca65e55f92e9089a71205396b1ac352f5f10f9b4c807b180122ed2896d90fee5ec873bdaaa7162206d5 + languageName: node + linkType: hard + +"@backstage/plugin-api-docs@npm:^0.12.3": + version: 0.12.3 + resolution: "@backstage/plugin-api-docs@npm:0.12.3" + dependencies: + "@asyncapi/react-component": "npm:^2.3.3" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-catalog": "npm:^1.26.1" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@graphiql/react": "npm:^0.23.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + graphiql: "npm:3.1.1" + graphql: "npm:^16.0.0" + graphql-config: "npm:^5.0.2" + graphql-ws: "npm:^5.4.1" + isomorphic-form-data: "npm:^2.0.0" + swagger-ui-react: "npm:^5.0.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/caa6dde23b7856dccbed99df95d443ba05dbef08aad3c48679963121ab5a74b4df88a1b6f50b16ea55da0885bfb22ce6ab2f69a7d7591daad125251ff1f03ab2 + languageName: node + linkType: hard + +"@backstage/plugin-app-backend@npm:^0.4.4": + version: 0.4.4 + resolution: "@backstage/plugin-app-backend@npm:0.4.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/config": "npm:^1.3.2" + "@backstage/config-loader": "npm:^1.9.5" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-app-node": "npm:^0.1.29" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/types": "npm:^1.2.1" + "@types/express": "npm:^4.17.6" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + fs-extra: "npm:^11.2.0" + globby: "npm:^11.0.0" + helmet: "npm:^6.0.0" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + yn: "npm:^4.0.0" + checksum: 10/d6f9d22919707501bc42c07c2c10053150422f99e7adedc0370b85ecb5ef55e4da5f9f0c8521ef90845c7a36d86171756aaad3e4c53a760528af84dfcbfa0e00 + languageName: node + linkType: hard + +"@backstage/plugin-app-node@npm:^0.1.29": + version: 0.1.29 + resolution: "@backstage/plugin-app-node@npm:0.1.29" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/config-loader": "npm:^1.9.5" + "@types/express": "npm:^4.17.6" + express: "npm:^4.17.1" + fs-extra: "npm:^11.2.0" + checksum: 10/6ba435b7e094ee4c05163f085ae978d5407e1433d2ec5912b093153784273cb3b33cf53d2f2ead95ff7af1fd8747a694e11999d8e3648ffc2a639d760ec762d1 + languageName: node + linkType: hard + +"@backstage/plugin-app@npm:^0.1.5": + version: 0.1.5 + resolution: "@backstage/plugin-app@npm:0.1.5" + dependencies: + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/theme": "npm:^0.6.3" + "@material-ui/core": "npm:^4.9.13" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:^4.0.0-alpha.61" + react-use: "npm:^17.2.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/ea79d6c93662136e394f2c1e799eb97ad75ee4ff5cf32736c64ff1d26f5eca2a8e3da0f046ca40f5865098e39b54101ec3cff3595894fcc790a786894ff7f8bc + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-atlassian-provider@npm:^0.3.4": + version: 0.3.4 + resolution: "@backstage/plugin-auth-backend-module-atlassian-provider@npm:0.3.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.18.2" + passport: "npm:^0.7.0" + passport-atlassian-oauth2: "npm:^2.1.0" + checksum: 10/555f053d13cd582d5941ca434d10b53e9064f6bd3e30b6d1daadf22e176f3685a4a311f223b30e15dad2f76386bba9e1fa2dc65e439a9ca7fbab767175b3769d + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-auth0-provider@npm:^0.1.4": + version: 0.1.4 + resolution: "@backstage/plugin-auth-backend-module-auth0-provider@npm:0.1.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.17.1" + passport-auth0: "npm:^1.4.3" + passport-oauth2: "npm:^1.6.1" + checksum: 10/a1525e9e1cec3d96aaea0074a091bb69efacb048acecdd7c961ce9e7852510486a30874d94769127328b85fd4f385a32cc274367d079cb4cedbed2a0b998d75f + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-aws-alb-provider@npm:^0.3.2": + version: 0.3.2 + resolution: "@backstage/plugin-auth-backend-module-aws-alb-provider@npm:0.3.2" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-backend": "npm:^0.24.2" + "@backstage/plugin-auth-node": "npm:^0.5.6" + jose: "npm:^5.0.0" + node-cache: "npm:^5.1.2" + checksum: 10/52ab555a366b847f48306cb9cd1e3fd63c81ea9bcece052be3d76e296f4ec33590131ba8325e159e6ca3479a7836863e65bd872d1fab29beb8dc475c2a0a9911 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-azure-easyauth-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-azure-easyauth-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@types/passport": "npm:^1.0.16" + express: "npm:^4.19.2" + jose: "npm:^5.0.0" + passport: "npm:^0.7.0" + checksum: 10/f74ccf691da45f15881356f7c43b1acb612bcc4af815903c5b9d39033467a9010cf253bb77203a4a91015a62a0a3abb80c7f03298806e2673153e1389057b4ff + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-bitbucket-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-bitbucket-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.18.2" + passport: "npm:^0.7.0" + passport-bitbucket-oauth2: "npm:^0.1.2" + checksum: 10/e5449a54620ba38c43bfbe2923ccea094422c4f87a5c35fd8cf856d95afa8dd06198c3f5d1921d5da18129d392d9d6a1a86ff9ca75cdd877023a22090910f6de + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-bitbucket-server-provider@npm:^0.1.4": + version: 0.1.4 + resolution: "@backstage/plugin-auth-backend-module-bitbucket-server-provider@npm:0.1.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + passport: "npm:^0.7.0" + passport-oauth2: "npm:^1.6.1" + checksum: 10/0afba047259d98f56dd17c4c43497c458d51546004d8da1c3221b105d63fc64eb95b938ac69ae4f509ba513f332bc05a18fb23c41b941668941ae122b09334fb + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-cloudflare-access-provider@npm:^0.3.4": + version: 0.3.4 + resolution: "@backstage/plugin-auth-backend-module-cloudflare-access-provider@npm:0.3.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.18.2" + jose: "npm:^5.0.0" + checksum: 10/364daf365680da9afc176f087da0f9bd374f90c94d1945a2487c41638e324f9c75f04d8da639b6a5afd0b4f3ffb39bf85ffb1c6320437e9717d8f48544b2140c + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-gcp-iap-provider@npm:^0.3.4": + version: 0.3.4 + resolution: "@backstage/plugin-auth-backend-module-gcp-iap-provider@npm:0.3.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/types": "npm:^1.2.1" + google-auth-library: "npm:^9.0.0" + checksum: 10/bfb3c35df0e05a0bb9e1f4972c46952876db19b33f9664cfa296ec698fdc7b4c3849a211616f7da4f8464c265b3481b5e6df228600be5c1505a2a796e6c6c47d + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-github-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-github-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + passport-github2: "npm:^0.1.12" + checksum: 10/6117c295fce5c84cee208babb6d03348f9398b358cebb790789dc61ff569604dda317714e51eb833671df8e2936efc231226527ced7a7d746ca7ef3b6229b546 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-gitlab-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-gitlab-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.18.2" + passport: "npm:^0.7.0" + passport-gitlab2: "npm:^5.0.0" + checksum: 10/46cce9f49a128a801ba0587012a305f850734062f4e29306bdb58401b064654ad4004896f6ef4eecd3b51ec831884209bd5b9b03b4b552236d271a3662f63995 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-google-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-google-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + google-auth-library: "npm:^9.0.0" + passport-google-oauth20: "npm:^2.0.0" + checksum: 10/df8c17db1559490385fb4d0ef58b46aac268f971e4bfdcd9469c0cc408d592b422bc069dbc7cace75d1273d9fa3e3281546e261cd0d91225ee33de9a4758f01f + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-guest-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-guest-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + passport-oauth2: "npm:^1.7.0" + checksum: 10/21fdf0e35affe2a18ad33f5d050f837d8e1b2cb63385ba3b5fbcabfc6c2ea523bbe5fc72936cef134264c74bee38d1e3ff151615b7741f96551d1e11f287092b + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-microsoft-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-microsoft-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.18.2" + jose: "npm:^5.0.0" + passport-microsoft: "npm:^1.0.0" + checksum: 10/0b9bed0a15064591c49a7cc754916160e2234ffba1de00eaeb686d4dd5bb7a25a1656aeaac25c0e6a13072f5ebf78682002a84bf15719c570781e29b04514281 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-oauth2-provider@npm:^0.3.4": + version: 0.3.4 + resolution: "@backstage/plugin-auth-backend-module-oauth2-provider@npm:0.3.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + passport: "npm:^0.7.0" + passport-oauth2: "npm:^1.6.1" + checksum: 10/d47fd5fd0c62fbd0478b56a176668b10e52fd46ab5a7046a9c998caf2c84c0a68ab96f3d750e83dcbbb53e3f04b2b37a5b1fcf70b6d4ac17d07b7e2958c09c11 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-oauth2-proxy-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-oauth2-proxy-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + jose: "npm:^5.0.0" + checksum: 10/d0c76b70f7e8a41acf79cee51655ba157b4ef766a39098ac04a1755cc90f655aad2526b930b57dcba9bbafbc6d7ed3af993a0b057e5a36a088e6a48e7d5195e7 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-oidc-provider@npm:^0.3.4": + version: 0.3.4 + resolution: "@backstage/plugin-auth-backend-module-oidc-provider@npm:0.3.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-backend": "npm:^0.24.2" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.18.2" + openid-client: "npm:^5.5.0" + passport: "npm:^0.7.0" + checksum: 10/ea1e07243998d41369883058f0a9e24dff7e1f5a0c2630f4c4d1b7a91180109de2488688e42f11ade912c897ea021bc6c3d76de48644c0fd499fd6f1fb0db730 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-okta-provider@npm:^0.1.4": + version: 0.1.4 + resolution: "@backstage/plugin-auth-backend-module-okta-provider@npm:0.1.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@davidzemon/passport-okta-oauth": "npm:^0.0.5" + express: "npm:^4.18.2" + passport: "npm:^0.7.0" + checksum: 10/14152dec585c2abb85c712b4f63fb52310ac43e97e0e55669e46d35234abfd96907814aeb97dba326e9f61724c1746eb803944e6903552c5162c9a0dc75a273f + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend-module-onelogin-provider@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-auth-backend-module-onelogin-provider@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + express: "npm:^4.18.2" + passport: "npm:^0.7.0" + passport-onelogin-oauth: "npm:^0.0.1" + checksum: 10/020aef08f71d9309bd4b6ce8c8dbafb4f321b9090abc9d924e10677b2bc02608ee8e9a23e6a468721de8d1c7dcb8a6e08c4a859827dfbe8eb96c69a9e0505af9 + languageName: node + linkType: hard + +"@backstage/plugin-auth-backend@npm:^0.24.2": + version: 0.24.2 + resolution: "@backstage/plugin-auth-backend@npm:0.24.2" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-backend-module-atlassian-provider": "npm:^0.3.4" + "@backstage/plugin-auth-backend-module-auth0-provider": "npm:^0.1.4" + "@backstage/plugin-auth-backend-module-aws-alb-provider": "npm:^0.3.2" + "@backstage/plugin-auth-backend-module-azure-easyauth-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-bitbucket-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-bitbucket-server-provider": "npm:^0.1.4" + "@backstage/plugin-auth-backend-module-cloudflare-access-provider": "npm:^0.3.4" + "@backstage/plugin-auth-backend-module-gcp-iap-provider": "npm:^0.3.4" + "@backstage/plugin-auth-backend-module-github-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-gitlab-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-google-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-microsoft-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-oauth2-provider": "npm:^0.3.4" + "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-oidc-provider": "npm:^0.3.4" + "@backstage/plugin-auth-backend-module-okta-provider": "npm:^0.1.4" + "@backstage/plugin-auth-backend-module-onelogin-provider": "npm:^0.2.4" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/plugin-catalog-node": "npm:^1.15.1" + "@backstage/types": "npm:^1.2.1" + "@google-cloud/firestore": "npm:^7.0.0" + "@node-saml/passport-saml": "npm:^5.0.0" + "@types/express": "npm:^4.17.6" + "@types/passport": "npm:^1.0.3" + compression: "npm:^1.7.4" + connect-session-knex: "npm:^4.0.0" + cookie-parser: "npm:^1.4.5" + cors: "npm:^2.8.5" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + express-session: "npm:^1.17.1" + fs-extra: "npm:^11.2.0" + google-auth-library: "npm:^9.0.0" + jose: "npm:^5.0.0" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + minimatch: "npm:^9.0.0" + morgan: "npm:^1.10.0" + node-cache: "npm:^5.1.2" + openid-client: "npm:^5.2.1" + passport: "npm:^0.7.0" + passport-auth0: "npm:^1.4.3" + passport-github2: "npm:^0.1.12" + passport-google-oauth20: "npm:^2.0.0" + passport-microsoft: "npm:^1.0.0" + passport-oauth2: "npm:^1.6.1" + passport-onelogin-oauth: "npm:^0.0.1" + uuid: "npm:^11.0.0" + winston: "npm:^3.2.1" + yn: "npm:^4.0.0" + checksum: 10/3798985d9d9d003b9ea974abda5e7a48ed3d03ab7580702c23eb876d6a9b9acc1103ea6d706145e50d2b67da6932c1d11c231060e675b4acda48b6a8c4f77720 + languageName: node + linkType: hard + +"@backstage/plugin-auth-node@npm:^0.5.2, @backstage/plugin-auth-node@npm:^0.5.5, @backstage/plugin-auth-node@npm:^0.5.6": + version: 0.5.6 + resolution: "@backstage/plugin-auth-node@npm:0.5.6" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + "@types/express": "npm:^4.17.6" + "@types/passport": "npm:^1.0.3" + express: "npm:^4.17.1" + jose: "npm:^5.0.0" + lodash: "npm:^4.17.21" + passport: "npm:^0.7.0" + winston: "npm:^3.2.1" + zod: "npm:^3.22.4" + zod-to-json-schema: "npm:^3.21.4" + zod-validation-error: "npm:^3.4.0" + checksum: 10/b286fcf7b8a274697a649567c4f96f9816f46b8a28729087e8338525a2a1d276e6960588313f4d60ae5711a9f9ca12b1ba49370f7496181f16fc80b2b629f31a + languageName: node + linkType: hard + +"@backstage/plugin-auth-react@npm:^0.1.11": + version: 0.1.11 + resolution: "@backstage/plugin-auth-react@npm:0.1.11" + dependencies: + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@material-ui/core": "npm:^4.9.13" + "@react-hookz/web": "npm:^24.0.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/8a25d171a5d14846b4f0a8815b64651277e434bd27318b2299e079579ed3035368733924533885f9d281cfc9c9fe2511ceab5f6892b21432a2681eab0424bedb + languageName: node + linkType: hard + +"@backstage/plugin-catalog-backend@npm:^1.30.0": + version: 1.30.0 + resolution: "@backstage/plugin-catalog-backend@npm:1.30.0" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-openapi-utils": "npm:^0.4.1" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/integration": "npm:^1.16.1" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-node": "npm:^1.15.1" + "@backstage/plugin-events-node": "npm:^0.4.7" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-permission-node": "npm:^0.8.7" + "@backstage/plugin-search-backend-module-catalog": "npm:^0.3.0" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@backstage/types": "npm:^1.2.1" + "@opentelemetry/api": "npm:^1.9.0" + "@types/express": "npm:^4.17.6" + codeowners-utils: "npm:^1.0.2" + core-js: "npm:^3.6.5" + express: "npm:^4.17.1" + fast-json-stable-stringify: "npm:^2.1.0" + fs-extra: "npm:^11.2.0" + git-url-parse: "npm:^15.0.0" + glob: "npm:^7.1.6" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + minimatch: "npm:^9.0.0" + p-limit: "npm:^3.0.2" + prom-client: "npm:^15.0.0" + uuid: "npm:^11.0.0" + yaml: "npm:^2.0.0" + yn: "npm:^4.0.0" + zod: "npm:^3.22.4" + checksum: 10/651e965598b8671173c7ea753a74f23925908d9a93f7640e53f9430132775faa4c93465ff6a75a8a91e0324d9d175b895687a9b9d432fc04b412ebfffe479c40 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-common@npm:^1.1.3": + version: 1.1.3 + resolution: "@backstage/plugin-catalog-common@npm:1.1.3" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-search-common": "npm:^1.2.17" + checksum: 10/60c0624603576bcf12bf99e6ac1c921e0847ad72f8ac89ed4315b88f128b738e00eab8c6fc1da6e9830dac93b9b0acd2e3cb1ee21667c48a98ac7b79b546a560 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-graph@npm:^0.4.15": + version: 0.4.15 + resolution: "@backstage/plugin-catalog-graph@npm:0.4.15" + dependencies: + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/types": "npm:^1.2.1" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + classnames: "npm:^2.3.1" + lodash: "npm:^4.17.15" + p-limit: "npm:^3.1.0" + qs: "npm:^6.9.4" + react-use: "npm:^17.2.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/1665c05d5a4823cbe30d8b6cbb9bf648d782c3e44c438b875aa3aa66dcec3bdd693d75d17d05fefd282c1f80ea5bfc9872210b4e773349c46c9669294745dbf7 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-import@npm:^0.12.9": + version: 0.12.9 + resolution: "@backstage/plugin-catalog-import@npm:0.12.9" + dependencies: + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/integration": "npm:^1.16.1" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@octokit/rest": "npm:^19.0.3" + git-url-parse: "npm:^15.0.0" + js-base64: "npm:^3.6.0" + lodash: "npm:^4.17.21" + react-hook-form: "npm:^7.12.2" + react-use: "npm:^17.2.4" + yaml: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/95f5c853dc2585ddeb25fd7f92dd722328f6723b7935b655a3f4b211c1d254e8842aadbaedb330e50885321ad19b7baef4cd950d4c0f3646de1be71bf838e424 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-node@npm:^1.15.1": + version: 1.15.1 + resolution: "@backstage/plugin-catalog-node@npm:1.15.1" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-permission-node": "npm:^0.8.7" + "@backstage/types": "npm:^1.2.1" + checksum: 10/4f366df596c57a68c610e0c462d32f781166aa3381b8ed6deec8ae91687ce968ddb0f62f0c88b2995ccfc7cabd031cacf3e2129b26d035ff5e271937ee9c7405 + languageName: node + linkType: hard + +"@backstage/plugin-catalog-react@npm:^1.14.0, @backstage/plugin-catalog-react@npm:^1.15.0, @backstage/plugin-catalog-react@npm:^1.15.1": + version: 1.15.1 + resolution: "@backstage/plugin-catalog-react@npm:1.15.1" + dependencies: + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/frontend-test-utils": "npm:^0.2.5" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + classnames: "npm:^2.2.6" + lodash: "npm:^4.17.21" + material-ui-popup-state: "npm:^1.9.3" + qs: "npm:^6.9.4" + react-use: "npm:^17.2.4" + yaml: "npm:^2.0.0" + zen-observable: "npm:^0.10.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/dd554fc6618eaba9c201633eb7fbab63ba8b23013bbd8c05cfa1ea6150324593222aa0c50acec1f22902c2e5387cb57dc774fd115748b693e64075d66923da8a + languageName: node + linkType: hard + +"@backstage/plugin-catalog@npm:^1.26.1": + version: 1.26.1 + resolution: "@backstage/plugin-catalog@npm:1.26.1" + dependencies: + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/plugin-scaffolder-common": "npm:^1.5.9" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@backstage/plugin-search-react": "npm:^1.8.5" + "@backstage/types": "npm:^1.2.1" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@mui/utils": "npm:^5.14.15" + dataloader: "npm:^2.0.0" + expiry-map: "npm:^2.0.0" + history: "npm:^5.0.0" + lodash: "npm:^4.17.21" + pluralize: "npm:^8.0.0" + react-use: "npm:^17.2.4" + zen-observable: "npm:^0.10.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/e2aae53f689e1796dec038f89ab7042367f7c556fc5741ab35e147c8445af6bb91598114c1d8e6f024d06d1b01081284654ac971f6bc12d4cc12e3aa35a5f778 + languageName: node + linkType: hard + +"@backstage/plugin-events-node@npm:^0.4.6, @backstage/plugin-events-node@npm:^0.4.7": + version: 0.4.7 + resolution: "@backstage/plugin-events-node@npm:0.4.7" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + cross-fetch: "npm:^4.0.0" + uri-template: "npm:^2.0.0" + checksum: 10/12b5ad82c37cb17dd11554cb42e53d90e89a280adca5a0b5691fffbbfc6b1ce6f6e4edc921fca0f16491235ddb91dc9f4b6a7515a40824a0a28544128f9a1a0a + languageName: node + linkType: hard + +"@backstage/plugin-org@npm:^0.6.35": + version: 0.6.35 + resolution: "@backstage/plugin-org@npm:0.6.35" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + lodash: "npm:^4.17.21" + p-limit: "npm:^3.1.0" + pluralize: "npm:^8.0.0" + qs: "npm:^6.10.1" + react-use: "npm:^17.2.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/66cc75978f85153317e5d296853cb3c99ed9735f367d5a9288649916a0cefb21a9d27add8d425f1b48041a8bf6bcbb0da8134f89389cc7a9bb7b287e714c6bc2 + languageName: node + linkType: hard + +"@backstage/plugin-permission-backend-module-allow-all-policy@npm:^0.2.4": + version: 0.2.4 + resolution: "@backstage/plugin-permission-backend-module-allow-all-policy@npm:0.2.4" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-permission-node": "npm:^0.8.7" + checksum: 10/49e459aec344c0530c6ab36bdef1af6c3de02b6c75eb82fd9c01057e385d93c8c0520a1dbb93333a7b4e07ce6ae61410ea4e00836efc85758c8c567f2c0e8e0f + languageName: node + linkType: hard + +"@backstage/plugin-permission-backend@npm:^0.5.53": + version: 0.5.53 + resolution: "@backstage/plugin-permission-backend@npm:0.5.53" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-permission-node": "npm:^0.8.7" + "@types/express": "npm:^4.17.6" + dataloader: "npm:^2.0.0" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + lodash: "npm:^4.17.21" + yn: "npm:^4.0.0" + zod: "npm:^3.22.4" + checksum: 10/3b88568709faf267352767811aa278b59cfdfb3953e52a6a6a32a0718f82eb7e2c6c4e52140ba95966b0d63ac273a529b7ab286f7851da7c26f61250152101c4 + languageName: node + linkType: hard + +"@backstage/plugin-permission-common@npm:^0.8.3, @backstage/plugin-permission-common@npm:^0.8.4": + version: 0.8.4 + resolution: "@backstage/plugin-permission-common@npm:0.8.4" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/types": "npm:^1.2.1" + cross-fetch: "npm:^4.0.0" + uuid: "npm:^11.0.0" + zod: "npm:^3.22.4" + zod-to-json-schema: "npm:^3.20.4" + checksum: 10/c850ff17d4f97a77064a296a3b53b112906f7483e72d6e48008b17846d3fa2578ce532722844f1761eb81687155f7f58634fd6ea22313733174903fda90860be + languageName: node + linkType: hard + +"@backstage/plugin-permission-node@npm:^0.8.6, @backstage/plugin-permission-node@npm:^0.8.7": + version: 0.8.7 + resolution: "@backstage/plugin-permission-node@npm:0.8.7" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@types/express": "npm:^4.17.6" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + zod: "npm:^3.22.4" + zod-to-json-schema: "npm:^3.20.4" + checksum: 10/73599df9382c62c00acfd48536bc0546c001100526dd3a4e6f1b1d94e2b4af4cfd67ef92880567320a68eac4f5854022a642309ffe3ba517b34599e8ebf81ce0 + languageName: node + linkType: hard + +"@backstage/plugin-permission-react@npm:^0.4.30": + version: 0.4.30 + resolution: "@backstage/plugin-permission-react@npm:0.4.30" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/plugin-permission-common": "npm:^0.8.4" + swr: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/88cf515287860dda7d37f4ac261577f514d07402f08af0d122fd288d770a38a2f6284ad7388ea47269c14129c162a0fc0917fdd54285c16eb99f47667e492313 + languageName: node + linkType: hard + +"@backstage/plugin-proxy-backend@npm:^0.5.10": + version: 0.5.10 + resolution: "@backstage/plugin-proxy-backend@npm:0.5.10" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/config": "npm:^1.3.2" + "@backstage/plugin-proxy-node": "npm:^0.1.0" + "@backstage/types": "npm:^1.2.1" + "@types/express": "npm:^4.17.6" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + http-proxy-middleware: "npm:^2.0.0" + morgan: "npm:^1.10.0" + uuid: "npm:^11.0.0" + winston: "npm:^3.2.1" + yaml: "npm:^2.0.0" + yn: "npm:^4.0.0" + yup: "npm:^1.0.0" + checksum: 10/2c95f6f2c74dc61c621734b436e8bb54e6dba57d38ffdf0548255a79c2701ae97c4c757326c882b5fb04e7205f907582f999b9528bfa636143ccfeaf2586a0d0 + languageName: node + linkType: hard + +"@backstage/plugin-proxy-node@npm:^0.1.0": + version: 0.1.0 + resolution: "@backstage/plugin-proxy-node@npm:0.1.0" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + http-proxy-middleware: "npm:^2.0.0" + checksum: 10/3a6f5ae79639ac29c7c6369cb17eeb05c5d7b42fd06bcc77a6f8156bd524455a4af25054138be3469f43968922517ffa6630bb1f67f572a726ac73d5fe764f22 + languageName: node + linkType: hard + +"@backstage/plugin-scaffolder-common@npm:^1.5.9": + version: 1.5.9 + resolution: "@backstage/plugin-scaffolder-common@npm:1.5.9" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/types": "npm:^1.2.1" + checksum: 10/ffea008b5ff6e6aad2c7e022eff5670a4b7ad3cee61fcd1351ba270e034b62cb5ed10d2f6263f83c6ae5fde335b9325c9ad84f92ae4709ed04cf2e269aac6810 + languageName: node + linkType: hard + +"@backstage/plugin-scaffolder-react@npm:^1.14.3": + version: 1.14.3 + resolution: "@backstage/plugin-scaffolder-react@npm:1.14.3" + dependencies: + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/plugin-scaffolder-common": "npm:^1.5.9" + "@backstage/theme": "npm:^0.6.3" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@react-hookz/web": "npm:^24.0.0" + "@rjsf/core": "npm:5.23.2" + "@rjsf/material-ui": "npm:5.23.2" + "@rjsf/utils": "npm:5.23.2" + "@rjsf/validator-ajv8": "npm:5.23.2" + "@types/json-schema": "npm:^7.0.9" + ajv-errors: "npm:^3.0.0" + classnames: "npm:^2.2.6" + flatted: "npm:3.3.2" + humanize-duration: "npm:^3.25.1" + json-schema: "npm:^0.4.0" + json-schema-library: "npm:^9.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + qs: "npm:^6.9.4" + react-use: "npm:^17.2.4" + use-immer: "npm:^0.10.0" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.22.4" + zod-to-json-schema: "npm:^3.20.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/3fca3000ee02884fbdd5d22841215d24397ad8406d6d646313ef812ef952078a38dad70eacdf0c910a28922b5733c8b9d902f18c41fd805b3d5fc0a801da0a99 + languageName: node + linkType: hard + +"@backstage/plugin-scaffolder@npm:^1.27.4": + version: 1.27.4 + resolution: "@backstage/plugin-scaffolder@npm:1.27.4" + dependencies: + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/integration": "npm:^1.16.1" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/plugin-scaffolder-common": "npm:^1.5.9" + "@backstage/plugin-scaffolder-react": "npm:^1.14.3" + "@backstage/types": "npm:^1.2.1" + "@codemirror/language": "npm:^6.0.0" + "@codemirror/legacy-modes": "npm:^6.1.0" + "@codemirror/view": "npm:^6.0.0" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@microsoft/fetch-event-source": "npm:^2.0.1" + "@react-hookz/web": "npm:^24.0.0" + "@rjsf/core": "npm:5.23.2" + "@rjsf/material-ui": "npm:5.23.2" + "@rjsf/utils": "npm:5.23.2" + "@rjsf/validator-ajv8": "npm:5.23.2" + "@uiw/react-codemirror": "npm:^4.9.3" + classnames: "npm:^2.2.6" + git-url-parse: "npm:^15.0.0" + humanize-duration: "npm:^3.25.1" + idb-keyval: "npm:5.1.5" + json-schema: "npm:^0.4.0" + json-schema-library: "npm:^9.0.0" + jszip: "npm:^3.10.1" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + qs: "npm:^6.9.4" + react-resizable: "npm:^3.0.5" + react-use: "npm:^17.2.4" + react-window: "npm:^1.8.10" + yaml: "npm:^2.0.0" + zen-observable: "npm:^0.10.0" + zod: "npm:^3.22.4" + zod-to-json-schema: "npm:^3.20.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/3f86cd22b8c0075a29e98c91507b9e17a2d4ec14bad1c4d5d40bb7943b22b2afa69d86c6348789a71e77369dfbbd0d6d4bfb7085e051e5752db3a79f92effeae + languageName: node + linkType: hard + +"@backstage/plugin-search-backend-module-catalog@npm:^0.3.0": + version: 0.3.0 + resolution: "@backstage/plugin-search-backend-module-catalog@npm:0.3.0" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-node": "npm:^1.15.1" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-search-backend-node": "npm:^1.3.7" + "@backstage/plugin-search-common": "npm:^1.2.17" + checksum: 10/ef67a467b9e651df65ef42d9a9824a164f547d424752bddb5644ae57fc7d4a0e9717e497eb8dae29497186f14d58b4da43cb8b1903d02887b70a74da859ef19e + languageName: node + linkType: hard + +"@backstage/plugin-search-backend-module-techdocs@npm:^0.3.5": + version: 0.3.5 + resolution: "@backstage/plugin-search-backend-module-techdocs@npm:0.3.5" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-node": "npm:^1.15.1" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-search-backend-node": "npm:^1.3.7" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@backstage/plugin-techdocs-node": "npm:^1.12.16" + lodash: "npm:^4.17.21" + p-limit: "npm:^3.1.0" + checksum: 10/6babc7768d35aa0f07a8a9e4beedd463b6892a7d322d560076279e6ab12fef39ae3f3f84a5720ee3f3e4514a798e75ee7d7c062b32f0bf612a71334344589af5 + languageName: node + linkType: hard + +"@backstage/plugin-search-backend-node@npm:^1.3.6, @backstage/plugin-search-backend-node@npm:^1.3.7": + version: 1.3.7 + resolution: "@backstage/plugin-search-backend-node@npm:1.3.7" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@types/lunr": "npm:^2.3.3" + lodash: "npm:^4.17.21" + lunr: "npm:^2.3.9" + ndjson: "npm:^2.0.0" + uuid: "npm:^11.0.0" + checksum: 10/332df111d864e93dc9bab90a6e62443fed566bdb74ee0539e6c3079294e77cb7c6986e78db2569a63c38b16ca20b587adddcf3b78d2b9690740832a3514a6517 + languageName: node + linkType: hard + +"@backstage/plugin-search-backend@npm:^1.8.0": + version: 1.8.0 + resolution: "@backstage/plugin-search-backend@npm:1.8.0" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-defaults": "npm:^0.6.0" + "@backstage/backend-openapi-utils": "npm:^0.4.0" + "@backstage/backend-plugin-api": "npm:^1.1.0" + "@backstage/config": "npm:^1.3.1" + "@backstage/errors": "npm:^1.2.6" + "@backstage/plugin-permission-common": "npm:^0.8.3" + "@backstage/plugin-permission-node": "npm:^0.8.6" + "@backstage/plugin-search-backend-node": "npm:^1.3.6" + "@backstage/plugin-search-common": "npm:^1.2.16" + "@backstage/types": "npm:^1.2.0" + "@types/express": "npm:^4.17.6" + dataloader: "npm:^2.0.0" + express: "npm:^4.17.1" + lodash: "npm:^4.17.21" + qs: "npm:^6.10.1" + yn: "npm:^4.0.0" + zod: "npm:^3.22.4" + checksum: 10/b1511e0c546e801a38d971a2e0d2ad852a48879d333af44efe95d0ef67f29b303ff2e17ac5a2ca08bc24b91c4715cbd5e7b5f3e816d30c47eb876110284fc9d2 + languageName: node + linkType: hard + +"@backstage/plugin-search-common@npm:^1.2.16, @backstage/plugin-search-common@npm:^1.2.17": + version: 1.2.17 + resolution: "@backstage/plugin-search-common@npm:1.2.17" + dependencies: + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/types": "npm:^1.2.1" + checksum: 10/30cfcb164940b7eb70d8163766cca981536372d0cb5c6e006837e044d91a60be16b83534a2887b0a7cf90a51bed35cd7b188e62598e7340cbf79e371a8bfd0e6 + languageName: node + linkType: hard + +"@backstage/plugin-search-react@npm:^1.8.5": + version: 1.8.5 + resolution: "@backstage/plugin-search-react@npm:1.8.5" + dependencies: + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@backstage/theme": "npm:^0.6.3" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + lodash: "npm:^4.17.21" + qs: "npm:^6.9.4" + react-use: "npm:^17.3.2" + uuid: "npm:^11.0.2" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/c1c853af7ee41b6a70427b536354ab7fcb7e88a68bc5ffa37e18001644ad0eac007186214a392d9621e92e6d3e57cae9731d310b016bc5b054087a209653f11b + languageName: node + linkType: hard + +"@backstage/plugin-search@npm:^1.4.22": + version: 1.4.22 + resolution: "@backstage/plugin-search@npm:1.4.22" + dependencies: + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@backstage/plugin-search-react": "npm:^1.8.5" + "@backstage/types": "npm:^1.2.1" + "@backstage/version-bridge": "npm:^1.0.10" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + qs: "npm:^6.9.4" + react-use: "npm:^17.2.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/2ddfc68d5ae789c70115145ce5cd9719e34175821d26632360c2b1fb7c1fe83d8a3fc03e49df47cf8278e8a2c255951392bee488de4ecabf869057fa9c035017 + languageName: node + linkType: hard + +"@backstage/plugin-signals-react@npm:^0.0.9": + version: 0.0.9 + resolution: "@backstage/plugin-signals-react@npm:0.0.9" + dependencies: + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/types": "npm:^1.2.1" + "@material-ui/core": "npm:^4.12.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/6db8da18684a992cfaf83697ee94c55dbf7076db0bafb7087e598a392e7c27fb73bfd403c2fac75d9b1ab9a44e2d60f9691122dc0a0a5c1ac9f5f054c0f55f9c + languageName: node + linkType: hard + +"@backstage/plugin-techdocs-backend@npm:^1.11.5": + version: 1.11.5 + resolution: "@backstage/plugin-techdocs-backend@npm:1.11.5" + dependencies: + "@backstage/backend-common": "npm:^0.25.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/integration": "npm:^1.16.1" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-node": "npm:^1.15.1" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-search-backend-module-techdocs": "npm:^0.3.5" + "@backstage/plugin-techdocs-common": "npm:^0.1.0" + "@backstage/plugin-techdocs-node": "npm:^1.12.16" + "@types/express": "npm:^4.17.6" + express: "npm:^4.17.1" + express-promise-router: "npm:^4.1.0" + fs-extra: "npm:^11.2.0" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + p-limit: "npm:^3.1.0" + winston: "npm:^3.2.1" + checksum: 10/e4e5cbe2575ba8088799833eff32fa1a05c033a4629bac5453738e532f01a526a7b4615ea405abc6495526e70078f6d073f61b8b8ff654f73111b755a449b8bd + languageName: node + linkType: hard + +"@backstage/plugin-techdocs-common@npm:^0.1.0": + version: 0.1.0 + resolution: "@backstage/plugin-techdocs-common@npm:0.1.0" + checksum: 10/e38752e54cd4d516e6ab4908dca16cad7863ecd8c81cf4f0d52a4dbe159c3a2080788f3941395b45011dd47d72930236cd44567a5c7a39efb9a3a037df1b2cba + languageName: node + linkType: hard + +"@backstage/plugin-techdocs-module-addons-contrib@npm:^1.1.20": + version: 1.1.20 + resolution: "@backstage/plugin-techdocs-module-addons-contrib@npm:1.1.20" + dependencies: + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/integration": "npm:^1.16.1" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-techdocs-react": "npm:^1.2.13" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@react-hookz/web": "npm:^24.0.0" + git-url-parse: "npm:^15.0.0" + photoswipe: "npm:^5.3.7" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/d0ce54866c6509629fb21d4629480f7cfae4405afaf2e1e715c9c53e07c71274537c93aa5c427cd806ba327eb75e2e7ffa803b98df00a944d9517fde3a17dbef + languageName: node + linkType: hard + +"@backstage/plugin-techdocs-node@npm:^1.12.16": + version: 1.12.16 + resolution: "@backstage/plugin-techdocs-node@npm:1.12.16" + dependencies: + "@aws-sdk/client-s3": "npm:^3.350.0" + "@aws-sdk/credential-providers": "npm:^3.350.0" + "@aws-sdk/lib-storage": "npm:^3.350.0" + "@aws-sdk/types": "npm:^3.347.0" + "@azure/identity": "npm:^4.0.0" + "@azure/storage-blob": "npm:^12.5.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/errors": "npm:^1.2.7" + "@backstage/integration": "npm:^1.16.1" + "@backstage/integration-aws-node": "npm:^0.1.15" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@backstage/plugin-techdocs-common": "npm:^0.1.0" + "@google-cloud/storage": "npm:^7.0.0" + "@smithy/node-http-handler": "npm:^3.0.0" + "@trendyol-js/openstack-swift-sdk": "npm:^0.0.7" + "@types/express": "npm:^4.17.6" + dockerode: "npm:^4.0.0" + express: "npm:^4.17.1" + fs-extra: "npm:^11.2.0" + git-url-parse: "npm:^15.0.0" + hpagent: "npm:^1.2.0" + js-yaml: "npm:^4.0.0" + json5: "npm:^2.1.3" + mime-types: "npm:^2.1.27" + p-limit: "npm:^3.1.0" + recursive-readdir: "npm:^2.2.2" + winston: "npm:^3.2.1" + checksum: 10/547c1457f08f185f82cd0367b2f0ecb14d576fd5e06e24e609080b9895c081d323da61bfb7ac9971a26d6d915f0ff5faf8e26a1d15e7603079a8c2a53ef29990 + languageName: node + linkType: hard + +"@backstage/plugin-techdocs-react@npm:^1.2.13": + version: 1.2.13 + resolution: "@backstage/plugin-techdocs-react@npm:1.2.13" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/version-bridge": "npm:^1.0.10" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/styles": "npm:^4.11.0" + jss: "npm:~10.10.0" + lodash: "npm:^4.17.21" + react-helmet: "npm:6.1.0" + react-use: "npm:^17.2.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/5f3d3d9cd9ca0570e2de857ae5c226e88e673670bb2ab517262183e19f8ac0b661b4df81b7ea32322357bef400fa45703cf37e102d5f9847404f9c230d2b3323 + languageName: node + linkType: hard + +"@backstage/plugin-techdocs@npm:^1.12.1": + version: 1.12.1 + resolution: "@backstage/plugin-techdocs@npm:1.12.1" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/config": "npm:^1.3.2" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/integration": "npm:^1.16.1" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-auth-react": "npm:^0.1.11" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-search-common": "npm:^1.2.17" + "@backstage/plugin-search-react": "npm:^1.8.5" + "@backstage/plugin-techdocs-common": "npm:^0.1.0" + "@backstage/plugin-techdocs-react": "npm:^1.2.13" + "@backstage/theme": "npm:^0.6.3" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + "@material-ui/styles": "npm:^4.10.0" + "@microsoft/fetch-event-source": "npm:^2.0.1" + dompurify: "npm:^3.0.0" + git-url-parse: "npm:^15.0.0" + jss: "npm:~10.10.0" + lodash: "npm:^4.17.21" + react-helmet: "npm:6.1.0" + react-use: "npm:^17.2.4" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/e57fb6df39d9f53f8ee9b0ff9c95151e198b36e2de9e7f4dcf2ffc38474767ed8fc8534a8f7db1f0df9967780434cd541c47fe812d4f5228a9a8021b0b1d7d3b + languageName: node + linkType: hard + +"@backstage/plugin-user-settings-common@npm:^0.0.1": + version: 0.0.1 + resolution: "@backstage/plugin-user-settings-common@npm:0.0.1" + checksum: 10/7039a028542e03a94ee859c759f5e3759fb3d7545cf1276c15c976eeee9fd7a719012e49c6c6e7ddc942e52fdfcc1daafd721050a1d159c5bd6eda5d93e8d77a + languageName: node + linkType: hard + +"@backstage/plugin-user-settings@npm:^0.8.18": + version: 0.8.18 + resolution: "@backstage/plugin-user-settings@npm:0.8.18" + dependencies: + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/core-app-api": "npm:^1.15.4" + "@backstage/core-compat-api": "npm:^0.3.5" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/errors": "npm:^1.2.7" + "@backstage/frontend-plugin-api": "npm:^0.9.4" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-signals-react": "npm:^0.0.9" + "@backstage/plugin-user-settings-common": "npm:^0.0.1" + "@backstage/theme": "npm:^0.6.3" + "@backstage/types": "npm:^1.2.1" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@material-ui/lab": "npm:4.0.0-alpha.61" + react-use: "npm:^17.2.4" + zen-observable: "npm:^0.10.0" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/1a3b2ef5c8b943d70212bb7a6d7cfe0c0cecb81388de78a642e288b08aad5fa9f83314dec830d2fd84b4cb5b0057c72f24568c678bae9c138bb34e9998f9b4ce + languageName: node + linkType: hard + +"@backstage/release-manifests@npm:^0.0.12": + version: 0.0.12 + resolution: "@backstage/release-manifests@npm:0.0.12" + checksum: 10/482108faf39bd4095dfda34d00007065bff54a5aff836ef7c935a7a583baa6ae9d25e9d0c58a419e4d7d65eeb4f50357da47ab4d9cbd2d79da331fa426f64a3c + languageName: node + linkType: hard + +"@backstage/repo-tools@npm:^0.12.1": + version: 0.12.1 + resolution: "@backstage/repo-tools@npm:0.12.1" + dependencies: + "@apidevtools/swagger-parser": "npm:^10.1.0" + "@apisyouwonthate/style-guide": "npm:^1.4.0" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/cli-common": "npm:^0.1.15" + "@backstage/cli-node": "npm:^0.2.12" + "@backstage/config-loader": "npm:^1.9.5" + "@backstage/errors": "npm:^1.2.7" + "@manypkg/get-packages": "npm:^1.1.3" + "@microsoft/api-documenter": "npm:^7.25.7" + "@microsoft/api-extractor": "npm:^7.47.2" + "@openapitools/openapi-generator-cli": "npm:^2.7.0" + "@stoplight/spectral-core": "npm:^1.18.0" + "@stoplight/spectral-formatters": "npm:^1.1.0" + "@stoplight/spectral-functions": "npm:^1.7.2" + "@stoplight/spectral-parsers": "npm:^1.0.2" + "@stoplight/spectral-rulesets": "npm:^1.18.0" + "@stoplight/spectral-runtime": "npm:^1.1.2" + "@stoplight/types": "npm:^14.0.0" + "@useoptic/openapi-utilities": "npm:^0.55.0" + chalk: "npm:^4.0.0" + chokidar: "npm:^3.5.3" + codeowners-utils: "npm:^1.0.2" + command-exists: "npm:^1.2.9" + commander: "npm:^12.0.0" + fs-extra: "npm:^11.2.0" + glob: "npm:^8.0.3" + is-glob: "npm:^4.0.3" + js-yaml: "npm:^4.1.0" + lodash: "npm:^4.17.21" + minimatch: "npm:^9.0.0" + p-limit: "npm:^3.0.2" + portfinder: "npm:^1.0.32" + tar: "npm:^6.1.12" + ts-morph: "npm:^24.0.0" + yaml-diff-patch: "npm:^2.0.0" + peerDependencies: + "@microsoft/api-extractor-model": "*" + "@microsoft/tsdoc": "*" + "@microsoft/tsdoc-config": "*" + "@useoptic/optic": ^1.0.0 + prettier: ^2.8.1 + typescript: "> 3.0.0" + peerDependenciesMeta: + prettier: + optional: true + bin: + backstage-repo-tools: bin/backstage-repo-tools + checksum: 10/a4f77ae81f572163caee8ef35dc42603e520e44f5f081c26924ef0a7e3ecf77adb955d1ff6e3a48a9c9c4f390223d25ef046922fe06c931146fd35c54f1d3a85 + languageName: node + linkType: hard + +"@backstage/test-utils@npm:^1.7.4": + version: 1.7.4 + resolution: "@backstage/test-utils@npm:1.7.4" + dependencies: + "@backstage/config": "npm:^1.3.2" + "@backstage/core-app-api": "npm:^1.15.4" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/theme": "npm:^0.6.3" + "@backstage/types": "npm:^1.2.1" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + cross-fetch: "npm:^4.0.0" + i18next: "npm:^22.4.15" + zen-observable: "npm:^0.10.0" + peerDependencies: + "@testing-library/react": ^16.0.0 + "@types/jest": "*" + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/jest": + optional: true + "@types/react": + optional: true + checksum: 10/593f7bdb314b710e0459c1d9893f6848b08052813042c2fb421c2b817b47873e86ce205afe930ece11874f1d51cf865eca82223494f8bcf71a6159743af37215 + languageName: node + linkType: hard + +"@backstage/theme@npm:^0.6.0, @backstage/theme@npm:^0.6.3": + version: 0.6.3 + resolution: "@backstage/theme@npm:0.6.3" + dependencies: + "@emotion/react": "npm:^11.10.5" + "@emotion/styled": "npm:^11.10.5" + "@mui/material": "npm:^5.12.2" + peerDependencies: + "@material-ui/core": ^4.12.2 + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/f66605244aed7fba746ca38765276a375d5530557823cfc9d2c6d726d5c24b52ecf36189845c12ee078732fcd35153bb214e80393408654340ccc467fc5356d8 + languageName: node + linkType: hard + +"@backstage/types@npm:^1.1.1, @backstage/types@npm:^1.2.0, @backstage/types@npm:^1.2.1": + version: 1.2.1 + resolution: "@backstage/types@npm:1.2.1" + checksum: 10/e3e65835b9db31d3f697e2d62fbcf52a3a6373e9f75fa8429e61f0a455880d4c32cdf996b22e85165e1a5b108604267281624befebcf9ae692c8844675925f14 + languageName: node + linkType: hard + +"@backstage/version-bridge@npm:^1.0.10": + version: 1.0.10 + resolution: "@backstage/version-bridge@npm:1.0.10" + peerDependencies: + "@types/react": ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-router-dom: 6.0.0-beta.0 || ^6.3.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/781be5b23cf8a1dc12651e1ef82a65d0d608aa9ffc735087760455aa43a16a07a63712e17f280e6d742acde8bc547e330a955c7016db00adde7d600b3761c47d + languageName: node + linkType: hard + +"@balena/dockerignore@npm:^1.0.2": + version: 1.0.2 + resolution: "@balena/dockerignore@npm:1.0.2" + checksum: 10/13d654fdd725008577d32e721c720275bdc48f72bce612326363d5bed449febbed856c517a0b23c7c40d87cb531e63432804550b4ecc13e365d26fee38fb6c8a + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 10/1a1f0e356a3bb30b5f1ced6f79c413e6ebacf130421f15fac5fcd8be5ddf98aedb4404d7f5624e3285b700e041f9ef938321f3ca4d359d5b716f96afa120d88d + languageName: node + linkType: hard + +"@braintree/sanitize-url@npm:=7.0.4": + version: 7.0.4 + resolution: "@braintree/sanitize-url@npm:7.0.4" + checksum: 10/80ea0080776a0305d697d12042acac287675e88a2abd9d294464f70ec57c1b00242d8d02a110c98ef8ea1731e512d67273ff5532c4bf01a78ab8b046fabb53d9 + languageName: node + linkType: hard + +"@changesets/apply-release-plan@npm:^7.0.7": + version: 7.0.7 + resolution: "@changesets/apply-release-plan@npm:7.0.7" + dependencies: + "@changesets/config": "npm:^3.0.5" + "@changesets/get-version-range-type": "npm:^0.4.0" + "@changesets/git": "npm:^3.0.2" + "@changesets/should-skip-package": "npm:^0.1.1" + "@changesets/types": "npm:^6.0.0" + "@manypkg/get-packages": "npm:^1.1.3" + detect-indent: "npm:^6.0.0" + fs-extra: "npm:^7.0.1" + lodash.startcase: "npm:^4.4.0" + outdent: "npm:^0.5.0" + prettier: "npm:^2.7.1" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.5.3" + checksum: 10/665490b0739075c50f037ae2bd4e8f7ea2c8815c120cafe91f56f15057f1e0a6f9088dc99e5e249e9c70502f072c8b93fca9f4f7173b9843c2e13a62b5931129 + languageName: node + linkType: hard + +"@changesets/assemble-release-plan@npm:^6.0.5": + version: 6.0.5 + resolution: "@changesets/assemble-release-plan@npm:6.0.5" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.2" + "@changesets/should-skip-package": "npm:^0.1.1" + "@changesets/types": "npm:^6.0.0" + "@manypkg/get-packages": "npm:^1.1.3" + semver: "npm:^7.5.3" + checksum: 10/0de3edde14ec1b61d767be5186d4e24e2330291b1e5e8b8c6fd4bda0b8d5d967cefd2c7e7ea790e4bce12920ffb32c6ab9eb74e82bf5f762c20428b321050175 + languageName: node + linkType: hard + +"@changesets/changelog-git@npm:^0.2.0": + version: 0.2.0 + resolution: "@changesets/changelog-git@npm:0.2.0" + dependencies: + "@changesets/types": "npm:^6.0.0" + checksum: 10/631fcb73cab584fefad30f0e7cc8f7624b36be0f199e526c0d53538da16df2776bef8f8eb6511247b8040d011a2582bdb4840275d3f90a046bacbbd717da6c83 + languageName: node + linkType: hard + +"@changesets/cli@npm:^2.27.1": + version: 2.27.11 + resolution: "@changesets/cli@npm:2.27.11" + dependencies: + "@changesets/apply-release-plan": "npm:^7.0.7" + "@changesets/assemble-release-plan": "npm:^6.0.5" + "@changesets/changelog-git": "npm:^0.2.0" + "@changesets/config": "npm:^3.0.5" + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.2" + "@changesets/get-release-plan": "npm:^4.0.6" + "@changesets/git": "npm:^3.0.2" + "@changesets/logger": "npm:^0.1.1" + "@changesets/pre": "npm:^2.0.1" + "@changesets/read": "npm:^0.6.2" + "@changesets/should-skip-package": "npm:^0.1.1" + "@changesets/types": "npm:^6.0.0" + "@changesets/write": "npm:^0.3.2" + "@manypkg/get-packages": "npm:^1.1.3" + ansi-colors: "npm:^4.1.3" + ci-info: "npm:^3.7.0" + enquirer: "npm:^2.4.1" + external-editor: "npm:^3.1.0" + fs-extra: "npm:^7.0.1" + mri: "npm:^1.2.0" + p-limit: "npm:^2.2.0" + package-manager-detector: "npm:^0.2.0" + picocolors: "npm:^1.1.0" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.5.3" + spawndamnit: "npm:^3.0.1" + term-size: "npm:^2.1.0" + bin: + changeset: bin.js + checksum: 10/9072efec5e23ce71095462c8b8cda5d44adbe04dca68d36d5fd3d8eedaf9de39bd386840f3a57dfef87d3e3ca065cabe2d0aaaf8cf47a9ed743340c723e451ac + languageName: node + linkType: hard + +"@changesets/config@npm:^3.0.5": + version: 3.0.5 + resolution: "@changesets/config@npm:3.0.5" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.2" + "@changesets/logger": "npm:^0.1.1" + "@changesets/types": "npm:^6.0.0" + "@manypkg/get-packages": "npm:^1.1.3" + fs-extra: "npm:^7.0.1" + micromatch: "npm:^4.0.8" + checksum: 10/ebb6e5660c26cfd9c499505fdf5c0289b238fa8f6a7ed68d9eae56283d9f661d302d759155bdaff273a8de870fb2cd2dbb9cef62a64c4b4a869745f0e12eae9d + languageName: node + linkType: hard + +"@changesets/errors@npm:^0.2.0": + version: 0.2.0 + resolution: "@changesets/errors@npm:0.2.0" + dependencies: + extendable-error: "npm:^0.1.5" + checksum: 10/4b79373f92287af4f723e8dbbccaf0299aa8735fc043243d0ad587f04a7614615ea50180be575d4438b9f00aa82d1cf85e902b77a55bdd3e0a8dd97e77b18c60 + languageName: node + linkType: hard + +"@changesets/get-dependents-graph@npm:^2.1.2": + version: 2.1.2 + resolution: "@changesets/get-dependents-graph@npm:2.1.2" + dependencies: + "@changesets/types": "npm:^6.0.0" + "@manypkg/get-packages": "npm:^1.1.3" + picocolors: "npm:^1.1.0" + semver: "npm:^7.5.3" + checksum: 10/36d9877b0b071183b253d894e0dbef56f764fe2ff592064489d4f122c419ab97f0d023c9e078849d0f48b4129f5018c7c81cb380b02d975db5e0768ab29226c1 + languageName: node + linkType: hard + +"@changesets/get-release-plan@npm:^4.0.6": + version: 4.0.6 + resolution: "@changesets/get-release-plan@npm:4.0.6" + dependencies: + "@changesets/assemble-release-plan": "npm:^6.0.5" + "@changesets/config": "npm:^3.0.5" + "@changesets/pre": "npm:^2.0.1" + "@changesets/read": "npm:^0.6.2" + "@changesets/types": "npm:^6.0.0" + "@manypkg/get-packages": "npm:^1.1.3" + checksum: 10/85ac96876d34e4f7830f07753c64309e2e2d07d7d5843f502c25f6bc3bd3f9b4e1d355d82a979b68fabe37b6efe664de85cdce241bfa374ef3439bbbb9f840a0 + languageName: node + linkType: hard + +"@changesets/get-version-range-type@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/get-version-range-type@npm:0.4.0" + checksum: 10/9868e99b31af652d3fa08fc33d55b9636f2feed1f4efdb318a6dbb4bb061281868de089b93041ce7f2775ab9cf454b92b1199767d0f4f228d8bbc483e61d2fd8 + languageName: node + linkType: hard + +"@changesets/git@npm:^3.0.2": + version: 3.0.2 + resolution: "@changesets/git@npm:3.0.2" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@manypkg/get-packages": "npm:^1.1.3" + is-subdir: "npm:^1.1.1" + micromatch: "npm:^4.0.8" + spawndamnit: "npm:^3.0.1" + checksum: 10/de63573fecbd2ddcb8b5a7bfe18344a849810035e6fc55aa05e022d42e8cbefdfe23eebcfd34d31e84d78a616aa80ffb239b9e24abc4fc3ebaba10e619f72a24 + languageName: node + linkType: hard + +"@changesets/logger@npm:^0.1.1": + version: 0.1.1 + resolution: "@changesets/logger@npm:0.1.1" + dependencies: + picocolors: "npm:^1.1.0" + checksum: 10/bbfc050ddd0afdaa95bb790e81894b7548a2def059deeaed1685e22c10ede245ec2264df42bb2200cc0c8bd040e427bcd68a7afcca2633dc263a28e923d7c175 + languageName: node + linkType: hard + +"@changesets/parse@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/parse@npm:0.4.0" + dependencies: + "@changesets/types": "npm:^6.0.0" + js-yaml: "npm:^3.13.1" + checksum: 10/0a824582306b198cd775048876e62bd39193b921515608504777407d78f1dcc700ec15e1a6bccd8a3514c5acc6c3fb060238fbfeae94e698aa17dad1121c2d43 + languageName: node + linkType: hard + +"@changesets/pre@npm:^2.0.1": + version: 2.0.1 + resolution: "@changesets/pre@npm:2.0.1" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/types": "npm:^6.0.0" + "@manypkg/get-packages": "npm:^1.1.3" + fs-extra: "npm:^7.0.1" + checksum: 10/e26ca45a1accc4c79890220acf4c85ff716bc09a8e534c91f08bf7d5272408bd76f54ddf6a01765a1aab2517b7447285ae0a9787a6f2135011ad37bcf3f70e48 + languageName: node + linkType: hard + +"@changesets/read@npm:^0.6.2": + version: 0.6.2 + resolution: "@changesets/read@npm:0.6.2" + dependencies: + "@changesets/git": "npm:^3.0.2" + "@changesets/logger": "npm:^0.1.1" + "@changesets/parse": "npm:^0.4.0" + "@changesets/types": "npm:^6.0.0" + fs-extra: "npm:^7.0.1" + p-filter: "npm:^2.1.0" + picocolors: "npm:^1.1.0" + checksum: 10/a9e322c9afb4039c769f71370da1879bb4d457417611d64b1782242b9d2fe9d330816c44f93aebee158fb3e3aee402da50b4e98ac7a779a19d8081478975ec02 + languageName: node + linkType: hard + +"@changesets/should-skip-package@npm:^0.1.1": + version: 0.1.1 + resolution: "@changesets/should-skip-package@npm:0.1.1" + dependencies: + "@changesets/types": "npm:^6.0.0" + "@manypkg/get-packages": "npm:^1.1.3" + checksum: 10/d187ef22495deb63e678d0ff65e8627701e2b52c25bd59dde10ce8646be8d605c0ed0a6af020dd825b137c2fc748fdc6cef52e7774bad4c7a4f404bf182a85cf + languageName: node + linkType: hard + +"@changesets/types@npm:^4.0.1": + version: 4.1.0 + resolution: "@changesets/types@npm:4.1.0" + checksum: 10/4d7c65a447400ac474b2dc2d79bc1a5341c305fbce4a648ef59d9939bc1bbbbd6852684c417a9a4ef0226468b9cb522b9ac2b5393f21fa5f20f1b12bee94eab5 + languageName: node + linkType: hard + +"@changesets/types@npm:^6.0.0": + version: 6.0.0 + resolution: "@changesets/types@npm:6.0.0" + checksum: 10/214c58ff3e3da019c578b94815ec6748729a38b665d950acddf53f3a23073ac7a57dce45812c4bec0cbcd6902c84a482c804457d4c903602005b2399de8a4021 + languageName: node + linkType: hard + +"@changesets/write@npm:^0.3.2": + version: 0.3.2 + resolution: "@changesets/write@npm:0.3.2" + dependencies: + "@changesets/types": "npm:^6.0.0" + fs-extra: "npm:^7.0.1" + human-id: "npm:^1.0.2" + prettier: "npm:^2.7.1" + checksum: 10/c16b0a731fa43ae0028fd1f956c7b080030c42ff763f8dac74da8b178a4ea65632831c30550b784286277bdc75a3c44dda46aad8db97f43bb1eb4d61922152aa + languageName: node + linkType: hard + +"@codemirror/autocomplete@npm:^6.0.0": + version: 6.18.4 + resolution: "@codemirror/autocomplete@npm:6.18.4" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.17.0" + "@lezer/common": "npm:^1.0.0" + checksum: 10/7cd62db2ee87d6cb3936ced4f211bdcd9ce75515f64922119370c303a8bdbf5640e640a8d802c30d01cb55fb6c9b5299426ff799f04cff0bef8d0c3450fe2528 + languageName: node + linkType: hard + +"@codemirror/commands@npm:^6.0.0, @codemirror/commands@npm:^6.1.0": + version: 6.8.0 + resolution: "@codemirror/commands@npm:6.8.0" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@codemirror/state": "npm:^6.4.0" + "@codemirror/view": "npm:^6.27.0" + "@lezer/common": "npm:^1.1.0" + checksum: 10/0c7991736bc84d0a7f8e49c311c78a78def84fca36ff61c2f9887067e2c06b1b232711cb99282cd410527ddbe0671d2b9aff93e0848fa731a2014c3691c737ea + languageName: node + linkType: hard + +"@codemirror/language@npm:^6.0.0": + version: 6.10.8 + resolution: "@codemirror/language@npm:6.10.8" + dependencies: + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.23.0" + "@lezer/common": "npm:^1.1.0" + "@lezer/highlight": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + style-mod: "npm:^4.0.0" + checksum: 10/63b83b41d9f8475f757144cc204df08834bb14411c484aa265ffa3e93b7d8f696a21110df72101159a8675eda29018c6d08f864965bd4651b607a39f10ad32ed + languageName: node + linkType: hard + +"@codemirror/legacy-modes@npm:^6.1.0": + version: 6.4.2 + resolution: "@codemirror/legacy-modes@npm:6.4.2" + dependencies: + "@codemirror/language": "npm:^6.0.0" + checksum: 10/2d32742b6fb457aad8bc3de4d8019ef305000038e488ed7a564d62e1c1f5d8c45fade2bd4fdadf1b6e80401ef5694b2b48a86c5a955e06c81cfa6b33504a14fb + languageName: node + linkType: hard + +"@codemirror/lint@npm:^6.0.0": + version: 6.8.4 + resolution: "@codemirror/lint@npm:6.8.4" + dependencies: + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.35.0" + crelt: "npm:^1.0.5" + checksum: 10/401ead0591d88d31d1bf6527d4caba26e0deb7b49382dfbb8c712037d858047b0699fa2c15831a07db928194549eea9b942004fee42f334b34ff5973c7dbec58 + languageName: node + linkType: hard + +"@codemirror/search@npm:^6.0.0": + version: 6.5.8 + resolution: "@codemirror/search@npm:6.5.8" + dependencies: + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + crelt: "npm:^1.0.5" + checksum: 10/1389fa4e05da72b621ae10ff00d4ef0d23b08a3a7ac48f6e0b867429da7b80036bd7a6feef1a54f5b4c4af9fc4277f754a313a858fbfc12ccdfa48e9bf300cef + languageName: node + linkType: hard + +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.5.0": + version: 6.5.1 + resolution: "@codemirror/state@npm:6.5.1" + dependencies: + "@marijn/find-cluster-break": "npm:^1.0.0" + checksum: 10/117f21ba2ff5bc9f9b946ca9943279a29bb9461ec77fc2313cfd8908ed6eb7df2950d7c5b0ba0a0a23c3e0633c6bba56f8c105f97875665e0376a9e110d10a48 + languageName: node + linkType: hard + +"@codemirror/theme-one-dark@npm:^6.0.0": + version: 6.1.2 + resolution: "@codemirror/theme-one-dark@npm:6.1.2" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + "@lezer/highlight": "npm:^1.0.0" + checksum: 10/ea4517975b4004bd7d3ef7731a861b59c36d2ddc603d9c4ceca2c5b7637d62a8290f3f9e15004cd0f0e2ea1cc0f6c882a5ad2dd79862a6971b6654325914ccbc + languageName: node + linkType: hard + +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.35.0": + version: 6.36.2 + resolution: "@codemirror/view@npm:6.36.2" + dependencies: + "@codemirror/state": "npm:^6.5.0" + style-mod: "npm:^4.1.0" + w3c-keyname: "npm:^2.2.4" + checksum: 10/9ef7fcf4f9d9b6e66645ae65da1bf0c90e08f6ba786de0373b9f3644632066b91b8ea20faf67bb81eb9adf310ae76888cc7fd0901e2bb4821193f5427455c137 + languageName: node + linkType: hard + +"@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": + version: 1.6.0 + resolution: "@colors/colors@npm:1.6.0" + checksum: 10/66d00284a3a9a21e5e853b256942e17edbb295f4bd7b9aa7ef06bbb603568d5173eb41b0f64c1e51748bc29d382a23a67d99956e57e7431c64e47e74324182d9 + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10/b6e38a1712fab242c86a241c229cf562195aad985d0564bd352ac404be583029e89e93028ffd2c251d2c407ecac5fb0cbdca94a2d5c10f29ac806ede0508b3ff + languageName: node + linkType: hard + +"@csstools/color-helpers@npm:^5.0.1": + version: 5.0.1 + resolution: "@csstools/color-helpers@npm:5.0.1" + checksum: 10/4cb25b34997c9b0e9f401833e27942636494bc3c7fda5c6633026bc3fdfdda1c67be68ea048058bfba449a86ec22332e23b4ec5982452c50b67880c4cb13a660 + languageName: node + linkType: hard + +"@csstools/css-calc@npm:^2.1.1": + version: 2.1.1 + resolution: "@csstools/css-calc@npm:2.1.1" + peerDependencies: + "@csstools/css-parser-algorithms": ^3.0.4 + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10/60e8808c261eeebb15517c0f368672494095bb10e90177dfc492f956fc432760d84b17dc19db739a2e23cac0013f4bcf37bb93947f9741b95b7227eeaced250b + languageName: node + linkType: hard + +"@csstools/css-color-parser@npm:^3.0.7": + version: 3.0.7 + resolution: "@csstools/css-color-parser@npm:3.0.7" + dependencies: + "@csstools/color-helpers": "npm:^5.0.1" + "@csstools/css-calc": "npm:^2.1.1" + peerDependencies: + "@csstools/css-parser-algorithms": ^3.0.4 + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10/efceb60608f3fc2b6da44d5be7720a8b302e784f05c1c12f17a1da4b4b9893b2e20d0ea74ac2c2d6d5ca9b64ee046d05f803c7b78581fd5a3f85e78acfc5d98e + languageName: node + linkType: hard + +"@csstools/css-parser-algorithms@npm:^3.0.4": + version: 3.0.4 + resolution: "@csstools/css-parser-algorithms@npm:3.0.4" + peerDependencies: + "@csstools/css-tokenizer": ^3.0.3 + checksum: 10/dfb6926218d9f8ba25d8b43ea46c03863c819481f8c55e4de4925780eaab9e6bcd6bead1d56b4ef82d09fcd9d69a7db2750fa9db08eece9470fd499dc76d0edb + languageName: node + linkType: hard + +"@csstools/css-tokenizer@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/css-tokenizer@npm:3.0.3" + checksum: 10/6baa3160e426e1f177b8f10d54ec7a4a596090f65a05f16d7e9e4da049962a404eabc5f885f4867093702c259cd4080ac92a438326e22dea015201b3e71f5bbb + languageName: node + linkType: hard + +"@dabh/diagnostics@npm:^2.0.2": + version: 2.0.3 + resolution: "@dabh/diagnostics@npm:2.0.3" + dependencies: + colorspace: "npm:1.1.x" + enabled: "npm:2.0.x" + kuler: "npm:^2.0.0" + checksum: 10/14e449a7f42f063f959b472f6ce02d16457a756e852a1910aaa831b63fc21d86f6c32b2a1aa98a4835b856548c926643b51062d241fb6e9b2b7117996053e6b9 + languageName: node + linkType: hard + +"@date-io/core@npm:1.x, @date-io/core@npm:^1.3.13": + version: 1.3.13 + resolution: "@date-io/core@npm:1.3.13" + checksum: 10/5a9e9d1de20f0346a3c7d2d5946190caef4bfb0b64d82ba1f4c566657a9192667c94ebe7f438d11d4286d9c190974daad4fb2159294225cd8af4d9a140239879 + languageName: node + linkType: hard + +"@date-io/date-fns@npm:^1.3.13": + version: 1.3.13 + resolution: "@date-io/date-fns@npm:1.3.13" + dependencies: + "@date-io/core": "npm:^1.3.13" + peerDependencies: + date-fns: ^2.0.0 + checksum: 10/0b7ce35b2fcc5502b06671a037c1ca9ba8ede4a0f3d9d46cc58acc687484b40fe753a85ed30252c872fa5de75d23b3337ad6f5fe8f09ad0f8d342a5583446642 + languageName: node + linkType: hard + +"@davidzemon/passport-okta-oauth@npm:^0.0.5": + version: 0.0.5 + resolution: "@davidzemon/passport-okta-oauth@npm:0.0.5" + dependencies: + "@types/passport-oauth2": "npm:^1.4.11" + passport-oauth2: "npm:^1.6.1" + pkginfo: "npm:^0.4.1" + uid2: "npm:^1.0.0" + checksum: 10/6932aca4213f1e47c41454cbb9ef1309643ffa14fa3da401f18e397e76f3fa1669be76d96db65dd6435854d7f05b30d3a27f645d10e3c6ed955ad30930d47b3e + languageName: node + linkType: hard + +"@dnd-kit/accessibility@npm:^3.1.1": + version: 3.1.1 + resolution: "@dnd-kit/accessibility@npm:3.1.1" + dependencies: + tslib: "npm:^2.0.0" + peerDependencies: + react: ">=16.8.0" + checksum: 10/961000456a36700a9cd13be51147a818bc100f7dfabb332b80438d02e06f3b556aa0ff46ddf13bdff3b70bc8f9b63dd5a392cc285597ab1f7026e672660c54b6 + languageName: node + linkType: hard + +"@dnd-kit/core@npm:^6.3.1": + version: 6.3.1 + resolution: "@dnd-kit/core@npm:6.3.1" + dependencies: + "@dnd-kit/accessibility": "npm:^3.1.1" + "@dnd-kit/utilities": "npm:^3.2.2" + tslib: "npm:^2.0.0" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10/a5ae6fa8404765712aa80e308f58cb79bac9a306c274ec8272c405c2a59dd277d24b966348fe8ca6340bb3f0d75f90b8a021fa781edcf65255114d3cf2bef891 + languageName: node + linkType: hard + +"@dnd-kit/modifiers@npm:^9.0.0": + version: 9.0.0 + resolution: "@dnd-kit/modifiers@npm:9.0.0" + dependencies: + "@dnd-kit/utilities": "npm:^3.2.2" + tslib: "npm:^2.0.0" + peerDependencies: + "@dnd-kit/core": ^6.3.0 + react: ">=16.8.0" + checksum: 10/2ae238a1b787029e95d92319d7e4a0e2ffba8fceed56c4b58dfee7ed6890df207bf89ce522d4126411051121954222bd8e1444fae321485b594ae518c7c4397d + languageName: node + linkType: hard + +"@dnd-kit/sortable@npm:^10.0.0": + version: 10.0.0 + resolution: "@dnd-kit/sortable@npm:10.0.0" + dependencies: + "@dnd-kit/utilities": "npm:^3.2.2" + tslib: "npm:^2.0.0" + peerDependencies: + "@dnd-kit/core": ^6.3.0 + react: ">=16.8.0" + checksum: 10/bc61c25e76905204a53f91294b8116bf106fa27247eebca2c66478450b2051d7177115a384054e7e5639e6c4430083ade63056f79ee45f549da537cf05bc5288 + languageName: node + linkType: hard + +"@dnd-kit/utilities@npm:^3.2.2": + version: 3.2.2 + resolution: "@dnd-kit/utilities@npm:3.2.2" + dependencies: + tslib: "npm:^2.0.0" + peerDependencies: + react: ">=16.8.0" + checksum: 10/6cfe46a5fcdaced943982e7ae66b08b89235493e106eb5bc833737c25905e13375c6ecc3aa0c357d136cb21dae3966213dba063f19b7a60b1235a29a7b05ff84 + languageName: node + linkType: hard + +"@emotion/babel-plugin@npm:^11.13.5": + version: 11.13.5 + resolution: "@emotion/babel-plugin@npm:11.13.5" + dependencies: + "@babel/helper-module-imports": "npm:^7.16.7" + "@babel/runtime": "npm:^7.18.3" + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/serialize": "npm:^1.3.3" + babel-plugin-macros: "npm:^3.1.0" + convert-source-map: "npm:^1.5.0" + escape-string-regexp: "npm:^4.0.0" + find-root: "npm:^1.1.0" + source-map: "npm:^0.5.7" + stylis: "npm:4.2.0" + checksum: 10/cd310568314d886ca328e504f84c4f7f9c7f092ea34a2b43fdb61f84665bf301ba2ef49e0fd1e7ded3d81363d9bbefbb32674ce88b317cfb64db2b65e5ff423f + languageName: node + linkType: hard + +"@emotion/cache@npm:^11.13.5, @emotion/cache@npm:^11.14.0": + version: 11.14.0 + resolution: "@emotion/cache@npm:11.14.0" + dependencies: + "@emotion/memoize": "npm:^0.9.0" + "@emotion/sheet": "npm:^1.4.0" + "@emotion/utils": "npm:^1.4.2" + "@emotion/weak-memoize": "npm:^0.4.0" + stylis: "npm:4.2.0" + checksum: 10/52336b28a27b07dde8fcdfd80851cbd1487672bbd4db1e24cca1440c95d8a6a968c57b0453c2b7c88d9b432b717f99554dbecc05b5cdef27933299827e69fd8e + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.8.0": + version: 0.8.0 + resolution: "@emotion/hash@npm:0.8.0" + checksum: 10/4b35d88a97e67275c1d990c96d3b0450451d089d1508619488fc0acb882cb1ac91e93246d471346ebd1b5402215941ef4162efe5b51534859b39d8b3a0e3ffaa + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.9.1, @emotion/hash@npm:^0.9.2": + version: 0.9.2 + resolution: "@emotion/hash@npm:0.9.2" + checksum: 10/379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 + languageName: node + linkType: hard + +"@emotion/is-prop-valid@npm:^0.8.2": + version: 0.8.8 + resolution: "@emotion/is-prop-valid@npm:0.8.8" + dependencies: + "@emotion/memoize": "npm:0.7.4" + checksum: 10/e85bdeb9d9d23de422f271e0f5311a0142b15055bb7e610440dbf250f0cdfd049df88af72a49e2c6081954481f1cbeca9172e2116ff536b38229397dfbed8082 + languageName: node + linkType: hard + +"@emotion/is-prop-valid@npm:^1.3.0": + version: 1.3.1 + resolution: "@emotion/is-prop-valid@npm:1.3.1" + dependencies: + "@emotion/memoize": "npm:^0.9.0" + checksum: 10/abbc5c7bf4017415da5b06067fc0b4771d1f22cf94ec37fd54c07b3bd1bcffbda2405ca686e7ee64a9cfc51461262b712f724850e838775347a949f72949ad03 + languageName: node + linkType: hard + +"@emotion/memoize@npm:0.7.4": + version: 0.7.4 + resolution: "@emotion/memoize@npm:0.7.4" + checksum: 10/4e3920d4ec95995657a37beb43d3f4b7d89fed6caa2b173a4c04d10482d089d5c3ea50bbc96618d918b020f26ed6e9c4026bbd45433566576c1f7b056c3271dc + languageName: node + linkType: hard + +"@emotion/memoize@npm:^0.9.0": + version: 0.9.0 + resolution: "@emotion/memoize@npm:0.9.0" + checksum: 10/038132359397348e378c593a773b1148cd0cf0a2285ffd067a0f63447b945f5278860d9de718f906a74c7c940ba1783ac2ca18f1c06a307b01cc0e3944e783b1 + languageName: node + linkType: hard + +"@emotion/react@npm:^11.10.5": + version: 11.14.0 + resolution: "@emotion/react@npm:11.14.0" + dependencies: + "@babel/runtime": "npm:^7.18.3" + "@emotion/babel-plugin": "npm:^11.13.5" + "@emotion/cache": "npm:^11.14.0" + "@emotion/serialize": "npm:^1.3.3" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" + "@emotion/utils": "npm:^1.4.2" + "@emotion/weak-memoize": "npm:^0.4.0" + hoist-non-react-statics: "npm:^3.3.1" + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/3356c1d66f37f4e7abf88a2be843f6023b794b286c9c99a0aaf1cd1b2b7c50f8d80a2ef77183da737de70150f638e698ff4a2a38ab2d922f868615f1d5761c37 + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.3.3": + version: 1.3.3 + resolution: "@emotion/serialize@npm:1.3.3" + dependencies: + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/unitless": "npm:^0.10.0" + "@emotion/utils": "npm:^1.4.2" + csstype: "npm:^3.0.2" + checksum: 10/44a2e06fc52dba177d9cf720f7b2c5d45ee4c0d9c09b78302d9a625e758d728ef3ae26f849237fec6f70e9eeb7d87e45a65028e944dc1f877df97c599f1cdaee + languageName: node + linkType: hard + +"@emotion/sheet@npm:^1.4.0": + version: 1.4.0 + resolution: "@emotion/sheet@npm:1.4.0" + checksum: 10/8ac6e9bf6b373a648f26ae7f1c24041038524f4c72f436f4f8c4761c665e58880c3229d8d89b1f7a4815dd8e5b49634d03e60187cb6f93097d7f7c1859e869d5 + languageName: node + linkType: hard + +"@emotion/styled@npm:^11.10.5": + version: 11.14.0 + resolution: "@emotion/styled@npm:11.14.0" + dependencies: + "@babel/runtime": "npm:^7.18.3" + "@emotion/babel-plugin": "npm:^11.13.5" + "@emotion/is-prop-valid": "npm:^1.3.0" + "@emotion/serialize": "npm:^1.3.3" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" + "@emotion/utils": "npm:^1.4.2" + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/64bb3fd8c5d3042ba803eb2052fddf8e057b927682677f8fc41ecfe2b1abcc0da03944fde79fac8f2f55a56383d5c9547b93d4641bb51452cf59415c02dd9b10 + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.10.0": + version: 0.10.0 + resolution: "@emotion/unitless@npm:0.10.0" + checksum: 10/6851c16edce01c494305f43b2cad7a26b939a821131b7c354e49b8e3b012c8810024755b0f4a03ef51117750309e55339825a97bd10411fb3687e68904769106 + languageName: node + linkType: hard + +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.2.0": + version: 1.2.0 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.2.0" + peerDependencies: + react: ">=16.8.0" + checksum: 10/2374999db8d53ef661d61ed1026c42a849632e4f03826f7eba0314c1d92ae342161d737f5045453aa46dd4008e13ccefeba68d3165b667dfad8e5784fcb0c643 + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.4.2": + version: 1.4.2 + resolution: "@emotion/utils@npm:1.4.2" + checksum: 10/e5f3b8bca066b3361a7ad9064baeb9d01ed1bf51d98416a67359b62cb3affec6bb0249802c4ed11f4f8030f93cc4b67506909420bdb110adec6983d712897208 + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.4.0": + version: 0.4.0 + resolution: "@emotion/weak-memoize@npm:0.4.0" + checksum: 10/db5da0e89bd752c78b6bd65a1e56231f0abebe2f71c0bd8fc47dff96408f7065b02e214080f99924f6a3bfe7ee15afc48dad999d76df86b39b16e513f7a94f52 + languageName: node + linkType: hard + +"@envelop/core@npm:^5.0.2": + version: 5.0.3 + resolution: "@envelop/core@npm:5.0.3" + dependencies: + "@envelop/types": "npm:5.0.0" + tslib: "npm:^2.5.0" + checksum: 10/94848e994570b57b3b363303e9274d81cc10b8ece39a178302625e35986abcb5828afbc41550bb1306d454820493ccf0d5228f23a291e2aed426fbc512675bb0 + languageName: node + linkType: hard + +"@envelop/types@npm:5.0.0": + version: 5.0.0 + resolution: "@envelop/types@npm:5.0.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 10/03b8e86fd0fd61b0bea6e96d38704df0310d7daaca303b51424b4913149024fcb98524f79491ea3a4f58f942a3c9cde3fa7fe0d78c5f9734a4e1fac3332b85cf + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/aix-ppc64@npm:0.24.2" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/android-arm64@npm:0.24.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/android-arm@npm:0.24.2" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/android-x64@npm:0.24.2" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/darwin-arm64@npm:0.24.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/darwin-x64@npm:0.24.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/freebsd-arm64@npm:0.24.2" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/freebsd-x64@npm:0.24.2" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-arm64@npm:0.24.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-arm@npm:0.24.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-ia32@npm:0.24.2" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-loong64@npm:0.24.2" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-mips64el@npm:0.24.2" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-ppc64@npm:0.24.2" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-riscv64@npm:0.24.2" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-s390x@npm:0.24.2" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/linux-x64@npm:0.24.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-arm64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/netbsd-arm64@npm:0.24.2" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/netbsd-x64@npm:0.24.2" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/openbsd-arm64@npm:0.24.2" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/openbsd-x64@npm:0.24.2" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/sunos-x64@npm:0.24.2" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/win32-arm64@npm:0.24.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/win32-ia32@npm:0.24.2" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.24.2": + version: 0.24.2 + resolution: "@esbuild/win32-x64@npm:0.24.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" + dependencies: + eslint-visitor-keys: "npm:^3.4.3" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10/ae92a11412674329b4bd38422518601ec9ceae28e251104d1cad83715da9d38e321f68c817c39b64e66d0af7d98df6f9a10ad2dc638911254b47fb8932df00ef + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 10/c08f1dd7dd18fbb60bdd0d85820656d1374dd898af9be7f82cb00451313402a22d5e30569c150315b4385907cdbca78c22389b2a72ab78883b3173be317620cc + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 + languageName: node + linkType: hard + +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10/7562b21be10c2adbfa4aa5bb2eccec2cb9ac649a3569560742202c8d1cb6c931ce634937a2f0f551e078403a1c1285d6c2c0aa345dafc986149665cd69fe8b59 + languageName: node + linkType: hard + +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 10/2bb8a7eca8289ed14c9eb15239bc1019797454624e769b39a0b90ed204d032403adc0f8ed0d2aef8a18c772205fa7808cf5a1b91f21c7bfc7b6032150b1062c5 + languageName: node + linkType: hard + +"@floating-ui/core@npm:^1.6.0": + version: 1.6.9 + resolution: "@floating-ui/core@npm:1.6.9" + dependencies: + "@floating-ui/utils": "npm:^0.2.9" + checksum: 10/656fcd383da17fffca2efa0635cbe3c0b835c3312949e30bd19d05bf42479f2ac22aaf336a6a31cb160621fc6f35cfc9e115e76c5cf48ba96e33474d123ced22 + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.0.0": + version: 1.6.13 + resolution: "@floating-ui/dom@npm:1.6.13" + dependencies: + "@floating-ui/core": "npm:^1.6.0" + "@floating-ui/utils": "npm:^0.2.9" + checksum: 10/4bb732baf3270007741bcdc91be1de767b2bb5d8b891eb838e5f1e7c4cccad998643dbdd4e8b8cec4c5d12c9898f80febc68e9793dd6e26a445283c4fb1b6a78 + languageName: node + linkType: hard + +"@floating-ui/react-dom@npm:^2.0.0": + version: 2.1.2 + resolution: "@floating-ui/react-dom@npm:2.1.2" + dependencies: + "@floating-ui/dom": "npm:^1.0.0" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10/2a67dc8499674e42ff32c7246bded185bb0fdd492150067caf9568569557ac4756a67787421d8604b0f241e5337de10762aee270d9aeef106d078a0ff13596c4 + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.2.9": + version: 0.2.9 + resolution: "@floating-ui/utils@npm:0.2.9" + checksum: 10/0ca786347db3dd8d9034b86d1449fabb96642788e5900cc5f2aee433cd7b243efbcd7a165bead50b004ee3f20a90ddebb6a35296fc41d43cfd361b6f01b69ffb + languageName: node + linkType: hard + +"@google-cloud/firestore@npm:^7.0.0": + version: 7.11.0 + resolution: "@google-cloud/firestore@npm:7.11.0" + dependencies: + "@opentelemetry/api": "npm:^1.3.0" + fast-deep-equal: "npm:^3.1.1" + functional-red-black-tree: "npm:^1.0.1" + google-gax: "npm:^4.3.3" + protobufjs: "npm:^7.2.6" + checksum: 10/ae0e42ffee1e5cf7160149e1a581c0ceee702ea34d87d7212f7ffa326d9101f0aa2e9c5d37527a7f75864ac174cf32b50f1c593a81d02476ca4c8b8e85cba3bc + languageName: node + linkType: hard + +"@google-cloud/paginator@npm:^5.0.0": + version: 5.0.2 + resolution: "@google-cloud/paginator@npm:5.0.2" + dependencies: + arrify: "npm:^2.0.0" + extend: "npm:^3.0.2" + checksum: 10/b64ba2029b77fdcf3c827aea0b6d128122fd1d2f4aa8c1ba70747cba0659d4216a283769fb3bbeb8f726176f5282624637f02c30f118a010e05838411da0cb76 + languageName: node + linkType: hard + +"@google-cloud/projectify@npm:^4.0.0": + version: 4.0.0 + resolution: "@google-cloud/projectify@npm:4.0.0" + checksum: 10/fdccdda0b50855c35541d71c46a6603f3302ff1a00108d946272cb2167435da00e2a2da5963fe489f4f5a4a9eb6320abeb97d3269974a972ae89f5df8451922d + languageName: node + linkType: hard + +"@google-cloud/promisify@npm:^4.0.0": + version: 4.0.0 + resolution: "@google-cloud/promisify@npm:4.0.0" + checksum: 10/c5de81321b3a5c567edcbe0b941fb32644611147f3ba22f20575918c225a979988a99bc2ebda05ac914fa8714b0a54c69be72c3f46c7a64c3b19db7d7fba8d04 + languageName: node + linkType: hard + +"@google-cloud/storage@npm:^7.0.0": + version: 7.11.2 + resolution: "@google-cloud/storage@npm:7.11.2" + dependencies: + "@google-cloud/paginator": "npm:^5.0.0" + "@google-cloud/projectify": "npm:^4.0.0" + "@google-cloud/promisify": "npm:^4.0.0" + abort-controller: "npm:^3.0.0" + async-retry: "npm:^1.3.3" + duplexify: "npm:^4.1.3" + fast-xml-parser: "npm:^4.3.0" + gaxios: "npm:^6.0.2" + google-auth-library: "npm:^9.6.3" + html-entities: "npm:^2.5.2" + mime: "npm:^3.0.0" + p-limit: "npm:^3.0.1" + retry-request: "npm:^7.0.0" + teeny-request: "npm:^9.0.0" + uuid: "npm:^8.0.0" + checksum: 10/6e10d1120bc714b93e1d99ee3b550be6365d96005ef278333489983968893c6c61e673957e1596bcfadfd5a1b957f6c0167812d5e356caba395ba68511fa6018 + languageName: node + linkType: hard + +"@graphiql/react@npm:^0.20.3": + version: 0.20.4 + resolution: "@graphiql/react@npm:0.20.4" + dependencies: + "@graphiql/toolkit": "npm:^0.9.1" + "@headlessui/react": "npm:^1.7.15" + "@radix-ui/react-dialog": "npm:^1.0.4" + "@radix-ui/react-dropdown-menu": "npm:^2.0.5" + "@radix-ui/react-tooltip": "npm:^1.0.6" + "@radix-ui/react-visually-hidden": "npm:^1.0.3" + "@types/codemirror": "npm:^5.60.8" + clsx: "npm:^1.2.1" + codemirror: "npm:^5.65.3" + codemirror-graphql: "npm:^2.0.11" + copy-to-clipboard: "npm:^3.2.0" + framer-motion: "npm:^6.5.1" + graphql-language-service: "npm:^5.2.0" + markdown-it: "npm:^12.2.0" + set-value: "npm:^4.1.0" + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + checksum: 10/5a19e7706e12da2430e78db3f20478f1f8696e6e3de8a0b684454f946b86db4966377b35e043284e462c19a46feabde77599024b363ace02f7b3d2c048cec021 + languageName: node + linkType: hard + +"@graphiql/react@npm:^0.23.0": + version: 0.23.1 + resolution: "@graphiql/react@npm:0.23.1" + dependencies: + "@graphiql/toolkit": "npm:^0.9.2" + "@headlessui/react": "npm:^1.7.15" + "@radix-ui/react-dialog": "npm:^1.0.4" + "@radix-ui/react-dropdown-menu": "npm:^2.0.5" + "@radix-ui/react-tooltip": "npm:^1.0.6" + "@radix-ui/react-visually-hidden": "npm:^1.0.3" + "@types/codemirror": "npm:^5.60.8" + clsx: "npm:^1.2.1" + codemirror: "npm:^5.65.3" + codemirror-graphql: "npm:^2.0.13" + copy-to-clipboard: "npm:^3.2.0" + framer-motion: "npm:^6.5.1" + graphql-language-service: "npm:^5.2.2" + markdown-it: "npm:^14.1.0" + set-value: "npm:^4.1.0" + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + checksum: 10/c0c6b362cb83d9cf63e43c90c1d3bbc1cba02db323e7c2ae8b3e023689475260eb8c7036918d8f6a15ec6c5d2088c66aaf4b131d907473bca319d29bffda68c1 + languageName: node + linkType: hard + +"@graphiql/toolkit@npm:^0.9.1, @graphiql/toolkit@npm:^0.9.2": + version: 0.9.2 + resolution: "@graphiql/toolkit@npm:0.9.2" + dependencies: + "@n1ru4l/push-pull-async-iterable-iterator": "npm:^3.1.0" + meros: "npm:^1.1.4" + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 + graphql-ws: ">= 4.5.0" + peerDependenciesMeta: + graphql-ws: + optional: true + checksum: 10/cecf99652acbe3f263a08c2d895a6de99065308428458b051cb8d09e8303af24d5c62d9d6be3cc2ffa88b81f49a825696be8bd019eacb5693217c0018f812de1 + languageName: node + linkType: hard + +"@graphql-hive/gateway-abort-signal-any@npm:^0.0.3": + version: 0.0.3 + resolution: "@graphql-hive/gateway-abort-signal-any@npm:0.0.3" + dependencies: + "@graphql-tools/utils": "npm:^10.7.0" + tslib: "npm:^2.8.1" + peerDependencies: + graphql: ^15.0.0 || ^16.9.0 || ^17.0.0 + checksum: 10/f62b7be2e6a00ee9d8392bcd9eb781ab5ae42aaca035984b2f679ff6745e634f95e77dfe15cb2db84d0801023a737389f21ff47f2e02408dcf556c6b2d49bbd6 + languageName: node + linkType: hard + +"@graphql-tools/batch-execute@npm:^9.0.11": + version: 9.0.11 + resolution: "@graphql-tools/batch-execute@npm:9.0.11" + dependencies: + "@graphql-tools/utils": "npm:^10.7.0" + dataloader: "npm:^2.2.3" + tslib: "npm:^2.8.1" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/6180424a5fa36a446baa665a92cff0332a566b1bd7481e2641c9d0aa2a7a47a24d21a9b90bb3d7f4c0d5a7331fc9e623fe43746f07e5eb0654419a29d860a940 + languageName: node + linkType: hard + +"@graphql-tools/delegate@npm:^10.2.10": + version: 10.2.10 + resolution: "@graphql-tools/delegate@npm:10.2.10" + dependencies: + "@graphql-tools/batch-execute": "npm:^9.0.11" + "@graphql-tools/executor": "npm:^1.3.10" + "@graphql-tools/schema": "npm:^10.0.11" + "@graphql-tools/utils": "npm:^10.7.0" + "@repeaterjs/repeater": "npm:^3.0.6" + dataloader: "npm:^2.2.3" + dset: "npm:^3.1.2" + tslib: "npm:^2.8.1" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/093561b3cb1d93eeff818011419613d8e5098537eca196b117862771c363da1667be202b62b62c67ad58dda536653d58929b2968080738a8be355307b3c6c024 + languageName: node + linkType: hard + +"@graphql-tools/executor-common@npm:^0.0.1": + version: 0.0.1 + resolution: "@graphql-tools/executor-common@npm:0.0.1" + dependencies: + "@envelop/core": "npm:^5.0.2" + "@graphql-tools/utils": "npm:^10.7.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/5234e8c79273a8f44cdb0208c4dfd71085533b7e7c147241c7f7f30f4e8e78a5de64e6f4597134f0232b7a98dc12dd4d100273dd7fa1b3633f845bc0f23759bf + languageName: node + linkType: hard + +"@graphql-tools/executor-graphql-ws@npm:^1.3.2": + version: 1.3.7 + resolution: "@graphql-tools/executor-graphql-ws@npm:1.3.7" + dependencies: + "@graphql-tools/executor-common": "npm:^0.0.1" + "@graphql-tools/utils": "npm:^10.7.0" + "@whatwg-node/disposablestack": "npm:^0.0.5" + graphql-ws: "npm:^5.14.0" + isomorphic-ws: "npm:^5.0.0" + tslib: "npm:^2.8.1" + ws: "npm:^8.17.1" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/ec49e2f04ebaf90055f2fd2dfa4bfed617d94403c9e14698963d5dce5211f763bb886a23cfde469142618d0ee3ffd15848a3feeb9d0dc618af95188cf5799c8e + languageName: node + linkType: hard + +"@graphql-tools/executor-http@npm:^1.1.9": + version: 1.2.5 + resolution: "@graphql-tools/executor-http@npm:1.2.5" + dependencies: + "@graphql-hive/gateway-abort-signal-any": "npm:^0.0.3" + "@graphql-tools/executor-common": "npm:^0.0.1" + "@graphql-tools/utils": "npm:^10.7.0" + "@repeaterjs/repeater": "npm:^3.0.4" + "@whatwg-node/disposablestack": "npm:^0.0.5" + "@whatwg-node/fetch": "npm:^0.10.1" + extract-files: "npm:^11.0.0" + meros: "npm:^1.2.1" + tslib: "npm:^2.8.1" + value-or-promise: "npm:^1.0.12" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/57cbc5470e32de697bb5c6826740555d72a31012aabcf987a452138c3adbfa6011691f5ccdc95417d5b409abe235f37a990bb15bcf08ef74a456f81ae0d59699 + languageName: node + linkType: hard + +"@graphql-tools/executor-legacy-ws@npm:^1.1.10": + version: 1.1.10 + resolution: "@graphql-tools/executor-legacy-ws@npm:1.1.10" + dependencies: + "@graphql-tools/utils": "npm:^10.7.2" + "@types/ws": "npm:^8.0.0" + isomorphic-ws: "npm:^5.0.0" + tslib: "npm:^2.4.0" + ws: "npm:^8.17.1" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/6a2abe7421e9aebd6e33f9a80149ac07838740815074b593d080a971591634744632d76a41a89986d74e897038e77b9fee7a362f21866ff645997f303643b336 + languageName: node + linkType: hard + +"@graphql-tools/executor@npm:^1.3.10": + version: 1.3.12 + resolution: "@graphql-tools/executor@npm:1.3.12" + dependencies: + "@graphql-tools/utils": "npm:^10.7.2" + "@graphql-typed-document-node/core": "npm:^3.2.0" + "@repeaterjs/repeater": "npm:^3.0.4" + "@whatwg-node/disposablestack": "npm:^0.0.5" + tslib: "npm:^2.4.0" + value-or-promise: "npm:^1.0.12" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/585a9be52963d5388d8b8a6f250e9d54520c735bc1b2a834a652a9a571a05e953f8ba8280d1bfd8ee88455eae11c6c5d5b0fd49582a4eb9ae2f004f032ce67c0 + languageName: node + linkType: hard + +"@graphql-tools/graphql-file-loader@npm:^8.0.0": + version: 8.0.12 + resolution: "@graphql-tools/graphql-file-loader@npm:8.0.12" + dependencies: + "@graphql-tools/import": "npm:7.0.11" + "@graphql-tools/utils": "npm:^10.7.2" + globby: "npm:^11.0.3" + tslib: "npm:^2.4.0" + unixify: "npm:^1.0.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/e96881f84cd878418eb6b70bb9eba8826ee961575c8a8cae1f1d77bf088013a36755f78a4864a3a5c74e48463c78b7aff27613fc90bfeb2467a8004cdad8bcab + languageName: node + linkType: hard + +"@graphql-tools/import@npm:7.0.11": + version: 7.0.11 + resolution: "@graphql-tools/import@npm:7.0.11" + dependencies: + "@graphql-tools/utils": "npm:^10.7.2" + resolve-from: "npm:5.0.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/924b1db8559baeef3ec8f448a109258fb3b81153eeac8362552bdf90098509e1ea063d0cdc3e558df58fc71132437ee9b55cd70e70649d3e939b0f3083016626 + languageName: node + linkType: hard + +"@graphql-tools/json-file-loader@npm:^8.0.0": + version: 8.0.11 + resolution: "@graphql-tools/json-file-loader@npm:8.0.11" + dependencies: + "@graphql-tools/utils": "npm:^10.7.2" + globby: "npm:^11.0.3" + tslib: "npm:^2.4.0" + unixify: "npm:^1.0.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/431a0eae71602d582438cf161d601454caf3c38606f404ab4f638cde71f01594ab1b82dc4b2d5f7548ec4100985a939f60d247ba3162e1ab2c9875dc71db394c + languageName: node + linkType: hard + +"@graphql-tools/load@npm:^8.0.0": + version: 8.0.12 + resolution: "@graphql-tools/load@npm:8.0.12" + dependencies: + "@graphql-tools/schema": "npm:^10.0.16" + "@graphql-tools/utils": "npm:^10.7.2" + p-limit: "npm:3.1.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/c884af4343930d8dd40d35a0554a68fb0f7a82169d2acf69870923c94ef80f0591af5868cc829b49fe4b29f9b19ff679a6fc5cd8b5e9c75d07cbd2c8ab0f549c + languageName: node + linkType: hard + +"@graphql-tools/merge@npm:8.3.1": + version: 8.3.1 + resolution: "@graphql-tools/merge@npm:8.3.1" + dependencies: + "@graphql-tools/utils": "npm:8.9.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/9354a68aa1b851ee72d2d727a3a264279f1e5ed95100f6c6e7e0a2ad7449943d2ebe6fce43b4873a15e5c3e9df52ea9d23ff51ffc1f73c417c4ccf368f8486ab + languageName: node + linkType: hard + +"@graphql-tools/merge@npm:^9.0.0, @graphql-tools/merge@npm:^9.0.17": + version: 9.0.17 + resolution: "@graphql-tools/merge@npm:9.0.17" + dependencies: + "@graphql-tools/utils": "npm:^10.7.2" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/85d6f256151cbe7c061e544dd9f68ce3b0a801ec358bb13b7e61ba654ff143d4cbf48a0f0c4c31c078b8c0c8a8f97b15f75ad4dabe7b5f171aaa4b4dd89072a4 + languageName: node + linkType: hard + +"@graphql-tools/schema@npm:^10.0.11, @graphql-tools/schema@npm:^10.0.16": + version: 10.0.16 + resolution: "@graphql-tools/schema@npm:10.0.16" + dependencies: + "@graphql-tools/merge": "npm:^9.0.17" + "@graphql-tools/utils": "npm:^10.7.2" + tslib: "npm:^2.4.0" + value-or-promise: "npm:^1.0.12" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/842a46bda349dbe3b694f7fc23d9e4d3488526a68b5ce4e323c84e05da837b9308717817ed0df486b7e7d380ec7534abb7728c2134ff500b1a3590b96627594e + languageName: node + linkType: hard + +"@graphql-tools/schema@npm:^8.5.0": + version: 8.5.1 + resolution: "@graphql-tools/schema@npm:8.5.1" + dependencies: + "@graphql-tools/merge": "npm:8.3.1" + "@graphql-tools/utils": "npm:8.9.0" + tslib: "npm:^2.4.0" + value-or-promise: "npm:1.0.11" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/98f57502cc67ee48157bcf6f26c334e27b0673ec6f5a35c1a5bc1901772063c8bfdca435f81664ab1a41f9274b43dc78aa12791feee83546640d0a034b38c836 + languageName: node + linkType: hard + +"@graphql-tools/url-loader@npm:^8.0.0": + version: 8.0.24 + resolution: "@graphql-tools/url-loader@npm:8.0.24" + dependencies: + "@graphql-tools/executor-graphql-ws": "npm:^1.3.2" + "@graphql-tools/executor-http": "npm:^1.1.9" + "@graphql-tools/executor-legacy-ws": "npm:^1.1.10" + "@graphql-tools/utils": "npm:^10.7.2" + "@graphql-tools/wrap": "npm:^10.0.16" + "@types/ws": "npm:^8.0.0" + "@whatwg-node/fetch": "npm:^0.10.0" + isomorphic-ws: "npm:^5.0.0" + sync-fetch: "npm:0.6.0-2" + tslib: "npm:^2.4.0" + value-or-promise: "npm:^1.0.11" + ws: "npm:^8.17.1" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/b4ab95233ab7cf26be90d8c986ed925f8a55a9a70cd14786a5404f632474f133ed3ced85070adcb2e35e7d0181d320ab3214ab91fb594a48ade951d7150b19c5 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:8.9.0": + version: 8.9.0 + resolution: "@graphql-tools/utils@npm:8.9.0" + dependencies: + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/de5930b33664c53f0d22781bb16b4e029afaad165539faf80bd520adfad969c024891db672a2ff96195d8d1185bac66b284ebde67938e554d04c0798453da002 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.7.0, @graphql-tools/utils@npm:^10.7.2": + version: 10.7.2 + resolution: "@graphql-tools/utils@npm:10.7.2" + dependencies: + "@graphql-typed-document-node/core": "npm:^3.1.1" + cross-inspect: "npm:1.0.1" + dset: "npm:^3.1.4" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/b4725b081e5ff5c1441036db76ce907a6fe9b4c94aa9ceb070f75541b2297c3cccaa182f91d214f9abe6d89df33d8df51e055afbc4e382b01e8d8fb7c2f6edf6 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:^8.8.0": + version: 8.13.1 + resolution: "@graphql-tools/utils@npm:8.13.1" + dependencies: + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/b3679e43f6cbde26924dc6eabc5b45fe1481aac5793487284750167749c2b46f5e44ab0344f8264f8cfa657901348d8cf566c54c3c9eca2c403cb69039edf766 + languageName: node + linkType: hard + +"@graphql-tools/wrap@npm:^10.0.16": + version: 10.0.28 + resolution: "@graphql-tools/wrap@npm:10.0.28" + dependencies: + "@graphql-tools/delegate": "npm:^10.2.10" + "@graphql-tools/schema": "npm:^10.0.11" + "@graphql-tools/utils": "npm:^10.7.0" + tslib: "npm:^2.8.1" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/f93df6753679e7d81cf8ef7fa645c97628aa4657a26c6e4d12921045ededc6fb6eba5b38c64b425fc26b689d121dad1464369c52204f03ebbe637c81a2ba1c4a + languageName: node + linkType: hard + +"@graphql-typed-document-node/core@npm:^3.1.1, @graphql-typed-document-node/core@npm:^3.2.0": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d + languageName: node + linkType: hard + +"@grpc/grpc-js@npm:^1.10.9, @grpc/grpc-js@npm:^1.11.1": + version: 1.12.5 + resolution: "@grpc/grpc-js@npm:1.12.5" + dependencies: + "@grpc/proto-loader": "npm:^0.7.13" + "@js-sdsl/ordered-map": "npm:^4.4.2" + checksum: 10/4f8ead236dcab4d94e15e62d65ad2d93732d37f5cc52ffafe67ae00f69eae4a4c97d6d34a1b9eac9f30206468f2d15302ea6649afcba1d38929afa9d1e7c12d5 + languageName: node + linkType: hard + +"@grpc/proto-loader@npm:^0.7.13": + version: 0.7.13 + resolution: "@grpc/proto-loader@npm:0.7.13" + dependencies: + lodash.camelcase: "npm:^4.3.0" + long: "npm:^5.0.0" + protobufjs: "npm:^7.2.5" + yargs: "npm:^17.7.2" + bin: + proto-loader-gen-types: build/bin/proto-loader-gen-types.js + checksum: 10/7e2d842c2061cbaf6450c71da0077263be3bab165454d5c8a3e1ae4d3c6d2915f02fd27da63ff01f05e127b1221acd40705273f5d29303901e60514e852992f4 + languageName: node + linkType: hard + +"@headlessui/react@npm:^1.7.15": + version: 1.7.19 + resolution: "@headlessui/react@npm:1.7.19" + dependencies: + "@tanstack/react-virtual": "npm:^3.0.0-beta.60" + client-only: "npm:^0.0.1" + peerDependencies: + react: ^16 || ^17 || ^18 + react-dom: ^16 || ^17 || ^18 + checksum: 10/682dddfb53e4dc1e457f47fa3ee3a35ad02255b552eec90e703a2b4cb6b07428da7c392844c24ac846e8061cd0fb840e1933b6b91b5416fde3d2648f075a6765 + languageName: node + linkType: hard + +"@httptoolkit/httpolyglot@npm:^2.2.1": + version: 2.2.2 + resolution: "@httptoolkit/httpolyglot@npm:2.2.2" + dependencies: + "@types/node": "npm:*" + checksum: 10/d586e9f66f520eea6be18b6a5027c772a0d35a149e8513bdac7e3612013a10d5fd8034c1aa8dc0ace895da3a59185f3df032b9ff9f6c0e2e25c148607316167b + languageName: node + linkType: hard + +"@httptoolkit/subscriptions-transport-ws@npm:^0.11.2": + version: 0.11.2 + resolution: "@httptoolkit/subscriptions-transport-ws@npm:0.11.2" + dependencies: + backo2: "npm:^1.0.2" + eventemitter3: "npm:^3.1.0" + iterall: "npm:^1.2.1" + symbol-observable: "npm:^1.0.4" + ws: "npm:^8.8.0" + peerDependencies: + graphql: ^15.7.2 || ^16.0.0 + checksum: 10/cc3500e5c752fa96c76de176d144b8479704fbdc9c6ad1817feead28157b14e31954a767d66c89fd6ec74db6fbafeaad1406fae22cf9afe30b56e22425720a77 + languageName: node + linkType: hard + +"@httptoolkit/websocket-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "@httptoolkit/websocket-stream@npm:6.0.1" + dependencies: + "@types/ws": "npm:*" + duplexify: "npm:^3.5.1" + inherits: "npm:^2.0.1" + isomorphic-ws: "npm:^4.0.1" + readable-stream: "npm:^2.3.3" + safe-buffer: "npm:^5.1.2" + ws: "npm:*" + xtend: "npm:^4.0.0" + checksum: 10/0f01af78c94357d1313621a8ddc3907af2b161cdd3964305fd916d0447e3647ec2484d46772fa435aeb736a657ac9ad1007aaba3ba9d147b5ef6c43b2cb04350 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.3" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10/524df31e61a85392a2433bf5d03164e03da26c03d009f27852e7dcfdafbc4a23f17f021dacf88e0a7a9fe04ca032017945d19b57a16e2676d9114c22a53a9d11 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10/e993950e346331e5a32eefb27948ecdee2a2c4ab3f072b8f566cd213ef485dd50a3ca497050608db91006f5479e43f91a439aef68d2a313bd3ded06909c7c5b3 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 + languageName: node + linkType: hard + +"@internal/manage@workspace:.": + version: 0.0.0-use.local + resolution: "@internal/manage@workspace:." + dependencies: + "@backstage/cli": "npm:^0.29.5" + "@backstage/e2e-test-utils": "npm:^0.1.1" + "@backstage/repo-tools": "npm:^0.12.1" + "@changesets/cli": "npm:^2.27.1" + knip: "npm:^5.27.4" + node-gyp: "npm:^11.0.0" + prettier: "npm:^2.3.2" + typescript: "npm:~5.3.0" + languageName: unknown + linkType: soft + +"@ioredis/commands@npm:^1.1.1": + version: 1.2.0 + resolution: "@ioredis/commands@npm:1.2.0" + checksum: 10/a8253c9539b7e5463d4a98e6aa5b1b863fb4a4978191ba9dc42ec2c0fb5179d8d1fe4a29096d5954f91ba9600d1bdc6c1d18b044eab36f645f267fd37d7c0906 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10/e9ed5fd27c3aec1095e3a16e0c0cf148d1fee55a38665c35f7b3f86a9b5d00d042ddaabc98e8a1cb7463b9378c15f22a94eb35e99469c201453eb8375191f243 + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10/4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5 + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: "npm:^5.3.1" + find-up: "npm:^4.1.0" + get-package-type: "npm:^0.1.0" + js-yaml: "npm:^3.13.1" + resolve-from: "npm:^5.0.0" + checksum: 10/b000a5acd8d4fe6e34e25c399c8bdbb5d3a202b4e10416e17bfc25e12bab90bb56d33db6089ae30569b52686f4b35ff28ef26e88e21e69821d2b85884bd055b8 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 10/a9b1e49acdf5efc2f5b2359f2df7f90c5c725f2656f16099e8b2cd3a000619ecca9fc48cf693ba789cf0fd989f6e0df6a22bc05574be4223ecdbb7997d04384b + languageName: node + linkType: hard + +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10/4a80c750e8a31f344233cb9951dee9b77bf6b89377cb131f8b3cde07ff218f504370133a5963f6a786af4d2ce7f85642db206ff7a15f99fe58df4c38ac04899e + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/reporters": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-changed-files: "npm:^29.7.0" + jest-config: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-resolve-dependencies: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-ansi: "npm:^6.0.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10/ab6ac2e562d083faac7d8152ec1cc4eccc80f62e9579b69ed40aedf7211a6b2d57024a6cd53c4e35fd051c39a236e86257d1d99ebdb122291969a0a04563b51e + languageName: node + linkType: hard + +"@jest/create-cache-key-function@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/create-cache-key-function@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + checksum: 10/061ef63b13ec8c8e5d08e4456f03b5cf8c7f9c1cab4fed8402e1479153cafce6eea80420e308ef62027abb7e29b825fcfa06551856bd021d98e92e381bf91723 + languageName: node + linkType: hard + +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + checksum: 10/90b5844a9a9d8097f2cf107b1b5e57007c552f64315da8c1f51217eeb0a9664889d3f145cdf8acf23a84f4d8309a6675e27d5b059659a004db0ea9546d1c81a8 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + checksum: 10/ef8d379778ef574a17bde2801a6f4469f8022a46a5f9e385191dc73bb1fc318996beaed4513fbd7055c2847227a1bed2469977821866534593a6e52a281499ee + languageName: node + linkType: hard + +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + checksum: 10/fea6c3317a8da5c840429d90bfe49d928e89c9e89fceee2149b93a11b7e9c73d2f6e4d7cdf647163da938fc4e2169e4490be6bae64952902bc7a701033fd4880 + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@sinonjs/fake-timers": "npm:^10.0.2" + "@types/node": "npm:*" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10/9b394e04ffc46f91725ecfdff34c4e043eb7a16e1d78964094c9db3fde0b1c8803e45943a980e8c740d0a3d45661906de1416ca5891a538b0660481a3a828c27 + languageName: node + linkType: hard + +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + jest-mock: "npm:^29.7.0" + checksum: 10/97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 + languageName: node + linkType: hard + +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": "npm:^0.2.3" + "@jest/console": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + collect-v8-coverage: "npm:^1.0.0" + exit: "npm:^0.1.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^6.0.0" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.1.3" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + slash: "npm:^3.0.0" + string-length: "npm:^4.0.1" + strip-ansi: "npm:^6.0.0" + v8-to-istanbul: "npm:^9.0.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10/a17d1644b26dea14445cedd45567f4ba7834f980be2ef74447204e14238f121b50d8b858fde648083d2cd8f305f81ba434ba49e37a5f4237a6f2a61180cc73dc + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": "npm:^0.27.8" + checksum: 10/910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.18" + callsites: "npm:^3.0.0" + graceful-fs: "npm:^4.2.9" + checksum: 10/bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb + languageName: node + linkType: hard + +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + collect-v8-coverage: "npm:^1.0.0" + checksum: 10/c073ab7dfe3c562bff2b8fee6cc724ccc20aa96bcd8ab48ccb2aa309b4c0c1923a9e703cea386bd6ae9b71133e92810475bb9c7c22328fc63f797ad3324ed189 + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" + dependencies: + "@jest/test-result": "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10/4420c26a0baa7035c5419b0892ff8ffe9a41b1583ec54a10db3037cd46a7e29dd3d7202f8aa9d376e9e53be5f8b1bc0d16e1de6880a6d319b033b01dc4c8f639 + languageName: node + linkType: hard + +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + babel-plugin-istanbul: "npm:^6.1.1" + chalk: "npm:^4.0.0" + convert-source-map: "npm:^2.0.0" + fast-json-stable-stringify: "npm:^2.1.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pirates: "npm:^4.0.4" + slash: "npm:^3.0.0" + write-file-atomic: "npm:^4.0.2" + checksum: 10/30f42293545ab037d5799c81d3e12515790bb58513d37f788ce32d53326d0d72ebf5b40f989e6896739aa50a5f77be44686e510966370d58511d5ad2637c68c1 + languageName: node + linkType: hard + +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.8" + chalk: "npm:^4.0.0" + checksum: 10/f74bf512fd09bbe2433a2ad460b04668b7075235eea9a0c77d6a42222c10a79b9747dc2b2a623f140ed40d6865a2ed8f538f3cbb75169120ea863f29a7ed76cd + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/9d3a56ab3612ab9b85d38b2a93b87f3324f11c5130859957f6500e4ac8ce35f299d5ccc3ecd1ae87597601ecf83cee29e9afd04c18777c24011073992ff946df + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10/832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + languageName: node + linkType: hard + +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + checksum: 10/0a9aca9320dc9044014ba0ef989b3a8411b0d778895553e3b7ca2ac0a75a20af4a5ad3f202acfb1879fa40466036a4417e1d5b38305baed8b9c1ebe6e4b3e7f5 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15, @jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10/83deafb8e7a5ca98993c2c6eeaa93c270f6f647a4c0dc00deb38c9cf9b2d3b7bf15e8839540155247ef034a052c0ec4466f980bf0c9e2ab63b97d16c0cedd3ff + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10/dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc + languageName: node + linkType: hard + +"@js-sdsl/ordered-map@npm:^4.4.2": + version: 4.4.2 + resolution: "@js-sdsl/ordered-map@npm:4.4.2" + checksum: 10/ac64e3f0615ecc015461c9f527f124d2edaa9e68de153c1e270c627e01e83d046522d7e872692fd57a8c514578b539afceff75831c0d8b2a9a7a347fbed35af4 + languageName: node + linkType: hard + +"@jsdevtools/ono@npm:7.1.3, @jsdevtools/ono@npm:^7.1.3": + version: 7.1.3 + resolution: "@jsdevtools/ono@npm:7.1.3" + checksum: 10/d4a036ccb9d2b21b7e4cec077c59a5a83fad58adacbce89e7e6b77a703050481ff5b6d813aef7f5ff0a8347a85a0eedf599e2e6bb5784a971a93e53e43b10157 + languageName: node + linkType: hard + +"@jsep-plugin/assignment@npm:^1.3.0": + version: 1.3.0 + resolution: "@jsep-plugin/assignment@npm:1.3.0" + peerDependencies: + jsep: ^0.4.0||^1.0.0 + checksum: 10/0c93b703d84af95b4be9fb6c23fbdbe7c7b6985b41c98fd10386cd54686ed1eb751cb39f5d54abcb621e4da2a0900a3b2a852e5bf7f2d322b756db3b22e42a45 + languageName: node + linkType: hard + +"@jsep-plugin/regex@npm:^1.0.1, @jsep-plugin/regex@npm:^1.0.4": + version: 1.0.4 + resolution: "@jsep-plugin/regex@npm:1.0.4" + peerDependencies: + jsep: ^0.4.0||^1.0.0 + checksum: 10/0ea6ba81f03955972b762fd9fbc8e3fd7e1c1c12e52ce3d4366e23c0a63c8bff8528687b8b3d8f641cf9f626f8bf5a7841efcd31a2489fe967e1900e5738ee3a + languageName: node + linkType: hard + +"@jsep-plugin/ternary@npm:^1.0.2": + version: 1.1.4 + resolution: "@jsep-plugin/ternary@npm:1.1.4" + peerDependencies: + jsep: ^0.4.0||^1.0.0 + checksum: 10/26e16c463407ae6a0ca4733d8f4969b68bf63e476e8211a95e78b990ca253a6f38f63fc26815d24c4645c613aaad3690aed3fb90a98d036055bc8e5204e3391e + languageName: node + linkType: hard + +"@jsonjoy.com/base64@npm:^1.1.1": + version: 1.1.2 + resolution: "@jsonjoy.com/base64@npm:1.1.2" + peerDependencies: + tslib: 2 + checksum: 10/d76bb58eff841c090d9bf69a073611ffa73c40a664ccbcea689f65961f57d7b24051269d06b437e4f6204285d6ba92f50f587c5e95c5f9e4f10b36a2ed4cd0c8 + languageName: node + linkType: hard + +"@jsonjoy.com/json-pack@npm:^1.0.3": + version: 1.1.1 + resolution: "@jsonjoy.com/json-pack@npm:1.1.1" + dependencies: + "@jsonjoy.com/base64": "npm:^1.1.1" + "@jsonjoy.com/util": "npm:^1.1.2" + hyperdyperid: "npm:^1.2.0" + thingies: "npm:^1.20.0" + peerDependencies: + tslib: 2 + checksum: 10/c4b1148ba52405006c3a1bbf12610c30066310e76e4995ac4863e2d9ea43c7bf1037e3bba010954bcc11725d2fc83dc6fc13304989e93100eb2d6bce4a15b9ef + languageName: node + linkType: hard + +"@jsonjoy.com/util@npm:^1.1.2, @jsonjoy.com/util@npm:^1.3.0": + version: 1.5.0 + resolution: "@jsonjoy.com/util@npm:1.5.0" + peerDependencies: + tslib: 2 + checksum: 10/5b370183700cb40af52841294ba99c3dfb3dcb7fe2a122e15c737eb908d11392d314b75518874c7d631092bb29658ebe298d174b05baeb1adeb33884b9aa33cf + languageName: node + linkType: hard + +"@juggle/resize-observer@npm:^3.3.1": + version: 3.4.0 + resolution: "@juggle/resize-observer@npm:3.4.0" + checksum: 10/73d1d00ee9132fb6f0aea0531940a6b93603e935590bd450fc6285a328d906102eeeb95dea77b2edac0e779031a9708aa8c82502bd298ee4dd26e7dff48f397a + languageName: node + linkType: hard + +"@keyv/memcache@npm:^1.3.5": + version: 1.4.1 + resolution: "@keyv/memcache@npm:1.4.1" + dependencies: + json-buffer: "npm:^3.0.1" + memjs: "npm:^1.3.2" + checksum: 10/a3db21549ec445925c28419b19210984875aa03d1ce513792064336c7785c0e6d3ac015e71ca328a2e83f4ed409475f057a37d86c7fb2a11832740b024bcc3ff + languageName: node + linkType: hard + +"@keyv/memcache@npm:^2.0.1": + version: 2.0.1 + resolution: "@keyv/memcache@npm:2.0.1" + dependencies: + "@keyv/serialize": "npm:*" + buffer: "npm:^6.0.3" + memjs: "npm:^1.3.2" + checksum: 10/618fd2441cb7e0b71c6af37b87bddc39d3439c9863def47cff8c75c9c05ca45e035bfc1bfa140a661befce5a06a491f25388aab6d330c0eaefe7b87534274c48 + languageName: node + linkType: hard + +"@keyv/redis@npm:^2.5.3": + version: 2.8.5 + resolution: "@keyv/redis@npm:2.8.5" + dependencies: + ioredis: "npm:^5.4.1" + checksum: 10/7243abf11ab698b3f97f0c86bd56f1ec79a26b0e422b23c026d8dd2ad9f629852eaf683354c863508d142b934c73b985cd01f62583b07dfcd2b6842b52b853c3 + languageName: node + linkType: hard + +"@keyv/redis@npm:^4.0.1": + version: 4.2.0 + resolution: "@keyv/redis@npm:4.2.0" + dependencies: + cluster-key-slot: "npm:^1.1.2" + keyv: "npm:^5.2.2" + redis: "npm:^4.7.0" + checksum: 10/c420dad4b8ee7082dccaaa917a881e127384cce2547637a779a4bf3161b75bffc7b307aaaff818d4acc9cff9c34a290eac4586bb5fc75370d3d71f9fc918309a + languageName: node + linkType: hard + +"@keyv/serialize@npm:*, @keyv/serialize@npm:^1.0.2": + version: 1.0.2 + resolution: "@keyv/serialize@npm:1.0.2" + dependencies: + buffer: "npm:^6.0.3" + checksum: 10/6a42a5778a6b4542f6903ba7e6a17c5bd116441798d75c95fba9908c76c7606db527fad710b5c54abc6175e49b1bbaaafe3b836ad4b91e1af701394134f1d504 + languageName: node + linkType: hard + +"@kubernetes/client-node@npm:0.20.0": + version: 0.20.0 + resolution: "@kubernetes/client-node@npm:0.20.0" + dependencies: + "@types/js-yaml": "npm:^4.0.1" + "@types/node": "npm:^20.1.1" + "@types/request": "npm:^2.47.1" + "@types/ws": "npm:^8.5.3" + byline: "npm:^5.0.0" + isomorphic-ws: "npm:^5.0.0" + js-yaml: "npm:^4.1.0" + jsonpath-plus: "npm:^7.2.0" + openid-client: "npm:^5.3.0" + request: "npm:^2.88.0" + rfc4648: "npm:^1.3.0" + stream-buffers: "npm:^3.0.2" + tar: "npm:^6.1.11" + tslib: "npm:^2.4.1" + ws: "npm:^8.11.0" + dependenciesMeta: + openid-client: + optional: true + checksum: 10/1d53a062f4d9a574b6400fa04dbbaea090aa2c69a8d65d609b90d3d606f384f60c191d2f969602a29eaaff1eebf30b4cbbc56a479910bd85c98205c4d3219e00 + languageName: node + linkType: hard + +"@leichtgewicht/ip-codec@npm:^2.0.1": + version: 2.0.5 + resolution: "@leichtgewicht/ip-codec@npm:2.0.5" + checksum: 10/cb98c608392abe59457a14e00134e7dfa57c0c9b459871730cd4e907bb12b834cbd03e08ad8663fea9e486f260da7f1293ccd9af0376bf5524dd8536192f248c + languageName: node + linkType: hard + +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.1.0": + version: 1.2.3 + resolution: "@lezer/common@npm:1.2.3" + checksum: 10/dad24e353e4e67d88b203191361ca1dff26c01c2b7b4ae829b668a1d115929334d077217367683e39180c0556510ed2066ea8ddba2b079be7c08a7152208cc87 + languageName: node + linkType: hard + +"@lezer/highlight@npm:^1.0.0": + version: 1.2.1 + resolution: "@lezer/highlight@npm:1.2.1" + dependencies: + "@lezer/common": "npm:^1.0.0" + checksum: 10/fec3082419ee87fb265039b680fbac6796f862d8e3042dcb860e8c5a34291503a74927302b568ff1a626f0d2b5cf8dae02a51cfd200084eb329e5fd1236c3163 + languageName: node + linkType: hard + +"@lezer/lr@npm:^1.0.0": + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" + dependencies: + "@lezer/common": "npm:^1.0.0" + checksum: 10/f7b505906c8d8df14c07866553cf3dae1e065b1da8b28fbb4193fd67ab8d187eb45f92759e29a2cfe4283296f0aa864b38a0a91708ecfc3e24b8f662d626e0c6 + languageName: node + linkType: hard + +"@lukeed/csprng@npm:^1.0.0": + version: 1.1.0 + resolution: "@lukeed/csprng@npm:1.1.0" + checksum: 10/926f5f7fc629470ca9a8af355bfcd0271d34535f7be3890f69902432bddc3262029bb5dbe9025542cf6c9883d878692eef2815fc2f3ba5b92e9da1f9eba2e51b + languageName: node + linkType: hard + +"@manypkg/find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "@manypkg/find-root@npm:1.1.0" + dependencies: + "@babel/runtime": "npm:^7.5.5" + "@types/node": "npm:^12.7.1" + find-up: "npm:^4.1.0" + fs-extra: "npm:^8.1.0" + checksum: 10/31e7dde82612a0e37ebb07876d76b1bf2aedc5b285b5e50d94cdf63edbf1fa3970349b84a5837a3c687e5b643e9a4f4588ae1f4b4ae9d412516d57bf977a08db + languageName: node + linkType: hard + +"@manypkg/get-packages@npm:^1.1.3": + version: 1.1.3 + resolution: "@manypkg/get-packages@npm:1.1.3" + dependencies: + "@babel/runtime": "npm:^7.5.5" + "@changesets/types": "npm:^4.0.1" + "@manypkg/find-root": "npm:^1.1.0" + fs-extra: "npm:^8.1.0" + globby: "npm:^11.0.0" + read-yaml-file: "npm:^1.1.0" + checksum: 10/4912e002199ff3974ec48586376a04c5f1815a4faa5f4d36b0698838eec143c9d4e3d42c41e0de009f48a1e2251802ed63c1311ab44de225b50102f85919a248 + languageName: node + linkType: hard + +"@marijn/find-cluster-break@npm:^1.0.0": + version: 1.0.2 + resolution: "@marijn/find-cluster-break@npm:1.0.2" + checksum: 10/92fe7ba43ce3d3314f593e4c2fd822d7089649baff47a474fe04b83e3119931d7cf58388747d429ff65fa2db14f5ca57e787268c482e868fc67759511f61f09b + languageName: node + linkType: hard + +"@material-table/core@npm:^3.1.0": + version: 3.2.5 + resolution: "@material-table/core@npm:3.2.5" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@date-io/date-fns": "npm:^1.3.13" + "@material-ui/pickers": "npm:^3.2.10" + "@material-ui/styles": "npm:^4.11.4" + classnames: "npm:^2.2.6" + date-fns: "npm:^2.16.1" + debounce: "npm:^1.2.0" + fast-deep-equal: "npm:^3.1.3" + prop-types: "npm:^15.7.2" + react-beautiful-dnd: "npm:^13.0.0" + react-double-scrollbar: "npm:0.0.15" + uuid: "npm:^3.4.0" + peerDependencies: + "@date-io/core": ^1.3.13 + "@material-ui/core": ^4.11.2 + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10/6a636d39145fa2a2389923298b7c461aeaa4f970905e23d52ac71b5c3a39537fca76b987aa60fe0a9206206a57e483a81ac0d99cf4ade1efcecd650293e344d3 + languageName: node + linkType: hard + +"@material-table/exporters@npm:^1.2.19": + version: 1.2.19 + resolution: "@material-table/exporters@npm:1.2.19" + dependencies: + filefy: "npm:^0.1.11" + jspdf: "npm:^2.5.1" + jspdf-autotable: "npm:^3.6.0" + peerDependencies: + "@material-table/core": "*" + checksum: 10/7cfdabb7ae2979b874a9dc13e14c4beda86f22d1f618ddc01cb6f71d9e04a46be2d9cf49351efa8676353516d03cf42a8bd63520b610ee2a293165155dd7faf3 + languageName: node + linkType: hard + +"@material-ui/core@npm:^4.12.2, @material-ui/core@npm:^4.12.4, @material-ui/core@npm:^4.9.13": + version: 4.12.4 + resolution: "@material-ui/core@npm:4.12.4" + dependencies: + "@babel/runtime": "npm:^7.4.4" + "@material-ui/styles": "npm:^4.11.5" + "@material-ui/system": "npm:^4.12.2" + "@material-ui/types": "npm:5.1.0" + "@material-ui/utils": "npm:^4.11.3" + "@types/react-transition-group": "npm:^4.2.0" + clsx: "npm:^1.0.4" + hoist-non-react-statics: "npm:^3.3.2" + popper.js: "npm:1.16.1-lts" + prop-types: "npm:^15.7.2" + react-is: "npm:^16.8.0 || ^17.0.0" + react-transition-group: "npm:^4.4.0" + peerDependencies: + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/14ae257e9ca44e8ddbccdbdbb92a2e84b604ee32fdf6a18c1612222278dd7540d4a25a8877ed8881f5f2458b10226bfef93c9a4b904c0ef664a1cf0ab53226cb + languageName: node + linkType: hard + +"@material-ui/icons@npm:^4.9.1": + version: 4.11.3 + resolution: "@material-ui/icons@npm:4.11.3" + dependencies: + "@babel/runtime": "npm:^7.4.4" + peerDependencies: + "@material-ui/core": ^4.0.0 + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/be9bf988a8b23e0885ca0c1dc5a4960f6c28f401079dbc13f840f4bd738ef95965cb4f751d609cb6acc819e1c2f8a7293d0a6f26b3685a711506679e4834ab35 + languageName: node + linkType: hard + +"@material-ui/lab@npm:4.0.0-alpha.61, @material-ui/lab@npm:^4.0.0-alpha.61": + version: 4.0.0-alpha.61 + resolution: "@material-ui/lab@npm:4.0.0-alpha.61" + dependencies: + "@babel/runtime": "npm:^7.4.4" + "@material-ui/utils": "npm:^4.11.3" + clsx: "npm:^1.0.4" + prop-types: "npm:^15.7.2" + react-is: "npm:^16.8.0 || ^17.0.0" + peerDependencies: + "@material-ui/core": ^4.12.1 + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/f1c05cec33908c9e3c1c5c89e27f8e8cc747c26028b701a87d6c20e0fd9df7ac7632897f370311fc2b54aed3834903243ffdf303b5d74c4d42a646a6784cca5d + languageName: node + linkType: hard + +"@material-ui/pickers@npm:^3.2.10": + version: 3.3.11 + resolution: "@material-ui/pickers@npm:3.3.11" + dependencies: + "@babel/runtime": "npm:^7.6.0" + "@date-io/core": "npm:1.x" + "@types/styled-jsx": "npm:^2.2.8" + clsx: "npm:^1.0.2" + react-transition-group: "npm:^4.0.0" + rifm: "npm:^0.7.0" + peerDependencies: + "@date-io/core": ^1.3.6 + "@material-ui/core": ^4.0.0 + prop-types: ^15.6.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + checksum: 10/f3c4429ec5be97903473a8d7d4171aa92356887c3c58357fd7404e7a74b002a5aa529818ad946049aebb8a1c2a652ee459f4e5be57bec9872778ca810bc8205f + languageName: node + linkType: hard + +"@material-ui/styles@npm:^4.10.0, @material-ui/styles@npm:^4.11.0, @material-ui/styles@npm:^4.11.4, @material-ui/styles@npm:^4.11.5": + version: 4.11.5 + resolution: "@material-ui/styles@npm:4.11.5" + dependencies: + "@babel/runtime": "npm:^7.4.4" + "@emotion/hash": "npm:^0.8.0" + "@material-ui/types": "npm:5.1.0" + "@material-ui/utils": "npm:^4.11.3" + clsx: "npm:^1.0.4" + csstype: "npm:^2.5.2" + hoist-non-react-statics: "npm:^3.3.2" + jss: "npm:^10.5.1" + jss-plugin-camel-case: "npm:^10.5.1" + jss-plugin-default-unit: "npm:^10.5.1" + jss-plugin-global: "npm:^10.5.1" + jss-plugin-nested: "npm:^10.5.1" + jss-plugin-props-sort: "npm:^10.5.1" + jss-plugin-rule-value-function: "npm:^10.5.1" + jss-plugin-vendor-prefixer: "npm:^10.5.1" + prop-types: "npm:^15.7.2" + peerDependencies: + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/dd6ca6d0a9e82fe098581bcf6d70b6b7e0a7bd21f15c5e66f4ddc4d55d5164b7d979cd0eb8164854b845606f4915210027ceb4dfda4ac1649008539d47d70dc9 + languageName: node + linkType: hard + +"@material-ui/system@npm:^4.12.2": + version: 4.12.2 + resolution: "@material-ui/system@npm:4.12.2" + dependencies: + "@babel/runtime": "npm:^7.4.4" + "@material-ui/utils": "npm:^4.11.3" + csstype: "npm:^2.5.2" + prop-types: "npm:^15.7.2" + peerDependencies: + "@types/react": ^16.8.6 || ^17.0.0 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/e4a64e7ab515689053df2f2ba49a8f18f6b4e750446ad5d8f176e853f0a64e26951755424c2daa4277fd454ba395e5e018a98ee55a9b9de2c4492d5f3090385a + languageName: node + linkType: hard + +"@material-ui/types@npm:5.1.0": + version: 5.1.0 + resolution: "@material-ui/types@npm:5.1.0" + peerDependencies: + "@types/react": "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/64ac0938ee6f48011ba596f7422ab0660d9a8d9b4f5f183b39bd63185b1ce724209f65580f0af686d59b524603ffa57418ca2d443b69bec894303f80779c61f8 + languageName: node + linkType: hard + +"@material-ui/types@npm:^6.0.1": + version: 6.0.2 + resolution: "@material-ui/types@npm:6.0.2" + peerDependencies: + "@types/react": "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/cfdc412efcf471924a058e76601a2dcbf20924db3df34093b9329983172653f22d46fbaf9ae767a26eb9ed060f8e19571829329019019441f6801e1aae4cfdb4 + languageName: node + linkType: hard + +"@material-ui/utils@npm:^4.11.3": + version: 4.11.3 + resolution: "@material-ui/utils@npm:4.11.3" + dependencies: + "@babel/runtime": "npm:^7.4.4" + prop-types: "npm:^15.7.2" + react-is: "npm:^16.8.0 || ^17.0.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + checksum: 10/fb31d6914c0cd7919da2bc62b3c03302e26f31f7afe5231c80ff93fcf58e4d71cfcafdc042e37c411418fcb25a5e0a5602a586e904b605d3653c4208df5c69df + languageName: node + linkType: hard + +"@microsoft/api-documenter@npm:^7.25.7": + version: 7.26.5 + resolution: "@microsoft/api-documenter@npm:7.26.5" + dependencies: + "@microsoft/api-extractor-model": "npm:7.30.2" + "@microsoft/tsdoc": "npm:~0.15.1" + "@rushstack/node-core-library": "npm:5.10.2" + "@rushstack/terminal": "npm:0.14.5" + "@rushstack/ts-command-line": "npm:4.23.3" + js-yaml: "npm:~3.13.1" + resolve: "npm:~1.22.1" + bin: + api-documenter: bin/api-documenter + checksum: 10/812028f862a2bcaea19d42430d0feda5263216a050f8d94e391342a7ba802c3ecb2627891c8772ab446e5b6b0dad098518802923dd68c23f7f28a9919b8aa910 + languageName: node + linkType: hard + +"@microsoft/api-extractor-model@npm:7.30.2": + version: 7.30.2 + resolution: "@microsoft/api-extractor-model@npm:7.30.2" + dependencies: + "@microsoft/tsdoc": "npm:~0.15.1" + "@microsoft/tsdoc-config": "npm:~0.17.1" + "@rushstack/node-core-library": "npm:5.10.2" + checksum: 10/7fef77c6a00528fe202f05e5c5ff83500b589cae3f0a9b17d9afe23b739df0c89edd84e0b7ef226396d4b1576e1c183aa59408d9c139248499f2d3bf58faad5e + languageName: node + linkType: hard + +"@microsoft/api-extractor@npm:^7.47.2": + version: 7.49.1 + resolution: "@microsoft/api-extractor@npm:7.49.1" + dependencies: + "@microsoft/api-extractor-model": "npm:7.30.2" + "@microsoft/tsdoc": "npm:~0.15.1" + "@microsoft/tsdoc-config": "npm:~0.17.1" + "@rushstack/node-core-library": "npm:5.10.2" + "@rushstack/rig-package": "npm:0.5.3" + "@rushstack/terminal": "npm:0.14.5" + "@rushstack/ts-command-line": "npm:4.23.3" + lodash: "npm:~4.17.15" + minimatch: "npm:~3.0.3" + resolve: "npm:~1.22.1" + semver: "npm:~7.5.4" + source-map: "npm:~0.6.1" + typescript: "npm:5.7.2" + bin: + api-extractor: bin/api-extractor + checksum: 10/b50382c938c9b7eb513456cf2cbc86ecefb6055cd4d40cd811d23f5cf4389008de187f74154af6e397b060bc40ae3457c387c20d2cd712b2d55cef0e2fec1cef + languageName: node + linkType: hard + +"@microsoft/fetch-event-source@npm:^2.0.1": + version: 2.0.1 + resolution: "@microsoft/fetch-event-source@npm:2.0.1" + checksum: 10/c147055fafe83801efb9834136ba4b7944406a0bba3517afcea6ceeb56714b5ef78c2e89544bd9c1426ad1d2f964a087e3a719169ae04855836a23fb53269f8d + languageName: node + linkType: hard + +"@microsoft/tsdoc-config@npm:~0.17.1": + version: 0.17.1 + resolution: "@microsoft/tsdoc-config@npm:0.17.1" + dependencies: + "@microsoft/tsdoc": "npm:0.15.1" + ajv: "npm:~8.12.0" + jju: "npm:~1.4.0" + resolve: "npm:~1.22.2" + checksum: 10/19f57b752413916c7ad14466650f48ba1acaf674411b6a44065e93f762d391e501cb553eeb8ae3834f1f1f064ddc83a26bdbd8026c9b2c0c194fe90818078eb9 + languageName: node + linkType: hard + +"@microsoft/tsdoc@npm:0.15.1, @microsoft/tsdoc@npm:~0.15.1": + version: 0.15.1 + resolution: "@microsoft/tsdoc@npm:0.15.1" + checksum: 10/1a92612883088fe184dba596e7ba7a0daef0e6981caeca22bad6ad551d2247294f12e368537d0d8192525cf5743f7f15fcc2ad7b3b849f26a09a15ffdd89fd0c + languageName: node + linkType: hard + +"@module-federation/bridge-react-webpack-plugin@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/bridge-react-webpack-plugin@npm:0.8.9" + dependencies: + "@module-federation/sdk": "npm:0.8.9" + "@types/semver": "npm:7.5.8" + semver: "npm:7.6.3" + checksum: 10/0826c05efa5141b621171c4df176a32df60ff10808c8ea609927914a61fc08b753f4f6fabdf66164adea44acbe6ae4b6b634f01ee70f5d854afe0ccf74968c15 + languageName: node + linkType: hard + +"@module-federation/data-prefetch@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/data-prefetch@npm:0.8.9" + dependencies: + "@module-federation/runtime": "npm:0.8.9" + "@module-federation/sdk": "npm:0.8.9" + fs-extra: "npm:9.1.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10/a12b00018ec5e58036ad4917b2ca8f8f659e963d537d76fabf69d353178116ca6c04b87e208235f7dbcc9ff9ffa561bd8505e6432bf84df32aee9ba2c40bb5ac + languageName: node + linkType: hard + +"@module-federation/dts-plugin@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/dts-plugin@npm:0.8.9" + dependencies: + "@module-federation/error-codes": "npm:0.8.9" + "@module-federation/managers": "npm:0.8.9" + "@module-federation/sdk": "npm:0.8.9" + "@module-federation/third-party-dts-extractor": "npm:0.8.9" + adm-zip: "npm:^0.5.10" + ansi-colors: "npm:^4.1.3" + axios: "npm:^1.7.4" + chalk: "npm:3.0.0" + fs-extra: "npm:9.1.0" + isomorphic-ws: "npm:5.0.0" + koa: "npm:2.15.3" + lodash.clonedeepwith: "npm:4.5.0" + log4js: "npm:6.9.1" + node-schedule: "npm:2.1.1" + rambda: "npm:^9.1.0" + ws: "npm:8.18.0" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + vue-tsc: + optional: true + checksum: 10/eb50c14d0a5bf8165f3bfba7d00e88b307f56f99a06dfd97c181dd25c3a0c6853fffb52de305ea55b92b6520c7038ed8261ce950b4060e0e719effd0209726d3 + languageName: node + linkType: hard + +"@module-federation/enhanced@npm:^0.8.0": + version: 0.8.9 + resolution: "@module-federation/enhanced@npm:0.8.9" + dependencies: + "@module-federation/bridge-react-webpack-plugin": "npm:0.8.9" + "@module-federation/data-prefetch": "npm:0.8.9" + "@module-federation/dts-plugin": "npm:0.8.9" + "@module-federation/error-codes": "npm:0.8.9" + "@module-federation/inject-external-runtime-core-plugin": "npm:0.8.9" + "@module-federation/managers": "npm:0.8.9" + "@module-federation/manifest": "npm:0.8.9" + "@module-federation/rspack": "npm:0.8.9" + "@module-federation/runtime-tools": "npm:0.8.9" + "@module-federation/sdk": "npm:0.8.9" + btoa: "npm:^1.2.1" + upath: "npm:2.0.1" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + checksum: 10/cc6bc4077d1e54addf97cd917d71d442168032242a807bd09dcb138746bc3643127643f8dba60324c2164205ca06114f2e69327745778ea59fd231f857bb3077 + languageName: node + linkType: hard + +"@module-federation/error-codes@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/error-codes@npm:0.8.9" + checksum: 10/d17496b4077d113b1463c4fcb7d6fcade000711389ff5dd08154f76c0f7607d76039901c8df19374356e119da4d0964de37400e656de629a99a8aeeb32009d56 + languageName: node + linkType: hard + +"@module-federation/inject-external-runtime-core-plugin@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/inject-external-runtime-core-plugin@npm:0.8.9" + peerDependencies: + "@module-federation/runtime-tools": 0.8.9 + checksum: 10/77d8361051d54345d346cf3a3d967ed71d9a0bf83182a101c0dfa5c1f6593219521e80a8fb048a4a47e40a3fc4cd552e388728c853fcdcd52bb8870c7e345069 + languageName: node + linkType: hard + +"@module-federation/managers@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/managers@npm:0.8.9" + dependencies: + "@module-federation/sdk": "npm:0.8.9" + find-pkg: "npm:2.0.0" + fs-extra: "npm:9.1.0" + checksum: 10/716377b767a8b7eadbdcbd2a806d4d356263cf09fbfc355c458a1c77d236bdafa847e0e4c0460efaf773e0aa9531c04407a0bf64575029b961fc99aed0b8dc4a + languageName: node + linkType: hard + +"@module-federation/manifest@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/manifest@npm:0.8.9" + dependencies: + "@module-federation/dts-plugin": "npm:0.8.9" + "@module-federation/managers": "npm:0.8.9" + "@module-federation/sdk": "npm:0.8.9" + chalk: "npm:3.0.0" + find-pkg: "npm:2.0.0" + checksum: 10/e7cc96bc940deff613749029da774c1ea0b688ecfdffbfd28bee62dc674a8ffa83a9947f76af1f7572206fe8eda9eb075ea2622b72f536135c92d37b3b439233 + languageName: node + linkType: hard + +"@module-federation/rspack@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/rspack@npm:0.8.9" + dependencies: + "@module-federation/bridge-react-webpack-plugin": "npm:0.8.9" + "@module-federation/dts-plugin": "npm:0.8.9" + "@module-federation/inject-external-runtime-core-plugin": "npm:0.8.9" + "@module-federation/managers": "npm:0.8.9" + "@module-federation/manifest": "npm:0.8.9" + "@module-federation/runtime-tools": "npm:0.8.9" + "@module-federation/sdk": "npm:0.8.9" + peerDependencies: + "@rspack/core": ">=0.7" + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + checksum: 10/2431a1716ae729da5a332ef501fc6ca94d979bff4d4e5caca5d73c6138e679765a05341ae1117623c726051a500e14312c381b262b628ced272f9549ffa6c35d + languageName: node + linkType: hard + +"@module-federation/runtime-core@npm:0.6.17": + version: 0.6.17 + resolution: "@module-federation/runtime-core@npm:0.6.17" + dependencies: + "@module-federation/error-codes": "npm:0.8.9" + "@module-federation/sdk": "npm:0.8.9" + checksum: 10/c70764e15f30c962b2e24b9b837ebe1f269c1bdfb4add8997ec68987c0c19b966b267b88ea7e9975d94a802008c34b29a3a77b5a6d86c9cbd1215fd29cc53963 + languageName: node + linkType: hard + +"@module-federation/runtime-tools@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/runtime-tools@npm:0.8.9" + dependencies: + "@module-federation/runtime": "npm:0.8.9" + "@module-federation/webpack-bundler-runtime": "npm:0.8.9" + checksum: 10/b45eff1da566e41207aedbe03b1cedf5f01666cc5b76c0438b0aa8ce92c1f4bc7f3601020391c789ac9e3a2709549ce6c9464c60c0a8e2fbd7d070b317c1cce6 + languageName: node + linkType: hard + +"@module-federation/runtime@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/runtime@npm:0.8.9" + dependencies: + "@module-federation/error-codes": "npm:0.8.9" + "@module-federation/runtime-core": "npm:0.6.17" + "@module-federation/sdk": "npm:0.8.9" + checksum: 10/7d0a89bb76a4c2da441d87bda4e8bfcf690564463bf8fee37f17f6c82ffc2ecfad9a4631d6fc9c1b55de696063a041544e18f8b97f857d555a4d1b901babc91a + languageName: node + linkType: hard + +"@module-federation/sdk@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/sdk@npm:0.8.9" + dependencies: + isomorphic-rslog: "npm:0.0.7" + checksum: 10/699d1e802c946f8c9b181908be19094ca15716412bdf0baadffb6c6cf7c59f50edd9d2fe5a55abb645993c85ec17bfdb8a5d0acc61a38969ae87670d240505b7 + languageName: node + linkType: hard + +"@module-federation/third-party-dts-extractor@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/third-party-dts-extractor@npm:0.8.9" + dependencies: + find-pkg: "npm:2.0.0" + fs-extra: "npm:9.1.0" + resolve: "npm:1.22.8" + checksum: 10/d5e67563ff80a107ba811477271d12bbc5c89869a13499d278961c1f13947f6fb85d9f5316fc9017be77692d876e8b7304136d4154a313023486b521548abafd + languageName: node + linkType: hard + +"@module-federation/webpack-bundler-runtime@npm:0.8.9": + version: 0.8.9 + resolution: "@module-federation/webpack-bundler-runtime@npm:0.8.9" + dependencies: + "@module-federation/runtime": "npm:0.8.9" + "@module-federation/sdk": "npm:0.8.9" + checksum: 10/0204a68655931f59689a634e2252a856cd7c4f69059887d4c406575a257a656403f8ef91734c36ae7cdf5b6ba630de641967c8edd0f8bbb4880af311d0f0b50a + languageName: node + linkType: hard + +"@motionone/animation@npm:^10.12.0": + version: 10.18.0 + resolution: "@motionone/animation@npm:10.18.0" + dependencies: + "@motionone/easing": "npm:^10.18.0" + "@motionone/types": "npm:^10.17.1" + "@motionone/utils": "npm:^10.18.0" + tslib: "npm:^2.3.1" + checksum: 10/c7fc04dd10d6cade3d3b63d26f2532a2b2731233afc0454722e55ad8061fb3923d926db9cc09f1bcedb39f504fcee1e80adaab270523846998aad3017364a583 + languageName: node + linkType: hard + +"@motionone/dom@npm:10.12.0": + version: 10.12.0 + resolution: "@motionone/dom@npm:10.12.0" + dependencies: + "@motionone/animation": "npm:^10.12.0" + "@motionone/generators": "npm:^10.12.0" + "@motionone/types": "npm:^10.12.0" + "@motionone/utils": "npm:^10.12.0" + hey-listen: "npm:^1.0.8" + tslib: "npm:^2.3.1" + checksum: 10/6fd7804b8adba5578d700fced12df6e7fca366aeda8837471286481ebfb5275facd3883448df84a2f772c32e7e3297fc696d3a19b110214f070f305b1ab21c67 + languageName: node + linkType: hard + +"@motionone/easing@npm:^10.18.0": + version: 10.18.0 + resolution: "@motionone/easing@npm:10.18.0" + dependencies: + "@motionone/utils": "npm:^10.18.0" + tslib: "npm:^2.3.1" + checksum: 10/a455a06ccee907ce9da7b1dfe392060a473132733e3f92bbee3a99c36af7baa333cf3c6e38c6d44ad0f9878fdafca3c3f4bcfe55aaeb2a633e45d8e0429f8fa5 + languageName: node + linkType: hard + +"@motionone/generators@npm:^10.12.0": + version: 10.18.0 + resolution: "@motionone/generators@npm:10.18.0" + dependencies: + "@motionone/types": "npm:^10.17.1" + "@motionone/utils": "npm:^10.18.0" + tslib: "npm:^2.3.1" + checksum: 10/149720881e8db6a1ff38cea98349c3a00f72e5318b645459b68a2aeddb1f2be63ad2ae8978f6c4a63e2414f39e65f06de13a43fd35cf24dc3fb3e3c7f87526bc + languageName: node + linkType: hard + +"@motionone/types@npm:^10.12.0, @motionone/types@npm:^10.17.1": + version: 10.17.1 + resolution: "@motionone/types@npm:10.17.1" + checksum: 10/21d92d733ba30f810b72609fe04f2ef86125ba0160b826974605cc4cc5fbb6ab7bbf1640cbc64fd6298eb8d36fb920ad3ca646c76adf0e2c47a4920200616952 + languageName: node + linkType: hard + +"@motionone/utils@npm:^10.12.0, @motionone/utils@npm:^10.18.0": + version: 10.18.0 + resolution: "@motionone/utils@npm:10.18.0" + dependencies: + "@motionone/types": "npm:^10.17.1" + hey-listen: "npm:^1.0.8" + tslib: "npm:^2.3.1" + checksum: 10/0fa9232d132383880d6004522ded763d60f490946584e02bca7f64df98fae07421071f3a85de06aa6ecb52632a47a7586b4143e824e459a87cc852fab657e549 + languageName: node + linkType: hard + +"@mui/core-downloads-tracker@npm:^5.16.14": + version: 5.16.14 + resolution: "@mui/core-downloads-tracker@npm:5.16.14" + checksum: 10/a25658362a69a89f35cdc12ded01b998b7f02df43648029f2523813fc7f259cc85f62bd1877059359d462e7c163e82308bd4cc74fa2d35651d302c5d8bbbc7f4 + languageName: node + linkType: hard + +"@mui/icons-material@npm:^5.16.7": + version: 5.16.14 + resolution: "@mui/icons-material@npm:5.16.14" + dependencies: + "@babel/runtime": "npm:^7.23.9" + peerDependencies: + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/f05eede41fa237ffa2801942e0618ad1dd54cee0cf1216d3c44949ac3b2b3af7c7aeb2aaedd4796fe2b1020411cee866ee7da0edc7f40e5dcca9d20277048ae8 + languageName: node + linkType: hard + +"@mui/material@npm:^5.12.2, @mui/material@npm:^5.15.16": + version: 5.16.14 + resolution: "@mui/material@npm:5.16.14" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@mui/core-downloads-tracker": "npm:^5.16.14" + "@mui/system": "npm:^5.16.14" + "@mui/types": "npm:^7.2.15" + "@mui/utils": "npm:^5.16.14" + "@popperjs/core": "npm:^2.11.8" + "@types/react-transition-group": "npm:^4.4.10" + clsx: "npm:^2.1.0" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + react-is: "npm:^19.0.0" + react-transition-group: "npm:^4.4.5" + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 10/4fe36ebe4d5f65e420895d114db81c0b8a5061e39bc18cdbebf6204953dae34cdc04af9827b65eb136e5a6853f4500a736ed3d52cce4ea37057a749eca5c3fad + languageName: node + linkType: hard + +"@mui/private-theming@npm:^5.16.14": + version: 5.16.14 + resolution: "@mui/private-theming@npm:5.16.14" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@mui/utils": "npm:^5.16.14" + prop-types: "npm:^15.8.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/19cb67ccb7f9702cc2c3de99861607cc9d4109c7df578d39e6cf662f9b0108a2f4a9bf59f6c23c4e5c30a269ad7964ebd7dc2342b7f469fb9abea762a4b00bbc + languageName: node + linkType: hard + +"@mui/styled-engine@npm:^5.16.14": + version: 5.16.14 + resolution: "@mui/styled-engine@npm:5.16.14" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@emotion/cache": "npm:^11.13.5" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: 10/d1cf2c713bab684313c6993ce63e12928f88a5033a562fa039dec4d1ce33eef3b94767470979f608b3a993dcb0ed01ef5a5a2dd9c4d4fd80419d989607ba8d75 + languageName: node + linkType: hard + +"@mui/styles@npm:^5": + version: 5.16.14 + resolution: "@mui/styles@npm:5.16.14" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@emotion/hash": "npm:^0.9.1" + "@mui/private-theming": "npm:^5.16.14" + "@mui/types": "npm:^7.2.15" + "@mui/utils": "npm:^5.16.14" + clsx: "npm:^2.1.0" + csstype: "npm:^3.1.3" + hoist-non-react-statics: "npm:^3.3.2" + jss: "npm:^10.10.0" + jss-plugin-camel-case: "npm:^10.10.0" + jss-plugin-default-unit: "npm:^10.10.0" + jss-plugin-global: "npm:^10.10.0" + jss-plugin-nested: "npm:^10.10.0" + jss-plugin-props-sort: "npm:^10.10.0" + jss-plugin-rule-value-function: "npm:^10.10.0" + jss-plugin-vendor-prefixer: "npm:^10.10.0" + prop-types: "npm:^15.8.1" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/53036720e7cd928c32d23c771679ce155be47e4bd5595a13abe33a4e5cf1378809f9b93609ea6307479e5a02ad82c6ca71699f74fd70c7a7993471c765e2f004 + languageName: node + linkType: hard + +"@mui/system@npm:^5.16.14": + version: 5.16.14 + resolution: "@mui/system@npm:5.16.14" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@mui/private-theming": "npm:^5.16.14" + "@mui/styled-engine": "npm:^5.16.14" + "@mui/types": "npm:^7.2.15" + "@mui/utils": "npm:^5.16.14" + clsx: "npm:^2.1.0" + csstype: "npm:^3.1.3" + prop-types: "npm:^15.8.1" + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 10/71892070ffe1d7b626b894776c395a748d0d8fb37c11bd22f79559d889c7b83fcbb095fab74b930d2a704d3b575720b6be4675473e7a50c92bd86411f6740232 + languageName: node + linkType: hard + +"@mui/types@npm:^7.2.15": + version: 7.2.21 + resolution: "@mui/types@npm:7.2.21" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/cf604b02ee8a9127fe1cdcd1d2ee5d5aa92b2a3543b465a09c46a8be2452df7c58930ac0d8e55610e7130efe0fb9de9fa0c8522e30a04ca5dadc6640a4c77eda + languageName: node + linkType: hard + +"@mui/utils@npm:^5.14.15, @mui/utils@npm:^5.16.14": + version: 5.16.14 + resolution: "@mui/utils@npm:5.16.14" + dependencies: + "@babel/runtime": "npm:^7.23.9" + "@mui/types": "npm:^7.2.15" + "@types/prop-types": "npm:^15.7.12" + clsx: "npm:^2.1.1" + prop-types: "npm:^15.8.1" + react-is: "npm:^19.0.0" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/29bb7ca0a6e9be7bc5ab5505621566ace279fd7a2da149f0937984502d349f2b78dd42f475c5e22b546b1b27d063bd8eb8e92093b0530a814169a535dc250cdc + languageName: node + linkType: hard + +"@n1ru4l/push-pull-async-iterable-iterator@npm:^3.1.0": + version: 3.2.0 + resolution: "@n1ru4l/push-pull-async-iterable-iterator@npm:3.2.0" + checksum: 10/635477b69d4de889d88a2f4afffa66d2eaa08288b8e0aa441a900e5c5f3f85b973aacd053e401c80077867a03f6e6e5d17b1a376f830235dd5c11a092a085040 + languageName: node + linkType: hard + +"@nestjs/axios@npm:3.1.3": + version: 3.1.3 + resolution: "@nestjs/axios@npm:3.1.3" + peerDependencies: + "@nestjs/common": ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + axios: ^1.3.1 + rxjs: ^6.0.0 || ^7.0.0 + checksum: 10/8f6126401d83b2ce42a3517baaea56403ee14fa4b1ce27748e74cd82f317e34b7ce31634b21cd88a1159fc85468e7f20441eb6cb45a8d372fc5163f2ed76c358 + languageName: node + linkType: hard + +"@nestjs/common@npm:10.4.15": + version: 10.4.15 + resolution: "@nestjs/common@npm:10.4.15" + dependencies: + iterare: "npm:1.2.1" + tslib: "npm:2.8.1" + uid: "npm:2.0.2" + peerDependencies: + class-transformer: "*" + class-validator: "*" + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + checksum: 10/33b85979705ebb65e639b599892cbe4338d35c621726d29bb462c4df81a407e5e2bc31591ec2e0e59d3483d6414a9676c935415a3ea84aebeed678c87b96efef + languageName: node + linkType: hard + +"@nestjs/core@npm:10.4.15": + version: 10.4.15 + resolution: "@nestjs/core@npm:10.4.15" + dependencies: + "@nuxtjs/opencollective": "npm:0.3.2" + fast-safe-stringify: "npm:2.1.1" + iterare: "npm:1.2.1" + path-to-regexp: "npm:3.3.0" + tslib: "npm:2.8.1" + uid: "npm:2.0.2" + peerDependencies: + "@nestjs/common": ^10.0.0 + "@nestjs/microservices": ^10.0.0 + "@nestjs/platform-express": ^10.0.0 + "@nestjs/websockets": ^10.0.0 + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + "@nestjs/microservices": + optional: true + "@nestjs/platform-express": + optional: true + "@nestjs/websockets": + optional: true + checksum: 10/671720fbb5cf5d477e4f57cb892079d4fd2a2f6e90c4eb6063c2c623bcb2256ba1b776cfcc4b817f32b3a87767a854bba345e7c52945a469b85068a31f23eec7 + languageName: node + linkType: hard + +"@node-saml/node-saml@npm:^5.0.0": + version: 5.0.0 + resolution: "@node-saml/node-saml@npm:5.0.0" + dependencies: + "@types/debug": "npm:^4.1.12" + "@types/qs": "npm:^6.9.11" + "@types/xml-encryption": "npm:^1.2.4" + "@types/xml2js": "npm:^0.4.14" + "@xmldom/is-dom-node": "npm:^1.0.1" + "@xmldom/xmldom": "npm:^0.8.10" + debug: "npm:^4.3.4" + xml-crypto: "npm:^6.0.0" + xml-encryption: "npm:^3.0.2" + xml2js: "npm:^0.6.2" + xmlbuilder: "npm:^15.1.1" + xpath: "npm:^0.0.34" + checksum: 10/e886f0831321997f682e2f1c652dee4c42e47e417bbe09c7d0f237ccd4604c8212449091398157e09cef03d389e7009b01413d7dedc97f275590317aff7185ff + languageName: node + linkType: hard + +"@node-saml/passport-saml@npm:^5.0.0": + version: 5.0.0 + resolution: "@node-saml/passport-saml@npm:5.0.0" + dependencies: + "@node-saml/node-saml": "npm:^5.0.0" + "@types/express": "npm:^4.17.21" + "@types/passport": "npm:^1.0.16" + "@types/passport-strategy": "npm:^0.2.38" + passport: "npm:^0.7.0" + passport-strategy: "npm:^1.0.0" + checksum: 10/3142f1f69c011288edd4c6a9d252b3186c3bcf7af6d0995b52258d7c1ba1c86a5b8ee5fa9306a522cf1d6c525da775439bc50164664a72aebb86ead7244fcc9e + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:4.0.1": + version: 4.0.1 + resolution: "@nodelib/fs.scandir@npm:4.0.1" + dependencies: + "@nodelib/fs.stat": "npm:4.0.0" + run-parallel: "npm:^1.2.0" + checksum: 10/44b2b2b34e48ca88ee004413f5033db31cd6d5ecf8c7bbef0e33b6672d603f3e23b57d5fbb1bd5f83f8992df58381be6600006d92a903f085e698a37bdfe3c89 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:4.0.0": + version: 4.0.0 + resolution: "@nodelib/fs.stat@npm:4.0.0" + checksum: 10/1f87199fdab938d2ed6f5e10debc006f7965081e2cd147ed3d2333049a030cad1949bd76556a5f5364f062c3e1edcc3d0981189b065336fc92c503ead463f4e1 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:3.0.1": + version: 3.0.1 + resolution: "@nodelib/fs.walk@npm:3.0.1" + dependencies: + "@nodelib/fs.scandir": "npm:4.0.1" + fastq: "npm:^1.15.0" + checksum: 10/7b76a0139dec52e3f2a3a0bb4f13dbf72a6b79d8076ec4b5deea9e75bd1b79d7abda53776f93b5aefda9a5e40f0e31f49f6e35bf5460a402f0aee7bcf3b26d85 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10/775c9a7eb1f88c195dfb3bce70c31d0fe2a12b28b754e25c08a3edb4bc4816bfedb7ac64ef1e730579d078ca19dacf11630e99f8f3c3e0fd7b23caa5fd6d30a6 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10/405c4490e1ff11cf299775449a3c254a366a4b1ffc79d87159b0ee7d5558ac9f6a2f8c0735fd6ff3873cef014cb1a44a5f9127cb6a1b2dbc408718cca9365b5a + languageName: node + linkType: hard + +"@nuxtjs/opencollective@npm:0.3.2": + version: 0.3.2 + resolution: "@nuxtjs/opencollective@npm:0.3.2" + dependencies: + chalk: "npm:^4.1.0" + consola: "npm:^2.15.0" + node-fetch: "npm:^2.6.1" + bin: + opencollective: bin/opencollective.js + checksum: 10/0512871f424a2eae41e9385671ac840f28e8508a209df68c363cc97e009b95a6fd4bdfa2a34c9df78a74fa36d7e171e28792cd11da0b2be28c20ee1806b3ea5e + languageName: node + linkType: hard + +"@octokit/auth-app@npm:^4.0.0": + version: 4.0.13 + resolution: "@octokit/auth-app@npm:4.0.13" + dependencies: + "@octokit/auth-oauth-app": "npm:^5.0.0" + "@octokit/auth-oauth-user": "npm:^2.0.0" + "@octokit/request": "npm:^6.0.0" + "@octokit/request-error": "npm:^3.0.0" + "@octokit/types": "npm:^9.0.0" + deprecation: "npm:^2.3.1" + lru-cache: "npm:^9.0.0" + universal-github-app-jwt: "npm:^1.1.1" + universal-user-agent: "npm:^6.0.0" + checksum: 10/0a1064e3a05ad3dea61666e00d5b846b1cea8ff320113bd7e505fbc04439071e3dc8f03444f267febb294bf94c3328338ab58fa3d6ee9710a1dfa3f7c566b539 + languageName: node + linkType: hard + +"@octokit/auth-oauth-app@npm:^5.0.0": + version: 5.0.6 + resolution: "@octokit/auth-oauth-app@npm:5.0.6" + dependencies: + "@octokit/auth-oauth-device": "npm:^4.0.0" + "@octokit/auth-oauth-user": "npm:^2.0.0" + "@octokit/request": "npm:^6.0.0" + "@octokit/types": "npm:^9.0.0" + "@types/btoa-lite": "npm:^1.0.0" + btoa-lite: "npm:^1.0.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/c02875d816a4273ad3ebe65ec6cf75e3a66e458bcb22f6315f9988b9097631db6e4b40391ea7e76fdd84340b1242378620a589a15121b410ccf3c8815ea28776 + languageName: node + linkType: hard + +"@octokit/auth-oauth-device@npm:^4.0.0": + version: 4.0.5 + resolution: "@octokit/auth-oauth-device@npm:4.0.5" + dependencies: + "@octokit/oauth-methods": "npm:^2.0.0" + "@octokit/request": "npm:^6.0.0" + "@octokit/types": "npm:^9.0.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/0c19613b85f03a432b1a594b1801e693b60f68bebd0d1b2a9d3c979a6745b61ada36fa7fe882ce7d548df3d554741865806ea9b257868a2ef3e07b24ffa70180 + languageName: node + linkType: hard + +"@octokit/auth-oauth-user@npm:^2.0.0": + version: 2.1.2 + resolution: "@octokit/auth-oauth-user@npm:2.1.2" + dependencies: + "@octokit/auth-oauth-device": "npm:^4.0.0" + "@octokit/oauth-methods": "npm:^2.0.0" + "@octokit/request": "npm:^6.0.0" + "@octokit/types": "npm:^9.0.0" + btoa-lite: "npm:^1.0.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/9e02a6d813ae62943fb28022094e44d8c86b0f470195919579f0db6d301a0108b573024b37d2c9b44ca623f2ec0d8afcb47224212d8e657f83624c4babc3dfad + languageName: node + linkType: hard + +"@octokit/auth-token@npm:^3.0.0": + version: 3.0.4 + resolution: "@octokit/auth-token@npm:3.0.4" + checksum: 10/8e21e567e38ba307fa30497ad77801135e25c328ce8b363c1622a4afb408a7d3315d54082527b38ecd5b3a5449680d89cfca9cb10c516cacf3dfa01e4c8b7195 + languageName: node + linkType: hard + +"@octokit/auth-unauthenticated@npm:^3.0.0": + version: 3.0.5 + resolution: "@octokit/auth-unauthenticated@npm:3.0.5" + dependencies: + "@octokit/request-error": "npm:^3.0.0" + "@octokit/types": "npm:^9.0.0" + checksum: 10/30f327c66118b09f4c1698e404f2b41e2540925ba1e41d728a25172fa7dcd5f005b64062bbaa05c5b5423b896b3fe5de7078264c526dda9cacec4d792aacacf5 + languageName: node + linkType: hard + +"@octokit/core@npm:^4.0.0, @octokit/core@npm:^4.2.1": + version: 4.2.4 + resolution: "@octokit/core@npm:4.2.4" + dependencies: + "@octokit/auth-token": "npm:^3.0.0" + "@octokit/graphql": "npm:^5.0.0" + "@octokit/request": "npm:^6.0.0" + "@octokit/request-error": "npm:^3.0.0" + "@octokit/types": "npm:^9.0.0" + before-after-hook: "npm:^2.2.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/53ba8f990ce2c0ea4583d8c142377770c3ac8fb9221b563d82dbca9d642f19be49607b9e9b472767075e4afa16c2203339680d75f3ebf5ad853af2646e8604ca + languageName: node + linkType: hard + +"@octokit/endpoint@npm:^7.0.0": + version: 7.0.6 + resolution: "@octokit/endpoint@npm:7.0.6" + dependencies: + "@octokit/types": "npm:^9.0.0" + is-plain-object: "npm:^5.0.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/e8b9cc09aa8306d63cb0e5b65ac5d29fc421522c92810a9d70bbfef997bc8750fc339f1f4f60e1604c22db77457ea493c51849b0d61cbfcb8655b0c4f2640e4b + languageName: node + linkType: hard + +"@octokit/graphql-schema@npm:^13.7.0": + version: 13.10.0 + resolution: "@octokit/graphql-schema@npm:13.10.0" + dependencies: + graphql: "npm:^16.0.0" + graphql-tag: "npm:^2.10.3" + checksum: 10/c8714a9dc8f36d01e3db125e570a95030faeaf6c815811be2190ce288691bfcc5e939d161b33ef91b4c9fbca21663bace53d3eea2115a443de27a51b5dbfe2a4 + languageName: node + linkType: hard + +"@octokit/graphql@npm:^5.0.0": + version: 5.0.6 + resolution: "@octokit/graphql@npm:5.0.6" + dependencies: + "@octokit/request": "npm:^6.0.0" + "@octokit/types": "npm:^9.0.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/6014690d184d7b2bfb56ab9be5ddbe4f5c77aa6031d71ec2caf5f56cbd32f4a5b0601049cef7dce1ca8010b89a9fc8bb07ce7833e6213c5bc77b7a564b1f40b9 + languageName: node + linkType: hard + +"@octokit/oauth-app@npm:^4.2.0": + version: 4.2.4 + resolution: "@octokit/oauth-app@npm:4.2.4" + dependencies: + "@octokit/auth-oauth-app": "npm:^5.0.0" + "@octokit/auth-oauth-user": "npm:^2.0.0" + "@octokit/auth-unauthenticated": "npm:^3.0.0" + "@octokit/core": "npm:^4.0.0" + "@octokit/oauth-authorization-url": "npm:^5.0.0" + "@octokit/oauth-methods": "npm:^2.0.0" + "@types/aws-lambda": "npm:^8.10.83" + fromentries: "npm:^1.3.1" + universal-user-agent: "npm:^6.0.0" + checksum: 10/1c9e48b56fb4cf3428b8967335b46cedf7740d27932ea394530d07deffa8c3bff5ceef8d14bf145b3bfc64ad1088f4ddf46ceca2a4c052f267c3faa12188ef14 + languageName: node + linkType: hard + +"@octokit/oauth-authorization-url@npm:^5.0.0": + version: 5.0.0 + resolution: "@octokit/oauth-authorization-url@npm:5.0.0" + checksum: 10/9a8209874369a7389b4e5b22eba1e719d8c7fde05c999670b8c4ffeb1f3948f790778ca11e882cb2b01689a8ae87f68bf220d53470d686186b8af85a0f6f517e + languageName: node + linkType: hard + +"@octokit/oauth-methods@npm:^2.0.0": + version: 2.0.6 + resolution: "@octokit/oauth-methods@npm:2.0.6" + dependencies: + "@octokit/oauth-authorization-url": "npm:^5.0.0" + "@octokit/request": "npm:^6.2.3" + "@octokit/request-error": "npm:^3.0.3" + "@octokit/types": "npm:^9.0.0" + btoa-lite: "npm:^1.0.0" + checksum: 10/42e305d7138709f9ef93e616f908a74018a4e03c41cebc4d55346a2781c96cc95fb8a44845f0b97b12edaeac5f293e76fac39a90f8d922370c900288bae437a5 + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^18.0.0": + version: 18.1.1 + resolution: "@octokit/openapi-types@npm:18.1.1" + checksum: 10/bd2920a238f74c6ccc1e2ee916bd3e17adeeef3bbb1726f821b8722dceaeff5ea2786b3170cc25dd51775cb9179d3cdf448a3526e70b8a1fc21cdd8aa52e5d4c + languageName: node + linkType: hard + +"@octokit/plugin-paginate-rest@npm:^6.1.2": + version: 6.1.2 + resolution: "@octokit/plugin-paginate-rest@npm:6.1.2" + dependencies: + "@octokit/tsconfig": "npm:^1.0.2" + "@octokit/types": "npm:^9.2.3" + peerDependencies: + "@octokit/core": ">=4" + checksum: 10/6d5b97fb44a3ed8ff25196b56ebe7bdac64f4023c165792f77938c77876934c01b46e79b83712e26cd3f2f9e36e0735bd3c292a37e8060a2b259f3a6456116dc + languageName: node + linkType: hard + +"@octokit/plugin-request-log@npm:^1.0.4": + version: 1.0.4 + resolution: "@octokit/plugin-request-log@npm:1.0.4" + peerDependencies: + "@octokit/core": ">=3" + checksum: 10/2086db00056aee0f8ebd79797b5b57149ae1014e757ea08985b71eec8c3d85dbb54533f4fd34b6b9ecaa760904ae6a7536be27d71e50a3782ab47809094bfc0c + languageName: node + linkType: hard + +"@octokit/plugin-rest-endpoint-methods@npm:^7.1.2": + version: 7.2.3 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.2.3" + dependencies: + "@octokit/types": "npm:^10.0.0" + peerDependencies: + "@octokit/core": ">=3" + checksum: 10/59fb4e786ab85a5f3ad701e1b193dd3113833cfd1f2657cb06864e45b80a53a1f9ba6c3c66a855c4bf2593c539299fdfe51db639e3a87dc16ffa7602fe9bb999 + languageName: node + linkType: hard + +"@octokit/request-error@npm:^3.0.0, @octokit/request-error@npm:^3.0.3": + version: 3.0.3 + resolution: "@octokit/request-error@npm:3.0.3" + dependencies: + "@octokit/types": "npm:^9.0.0" + deprecation: "npm:^2.0.0" + once: "npm:^1.4.0" + checksum: 10/5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0 + languageName: node + linkType: hard + +"@octokit/request@npm:^6.0.0, @octokit/request@npm:^6.2.3": + version: 6.2.8 + resolution: "@octokit/request@npm:6.2.8" + dependencies: + "@octokit/endpoint": "npm:^7.0.0" + "@octokit/request-error": "npm:^3.0.0" + "@octokit/types": "npm:^9.0.0" + is-plain-object: "npm:^5.0.0" + node-fetch: "npm:^2.6.7" + universal-user-agent: "npm:^6.0.0" + checksum: 10/47188fa08d28e5e9e6a22f84058fc13f108cdcb68aea97686da4718d32d3ddda8fde8a5c9f189057e3d466560b67c2305a2e343d1eed9517b47a13f68cb329e7 + languageName: node + linkType: hard + +"@octokit/rest@npm:^19.0.3": + version: 19.0.13 + resolution: "@octokit/rest@npm:19.0.13" + dependencies: + "@octokit/core": "npm:^4.2.1" + "@octokit/plugin-paginate-rest": "npm:^6.1.2" + "@octokit/plugin-request-log": "npm:^1.0.4" + "@octokit/plugin-rest-endpoint-methods": "npm:^7.1.2" + checksum: 10/7fbee09a2f832be6802a026713aa93cbf82dcfc8103d68c585b23214caf0accfced6efe2c49169158d39875d5c5ad3994b83b02e26537b75687ac16d0572c212 + languageName: node + linkType: hard + +"@octokit/tsconfig@npm:^1.0.2": + version: 1.0.2 + resolution: "@octokit/tsconfig@npm:1.0.2" + checksum: 10/74d56f3e9f326a8dd63700e9a51a7c75487180629c7a68bbafee97c612fbf57af8347369bfa6610b9268a3e8b833c19c1e4beb03f26db9a9dce31f6f7a19b5b1 + languageName: node + linkType: hard + +"@octokit/types@npm:^10.0.0": + version: 10.0.0 + resolution: "@octokit/types@npm:10.0.0" + dependencies: + "@octokit/openapi-types": "npm:^18.0.0" + checksum: 10/6345e605d30c99639a0207cfc7bea5bf29d9007e93cdcd78be3f8218830a462a0f0fbb976f5c2d9ebe70ee2aa33d1b72243cdb955478581ee2cead059ac4f030 + languageName: node + linkType: hard + +"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.3": + version: 9.3.2 + resolution: "@octokit/types@npm:9.3.2" + dependencies: + "@octokit/openapi-types": "npm:^18.0.0" + checksum: 10/4bcd18850d5397e5835f5686be88ad95e5d7c23e7d53f898b82a8ca5fc1f6a7b53816ef6f9f3b7a06799c0b030d259bf2bd50a258a1656df2dc7f3e533e334f8 + languageName: node + linkType: hard + +"@openapi-contrib/openapi-schema-to-json-schema@npm:~3.2.0": + version: 3.2.0 + resolution: "@openapi-contrib/openapi-schema-to-json-schema@npm:3.2.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + checksum: 10/cc04368482415f4da63e8b2b1ce21c105f352f21784969bce7e3f34401d8adacc24ce2bf79f9d856fcf26c6b5dd2f4e8ca10870d0241fd42c3e2f1b83ce3114f + languageName: node + linkType: hard + +"@openapitools/openapi-generator-cli@npm:^2.7.0": + version: 2.16.2 + resolution: "@openapitools/openapi-generator-cli@npm:2.16.2" + dependencies: + "@nestjs/axios": "npm:3.1.3" + "@nestjs/common": "npm:10.4.15" + "@nestjs/core": "npm:10.4.15" + "@nuxtjs/opencollective": "npm:0.3.2" + axios: "npm:1.7.9" + chalk: "npm:4.1.2" + commander: "npm:8.3.0" + compare-versions: "npm:4.1.4" + concurrently: "npm:6.5.1" + console.table: "npm:0.10.0" + fs-extra: "npm:10.1.0" + glob: "npm:9.3.5" + inquirer: "npm:8.2.6" + lodash: "npm:4.17.21" + proxy-agent: "npm:6.4.0" + reflect-metadata: "npm:0.1.13" + rxjs: "npm:7.8.1" + tslib: "npm:2.8.1" + bin: + openapi-generator-cli: main.js + checksum: 10/a6d65df11f8d9ccc8331e41325971914ad68d6849dfc57e8cf1aa85660c400560f0c2f331a39f219b2e69ea04bf526036cf4f497c5ab3e2a3953772db3baca93 + languageName: node + linkType: hard + +"@opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.4.0, @opentelemetry/api@npm:^1.9.0": + version: 1.9.0 + resolution: "@opentelemetry/api@npm:1.9.0" + checksum: 10/a607f0eef971893c4f2ee2a4c2069aade6ec3e84e2a1f5c2aac19f65c5d9eeea41aa72db917c1029faafdd71789a1a040bdc18f40d63690e22ccae5d7070f194 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10/115e8ceeec6bc69dff2048b35c0ab4f8bbee12d8bb6c1f4af758604586d802b6e669dcb02dda61d078de42c2b4ddce41b3d9e726d7daa6b4b850f4adbf7333ff + languageName: node + linkType: hard + +"@playwright/test@npm:^1.32.3": + version: 1.49.1 + resolution: "@playwright/test@npm:1.49.1" + dependencies: + playwright: "npm:1.49.1" + bin: + playwright: cli.js + checksum: 10/bb0d5eda58ee0b5bbca732d2aa57782fadf420d101e08e16d5760179459c667907bd8d224ee3d6f43f3088378e377ef63d32ed605fec37605debf217c3efe8da + languageName: node + linkType: hard + +"@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.7": + version: 0.5.15 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.15" + dependencies: + ansi-html: "npm:^0.0.9" + core-js-pure: "npm:^3.23.3" + error-stack-parser: "npm:^2.0.6" + html-entities: "npm:^2.1.0" + loader-utils: "npm:^2.0.4" + schema-utils: "npm:^4.2.0" + source-map: "npm:^0.7.3" + peerDependencies: + "@types/webpack": 4.x || 5.x + react-refresh: ">=0.10.0 <1.0.0" + sockjs-client: ^1.4.0 + type-fest: ">=0.17.0 <5.0.0" + webpack: ">=4.43.0 <6.0.0" + webpack-dev-server: 3.x || 4.x || 5.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + "@types/webpack": + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + checksum: 10/d8c978654c4c6873edc3336bca87d359d3a7f32571e8404af8a3defd0e515aa34d9dc8324a9157d0220d72fb8a6a350660301c2757df964f845422a898714bc7 + languageName: node + linkType: hard + +"@popperjs/core@npm:^2.11.8": + version: 2.11.8 + resolution: "@popperjs/core@npm:2.11.8" + checksum: 10/ddd16090cde777aaf102940f05d0274602079a95ad9805bd20bc55dcc7c3a2ba1b99dd5c73e5cc2753c3d31250ca52a67d58059459d7d27debb983a9f552936c + languageName: node + linkType: hard + +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 10/8a938d84fe4889411296db66b29287bd61ea3c14c2d23e7a8325f46a2b8ce899857c5f038d65d7641805e6c1d06b495525c7faf00c44f85a7ee6476649034969 + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 10/c71b100daeb3c9bdccab5cbc29495b906ba0ae22ceedc200e1ba49717d9c4ab15a6256839cebb6f9c6acae4ed7c25c67e0a95e734f612b258261d1a3098fe342 + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: 10/c6ee5fa172a8464f5253174d3c2353ea520c2573ad7b6476983d9b1346f4d8f2b44aa29feb17a949b83c1816bc35286a5ea265ed9d8fdd2865acfa09668c0447 + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 10/03af3e99f17ad421283d054c88a06a30a615922a817741b43ca1b13e7c6b37820a37f6eba9980fb5150c54dba6e26cb6f7b64a6f7d8afa83596fafb3afa218c3 + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.1" + "@protobufjs/inquire": "npm:^1.1.0" + checksum: 10/67ae40572ad536e4ef94269199f252c024b66e3059850906bdaee161ca1d75c73d04d35cd56f147a8a5a079f5808e342b99e61942c1dae15604ff0600b09a958 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 10/634c2c989da0ef2f4f19373d64187e2a79f598c5fb7991afb689d29a2ea17c14b796b29725945fa34b9493c17fb799e08ac0a7ccaae460ee1757d3083ed35187 + languageName: node + linkType: hard + +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: 10/c09efa34a5465cb120775e1a482136f2340a58b4abce7e93d72b8b5a9324a0e879275016ef9fcd73d72a4731639c54f2bb755bb82f916e4a78892d1d840bb3d2 + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 10/bb709567935fd385a86ad1f575aea98131bbd719c743fb9b6edd6b47ede429ff71a801cecbd64fc72deebf4e08b8f1bd8062793178cdaed3713b8d15771f9b83 + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: 10/b9c7047647f6af28e92aac54f6f7c1f7ff31b201b4bfcc7a415b2861528854fce3ec666d7e7e10fd744da905f7d4aef2205bbcc8944ca0ca7a82e18134d00c46 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: 10/131e289c57534c1d73a0e55782d6751dd821db1583cb2f7f7e017c9d6747addaebe79f28120b2e0185395d990aad347fb14ffa73ef4096fa38508d61a0e64602 + languageName: node + linkType: hard + +"@radix-ui/primitive@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/primitive@npm:1.1.1" + checksum: 10/d7e819177590108b74139809d52ec043c0962ae3513e947998be575fb13639c5c1c091896ddcf1d6a22a777d44ade59d22c2019ce9099607fc62a5de09c59707 + languageName: node + linkType: hard + +"@radix-ui/react-arrow@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-arrow@npm:1.1.1" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/c75505c2858cffff7c742e888b635879f9a6d95e08bf5ae939be33f97e1171379bc6b5354ec0cd3d12624bdbe5a830ee6aa0fb1f46b1af160b488bc54e64d486 + languageName: node + linkType: hard + +"@radix-ui/react-collection@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-collection@npm:1.1.1" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-slot": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/88b53075f345ba0354e4ec6f4f35a4160379020b48a709f12c1963052dfa8475329b842a652d79ac54238f2884c85c2c793331d84713715d2452d535d14df36a + languageName: node + linkType: hard + +"@radix-ui/react-compose-refs@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-compose-refs@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/1be82f9f7fab96cc10f167a2e4f976e0135a63d473334f664c06f02af13bc5ea1994cb0505f89ed190d756cb65d57506721c030908af07e49b9e3cfd36044f33 + languageName: node + linkType: hard + +"@radix-ui/react-context@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-context@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/f6469583bf11cc7bff3ea5c95c56b0774a959512adead00dc64b0527cca01b90b476ca39a64edfd7e18e428e17940aa0339116b1ce5b6e8eab513cfd1065d391 + languageName: node + linkType: hard + +"@radix-ui/react-dialog@npm:^1.0.4": + version: 1.1.5 + resolution: "@radix-ui/react-dialog@npm:1.1.5" + dependencies: + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-dismissable-layer": "npm:1.1.4" + "@radix-ui/react-focus-guards": "npm:1.1.1" + "@radix-ui/react-focus-scope": "npm:1.1.1" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-portal": "npm:1.1.3" + "@radix-ui/react-presence": "npm:1.1.2" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-slot": "npm:1.1.1" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + aria-hidden: "npm:^1.2.4" + react-remove-scroll: "npm:^2.6.2" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/d426cedcf6c92dff722a8ba75b2e8eed1c85123d7f92c21dd372460c885cb36555f3bce14344dc00622ac5d7c42a2d3918db2d065a6232adb5efc306def5511b + languageName: node + linkType: hard + +"@radix-ui/react-direction@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-direction@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/25ad0d1d65ad08c93cebfbefdff9ef2602e53f4573a66b37d2c366ede9485e75ec6fc8e7dd7d2939b34ea5504ca0fe6ac4a3acc2f6ee9b62d131d65486eafd49 + languageName: node + linkType: hard + +"@radix-ui/react-dismissable-layer@npm:1.1.4": + version: 1.1.4 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.4" + dependencies: + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-escape-keydown": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/ceaa583b852a81561b216005a30ec029167f4b4ef1ee37aa5782149909c9f1c65288638584f9afa6982d2be81803860600a8c5f07a2c1842c136a76ce2430c75 + languageName: node + linkType: hard + +"@radix-ui/react-dropdown-menu@npm:^2.0.5": + version: 2.1.5 + resolution: "@radix-ui/react-dropdown-menu@npm:2.1.5" + dependencies: + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-menu": "npm:2.1.5" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/951bff9909b3b96a7d3dbddd20abb2a6210dcec16773c5e92f86531f5e763c29b1942568d56a02871df18a2dd627d5f150a464e330daf553a406efa6a1b09f62 + languageName: node + linkType: hard + +"@radix-ui/react-focus-guards@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-focus-guards@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/ac8dd31f48fa0500bafd9368f2f06c5a06918dccefa89fa5dc77ca218dc931a094a81ca57f6b181138029822f7acdd5280dceccf5ba4d9263c754fb8f7961879 + languageName: node + linkType: hard + +"@radix-ui/react-focus-scope@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-focus-scope@npm:1.1.1" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/128508e7e34a47fd44d51bdb3d66a35a337c54b64125548d4a98bb377ee89b2fd8f96e0a075368d393c6664abba1e5a2f167734a6adbb170c41da0aa7a06d05f + languageName: node + linkType: hard + +"@radix-ui/react-id@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-id@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/6fbc9d1739b3b082412da10359e63967b4f3a60383ebda4c9e56b07a722d29bee53b203b3b1418f88854a29315a7715867133bb149e6e22a027a048cdd20d970 + languageName: node + linkType: hard + +"@radix-ui/react-menu@npm:2.1.5": + version: 2.1.5 + resolution: "@radix-ui/react-menu@npm:2.1.5" + dependencies: + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-collection": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-dismissable-layer": "npm:1.1.4" + "@radix-ui/react-focus-guards": "npm:1.1.1" + "@radix-ui/react-focus-scope": "npm:1.1.1" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.1" + "@radix-ui/react-portal": "npm:1.1.3" + "@radix-ui/react-presence": "npm:1.1.2" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-roving-focus": "npm:1.1.1" + "@radix-ui/react-slot": "npm:1.1.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + aria-hidden: "npm:^1.2.4" + react-remove-scroll: "npm:^2.6.2" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/91e62154aecf9a8bcd05349df33affcd163e768b68e4bab1195a8119ee7655f775edecdb2459ef074731cb1bd59843b0b58a6f7b01e93ff745d0f7c6fc9ed70b + languageName: node + linkType: hard + +"@radix-ui/react-popper@npm:1.2.1": + version: 1.2.1 + resolution: "@radix-ui/react-popper@npm:1.2.1" + dependencies: + "@floating-ui/react-dom": "npm:^2.0.0" + "@radix-ui/react-arrow": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/react-use-rect": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + "@radix-ui/rect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/423506c2f862c3ee69956bdef3de668bf189b1ec4496c83bef01c3a962c88ab44f9154523afdcd4f0ed6a06eeb44005fcfca4ee0d68267187f58df1f65781b3c + languageName: node + linkType: hard + +"@radix-ui/react-portal@npm:1.1.3": + version: 1.1.3 + resolution: "@radix-ui/react-portal@npm:1.1.3" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/470fb50c940772d05cc268e219b3d15848909dcd0a2dc1952965d0af905992f0ccab99e99c490dea6564c441397eba720b8425ba9f4582c94bef40ebe27ac0d0 + languageName: node + linkType: hard + +"@radix-ui/react-presence@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-presence@npm:1.1.2" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/b7c7a1eed6e2a4b8778f37d925bca12fccb2a3fdd48fa854cb3d6308592aec7253b0a193cba65b8c323e14a14119935434e8f6d9bdc0fbf97450c0da1b4eb0f9 + languageName: node + linkType: hard + +"@radix-ui/react-primitive@npm:2.0.1": + version: 2.0.1 + resolution: "@radix-ui/react-primitive@npm:2.0.1" + dependencies: + "@radix-ui/react-slot": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/ed6829b8ff4117cde2c02b14325ff78b7902fe9e8324b9fdbfd11646c5bb703f38711d8da5029ffc873384496481b7d398d0e3c17f7cc287b52fb92fbaf67da2 + languageName: node + linkType: hard + +"@radix-ui/react-roving-focus@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-roving-focus@npm:1.1.1" + dependencies: + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-collection": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/748dc87dfed43243e29be1d0e10a1197249379e5e2bfcd3e1c2b2d2e794f862972befc3192372fb2319a601a7449358e80c9ae8892ebdc58a83688327dcf66d5 + languageName: node + linkType: hard + +"@radix-ui/react-slot@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-slot@npm:1.1.1" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/5b1ee5100da356c8f9f56cd7ca273838a373fa3808f0f909b1e132c4f734282571cb666e86a548831ee82a62240e126d43379994285a9b030fd34ea43538b5e2 + languageName: node + linkType: hard + +"@radix-ui/react-tooltip@npm:^1.0.6": + version: 1.1.7 + resolution: "@radix-ui/react-tooltip@npm:1.1.7" + dependencies: + "@radix-ui/primitive": "npm:1.1.1" + "@radix-ui/react-compose-refs": "npm:1.1.1" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-dismissable-layer": "npm:1.1.4" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.1" + "@radix-ui/react-portal": "npm:1.1.3" + "@radix-ui/react-presence": "npm:1.1.2" + "@radix-ui/react-primitive": "npm:2.0.1" + "@radix-ui/react-slot": "npm:1.1.1" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-visually-hidden": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/4ecf502900f54ba564ddc77726821847ae66349bbc216036aa06865af9d7cadeb0686d5a1274b54036661451b78d87405c296c045896c48092a08906abea3c2f + languageName: node + linkType: hard + +"@radix-ui/react-use-callback-ref@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/2ec7903c67e3034b646005556f44fd975dc5204db6885fc58403e3584f27d95f0b573bc161de3d14fab9fda25150bf3b91f718d299fdfc701c736bd0bd2281fa + languageName: node + linkType: hard + +"@radix-ui/react-use-controllable-state@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-controllable-state@npm:1.1.0" + dependencies: + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/9583679150dc521c9de20ee22cb858697dd4f5cefc46ab8ebfc5e7511415a053994e87d4ca3f49de84d27eebc13535b0a6c9892c91ab43e3e553e5d7270f378f + languageName: node + linkType: hard + +"@radix-ui/react-use-escape-keydown@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.0" + dependencies: + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/9bf88ea272b32ea0f292afd336780a59c5646f795036b7e6105df2d224d73c54399ee5265f61d571eb545d28382491a8b02dc436e3088de8dae415d58b959b71 + languageName: node + linkType: hard + +"@radix-ui/react-use-layout-effect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/271ea0bf1cd74718895a68414a6e95537737f36e02ad08eeb61a82b229d6abda9cff3135a479e134e1f0ce2c3ff97bb85babbdce751985fb755a39b231d7ccf2 + languageName: node + linkType: hard + +"@radix-ui/react-use-rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-rect@npm:1.1.0" + dependencies: + "@radix-ui/rect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/facc9528af43df3b01952dbb915ff751b5924db2c31d41f053ddea19a7cc5cac5b096c4d7a2059e8f564a3f0d4a95bcd909df8faed52fa01709af27337628e2c + languageName: node + linkType: hard + +"@radix-ui/react-use-size@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-size@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/01a11d4c07fc620b8a081e53d7ec8495b19a11e02688f3d9f47cf41a5fe0428d1e52ed60b2bf88dfd447dc2502797b9dad2841097389126dd108530913c4d90d + languageName: node + linkType: hard + +"@radix-ui/react-visually-hidden@npm:1.1.1, @radix-ui/react-visually-hidden@npm:^1.0.3": + version: 1.1.1 + resolution: "@radix-ui/react-visually-hidden@npm:1.1.1" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/ccbdf29811283fb257f0b0f8604923e6fe349a264986463f6d6a20946fc51e243527985e69f0af27659f78fd7a4199dacbba5bfc7af3667aa409cd23a0ae3283 + languageName: node + linkType: hard + +"@radix-ui/rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/rect@npm:1.1.0" + checksum: 10/3ffdc5e3f7bcd91de4d5983513bd11c3a82b89b966e5c1bd8c17690a8f5da2d83fa156474c7b68fc6b9465df2281f81983b146e1d9dc57d332abda05751a9cbc + languageName: node + linkType: hard + +"@react-hookz/deep-equal@npm:^1.0.4": + version: 1.0.4 + resolution: "@react-hookz/deep-equal@npm:1.0.4" + checksum: 10/0923e364d309e32ee54e0850471a86488faf149d7a04ee838552cf5d54f493964623a8d742880ec82410cc1105530123f056e66dfc72b7da235d4cc93fad708f + languageName: node + linkType: hard + +"@react-hookz/web@npm:^24.0.0": + version: 24.0.4 + resolution: "@react-hookz/web@npm:24.0.4" + dependencies: + "@react-hookz/deep-equal": "npm:^1.0.4" + peerDependencies: + js-cookie: ^3.0.5 + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 + peerDependenciesMeta: + js-cookie: + optional: true + checksum: 10/6a841c648edbc54b11fd90de9bb61c3059255598fc4a714c508c269a03c4ca9bbf32cf017d3bd2b3a1bf7cd1d9bf4bb56028f64ad455f796079632f4a7cd4f00 + languageName: node + linkType: hard + +"@redis/bloom@npm:1.2.0": + version: 1.2.0 + resolution: "@redis/bloom@npm:1.2.0" + peerDependencies: + "@redis/client": ^1.0.0 + checksum: 10/a16408f729ddd032a52c9d998661dfa7beabc0e92760d30619c3166c7a53a98c037956d93d230b787005fd8a599a7456461ca7429c1916893c2d13d59a41e0e6 + languageName: node + linkType: hard + +"@redis/client@npm:1.6.0": + version: 1.6.0 + resolution: "@redis/client@npm:1.6.0" + dependencies: + cluster-key-slot: "npm:1.1.2" + generic-pool: "npm:3.9.0" + yallist: "npm:4.0.0" + checksum: 10/ad375bd685dc34163304872e611ad31dc09a20f4dc8416e5dd588e8a9d2a42a6882f5c8f83d6388ba04ada71513c461b211c3146bcd8ab4da20b3f7edf08fb63 + languageName: node + linkType: hard + +"@redis/graph@npm:1.1.1": + version: 1.1.1 + resolution: "@redis/graph@npm:1.1.1" + peerDependencies: + "@redis/client": ^1.0.0 + checksum: 10/96b8ee9bec124947465848b56a014805f9639e09704e03c75a92072a319599ac9dcd4f9ace22970a7f72131a241166ad31db4dc6931b34808d22a5ca94649ba5 + languageName: node + linkType: hard + +"@redis/json@npm:1.0.7": + version: 1.0.7 + resolution: "@redis/json@npm:1.0.7" + peerDependencies: + "@redis/client": ^1.0.0 + checksum: 10/df0ac5035608d2e82289237d1adbf541af3743a86692df9958a2c89281bce024eeecfc031db51774d8a46639c5ec34ce9f8b71ebec7bce21865920e36ca3db57 + languageName: node + linkType: hard + +"@redis/search@npm:1.2.0": + version: 1.2.0 + resolution: "@redis/search@npm:1.2.0" + peerDependencies: + "@redis/client": ^1.0.0 + checksum: 10/25bba222c0fb1ec1f2db08fe157d30d56a8ffe234214c72d3a7a991daefe77f18c5e6440ab3aa297aef88bafd5448b04ac9fcd84671f2dadc8989712c06b63b4 + languageName: node + linkType: hard + +"@redis/time-series@npm:1.1.0": + version: 1.1.0 + resolution: "@redis/time-series@npm:1.1.0" + peerDependencies: + "@redis/client": ^1.0.0 + checksum: 10/e1d000eef7f37645f7f4ff94f32dd998384360b12fed1e4d614d828c065b72d7627e27444fab781fac4fdfe301c45f893417550fb1011d3b75237566ff0954e0 + languageName: node + linkType: hard + +"@remix-run/router@npm:1.21.1": + version: 1.21.1 + resolution: "@remix-run/router@npm:1.21.1" + checksum: 10/22a3dde5dd4ee131bddb5b589f974d6cb9e8378bda219bcdf592f399b9f10b8431d5f230bea507fc3b7f295998f8379942f5f07f920c087e2ecae65c76494e51 + languageName: node + linkType: hard + +"@repeaterjs/repeater@npm:^3.0.4, @repeaterjs/repeater@npm:^3.0.6": + version: 3.0.6 + resolution: "@repeaterjs/repeater@npm:3.0.6" + checksum: 10/25698e822847b776006428f31e2d31fbcb4faccf30c1c8d68d6e1308e58b49afb08764d1dd15536ddd67775cd01fd6c2fb22f039c05a71865448fbcfb2246af2 + languageName: node + linkType: hard + +"@rjsf/core@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/core@npm:5.23.2" + dependencies: + lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + markdown-to-jsx: "npm:^7.4.1" + nanoid: "npm:^3.3.7" + prop-types: "npm:^15.8.1" + peerDependencies: + "@rjsf/utils": ^5.23.x + react: ^16.14.0 || >=17 + checksum: 10/a49cbd41bb8b499ad2ed521417f53bf3fa65c09bedbf0e02ce0f00a5287a3ae4df774e74f89a8dcb8a24359d382a585ea4d20c3a6e109f4aaad2cd74b7db2b01 + languageName: node + linkType: hard + +"@rjsf/material-ui@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/material-ui@npm:5.23.2" + peerDependencies: + "@material-ui/core": ^4.12.3 + "@material-ui/icons": ^4.11.2 + "@rjsf/core": ^5.23.x + "@rjsf/utils": ^5.23.x + react: ^16.14.0 || >=17 + checksum: 10/0c9ab33d4a2251bc4a3868fd09e6267ccd23e96b226204e1e2b5d9667fec375f64ac9674f3f5c8b013bb6e0b745f31854cab92b859b0c9ff2527338760664d5f + languageName: node + linkType: hard + +"@rjsf/utils@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/utils@npm:5.23.2" + dependencies: + json-schema-merge-allof: "npm:^0.8.1" + jsonpointer: "npm:^5.0.1" + lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + react-is: "npm:^18.2.0" + peerDependencies: + react: ^16.14.0 || >=17 + checksum: 10/739a65a40dede96dd1d202ad0c0df96ffe4c75cd3ebcf035da9589eecf2875100c9e28066e135ececa4c188abee436b9ccaa1536992ab5d8417bb6c9e43bd156 + languageName: node + linkType: hard + +"@rjsf/validator-ajv8@npm:5.23.2": + version: 5.23.2 + resolution: "@rjsf/validator-ajv8@npm:5.23.2" + dependencies: + ajv: "npm:^8.12.0" + ajv-formats: "npm:^2.1.1" + lodash: "npm:^4.17.21" + lodash-es: "npm:^4.17.21" + peerDependencies: + "@rjsf/utils": ^5.23.x + checksum: 10/568693ef0b93f21000b3b9352a65dd65001b4b85514fd94a1bf7562dc9ab8333f3a077c5335041fd7d250fac9a6c9cb77ea8539d8589a03afa55539898f896e6 + languageName: node + linkType: hard + +"@rollup/plugin-commonjs@npm:^26.0.0": + version: 26.0.3 + resolution: "@rollup/plugin-commonjs@npm:26.0.3" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + commondir: "npm:^1.0.1" + estree-walker: "npm:^2.0.2" + glob: "npm:^10.4.1" + is-reference: "npm:1.2.1" + magic-string: "npm:^0.30.3" + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/e7443025339c047e32572c30e248958bead86d2ea993d5db006f3df12df06e9676ed13c38884b5f63bb4f5c8fc979875841909a6fe410f980488ae80d456e711 + languageName: node + linkType: hard + +"@rollup/plugin-json@npm:^6.0.0": + version: 6.1.0 + resolution: "@rollup/plugin-json@npm:6.1.0" + dependencies: + "@rollup/pluginutils": "npm:^5.1.0" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/cc018d20c80242a2b8b44fae61a968049cf31bb8406218187cc7cda35747616594e79452dd65722e7da6dd825b392e90d4599d43cd4461a02fefa2865945164e + languageName: node + linkType: hard + +"@rollup/plugin-node-resolve@npm:^15.0.0": + version: 15.3.1 + resolution: "@rollup/plugin-node-resolve@npm:15.3.1" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + "@types/resolve": "npm:1.20.2" + deepmerge: "npm:^4.2.2" + is-module: "npm:^1.0.0" + resolve: "npm:^1.22.1" + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/874494c0daca8fb0d633a237dd9df0d30609b374326e57508710f2b6d7ddaa93d203d8daa0257960b2b6723f56dfec1177573126f31ff9604700303b6f5fdbe3 + languageName: node + linkType: hard + +"@rollup/plugin-yaml@npm:^4.0.0": + version: 4.1.2 + resolution: "@rollup/plugin-yaml@npm:4.1.2" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + js-yaml: "npm:^4.1.0" + tosource: "npm:^2.0.0-alpha.3" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/a044bb4568a10712465553ea5f31c13a2b7bc371a7f8382014e6b8048c0a264f5645f83f4d70ce9ab46b75117b94cdc032b597e9315fd2adcd8f30637f44bbea + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^4.2.1": + version: 4.2.1 + resolution: "@rollup/pluginutils@npm:4.2.1" + dependencies: + estree-walker: "npm:^2.0.1" + picomatch: "npm:^2.2.2" + checksum: 10/503a6f0a449e11a2873ac66cfdfb9a3a0b77ffa84c5cad631f5e4bc1063c850710e8d5cd5dab52477c0d66cda2ec719865726dbe753318cd640bab3fff7ca476 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.5, @rollup/pluginutils@npm:^5.1.0": + version: 5.1.4 + resolution: "@rollup/pluginutils@npm:5.1.4" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^4.0.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/598f628988af25541a9a6c6ef154aaf350f8be3238884e500cc0e47138684071abe490563c953f9bda9e8b113ecb1f99c11abfb9dbaf4f72cdd62e257a673fa3 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.31.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-android-arm64@npm:4.31.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.31.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.31.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.31.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.31.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.31.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.31.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.31.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.31.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loongarch64-gnu@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.31.0" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.31.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.31.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.31.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.31.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.31.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.31.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.31.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.31.0": + version: 4.31.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.31.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10/17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + languageName: node + linkType: hard + +"@rushstack/node-core-library@npm:5.10.2": + version: 5.10.2 + resolution: "@rushstack/node-core-library@npm:5.10.2" + dependencies: + ajv: "npm:~8.13.0" + ajv-draft-04: "npm:~1.0.0" + ajv-formats: "npm:~3.0.1" + fs-extra: "npm:~7.0.1" + import-lazy: "npm:~4.0.0" + jju: "npm:~1.4.0" + resolve: "npm:~1.22.1" + semver: "npm:~7.5.4" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/3ea6776dc69f59e26566e041f21e11c5af306802cd9dc6364fe76a06341e62c01511160b0fe6156db824bb6c21c7a73f5e4e33c380cf8d2b4756c34d3241c6f8 + languageName: node + linkType: hard + +"@rushstack/rig-package@npm:0.5.3": + version: 0.5.3 + resolution: "@rushstack/rig-package@npm:0.5.3" + dependencies: + resolve: "npm:~1.22.1" + strip-json-comments: "npm:~3.1.1" + checksum: 10/b58a3925a41d7a0e79f4fde7c400a379683cc7b0073c447aba6d36231529a37e7d2f4559f459be785ad862ecb01b618b2d0ff60661046e5223437356155ccb14 + languageName: node + linkType: hard + +"@rushstack/terminal@npm:0.14.5": + version: 0.14.5 + resolution: "@rushstack/terminal@npm:0.14.5" + dependencies: + "@rushstack/node-core-library": "npm:5.10.2" + supports-color: "npm:~8.1.1" + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/f791a0208815d2078b6769e41e85293ef442e9b1514691b20ba8f5415b0cf2982b1fa9febeedbff4b157342cf60895ed4ae7a4572c9e08d265cb369001f74046 + languageName: node + linkType: hard + +"@rushstack/ts-command-line@npm:4.23.3": + version: 4.23.3 + resolution: "@rushstack/ts-command-line@npm:4.23.3" + dependencies: + "@rushstack/terminal": "npm:0.14.5" + "@types/argparse": "npm:1.0.38" + argparse: "npm:~1.0.9" + string-argv: "npm:~0.3.1" + checksum: 10/af126ebf429e3df85d2827a18728f0d2420fccc642d8b84e25cfadd833c2f9337fa9cf7fe28dd1ec9157bf893d9def27e4c701f227a78fc0b29acb61666a7542 + languageName: node + linkType: hard + +"@sagold/json-pointer@npm:^5.1.2": + version: 5.1.2 + resolution: "@sagold/json-pointer@npm:5.1.2" + checksum: 10/4c173d6cf63932aa6f6ea0b2729ccc1935ff4ff32b6b5df9ee6254ff290fef638dab20bcdb9650e95c7caf13dba7724a1e1ec8d6d23205b5794eb930bdce58d4 + languageName: node + linkType: hard + +"@sagold/json-query@npm:^6.1.3": + version: 6.2.0 + resolution: "@sagold/json-query@npm:6.2.0" + dependencies: + "@sagold/json-pointer": "npm:^5.1.2" + ebnf: "npm:^1.9.1" + checksum: 10/8b0b6b24140fc00c5798710181c48ce858fdc864bf4440f8091f64a45e62bb550fb0153c93793b2ff3f8c1239a3882262b784b429f349ebe12243c4658d117a7 + languageName: node + linkType: hard + +"@scarf/scarf@npm:=1.4.0": + version: 1.4.0 + resolution: "@scarf/scarf@npm:1.4.0" + checksum: 10/1b39a18fa29e91cfbc134c588e20c5f01a1b21ec4473614123801155b48378e9c3bf72adaca8c67e433ae951ab653268e9502cc5733230d8927532f74a6b89c9 + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 10/297f95ff77c82c54de8c9907f186076e715ff2621c5222ba50b8d40a170661c0c5242c763cba2a4791f0f91cb1d8ffa53ea1d7294570cf8cd4694c0e383e484d + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.1 + resolution: "@sinonjs/commons@npm:3.0.1" + dependencies: + type-detect: "npm:4.0.8" + checksum: 10/a0af217ba7044426c78df52c23cedede6daf377586f3ac58857c565769358ab1f44ebf95ba04bbe38814fba6e316ca6f02870a009328294fc2c555d0f85a7117 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" + dependencies: + "@sinonjs/commons": "npm:^3.0.0" + checksum: 10/78155c7bd866a85df85e22028e046b8d46cf3e840f72260954f5e3ed5bd97d66c595524305a6841ffb3f681a08f6e5cef572a2cce5442a8a232dc29fb409b83e + languageName: node + linkType: hard + +"@smithy/abort-controller@npm:^3.1.9": + version: 3.1.9 + resolution: "@smithy/abort-controller@npm:3.1.9" + dependencies: + "@smithy/types": "npm:^3.7.2" + tslib: "npm:^2.6.2" + checksum: 10/3c2e2503aac81ec2e62dd0094fcd92e6085c957945233a8791948c816771d1fcc1c532eb226b8f1955cef1feb48a924aa6df5033aaf6d312e1f147d109341562 + languageName: node + linkType: hard + +"@smithy/abort-controller@npm:^4.0.0, @smithy/abort-controller@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/abort-controller@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/c6ee2100f3309ccc7ac35ddbd09cab105515aec902df3bdc5b12e26b2166bf3868b24bdefd8f997d85eb0569cb9671301d4a4c9d6e858ece75c5fe9900a492a6 + languageName: node + linkType: hard + +"@smithy/chunked-blob-reader-native@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/chunked-blob-reader-native@npm:4.0.0" + dependencies: + "@smithy/util-base64": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/c58c4af5344cb9e2feddc15e020474930dc1a53a71b6dd2b3bd01d5555a5eb30ba964226b0fdac0c7e1f31d0354967a2e0c3c64860d6f0fe36652a7a003a8a19 + languageName: node + linkType: hard + +"@smithy/chunked-blob-reader@npm:^5.0.0": + version: 5.0.0 + resolution: "@smithy/chunked-blob-reader@npm:5.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/d27333cfe68f7d8af6b7b9b3f6edf32c8dea9cac9e4933f2a062b0836b126af4abcec6b908f9607a2f137f86e59f2eee37a57f87dbaea046da95c1f01e44d5ef + languageName: node + linkType: hard + +"@smithy/config-resolver@npm:^4.0.0, @smithy/config-resolver@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/config-resolver@npm:4.0.1" + dependencies: + "@smithy/node-config-provider": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-config-provider": "npm:^4.0.0" + "@smithy/util-middleware": "npm:^4.0.1" + tslib: "npm:^2.6.2" + checksum: 10/f0e4aa0085e27ec56311635fc104b6391f8dbca553d68b5f43c66902a6df28ce8c80cd579b1dfa3bfd76847fc90856334bf53c31d129257d46ceb69295775dab + languageName: node + linkType: hard + +"@smithy/core@npm:^3.0.0, @smithy/core@npm:^3.1.1": + version: 3.1.1 + resolution: "@smithy/core@npm:3.1.1" + dependencies: + "@smithy/middleware-serde": "npm:^4.0.1" + "@smithy/protocol-http": "npm:^5.0.1" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-body-length-browser": "npm:^4.0.0" + "@smithy/util-middleware": "npm:^4.0.1" + "@smithy/util-stream": "npm:^4.0.2" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/dafbc05da3ada1b5cb0e8cd1d63c2f410357266a21bf146d620aa48f09077a5e88f54a60d760221bf5435cf3429e3e0ae3a675c56cb78a54772e24ff11f36ec6 + languageName: node + linkType: hard + +"@smithy/credential-provider-imds@npm:^4.0.0, @smithy/credential-provider-imds@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/credential-provider-imds@npm:4.0.1" + dependencies: + "@smithy/node-config-provider": "npm:^4.0.1" + "@smithy/property-provider": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + "@smithy/url-parser": "npm:^4.0.1" + tslib: "npm:^2.6.2" + checksum: 10/92e2bf02c6f6f5e6fdfbee50b2b01b79a64c00bb73d04b018cd3a0949be470de641340208526bcbd377fe64aad6e41986ab58f9a3dc49266ab67246a3f225c33 + languageName: node + linkType: hard + +"@smithy/eventstream-codec@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/eventstream-codec@npm:4.0.1" + dependencies: + "@aws-crypto/crc32": "npm:5.2.0" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-hex-encoding": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/2ddf420a4443466c0c499f65d6b5288bed0db85963554b4035d8cfe24dbb41b4a1878c53b1bf58bcdd71144f24edf7a0215f64d9a3a294d1b22f83816ebf6764 + languageName: node + linkType: hard + +"@smithy/eventstream-serde-browser@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/eventstream-serde-browser@npm:4.0.1" + dependencies: + "@smithy/eventstream-serde-universal": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/ff6dfe097e5c53f63b4a2c9e24206eeda9967cb22fb3ae27dd6ba73fc61cde1402bf15fb430957542b3e9ef8ce719875a3eac06c23ce212fc15cc061fe86a836 + languageName: node + linkType: hard + +"@smithy/eventstream-serde-config-resolver@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/eventstream-serde-config-resolver@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/26872940b9ac1bbd5303c839c72d7c10da2bf8ac60399b9b34fa74bd5e7142dbe4df6425a9f5ea07bd9b05ae9c81c0b6058817ffcfff0391554a28c3cebed1e0 + languageName: node + linkType: hard + +"@smithy/eventstream-serde-node@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/eventstream-serde-node@npm:4.0.1" + dependencies: + "@smithy/eventstream-serde-universal": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/e2815a4eb2dbf6d09071bad714f18aa5d5f0c7490c47a5f47f3359baee682741cf90e267d2936d6dd7969483cc951397c3a797b544e01ae5577c94f91e7f571e + languageName: node + linkType: hard + +"@smithy/eventstream-serde-universal@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/eventstream-serde-universal@npm:4.0.1" + dependencies: + "@smithy/eventstream-codec": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/574aa639a16ce9d3edf05d6a5ec94b14e555a0cde957b7ca526b5280cc428c2c189973f3a38f2bcf23ff9927da7e14089cff9d2832a5887c5aeadcf089284612 + languageName: node + linkType: hard + +"@smithy/fetch-http-handler@npm:^5.0.0, @smithy/fetch-http-handler@npm:^5.0.1": + version: 5.0.1 + resolution: "@smithy/fetch-http-handler@npm:5.0.1" + dependencies: + "@smithy/protocol-http": "npm:^5.0.1" + "@smithy/querystring-builder": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-base64": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/7b62b52393ccb003396c7b0c5cb376bfd5853a4b4f9a38a96ff9edd35b8c3bea2788d4ed465b6691f9d64fc1c829ee00bbd285e2974867562ccf5979fcf64ea5 + languageName: node + linkType: hard + +"@smithy/hash-blob-browser@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/hash-blob-browser@npm:4.0.1" + dependencies: + "@smithy/chunked-blob-reader": "npm:^5.0.0" + "@smithy/chunked-blob-reader-native": "npm:^4.0.0" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/89d7d8ca6afeef8e9ce440cd8bd9178887711c536b8ad203513793b362305c2206101683b85691c2cda30563128127914818b56e1e55443998de9ac286dc5532 + languageName: node + linkType: hard + +"@smithy/hash-node@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/hash-node@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + "@smithy/util-buffer-from": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/b6f08fc7f69ba4c7e7c792423473111ea93aa480db8b399b115ea88141e25a2a4be37e359a3595e0dc8fa447ca9ea1430ab66b9811b4b7044d4696af5bd71c88 + languageName: node + linkType: hard + +"@smithy/hash-stream-node@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/hash-stream-node@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/78d1edb68a1522c10e7b13af4dd1b20967f9c5c210dd58a5a9cc7681bda86777c571d46f617d1f4b933b1795949cd6b2fd0c6df5974c51b6c8844a5e88eef95a + languageName: node + linkType: hard + +"@smithy/invalid-dependency@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/invalid-dependency@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/58434ef2969352e3199c000ee1bedf2e9a9f510d48999caf9f939980b7a0105be2677b41820af65ca2b9910e8507bc3c0ce6f4a5b35de1602974eaaa74844f13 + languageName: node + linkType: hard + +"@smithy/is-array-buffer@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/is-array-buffer@npm:2.2.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/d366743ecc7a9fc3bad21dbb3950d213c12bdd4aeb62b1265bf6cbe38309df547664ef3e51ab732e704485194f15e89d361943b0bfbe3fe1a4b3178b942913cc + languageName: node + linkType: hard + +"@smithy/is-array-buffer@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/is-array-buffer@npm:4.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/3985046ac490968fe86e2d5e87d023d67f29aa4778abebacecb0f7962d07e32507a5612701c7aa7b1fb63b5a6e68086c915cae5229e5f1abfb39419dc07e00c8 + languageName: node + linkType: hard + +"@smithy/md5-js@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/md5-js@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/a66ac2861614ef9b894c74014b1e96e0c7ca21ac5c54828050b446033a4bc1945fa4f8788114e0906dcfc75b3bb6b26686e8c1a1b0a8072a501e8d9faa0b9802 + languageName: node + linkType: hard + +"@smithy/middleware-content-length@npm:^4.0.0": + version: 4.0.1 + resolution: "@smithy/middleware-content-length@npm:4.0.1" + dependencies: + "@smithy/protocol-http": "npm:^5.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/61d2f83858bb8f783a122e7b45375b80872937540d9a2415c7d0bf80364e6e7eb74a81660ed4a76ce0ace06e3a460ab3b111a1628f51aa956060029160ee1672 + languageName: node + linkType: hard + +"@smithy/middleware-endpoint@npm:^4.0.0, @smithy/middleware-endpoint@npm:^4.0.2": + version: 4.0.2 + resolution: "@smithy/middleware-endpoint@npm:4.0.2" + dependencies: + "@smithy/core": "npm:^3.1.1" + "@smithy/middleware-serde": "npm:^4.0.1" + "@smithy/node-config-provider": "npm:^4.0.1" + "@smithy/shared-ini-file-loader": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + "@smithy/url-parser": "npm:^4.0.1" + "@smithy/util-middleware": "npm:^4.0.1" + tslib: "npm:^2.6.2" + checksum: 10/2d22f1cf18145ccaedf315fe754c5aef2dee94763c2508fd6731ca9e5a54147212748d598a094d78c57e38dac55344da211a36b94cbecca09cba594ebd44b6e2 + languageName: node + linkType: hard + +"@smithy/middleware-retry@npm:^4.0.0": + version: 4.0.3 + resolution: "@smithy/middleware-retry@npm:4.0.3" + dependencies: + "@smithy/node-config-provider": "npm:^4.0.1" + "@smithy/protocol-http": "npm:^5.0.1" + "@smithy/service-error-classification": "npm:^4.0.1" + "@smithy/smithy-client": "npm:^4.1.2" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-middleware": "npm:^4.0.1" + "@smithy/util-retry": "npm:^4.0.1" + tslib: "npm:^2.6.2" + uuid: "npm:^9.0.1" + checksum: 10/3a7fa51ee287e253697d00327d08f5de4972476c94fd9ac5dd74f5b6b4c7434741f74a6301e7f4dbe9d1fbd9e38e82b054d767c6dbba9a8ed3cdeef13dbafb96 + languageName: node + linkType: hard + +"@smithy/middleware-serde@npm:^4.0.0, @smithy/middleware-serde@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/middleware-serde@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/f77b084741ee77e750eba6c3a66b8fd29ba5f4842e27ee64c6c40bdad2e1fafa3d28157e2d7019c943f2d11c6512bb46898bdb8560c934754c5b82594148b193 + languageName: node + linkType: hard + +"@smithy/middleware-stack@npm:^4.0.0, @smithy/middleware-stack@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/middleware-stack@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/6aea712b83bd562bb539801b8aacc93d42cb8c1c5db0f4fa6d9f886986a279900517488e460da2cb435620811f17f06d962e23bb7e55ce146b55f19dc5e6a513 + languageName: node + linkType: hard + +"@smithy/node-config-provider@npm:^4.0.0, @smithy/node-config-provider@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/node-config-provider@npm:4.0.1" + dependencies: + "@smithy/property-provider": "npm:^4.0.1" + "@smithy/shared-ini-file-loader": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/f4e7b272e154e2eea457d298c6e0c4bb9b5b1c708b0fa2abf10c8153fbf2a7383e3f72b742093931566cfd8b1b42b487f8bb7eb84d67aac00dee82aed5b303d0 + languageName: node + linkType: hard + +"@smithy/node-http-handler@npm:^3.0.0": + version: 3.3.3 + resolution: "@smithy/node-http-handler@npm:3.3.3" + dependencies: + "@smithy/abort-controller": "npm:^3.1.9" + "@smithy/protocol-http": "npm:^4.1.8" + "@smithy/querystring-builder": "npm:^3.0.11" + "@smithy/types": "npm:^3.7.2" + tslib: "npm:^2.6.2" + checksum: 10/1ec04dfce9456c3c78b82310a27dc34900e6ec238d35d0d3e3e12a83cd1c198639e047bb9d2474f46b4e0c378fcf8705dcede902bde081351d26e16b59e7f062 + languageName: node + linkType: hard + +"@smithy/node-http-handler@npm:^4.0.0, @smithy/node-http-handler@npm:^4.0.2": + version: 4.0.2 + resolution: "@smithy/node-http-handler@npm:4.0.2" + dependencies: + "@smithy/abort-controller": "npm:^4.0.1" + "@smithy/protocol-http": "npm:^5.0.1" + "@smithy/querystring-builder": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/62814911247cf11a1a6eb3cf4203bb8c130ea1f1f208569c664944c8486613ccbb9d5564c2851f1853fb433d5633485b8799464f0fef96a0d90620dc94df373c + languageName: node + linkType: hard + +"@smithy/property-provider@npm:^4.0.0, @smithy/property-provider@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/property-provider@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/6b97e175b68bd87f83521a4926db150511695e9c454d2a0fc3567f67449a727308040a92d194ca99538b04d0ec98b3c90fcb2b60657d42da5c32c4c2a8fdce3d + languageName: node + linkType: hard + +"@smithy/protocol-http@npm:^4.1.8": + version: 4.1.8 + resolution: "@smithy/protocol-http@npm:4.1.8" + dependencies: + "@smithy/types": "npm:^3.7.2" + tslib: "npm:^2.6.2" + checksum: 10/e84bfdf81766e9a1b4a9d7362047af5e66247397feef237767e80bbf9d30551b588df94714fefdb4a247a5effd33a45dd13dd47970d5c6f0bcb471e5fbdac51e + languageName: node + linkType: hard + +"@smithy/protocol-http@npm:^5.0.0, @smithy/protocol-http@npm:^5.0.1": + version: 5.0.1 + resolution: "@smithy/protocol-http@npm:5.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/8cc5a4b8c5f0c58da06e0420601871fd478dc340bc6da9f890169f382d521ddb3021bc8f5f99145555cfd2ac55fbdc78a4dae387ff158f3badf3a3c76b764501 + languageName: node + linkType: hard + +"@smithy/querystring-builder@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/querystring-builder@npm:3.0.11" + dependencies: + "@smithy/types": "npm:^3.7.2" + "@smithy/util-uri-escape": "npm:^3.0.0" + tslib: "npm:^2.6.2" + checksum: 10/f873ff01875c6da51f1c8a58151e5bc7d91737c76cac9c91a1625f35c0de272c317b34de314eba027923b05225917b5c269eb071957426b8af17a3a50397139a + languageName: node + linkType: hard + +"@smithy/querystring-builder@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/querystring-builder@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + "@smithy/util-uri-escape": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/d82a1f63345b26bad963fa84b66981a30647b2861f56872dfc684322d6f85b9ef5aad78f450983d1d7048f67ec0ffeca8a42e95578177d1a161b0af9f2857bcf + languageName: node + linkType: hard + +"@smithy/querystring-parser@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/querystring-parser@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/9699e7f17197fe692d2ba9eb17f43dd815913c27f1432761c4e9b005411b1602b00dcc01eb6134a856e211cce7300a55099719bf7b04358561a545532a8ed7b4 + languageName: node + linkType: hard + +"@smithy/service-error-classification@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/service-error-classification@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + checksum: 10/0f94179b167bd58dd800df8ab949b4dadf50c6dd8e42013377acf7331ba975c8702d7beba336af544fb507bda5e62260e1f5a8508331d34994641fe9fde0e407 + languageName: node + linkType: hard + +"@smithy/shared-ini-file-loader@npm:^4.0.0, @smithy/shared-ini-file-loader@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/shared-ini-file-loader@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/4e75cc58278fae01d8cce41a2c874e2f18f5abcdfda0729f0e9aa723e5d23bb2d642c26863fc8ebee70433a097dbc4b67aff9523094f42d23e9ca3b4551febc3 + languageName: node + linkType: hard + +"@smithy/signature-v4@npm:^5.0.0": + version: 5.0.1 + resolution: "@smithy/signature-v4@npm:5.0.1" + dependencies: + "@smithy/is-array-buffer": "npm:^4.0.0" + "@smithy/protocol-http": "npm:^5.0.1" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-hex-encoding": "npm:^4.0.0" + "@smithy/util-middleware": "npm:^4.0.1" + "@smithy/util-uri-escape": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/d47a381d1bba94c91f7d47eaceecb3457dbb32f4e2465c0aef6c20cbff730335036f542a75470afbc955fa5e0188ac40431da44a89e53c6fc5b12ac158904d9b + languageName: node + linkType: hard + +"@smithy/smithy-client@npm:^4.0.0, @smithy/smithy-client@npm:^4.1.2": + version: 4.1.2 + resolution: "@smithy/smithy-client@npm:4.1.2" + dependencies: + "@smithy/core": "npm:^3.1.1" + "@smithy/middleware-endpoint": "npm:^4.0.2" + "@smithy/middleware-stack": "npm:^4.0.1" + "@smithy/protocol-http": "npm:^5.0.1" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-stream": "npm:^4.0.2" + tslib: "npm:^2.6.2" + checksum: 10/08aba54f867bf33caaa41642cbf9ca090a13506e306325a3f1aa48e0f3ab435385cdb55b2f1900ebb5a47b0d743b6d7268860b7ec93560db83d7081991723037 + languageName: node + linkType: hard + +"@smithy/types@npm:^1.1.0": + version: 1.2.0 + resolution: "@smithy/types@npm:1.2.0" + dependencies: + tslib: "npm:^2.5.0" + checksum: 10/48691d980844540ee3bd12f6b4ed0a8139da4dde6571b8ff2fd9d1c62edb3c8dbf3db66a7c74e269bea01ac28f7d8a4b464f9141100512e6b5982d7cf4108998 + languageName: node + linkType: hard + +"@smithy/types@npm:^3.7.2": + version: 3.7.2 + resolution: "@smithy/types@npm:3.7.2" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/7a40dcb7f858367a07456c5ae7e7eec89ea9efb7e511e521c105a9568e1e89add875b25e63df19bebdaa77af89f0e5fc691b9f408d077bedb10586a764133e41 + languageName: node + linkType: hard + +"@smithy/types@npm:^4.0.0, @smithy/types@npm:^4.1.0": + version: 4.1.0 + resolution: "@smithy/types@npm:4.1.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/578e500f10371b5ca88c34d41a76fec52f75ab85abc105a0948aa0002a86a4b797c4e8d444008416f38c982503528c8a89cd43b83e7329740fca7e48ece1c75b + languageName: node + linkType: hard + +"@smithy/url-parser@npm:^4.0.0, @smithy/url-parser@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/url-parser@npm:4.0.1" + dependencies: + "@smithy/querystring-parser": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/33a8dc3a2b6642697d4cc3cab6d09c84fd5970ccd6810f55ce733925719dfe8848df92900b6b660451cf31b47dbc413273c449b0b0d135c9fe347c83b41220dc + languageName: node + linkType: hard + +"@smithy/util-base64@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-base64@npm:4.0.0" + dependencies: + "@smithy/util-buffer-from": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/f495fa8f5be60a1b94f88e2de4b1236df5cfee78f32191840adffcc520f2f55cdc2f287dd7abddcac4759c51970b5326b6b371c60ad65b640992018e95e30d19 + languageName: node + linkType: hard + +"@smithy/util-body-length-browser@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-body-length-browser@npm:4.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/041a5e3c98d5b0a935c992c0217dcc033886798406df803945c994fbf3302eb0d9bdea7f7f8e6abaabf3e547bdffda6f1fb00829be3e93adac6b1949d77b741f + languageName: node + linkType: hard + +"@smithy/util-body-length-node@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-body-length-node@npm:4.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/28d7b25b1465b290507b90be595bb161f9c1de755b35b4b99c3cf752725806b7d1f0c364535007f45a6aba95f2b49c2be9ebabaa4f03b5d36f9fc3287cd9d17a + languageName: node + linkType: hard + +"@smithy/util-buffer-from@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/util-buffer-from@npm:2.2.0" + dependencies: + "@smithy/is-array-buffer": "npm:^2.2.0" + tslib: "npm:^2.6.2" + checksum: 10/53253e4e351df3c4b7907dca48a0a6ceae783e98a8e73526820b122b3047a53fd127c19f4d8301f68d852011d821da519da783de57e0b22eed57c4df5b90d089 + languageName: node + linkType: hard + +"@smithy/util-buffer-from@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-buffer-from@npm:4.0.0" + dependencies: + "@smithy/is-array-buffer": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/077fd6fe88b9db69ef0d4e2dfa9946bb1e1ae3d899515d7102f8648d18fb012fcbc87244cce569c0e9e86c5001bfe309b2de874fe508e1a9a591b11540b0a2c8 + languageName: node + linkType: hard + +"@smithy/util-config-provider@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-config-provider@npm:4.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/74f3cb317056f0974b0942c79d43859031cb860fcf6eb5c9244bee369fc6c4b9c823491a40ca4f03f65641f4128d7fa5c2d322860cb7ee8517c0b2e63088ac6f + languageName: node + linkType: hard + +"@smithy/util-defaults-mode-browser@npm:^4.0.0": + version: 4.0.3 + resolution: "@smithy/util-defaults-mode-browser@npm:4.0.3" + dependencies: + "@smithy/property-provider": "npm:^4.0.1" + "@smithy/smithy-client": "npm:^4.1.2" + "@smithy/types": "npm:^4.1.0" + bowser: "npm:^2.11.0" + tslib: "npm:^2.6.2" + checksum: 10/46ec8ec48adad844633ad3c1f2d96f9c80cbda082ffb4c4c74ca172b595c906badd67d47e11d9570972a1cad187f7373b36a637047aececda496bccb210fc1fb + languageName: node + linkType: hard + +"@smithy/util-defaults-mode-node@npm:^4.0.0": + version: 4.0.3 + resolution: "@smithy/util-defaults-mode-node@npm:4.0.3" + dependencies: + "@smithy/config-resolver": "npm:^4.0.1" + "@smithy/credential-provider-imds": "npm:^4.0.1" + "@smithy/node-config-provider": "npm:^4.0.1" + "@smithy/property-provider": "npm:^4.0.1" + "@smithy/smithy-client": "npm:^4.1.2" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/1a793ff7e553ff0db6e346348503eda85e31ca0baaf218698d034eecd5c3a11cb5061ee84f03b617b5df2e0704c8c98fec503385b9f74c633c7dc56660249074 + languageName: node + linkType: hard + +"@smithy/util-endpoints@npm:^3.0.0": + version: 3.0.1 + resolution: "@smithy/util-endpoints@npm:3.0.1" + dependencies: + "@smithy/node-config-provider": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/9c044f174e42b031817bd3ad09e2ee9fc15e4ccd0fd967b4dbf591023f016c02dd76511f827210c2d7a3fc8611bed8860779a5bba56b1d9d063d1861ee872051 + languageName: node + linkType: hard + +"@smithy/util-hex-encoding@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-hex-encoding@npm:4.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/447475cad8510d2727bbdf8490021a7ca8cb52b391f4bfe646c73a3aa1d5678152f1b5c4c2aaeebd9f6650272d973a1739e2d42294bd68c957429e3a30db3546 + languageName: node + linkType: hard + +"@smithy/util-middleware@npm:^4.0.0, @smithy/util-middleware@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/util-middleware@npm:4.0.1" + dependencies: + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/3b4c64b3d75561d8a4f2eaddda02f2c042f1589ad8280d6933a357f1456d9513702f90d0a25ea41f008d27587a34bdb5e5b7a8e2fc1f47022d680ec0b91d7a3f + languageName: node + linkType: hard + +"@smithy/util-retry@npm:^4.0.0, @smithy/util-retry@npm:^4.0.1": + version: 4.0.1 + resolution: "@smithy/util-retry@npm:4.0.1" + dependencies: + "@smithy/service-error-classification": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/eeef33a7a8078d99fee2a4efa0def32907ec7c76ffee99dcdb4c83ce06f532acd1faaddf3b4d679786e93e5ea1fd22806b3af20f923cd5d02a91115ae6b1ccde + languageName: node + linkType: hard + +"@smithy/util-stream@npm:^4.0.0, @smithy/util-stream@npm:^4.0.2": + version: 4.0.2 + resolution: "@smithy/util-stream@npm:4.0.2" + dependencies: + "@smithy/fetch-http-handler": "npm:^5.0.1" + "@smithy/node-http-handler": "npm:^4.0.2" + "@smithy/types": "npm:^4.1.0" + "@smithy/util-base64": "npm:^4.0.0" + "@smithy/util-buffer-from": "npm:^4.0.0" + "@smithy/util-hex-encoding": "npm:^4.0.0" + "@smithy/util-utf8": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/da00fd59ec7859542b4adb1c7005732991a3c630ef16f70b504f3beb5fbbaa1d4a219acd3af836bd267fe415fa1b44f52426307b0953261a0c82b726d8d481a2 + languageName: node + linkType: hard + +"@smithy/util-uri-escape@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-uri-escape@npm:3.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/d44522339325b0f1fe2c5bf1a3f01d5a699eb8718d800dee24378a1a1b301683756dcfd4be4c32db4d6a00cad85893494778ae39fb246a03aef27d06c9852a67 + languageName: node + linkType: hard + +"@smithy/util-uri-escape@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-uri-escape@npm:4.0.0" + dependencies: + tslib: "npm:^2.6.2" + checksum: 10/27b71d7c1bc21d9038b86fd55380449a7a1dab52959566372d24a86df027c0ad9190980879cc4903be999dc36a5619f0794acf9cdc789adba5e57e26cd6ce4a6 + languageName: node + linkType: hard + +"@smithy/util-utf8@npm:^2.0.0": + version: 2.3.0 + resolution: "@smithy/util-utf8@npm:2.3.0" + dependencies: + "@smithy/util-buffer-from": "npm:^2.2.0" + tslib: "npm:^2.6.2" + checksum: 10/c766ead8dac6bc6169f4cac1cc47ef7bd86928d06255148f9528228002f669c8cc49f78dc2b9ba5d7e214d40315024a9e32c5c9130b33e20f0fe4532acd0dff5 + languageName: node + linkType: hard + +"@smithy/util-utf8@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/util-utf8@npm:4.0.0" + dependencies: + "@smithy/util-buffer-from": "npm:^4.0.0" + tslib: "npm:^2.6.2" + checksum: 10/4de06914d08753ce14ec553cf2dabe4a432cf982e415ec7dec82dfb8a6af793ddd08587fbcaeb889a0f6cc917eecca3a026880cf914082ee8e293f5bfc44e248 + languageName: node + linkType: hard + +"@smithy/util-waiter@npm:^4.0.0": + version: 4.0.2 + resolution: "@smithy/util-waiter@npm:4.0.2" + dependencies: + "@smithy/abort-controller": "npm:^4.0.1" + "@smithy/types": "npm:^4.1.0" + tslib: "npm:^2.6.2" + checksum: 10/80fd4231271422ba79f909df1f9055b24db7442a589c8813761fff9aab8bf6b12191a67346b9447150a1912f99d4bb4fa927c72388af8a1ac6cfcaeb10c2e6bb + languageName: node + linkType: hard + +"@snyk/github-codeowners@npm:1.1.0": + version: 1.1.0 + resolution: "@snyk/github-codeowners@npm:1.1.0" + dependencies: + commander: "npm:^4.1.1" + ignore: "npm:^5.1.8" + p-map: "npm:^4.0.0" + bin: + github-codeowners: dist/cli.js + checksum: 10/34120ef622616fef1ed8af12869d8c1803842aafa3fbacca263805ee7c85f58d11bdc301ef698c9b41268b275b9fd090f5d9f6d89c556abe9d52196e72d1c510 + languageName: node + linkType: hard + +"@spotify/eslint-config-base@npm:^15.0.0": + version: 15.0.0 + resolution: "@spotify/eslint-config-base@npm:15.0.0" + peerDependencies: + eslint: ">=7.x" + checksum: 10/2babdd0aa03ae2ac159796875c6b1c51d6d69e376b6ca25fc08d1297c12f3d1a83207427ca9a75e143c29337d0ae37057573a36262cce717a074e38a47117178 + languageName: node + linkType: hard + +"@spotify/eslint-config-react@npm:^15.0.0": + version: 15.0.0 + resolution: "@spotify/eslint-config-react@npm:15.0.0" + peerDependencies: + eslint: ">=8.x" + eslint-plugin-jsx-a11y: 6.x + eslint-plugin-react: ">=7.7.0 <8" + eslint-plugin-react-hooks: ^4.0.0 + checksum: 10/402135a0548b412959e6bf8fed1e90ff74f42502d9c6f50c77a6aa028a09eec0a993b9e066c7d548b2aaac6f0eda11636750f81773c519ebc14b8d22f3e3c1af + languageName: node + linkType: hard + +"@spotify/eslint-config-typescript@npm:^15.0.0": + version: 15.0.0 + resolution: "@spotify/eslint-config-typescript@npm:15.0.0" + peerDependencies: + "@typescript-eslint/eslint-plugin": ">=5" + "@typescript-eslint/parser": ">=5" + eslint: ">=8.x" + checksum: 10/33627cff3a7ff6360cd73e26d28c50b3a49cc027716e1e0044187cad1fbfd6f9da13c83d2ae16bffa4755c8004f2ee9dafa4d520906905a8c9a7209987c93e5d + languageName: node + linkType: hard + +"@stoplight/better-ajv-errors@npm:1.0.3": + version: 1.0.3 + resolution: "@stoplight/better-ajv-errors@npm:1.0.3" + dependencies: + jsonpointer: "npm:^5.0.0" + leven: "npm:^3.1.0" + peerDependencies: + ajv: ">=8" + checksum: 10/0fae5139986192ebf9ea65672a921480cd66308832d1ca33f6ca4f9d9caad109e7ea900cb2352b3348b38fb17f7e2322ceb9c8381d9518ccd3fbde4e972ff807 + languageName: node + linkType: hard + +"@stoplight/json-ref-readers@npm:1.2.2, @stoplight/json-ref-readers@npm:^1.2.2": + version: 1.2.2 + resolution: "@stoplight/json-ref-readers@npm:1.2.2" + dependencies: + node-fetch: "npm:^2.6.0" + tslib: "npm:^1.14.1" + checksum: 10/1cb60a4c037ebc03bc4f4ef83e831e72c65954a63633ec77a39316458d2791a27701c0ccb962b85892f2e2b412fb7eb866a7bf9ccb449fe035948e1f31b37acb + languageName: node + linkType: hard + +"@stoplight/json-ref-resolver@npm:^3.1.5, @stoplight/json-ref-resolver@npm:~3.1.6": + version: 3.1.6 + resolution: "@stoplight/json-ref-resolver@npm:3.1.6" + dependencies: + "@stoplight/json": "npm:^3.21.0" + "@stoplight/path": "npm:^1.3.2" + "@stoplight/types": "npm:^12.3.0 || ^13.0.0" + "@types/urijs": "npm:^1.19.19" + dependency-graph: "npm:~0.11.0" + fast-memoize: "npm:^2.5.2" + immer: "npm:^9.0.6" + lodash: "npm:^4.17.21" + tslib: "npm:^2.6.0" + urijs: "npm:^1.19.11" + checksum: 10/f70b3c7db148ccbf34a634962e13fabb91ea0721e11b693f34f17d65411f4ea7e5e92062d3184c455205dc3372a8f0e81b843f08048c2ea6a001595f88cf7440 + languageName: node + linkType: hard + +"@stoplight/json@npm:3.21.0": + version: 3.21.0 + resolution: "@stoplight/json@npm:3.21.0" + dependencies: + "@stoplight/ordered-object-literal": "npm:^1.0.3" + "@stoplight/path": "npm:^1.3.2" + "@stoplight/types": "npm:^13.6.0" + jsonc-parser: "npm:~2.2.1" + lodash: "npm:^4.17.21" + safe-stable-stringify: "npm:^1.1" + checksum: 10/497e057a4a0792a7564542dd8294a5c8358d64ebc2260a81b81bd7b92ee51466ddf66283f02bc5406d881d150d6ef5940ef9dcbeb06f89cfb0bc0e498ec5b87b + languageName: node + linkType: hard + +"@stoplight/json@npm:^3.17.0, @stoplight/json@npm:^3.17.1, @stoplight/json@npm:^3.20.1, @stoplight/json@npm:^3.21.0, @stoplight/json@npm:~3.21.0": + version: 3.21.7 + resolution: "@stoplight/json@npm:3.21.7" + dependencies: + "@stoplight/ordered-object-literal": "npm:^1.0.3" + "@stoplight/path": "npm:^1.3.2" + "@stoplight/types": "npm:^13.6.0" + jsonc-parser: "npm:~2.2.1" + lodash: "npm:^4.17.21" + safe-stable-stringify: "npm:^1.1" + checksum: 10/f7a1069150937ca0676d46856c3f8e7c3f21314c576507ed40fe4d4f60b4b8c414a1b590904c5959048a1e8e37cd59163c93fd3b31656da76d14c225b2c2ee4f + languageName: node + linkType: hard + +"@stoplight/ordered-object-literal@npm:^1.0.3, @stoplight/ordered-object-literal@npm:^1.0.5": + version: 1.0.5 + resolution: "@stoplight/ordered-object-literal@npm:1.0.5" + checksum: 10/d12374f46ef8ab7237196024cc387aa50c0ec8029a421ef1eac726d342687f79972a9d0f0dc39802719511b8f8a82f06b3859b8219ada040a7640bf9d954cd62 + languageName: node + linkType: hard + +"@stoplight/path@npm:1.3.2, @stoplight/path@npm:^1.3.2": + version: 1.3.2 + resolution: "@stoplight/path@npm:1.3.2" + checksum: 10/74e3d019cd389a93701c599e7a8124862bcb3fc71d93dfe126f16683df2e63021a1c2029e58cb6e33b5368592baff26c5a0641a746ae2e7dbfbfa8fb232811fd + languageName: node + linkType: hard + +"@stoplight/spectral-core@npm:^1.18.0, @stoplight/spectral-core@npm:^1.18.3, @stoplight/spectral-core@npm:^1.19.2, @stoplight/spectral-core@npm:^1.19.4": + version: 1.19.4 + resolution: "@stoplight/spectral-core@npm:1.19.4" + dependencies: + "@stoplight/better-ajv-errors": "npm:1.0.3" + "@stoplight/json": "npm:~3.21.0" + "@stoplight/path": "npm:1.3.2" + "@stoplight/spectral-parsers": "npm:^1.0.0" + "@stoplight/spectral-ref-resolver": "npm:^1.0.4" + "@stoplight/spectral-runtime": "npm:^1.1.2" + "@stoplight/types": "npm:~13.6.0" + "@types/es-aggregate-error": "npm:^1.0.2" + "@types/json-schema": "npm:^7.0.11" + ajv: "npm:^8.17.1" + ajv-errors: "npm:~3.0.0" + ajv-formats: "npm:~2.1.0" + es-aggregate-error: "npm:^1.0.7" + jsonpath-plus: "npm:10.2.0" + lodash: "npm:~4.17.21" + lodash.topath: "npm:^4.5.2" + minimatch: "npm:3.1.2" + nimma: "npm:0.2.3" + pony-cause: "npm:^1.1.1" + simple-eval: "npm:1.0.1" + tslib: "npm:^2.8.1" + checksum: 10/4413cb02dec5624aaa45a82d11cd3424814078f42d2b7f2d120cf602e59455ece81bb9f3339cf58e4e0c9a2c625478127a66fb6f0efda33b6c23f0adb9b84d9a + languageName: node + linkType: hard + +"@stoplight/spectral-formats@npm:^1.2.0, @stoplight/spectral-formats@npm:^1.8.1": + version: 1.8.2 + resolution: "@stoplight/spectral-formats@npm:1.8.2" + dependencies: + "@stoplight/json": "npm:^3.17.0" + "@stoplight/spectral-core": "npm:^1.19.2" + "@types/json-schema": "npm:^7.0.7" + tslib: "npm:^2.8.1" + checksum: 10/cc48755bcc6148fbb8101c75cb9509ff17630880fabdeb2196b79802409f26121f9c2f9f9e2e864ad8e210087a3cbd97646f85d7ab80d99daed9a999dbf468c3 + languageName: node + linkType: hard + +"@stoplight/spectral-formatters@npm:^1.1.0": + version: 1.4.3 + resolution: "@stoplight/spectral-formatters@npm:1.4.3" + dependencies: + "@stoplight/path": "npm:^1.3.2" + "@stoplight/spectral-core": "npm:^1.19.4" + "@stoplight/spectral-runtime": "npm:^1.1.2" + "@stoplight/types": "npm:^13.15.0" + "@types/markdown-escape": "npm:^1.1.3" + chalk: "npm:4.1.2" + cliui: "npm:7.0.4" + lodash: "npm:^4.17.21" + markdown-escape: "npm:^2.0.0" + node-sarif-builder: "npm:^2.0.3" + strip-ansi: "npm:6.0" + text-table: "npm:^0.2.0" + tslib: "npm:^2.8.1" + checksum: 10/38cdb6dd756a5b859f0768bd7a6730d9ff816a8e21880385e75d0b663a98a2ca62283b6ab50bcce92384e0117d354813591faec9d5da85a3d6ed491afd5b1830 + languageName: node + linkType: hard + +"@stoplight/spectral-functions@npm:^1.6.1, @stoplight/spectral-functions@npm:^1.7.2, @stoplight/spectral-functions@npm:^1.9.1": + version: 1.9.3 + resolution: "@stoplight/spectral-functions@npm:1.9.3" + dependencies: + "@stoplight/better-ajv-errors": "npm:1.0.3" + "@stoplight/json": "npm:^3.17.1" + "@stoplight/spectral-core": "npm:^1.19.4" + "@stoplight/spectral-formats": "npm:^1.8.1" + "@stoplight/spectral-runtime": "npm:^1.1.2" + ajv: "npm:^8.17.1" + ajv-draft-04: "npm:~1.0.0" + ajv-errors: "npm:~3.0.0" + ajv-formats: "npm:~2.1.0" + lodash: "npm:~4.17.21" + tslib: "npm:^2.8.1" + checksum: 10/8028e03631e4358e8834958f74a0a7c768c1bc718e5c888f89d78b86e60ae988b4eafcb112df475ca06f997226bbd72843e3441266abd7f9a98108064e37141b + languageName: node + linkType: hard + +"@stoplight/spectral-parsers@npm:^1.0.0, @stoplight/spectral-parsers@npm:^1.0.2": + version: 1.0.5 + resolution: "@stoplight/spectral-parsers@npm:1.0.5" + dependencies: + "@stoplight/json": "npm:~3.21.0" + "@stoplight/types": "npm:^14.1.1" + "@stoplight/yaml": "npm:~4.3.0" + tslib: "npm:^2.8.1" + checksum: 10/3103be1509116ca0b095f31e14decdf3c8301fee0aa5bfa80d076f479dfa4577762c69cec802a04e3e4c469c6f07e467a685384873e520755a212b091dc69c8b + languageName: node + linkType: hard + +"@stoplight/spectral-ref-resolver@npm:^1.0.3, @stoplight/spectral-ref-resolver@npm:^1.0.4": + version: 1.0.5 + resolution: "@stoplight/spectral-ref-resolver@npm:1.0.5" + dependencies: + "@stoplight/json-ref-readers": "npm:1.2.2" + "@stoplight/json-ref-resolver": "npm:~3.1.6" + "@stoplight/spectral-runtime": "npm:^1.1.2" + dependency-graph: "npm:0.11.0" + tslib: "npm:^2.8.1" + checksum: 10/a010c8f415d4ec2668298f5cb6b1d8c83d59ea6da15f0576181a23f90c49a4bb5bcd0a22c06a46f38eec5da38d15721a6ae444f99a025efd4da7b69fa173e579 + languageName: node + linkType: hard + +"@stoplight/spectral-rulesets@npm:^1.18.0": + version: 1.21.3 + resolution: "@stoplight/spectral-rulesets@npm:1.21.3" + dependencies: + "@asyncapi/specs": "npm:^6.8.0" + "@stoplight/better-ajv-errors": "npm:1.0.3" + "@stoplight/json": "npm:^3.17.0" + "@stoplight/spectral-core": "npm:^1.19.4" + "@stoplight/spectral-formats": "npm:^1.8.1" + "@stoplight/spectral-functions": "npm:^1.9.1" + "@stoplight/spectral-runtime": "npm:^1.1.2" + "@stoplight/types": "npm:^13.6.0" + "@types/json-schema": "npm:^7.0.7" + ajv: "npm:^8.17.1" + ajv-formats: "npm:~2.1.0" + json-schema-traverse: "npm:^1.0.0" + leven: "npm:3.1.0" + lodash: "npm:~4.17.21" + tslib: "npm:^2.8.1" + checksum: 10/c159b0310a8b27ee32f0b6b7d8afc2ca27601ce4de7870583c06fd873cde151acd5bed2444fbe7ce6d64a9d32303b384a09194a8e9e04f5476c486bff9728cb5 + languageName: node + linkType: hard + +"@stoplight/spectral-runtime@npm:^1.1.2": + version: 1.1.3 + resolution: "@stoplight/spectral-runtime@npm:1.1.3" + dependencies: + "@stoplight/json": "npm:^3.20.1" + "@stoplight/path": "npm:^1.3.2" + "@stoplight/types": "npm:^13.6.0" + abort-controller: "npm:^3.0.0" + lodash: "npm:^4.17.21" + node-fetch: "npm:^2.6.7" + tslib: "npm:^2.8.1" + checksum: 10/47f9cf228e6989f64ebdda50337ab3e5fdd89462ddeb834a68efe4ba7fa6b80021cb3e14c9edb24d18c2a9b53ee591ba97a7ad0ff7ef1ee56785db242706cee6 + languageName: node + linkType: hard + +"@stoplight/types@npm:^12.3.0 || ^13.0.0, @stoplight/types@npm:^13.12.0, @stoplight/types@npm:^13.15.0, @stoplight/types@npm:^13.6.0": + version: 13.20.0 + resolution: "@stoplight/types@npm:13.20.0" + dependencies: + "@types/json-schema": "npm:^7.0.4" + utility-types: "npm:^3.10.0" + checksum: 10/4493d75cd7b37766e9e5255cbdee92a639b06d75ef8019a6cad6ab81348377423852e34966a46b270a3e23fc1a1365481d11885c64e98696a28224714d7d676d + languageName: node + linkType: hard + +"@stoplight/types@npm:^14.0.0, @stoplight/types@npm:^14.1.1": + version: 14.1.1 + resolution: "@stoplight/types@npm:14.1.1" + dependencies: + "@types/json-schema": "npm:^7.0.4" + utility-types: "npm:^3.10.0" + checksum: 10/1d053f4276872a1c31ef809ec13f57fcfcc3cac65cdd74ddc735c3b4397da6f8a5a8efd99d8c4f5d74cd8342dd28def304d69a4ef623e1f94bd0d5efe6e368be + languageName: node + linkType: hard + +"@stoplight/types@npm:~13.6.0": + version: 13.6.0 + resolution: "@stoplight/types@npm:13.6.0" + dependencies: + "@types/json-schema": "npm:^7.0.4" + utility-types: "npm:^3.10.0" + checksum: 10/63b04720784ad267607248aa6059dd7e4f4211deff491fc42b2665e30fb352abb15893c489a5d1f4b6c2675506c5cc420ee772eebd0310dae062eaedcb218cac + languageName: node + linkType: hard + +"@stoplight/yaml-ast-parser@npm:0.0.50": + version: 0.0.50 + resolution: "@stoplight/yaml-ast-parser@npm:0.0.50" + checksum: 10/f3683c515eec5f5abcd301fad9c37f290506b8feeffc72fdb269c733561a5f6a8fa6f30acc67b861fd350b3859eb6ab9993373ed838dbf157d11d72b3319cfe9 + languageName: node + linkType: hard + +"@stoplight/yaml@npm:~4.3.0": + version: 4.3.0 + resolution: "@stoplight/yaml@npm:4.3.0" + dependencies: + "@stoplight/ordered-object-literal": "npm:^1.0.5" + "@stoplight/types": "npm:^14.1.1" + "@stoplight/yaml-ast-parser": "npm:0.0.50" + tslib: "npm:^2.2.0" + checksum: 10/4a3eacfb5fb8936cb4b229f69542224e5905f71a6e2baeb70f73a67de6ce3b20178079a79d7744a437db901f67740dcdfd9b53dafb918ce75cbbb498ec548fd7 + languageName: node + linkType: hard + +"@sucrase/webpack-loader@npm:^2.0.0": + version: 2.0.0 + resolution: "@sucrase/webpack-loader@npm:2.0.0" + dependencies: + loader-utils: "npm:^1.1.0" + peerDependencies: + sucrase: ^3 + checksum: 10/16578991b1b888ac5bec5628bd24db9e21651bbbe30de076aece8787f115d8971ac87a20bc75446187c73c3185851ec2233d5b6f18c4a2dd53fbbb1ed4e488b4 + languageName: node + linkType: hard + +"@svgr/babel-plugin-add-jsx-attribute@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/cab83832830a57735329ed68f67c03b57ca21fa037b0134847b0c5c0ef4beca89956d7dacfbf7b2a10fd901e7009e877512086db2ee918b8c69aee7742ae32c0 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-attribute@npm:*": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 + languageName: node + linkType: hard + +"@svgr/babel-plugin-remove-jsx-empty-expression@npm:*": + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 + languageName: node + linkType: hard + +"@svgr/babel-plugin-replace-jsx-attribute-value@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-replace-jsx-attribute-value@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b7d2125758e766e1ebd14b92216b800bdc976959bc696dbfa1e28682919147c1df4bb8b1b5fd037d7a83026e27e681fea3b8d3741af8d3cf4c9dfa3d412125df + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-dynamic-title@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-dynamic-title@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0fd42ebf127ae9163ef341e84972daa99bdcb9e6ed3f83aabd95ee173fddc43e40e02fa847fbc0a1058cf5549f72b7960a2c5e22c3e4ac18f7e3ac81277852ae + languageName: node + linkType: hard + +"@svgr/babel-plugin-svg-em-dimensions@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-svg-em-dimensions@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/c1550ee9f548526fa66fd171e3ffb5696bfc4e4cd108a631d39db492c7410dc10bba4eb5a190e9df824bf806130ccc586ae7d2e43c547e6a4f93bbb29a18f344 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-react-native-svg@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-react-native-svg@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/4c924af22b948b812629e80efb90ad1ec8faae26a232d8ca8a06b46b53e966a2c415a57806a3ff0ea806a622612e546422719b69ec6839717a7755dac19171d9 + languageName: node + linkType: hard + +"@svgr/babel-plugin-transform-svg-component@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-plugin-transform-svg-component@npm:6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a4ddd3cf8b1a7a0542ff2c6a3eb7a75d6f79a86a62210306d94fb05e59699bb5da4ddde9ce98ef477b9cd528007fb728dc4d388d413b3aa25f48ed92b1f0a1c1 + languageName: node + linkType: hard + +"@svgr/babel-preset@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/babel-preset@npm:6.5.1" + dependencies: + "@svgr/babel-plugin-add-jsx-attribute": "npm:^6.5.1" + "@svgr/babel-plugin-remove-jsx-attribute": "npm:*" + "@svgr/babel-plugin-remove-jsx-empty-expression": "npm:*" + "@svgr/babel-plugin-replace-jsx-attribute-value": "npm:^6.5.1" + "@svgr/babel-plugin-svg-dynamic-title": "npm:^6.5.1" + "@svgr/babel-plugin-svg-em-dimensions": "npm:^6.5.1" + "@svgr/babel-plugin-transform-react-native-svg": "npm:^6.5.1" + "@svgr/babel-plugin-transform-svg-component": "npm:^6.5.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/9f124be39a8e64f909162f925b3a63ddaa5a342a5e24fc0b7f7d9d4d7f7e3b916596c754fb557dc259928399cad5366a27cb231627a0d2dcc4b13ac521cf05af + languageName: node + linkType: hard + +"@svgr/core@npm:6.5.x, @svgr/core@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/core@npm:6.5.1" + dependencies: + "@babel/core": "npm:^7.19.6" + "@svgr/babel-preset": "npm:^6.5.1" + "@svgr/plugin-jsx": "npm:^6.5.1" + camelcase: "npm:^6.2.0" + cosmiconfig: "npm:^7.0.1" + checksum: 10/0aa3078eefb969d93fb5639c2d64c8868cf65134f0e36a1733dc595acc990081cbad62295e34b860150ce6baa21516d71410c5527579a1a0950cdc35a765873a + languageName: node + linkType: hard + +"@svgr/hast-util-to-babel-ast@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/hast-util-to-babel-ast@npm:6.5.1" + dependencies: + "@babel/types": "npm:^7.20.0" + entities: "npm:^4.4.0" + checksum: 10/0410c6e5bf98fe31729ab1785642b915e7645e65c7ee5b2dd292a4603f8a1377402b95237c550b10dbdcc0bf084df1546ac7e98004d1fe5982cb8508147b47bb + languageName: node + linkType: hard + +"@svgr/plugin-jsx@npm:6.5.x, @svgr/plugin-jsx@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/plugin-jsx@npm:6.5.1" + dependencies: + "@babel/core": "npm:^7.19.6" + "@svgr/babel-preset": "npm:^6.5.1" + "@svgr/hast-util-to-babel-ast": "npm:^6.5.1" + svg-parser: "npm:^2.0.4" + peerDependencies: + "@svgr/core": ^6.0.0 + checksum: 10/42f22847a6bdf930514d7bedd3c5e1fd8d53eb3594779f9db16cb94c762425907c375cd8ec789114e100a4d38068aca6c7ab5efea4c612fba63f0630c44cc859 + languageName: node + linkType: hard + +"@svgr/plugin-svgo@npm:6.5.x, @svgr/plugin-svgo@npm:^6.5.1": + version: 6.5.1 + resolution: "@svgr/plugin-svgo@npm:6.5.1" + dependencies: + cosmiconfig: "npm:^7.0.1" + deepmerge: "npm:^4.2.2" + svgo: "npm:^2.8.0" + peerDependencies: + "@svgr/core": "*" + checksum: 10/cd2833530ac0485221adc2146fd992ab20d79f4b12eebcd45fa859721dd779483158e11dfd9a534858fe468416b9412416e25cbe07ac7932c44ed5fa2021c72e + languageName: node + linkType: hard + +"@svgr/rollup@npm:6.5.x": + version: 6.5.1 + resolution: "@svgr/rollup@npm:6.5.1" + dependencies: + "@babel/core": "npm:^7.19.6" + "@babel/plugin-transform-react-constant-elements": "npm:^7.18.12" + "@babel/preset-env": "npm:^7.19.4" + "@babel/preset-react": "npm:^7.18.6" + "@babel/preset-typescript": "npm:^7.18.6" + "@rollup/pluginutils": "npm:^4.2.1" + "@svgr/core": "npm:^6.5.1" + "@svgr/plugin-jsx": "npm:^6.5.1" + "@svgr/plugin-svgo": "npm:^6.5.1" + checksum: 10/809198a655c280b434d762829aeab0c48e545daaa7a520ac87d5e7cfe96402eb4d0c01f8b25959fcc37a2ce4aa1a53c9e1c4ccb1206cd5833883a34db5799dd4 + languageName: node + linkType: hard + +"@svgr/webpack@npm:6.5.x": + version: 6.5.1 + resolution: "@svgr/webpack@npm:6.5.1" + dependencies: + "@babel/core": "npm:^7.19.6" + "@babel/plugin-transform-react-constant-elements": "npm:^7.18.12" + "@babel/preset-env": "npm:^7.19.4" + "@babel/preset-react": "npm:^7.18.6" + "@babel/preset-typescript": "npm:^7.18.6" + "@svgr/core": "npm:^6.5.1" + "@svgr/plugin-jsx": "npm:^6.5.1" + "@svgr/plugin-svgo": "npm:^6.5.1" + checksum: 10/2748acc94839a2da09d73fe23bd9df85e08d52d823425591c960e8a25b83861ca2f49dbb1d66ea318da8160f16ce6248c8854229bd6316565517356c74c3440f + languageName: node + linkType: hard + +"@swagger-api/apidom-ast@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ast@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + unraw: "npm:^3.0.0" + checksum: 10/83e4141ad1397be67b3da0f796f0f884ac3b5607e7a27d1dfddc367089878a1fe50d89629840b018a48e527318bc850e7101368b006a8f07a6a19f7116cb41fc + languageName: node + linkType: hard + +"@swagger-api/apidom-core@npm:>=1.0.0-beta.6 <1.0.0-rc.0, @swagger-api/apidom-core@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-core@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-ast": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + minim: "npm:~0.23.8" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + short-unique-id: "npm:^5.0.2" + ts-mixer: "npm:^6.0.3" + checksum: 10/25e3194fccbc7d582ac2c497505faefa62c4b7dbd0c54c3af1d80e35bf82bd655dbd9ff65883681642e8c7f7d3c93302be0d20f8889e7aa2be8f6813d242b85a + languageName: node + linkType: hard + +"@swagger-api/apidom-error@npm:>=1.0.0-beta.6 <1.0.0-rc.0, @swagger-api/apidom-error@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-error@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-error@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + checksum: 10/b86e3f005fc92ba79990cf1c8806284897a57243988dbc358b70ecfc72975cc396c12e72e26dabc220d3eaf8df22bae61665f2af4eeda68274dd7f1ec53a3f0a + languageName: node + linkType: hard + +"@swagger-api/apidom-json-pointer@npm:>=1.0.0-beta.6 <1.0.0-rc.0, @swagger-api/apidom-json-pointer@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-json-pointer@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-json-pointer@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/2d3e166f4166813d1ede09ffcffff26ac31a32ef3e706282d1f43891735ddea44c46e6368ac77b0005edeedffe44e5a2025fe38fbc35179a78228381abdc1365 + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-api-design-systems@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-api-design-systems@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-3-1": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.3" + checksum: 10/b2679cf61cb0715ef7658dcc7fdecaf033aa2936ac75456919d6cde29bf4b699d5b2ca097dd3b1be12e6e180869170bcfbcd346ad4e822072ac4039c12a95a67 + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-asyncapi-2@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-json-schema-draft-7": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.3" + checksum: 10/26a4c97ec1532b5840311827d414653969bca9b49270709d33e0e4e1216f44f581c5b3e5ba0230347616289aa41ff50478478ed62058addd6482e0ab6e62cb90 + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-json-schema-draft-4@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-json-schema-draft-4@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-ast": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.4" + checksum: 10/edf59b588cdbf79b7b4a29ebdfe1a0a4dcc90efd1fe615ca1cde621f80b56152318cb6de7aa5324d62499faa2fb8da9a8e8ddf8cb17ef617ff1e6d3c99fd5540 + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-json-schema-draft-6@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-json-schema-draft-6@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-json-schema-draft-4": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.4" + checksum: 10/e5124267f2204d0f457459457f3e7370fc087f32ed3d3f430c3dcf1ee68bd030e96262aad3c3858f953f97b101ae97969169dd219308a305c9731675d8ab44b9 + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-json-schema-draft-7@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-json-schema-draft-7@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-json-schema-draft-6": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.4" + checksum: 10/63df2931d3ad622d2f13ba3ebf0b23f19e909bdec0aa0ad43977b95977059c81225d38049ed1c562b601a29252d9618fc55181c7854934d74669afcbc41b9c83 + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-openapi-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-2@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-openapi-2@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-json-schema-draft-4": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.3" + checksum: 10/b9fc9aa049a281a1480ae39c751e77a927d937d2d74c4b1275fb14456c05b3a9ce0b2b242e837f1fce5292c42ad3e84cda078b5c0fe0230f59f07e77cf5fad9d + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-openapi-3-0@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-json-schema-draft-4": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.3" + checksum: 10/4383f497ae73d394cee0123074f86d4e9c303039977a8aad9e43fc61a2b7319e1ad151eb8fd9831a84808ff7ce74e1440eb4de822f7fbf6120dd4c2f7df6a70b + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-openapi-3-1@npm:>=1.0.0-beta.6 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-openapi-3-1@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-ast": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-json-pointer": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-3-0": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.3" + checksum: 10/6809fa23e4c7d9658d845c3aaac00220d85e730638ad217511e093957bbc7f9abbe13a12a4fc79505b36bff9ef505d81369993e45565f1d1984e88b87068c2c4 + languageName: node + linkType: hard + +"@swagger-api/apidom-ns-workflows-1@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-workflows-1@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-ns-workflows-1@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-3-1": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + ts-mixer: "npm:^6.0.3" + checksum: 10/0d3803558db168025fe2d9bcf1311ebc45817ec88aa7d3457f1f3d0b5372eed97fd946f8ae04bbad68d6cf62a912a56c80039cddd36c0d1630052c2969f7b268 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-api-design-systems": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-json": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/49c8e901b1ec85ce59d206e003f0e3d174501545e206ae72b859a680a3638b4805defc264dba06336444d8faf0b7a8e8df445dd2d3be1faa45fbdc25fcc255b3 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-api-design-systems": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/08b94e154e7ebc9d435ee0967adfc408820e6fdd5d0584a853729fe08dcc8a562c39793a195f9e0b03a2c676c36abe4d952208245dd6d3e3dc69db9468b6de70 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-asyncapi-2": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-json": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/120014a655b2a56d069d30f4786555dbd6ff681b58768abe59c5aa571cdece0ae9c77cbb3bf3dfb31ab04858886353a1fefd64194536521155eb1ac7d47370ab + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-asyncapi-2": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/9e7e108c61ba31e71f49eec6839519bcf3f60c0e3f8e00156ea3232585a1af2e2749e841e984f5e6a149f7623f6b36ac8edb47bef188cb9d4aa75a64183d83e8 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-json@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-parser-adapter-json@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-json@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-ast": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + node-gyp: "npm:latest" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + tree-sitter: "npm:=0.22.1" + tree-sitter-json: "npm:=0.24.8" + web-tree-sitter: "npm:=0.24.5" + checksum: 10/518172b2db328eccb9108ad7555d1924abe6067ce9eac86747533b1aa97ac80941ebbd579832c19cad7e8bd60a516bd80b46c580087464fab4162edf9919fe4c + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-openapi-json-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-2@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-2": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-json": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/188fc56b3ff9d6274ba1b02744456c62375b6cc5a88238a4e4ecb774577123641ac3c2c9de02249e26531aa23cd45fece2c1f7615ba049d4cc3f3209c77e095e + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-3-0": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-json": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/f807dad0cd9649ef877b120056efd50b6a1e5969b27f79c83c09c7228eb3001b3386886a7d518c05da79ddfe6e79a4ee0244fbb7f1cf38d81fea7bd3b7bbaf91 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-3-1": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-json": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/63e73010aee402a2aa8853be593e561bdf4f98a0113677b1713f6be8baab9735b3638ce81a4bd37a56435e3217e8888854ab7f6fa2d9137f4973cd9287f9d51d + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-2": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/f2b172b1953cb392724e77036ba5b420fa0379dcb039f6a513b27392d842cea987459f4bdc1551313330ffbbebec3c2dca7ad057b9455e62d17ad4d20ece34c2 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-3-0": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/490cea4d98d9364fc74fb44fc70ec56237e76464089d17d66a1cca0f81474eefce5e531236d9de4334b42658a1cca2a65131d4958b0164cbe0a3ad02ab0e9926 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-openapi-3-1": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/584c370a7286a15468ce44f0fa3052a761b9b55d311f9edfa2d60a2faf4f8c2f75fe32b572d4f201d01f877811108f5f343023a0b6ff2e331a664b607911d683 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-workflows-json-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-workflows-json-1@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-workflows-1": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-json": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/b36762f9d62f9f292aca1f18adc22acaa1953de5f222f310d5d169ebf323148f3612df5b6554a629438ccff36965e8995d783434eeb2f60e08a16c7c87f3fec4 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-ns-workflows-1": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:^1.0.0-beta.7" + "@types/ramda": "npm:~0.30.0" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/3015a842c5b89e88c0f01e644a978878052aa494455d8fea77b4277f4b7fb193ffc1819d30dee0bb62814e38acce30d4f8aebc5581afd4b7bde6d4aeb3f1a330 + languageName: node + linkType: hard + +"@swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-beta.7": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-parser-adapter-yaml-1-2@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-ast": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.7" + "@tree-sitter-grammars/tree-sitter-yaml": "npm:=0.7.0" + "@types/ramda": "npm:~0.30.0" + node-gyp: "npm:latest" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + tree-sitter: "npm:=0.22.1" + web-tree-sitter: "npm:=0.24.5" + checksum: 10/1121d6e509bf5843d01981803b2f9d678d40abe404d2870a9c743ea183af5d665ccd74ad9ed897487cf568b4c6d5c2b53ca530570e14d4bd66cc8e8474bbffe1 + languageName: node + linkType: hard + +"@swagger-api/apidom-reference@npm:>=1.0.0-beta.6 <1.0.0-rc.0": + version: 1.0.0-beta.7 + resolution: "@swagger-api/apidom-reference@npm:1.0.0-beta.7" + dependencies: + "@babel/runtime-corejs3": "npm:^7.20.7" + "@swagger-api/apidom-core": "npm:^1.0.0-beta.7" + "@swagger-api/apidom-error": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-json-pointer": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-ns-asyncapi-2": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-ns-openapi-2": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-ns-openapi-3-0": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-ns-openapi-3-1": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-ns-workflows-1": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-api-design-systems-json": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-json": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-openapi-json-2": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-workflows-json-1": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-workflows-yaml-1": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-parser-adapter-yaml-1-2": "npm:^1.0.0-beta.3 <1.0.0-rc.0" + "@types/ramda": "npm:~0.30.0" + axios: "npm:^1.7.4" + minimatch: "npm:^7.4.3" + process: "npm:^0.11.10" + ramda: "npm:~0.30.0" + ramda-adjunct: "npm:^5.0.0" + dependenciesMeta: + "@swagger-api/apidom-error": + optional: true + "@swagger-api/apidom-json-pointer": + optional: true + "@swagger-api/apidom-ns-asyncapi-2": + optional: true + "@swagger-api/apidom-ns-openapi-2": + optional: true + "@swagger-api/apidom-ns-openapi-3-0": + optional: true + "@swagger-api/apidom-ns-openapi-3-1": + optional: true + "@swagger-api/apidom-ns-workflows-1": + optional: true + "@swagger-api/apidom-parser-adapter-api-design-systems-json": + optional: true + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": + optional: true + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": + optional: true + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": + optional: true + "@swagger-api/apidom-parser-adapter-json": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-json-2": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": + optional: true + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": + optional: true + "@swagger-api/apidom-parser-adapter-workflows-json-1": + optional: true + "@swagger-api/apidom-parser-adapter-workflows-yaml-1": + optional: true + "@swagger-api/apidom-parser-adapter-yaml-1-2": + optional: true + checksum: 10/74d5e6d97b23273e442f55046936aba19e19c0eea9f113d2011d841f8eebcce24462fb56e50fb5cf18222c8e6c53fd039e6aa923ab90d179bf0d328170d6a829 + languageName: node + linkType: hard + +"@swaggerexpert/cookie@npm:^1.4.1": + version: 1.4.1 + resolution: "@swaggerexpert/cookie@npm:1.4.1" + dependencies: + apg-lite: "npm:^1.0.3" + checksum: 10/936590cb70fb7af4ec988e7ee7c5e965b66d09046d3fd2b52c140f9777cda1452f2f24d80eb64ff9678b79f566dd0ef51699050aea9c9a3fd5345dcc73a3fa7a + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-darwin-arm64@npm:1.10.9" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-darwin-x64@npm:1.10.9" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.10.9" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-linux-arm64-gnu@npm:1.10.9" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-linux-arm64-musl@npm:1.10.9" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-linux-x64-gnu@npm:1.10.9" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-linux-x64-musl@npm:1.10.9" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-win32-arm64-msvc@npm:1.10.9" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-win32-ia32-msvc@npm:1.10.9" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.10.9": + version: 1.10.9 + resolution: "@swc/core-win32-x64-msvc@npm:1.10.9" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.3.46": + version: 1.10.9 + resolution: "@swc/core@npm:1.10.9" + dependencies: + "@swc/core-darwin-arm64": "npm:1.10.9" + "@swc/core-darwin-x64": "npm:1.10.9" + "@swc/core-linux-arm-gnueabihf": "npm:1.10.9" + "@swc/core-linux-arm64-gnu": "npm:1.10.9" + "@swc/core-linux-arm64-musl": "npm:1.10.9" + "@swc/core-linux-x64-gnu": "npm:1.10.9" + "@swc/core-linux-x64-musl": "npm:1.10.9" + "@swc/core-win32-arm64-msvc": "npm:1.10.9" + "@swc/core-win32-ia32-msvc": "npm:1.10.9" + "@swc/core-win32-x64-msvc": "npm:1.10.9" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.17" + peerDependencies: + "@swc/helpers": "*" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10/543e79c249f6052883d656035321d449cf6c0f2ea54f786d5e3b96394d4cf201b293d6c3f897cc604eb145b21cce82f904306931fe9efbc6a50c714a5d5d97f0 + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 + languageName: node + linkType: hard + +"@swc/helpers@npm:^0.5.0": + version: 0.5.15 + resolution: "@swc/helpers@npm:0.5.15" + dependencies: + tslib: "npm:^2.8.0" + checksum: 10/e3f32c6deeecfb0fa3f22edff03a7b358e7ce16d27b0f1c8b5cdc3042c5c4ce4da6eac0b781ab7cc4f54696ece657467d56734fb26883439fb00017385364c4c + languageName: node + linkType: hard + +"@swc/jest@npm:^0.2.22": + version: 0.2.37 + resolution: "@swc/jest@npm:0.2.37" + dependencies: + "@jest/create-cache-key-function": "npm:^29.7.0" + "@swc/counter": "npm:^0.1.3" + jsonc-parser: "npm:^3.2.0" + peerDependencies: + "@swc/core": "*" + checksum: 10/bbec37079b4f5c1ff1c95aeec07d08277c646a0c5e16e057ea3a8fe5c6e2bd59bbfc4312e53ddd05d25fa4de20a03607be274f560f28bb5e229dd08124780e16 + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.17": + version: 0.1.17 + resolution: "@swc/types@npm:0.1.17" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10/ddef1ad5bfead3acdfc41f14e79ba43a99200eb325afbad5716058dbe36358b0513400e9f22aff32432be84a98ae93df95a20b94192f69b8687144270e4eaa18 + languageName: node + linkType: hard + +"@tanstack/react-virtual@npm:^3.0.0-beta.60": + version: 3.11.2 + resolution: "@tanstack/react-virtual@npm:3.11.2" + dependencies: + "@tanstack/virtual-core": "npm:3.11.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/a1136da0ec4c2ecbd4f996d8b84f228f0b8d851b15806e01049a160ad1d9b2eef0e0a491035fe017c6f84a0e125334f69ea23b32c180df23614ea4a8eeb7490c + languageName: node + linkType: hard + +"@tanstack/virtual-core@npm:3.11.2": + version: 3.11.2 + resolution: "@tanstack/virtual-core@npm:3.11.2" + checksum: 10/8433044a5c801052ba2e4cdda098cdc8e32adfd3a76ba31af7064bbdda60062fe221a3558096987baa66cd94f528855e887c282cb0f9eb99d3751457c2a62872 + languageName: node + linkType: hard + +"@testing-library/dom@npm:^9.0.0": + version: 9.3.4 + resolution: "@testing-library/dom@npm:9.3.4" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.1.3" + chalk: "npm:^4.1.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + pretty-format: "npm:^27.0.2" + checksum: 10/510da752ea76f4a10a0a4e3a77917b0302cf03effe576cd3534cab7e796533ee2b0e9fb6fb11b911a1ebd7c70a0bb6f235bf4f816c9b82b95b8fe0cddfd10975 + languageName: node + linkType: hard + +"@testing-library/jest-dom@npm:^6.0.0": + version: 6.6.3 + resolution: "@testing-library/jest-dom@npm:6.6.3" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + aria-query: "npm:^5.0.0" + chalk: "npm:^3.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.21" + redent: "npm:^3.0.0" + checksum: 10/1f3427e45870eab9dcc59d6504b780d4a595062fe1687762ae6e67d06a70bf439b40ab64cf58cbace6293a99e3764d4647fdc8300a633b721764f5ce39dade18 + languageName: node + linkType: hard + +"@testing-library/react@npm:^14.0.0": + version: 14.3.1 + resolution: "@testing-library/react@npm:14.3.1" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@testing-library/dom": "npm:^9.0.0" + "@types/react-dom": "npm:^18.0.0" + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 10/83359dcdf9eaf067839f34604e1a181cbc14fc09f3a07672403700fcc6a900c4b8054ad1114fc24b4b9f89d84e2a09e1b7c9afce2306b1d4b4c9e30eb1cb12de + languageName: node + linkType: hard + +"@testing-library/react@npm:^16.0.0": + version: 16.2.0 + resolution: "@testing-library/react@npm:16.2.0" + dependencies: + "@babel/runtime": "npm:^7.12.5" + peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 || ^19.0.0 + "@types/react-dom": ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10/cf10bfa9a363384e6861417696fff4a464a64f98ec6f0bb7f1fa7cbb550d075d23a2f6a943b7df85dded7bde3234f6ea6b6e36f95211f4544b846ea72c288289 + languageName: node + linkType: hard + +"@testing-library/user-event@npm:^14.0.0": + version: 14.6.1 + resolution: "@testing-library/user-event@npm:14.6.1" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 10/34b74fff56a0447731a94b40d4cf246deb8dbc1c1e3aec93acd1c3377a760bb062e979f1572bb34ec164ad28ee2a391744b42d0d6d6cc16c4ce527e5e09610e1 + languageName: node + linkType: hard + +"@tokenizer/token@npm:^0.3.0": + version: 0.3.0 + resolution: "@tokenizer/token@npm:0.3.0" + checksum: 10/889c1f1e63ac7c92c0ea22d4a2861142f1b43c3d92eb70ec42aa9e9851fab2e9952211d50f541b287781280df2f979bf5600a9c1f91fbc61b7fcf9994e9376a5 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: 10/ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@tootallnate/quickjs-emscripten@npm:^0.23.0": + version: 0.23.0 + resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" + checksum: 10/95cbad451d195b9d8f312103abafcc010741eb9256e98d7953e7c026d4c1ed4abb2248a14018bf49e3201c350104fc643137b23aa0bbed2744c795c39dc48a28 + languageName: node + linkType: hard + +"@tree-sitter-grammars/tree-sitter-yaml@npm:=0.7.0": + version: 0.7.0 + resolution: "@tree-sitter-grammars/tree-sitter-yaml@npm:0.7.0" + dependencies: + node-addon-api: "npm:^8.3.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.8.4" + peerDependencies: + tree-sitter: ^0.22.1 + peerDependenciesMeta: + tree-sitter: + optional: true + checksum: 10/43cc2d98b084ee5301752f698b1f381008dd0d7aa9ee55390d78a7edf667c503c4f96d8839fe7bde0f4ddfb39c36c56da5b00ec2161e9e2d87a81e4a08a64419 + languageName: node + linkType: hard + +"@trendyol-js/openstack-swift-sdk@npm:^0.0.7": + version: 0.0.7 + resolution: "@trendyol-js/openstack-swift-sdk@npm:0.0.7" + dependencies: + agentkeepalive: "npm:^4.1.4" + axios: "npm:^1.0.0" + axios-cached-dns-resolve: "npm:0.5.2" + file-type: "npm:^16.5.4" + checksum: 10/239c93080f3a03b6e21d8ac36da73ac6fc4f8d079de28aecf319c80d8f0e20962214d1940468b8177f0b88deea6490aa02269926d163ed379c72cbb414b53bf8 + languageName: node + linkType: hard + +"@trysound/sax@npm:0.2.0": + version: 0.2.0 + resolution: "@trysound/sax@npm:0.2.0" + checksum: 10/7379713eca480ac0d9b6c7b063e06b00a7eac57092354556c81027066eb65b61ea141a69d0cc2e15d32e05b2834d4c9c2184793a5e36bbf5daf05ee5676af18c + languageName: node + linkType: hard + +"@ts-morph/common@npm:~0.25.0": + version: 0.25.0 + resolution: "@ts-morph/common@npm:0.25.0" + dependencies: + minimatch: "npm:^9.0.4" + path-browserify: "npm:^1.0.1" + tinyglobby: "npm:^0.2.9" + checksum: 10/9b192dfebb7179e96267ea1720f6afe77964f9f89ecaca41d372da206cdfd838a77c1080026c73115a5d3a88752b1504ec7380907e26b6424e8fb7f7625c7461 + languageName: node + linkType: hard + +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node10@npm:1.0.11" + checksum: 10/51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 10/5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 10/19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 10/202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff + languageName: node + linkType: hard + +"@types/argparse@npm:1.0.38": + version: 1.0.38 + resolution: "@types/argparse@npm:1.0.38" + checksum: 10/26ed7e3f1e3595efdb883a852f5205f971b798e4c28b7e30a32c5298eee596e8b45834ce831f014d250b9730819ab05acff5b31229666d3af4ba465b4697d0eb + languageName: node + linkType: hard + +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: 10/c0084c389dc030daeaf0115a92ce43a3f4d42fc8fef2d0e22112d87a42798d4a15aac413019d4a63f868327d52ad6740ab99609462b442fe6b9286b172d2e82e + languageName: node + linkType: hard + +"@types/aws-lambda@npm:^8.10.83": + version: 8.10.147 + resolution: "@types/aws-lambda@npm:8.10.147" + checksum: 10/c80df3be4ed42acf7f1a139afeaa96c69466d63ce3e6578a9411bd956806a10ae182fb45fa6dc9e9b31e5da08762af3758abeb84f989edac4c8011d8bf5f7b8f + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.1.14": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10/c32838d280b5ab59d62557f9e331d3831f8e547ee10b4f85cb78753d97d521270cebfc73ce501e9fb27fe71884d1ba75e18658692c2f4117543f0fc4e3e118b3 + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10/b53c215e9074c69d212402990b0ca8fa57595d09e10d94bda3130aa22b55d796e50449199867879e4ea0ee968f3a2099e009cfb21a726a53324483abbf25cd30 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10/d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" + dependencies: + "@babel/types": "npm:^7.20.7" + checksum: 10/63d13a3789aa1e783b87a8b03d9fb2c2c90078de7782422feff1631b8c2a25db626e63a63ac5a1465d47359201c73069dacb4b52149d17c568187625da3064ae + languageName: node + linkType: hard + +"@types/body-parser@npm:*": + version: 1.19.5 + resolution: "@types/body-parser@npm:1.19.5" + dependencies: + "@types/connect": "npm:*" + "@types/node": "npm:*" + checksum: 10/1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 + languageName: node + linkType: hard + +"@types/bonjour@npm:^3.5.13": + version: 3.5.13 + resolution: "@types/bonjour@npm:3.5.13" + dependencies: + "@types/node": "npm:*" + checksum: 10/e827570e097bd7d625a673c9c208af2d1a22fa3885c0a1646533cf24394c839c3e5f60ac1bc60c0ddcc69c0615078c9fb2c01b42596c7c582d895d974f2409ee + languageName: node + linkType: hard + +"@types/btoa-lite@npm:^1.0.0": + version: 1.0.2 + resolution: "@types/btoa-lite@npm:1.0.2" + checksum: 10/4c46b163c881a75522c7556dd7a7df8a0d4c680a45e8bac34e50864e1c2d9df8dc90b99f75199154c60ef2faff90896b7e5f11df6936c94167a3e5e1c6f4d935 + languageName: node + linkType: hard + +"@types/caseless@npm:*": + version: 0.12.5 + resolution: "@types/caseless@npm:0.12.5" + checksum: 10/f6a3628add76d27005495914c9c3873a93536957edaa5b69c63b46fe10b4649a6fecf16b676c1695f46aab851da47ec6047dcf3570fa8d9b6883492ff6d074e0 + languageName: node + linkType: hard + +"@types/codemirror@npm:^0.0.90": + version: 0.0.90 + resolution: "@types/codemirror@npm:0.0.90" + dependencies: + "@types/tern": "npm:*" + checksum: 10/def1264aacd18b5d933b5c4e5378d7a29418df785cc485df6e750730957cea22c9b392d314fb2bfa664ebf2c541b067190618c8826c8e382901b9ed928d647d0 + languageName: node + linkType: hard + +"@types/codemirror@npm:^5.60.8": + version: 5.60.15 + resolution: "@types/codemirror@npm:5.60.15" + dependencies: + "@types/tern": "npm:*" + checksum: 10/925ad6b76a703e0ed8ea07f11593cb32498960ece111d21d57a867f30cf151773beeefa2e593df536766d2f3240aa6d3eaa7d5398c8380e0b996a19bf058032e + languageName: node + linkType: hard + +"@types/connect-history-api-fallback@npm:^1.5.4": + version: 1.5.4 + resolution: "@types/connect-history-api-fallback@npm:1.5.4" + dependencies: + "@types/express-serve-static-core": "npm:*" + "@types/node": "npm:*" + checksum: 10/e1dee43b8570ffac02d2d47a2b4ba80d3ca0dd1840632dafb221da199e59dbe3778d3d7303c9e23c6b401f37c076935a5bc2aeae1c4e5feaefe1c371fe2073fd + languageName: node + linkType: hard + +"@types/connect@npm:*": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "npm:*" + checksum: 10/7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 + languageName: node + linkType: hard + +"@types/cors@npm:^2.8.6": + version: 2.8.17 + resolution: "@types/cors@npm:2.8.17" + dependencies: + "@types/node": "npm:*" + checksum: 10/469bd85e29a35977099a3745c78e489916011169a664e97c4c3d6538143b0a16e4cc72b05b407dc008df3892ed7bf595f9b7c0f1f4680e169565ee9d64966bde + languageName: node + linkType: hard + +"@types/debug@npm:^4.0.0, @types/debug@npm:^4.1.12": + version: 4.1.12 + resolution: "@types/debug@npm:4.1.12" + dependencies: + "@types/ms": "npm:*" + checksum: 10/47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 + languageName: node + linkType: hard + +"@types/docker-modem@npm:*": + version: 3.0.6 + resolution: "@types/docker-modem@npm:3.0.6" + dependencies: + "@types/node": "npm:*" + "@types/ssh2": "npm:*" + checksum: 10/cc58e8189f6ec5a2b8ca890207402178a97ddac8c80d125dc65d8ab29034b5db736de15e99b91b2d74e66d14e26e73b6b8b33216613dd15fd3aa6b82c11a83ed + languageName: node + linkType: hard + +"@types/dockerode@npm:^3.3.0, @types/dockerode@npm:^3.3.29": + version: 3.3.34 + resolution: "@types/dockerode@npm:3.3.34" + dependencies: + "@types/docker-modem": "npm:*" + "@types/node": "npm:*" + "@types/ssh2": "npm:*" + checksum: 10/92b40d10273bd30056dffe6acc1088dd7e93be1d61de8f3928bd49fe0ef7e5e380c363ca5bc0ee3f553e6de39e7eafe5124d73cf9485cbe5a60ab981a8cc8cce + languageName: node + linkType: hard + +"@types/es-aggregate-error@npm:^1.0.2": + version: 1.0.6 + resolution: "@types/es-aggregate-error@npm:1.0.6" + dependencies: + "@types/node": "npm:*" + checksum: 10/a5b2155f664a3460d3cbc1e84e76fc0f3e751c6cebb04bf79d38e2809f44a4ba6765b83761a1e5cc0bba1b7852f7ba4fae2231110dee6218405835024dd372ac + languageName: node + linkType: hard + +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "npm:*" + "@types/estree": "npm:*" + checksum: 10/e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 10/719fcd255760168a43d0e306ef87548e1e15bffe361d5f4022b0f266575637acc0ecb85604ac97879ee8ae83c6a6d0613b0ed31d0209ddf22a0fe6d608fc56fe + languageName: node + linkType: hard + +"@types/eslint@npm:^8.56.10": + version: 8.56.12 + resolution: "@types/eslint@npm:8.56.12" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 10/bd998b5d3f98ac430ec8db6223f1cff1820774c1e72eabda05463256875d97065fd357fba7379dd25e6bfbeb73296f28faff6f4dcbc320f890bb49b09087644d + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10/9d35d475095199c23e05b431bcdd1f6fec7380612aed068b14b2a08aa70494de8a9026765a5a91b1073f636fb0368f6d8973f518a31391d519e20c59388ed88d + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0": + version: 5.0.5 + resolution: "@types/express-serve-static-core@npm:5.0.5" + dependencies: + "@types/node": "npm:*" + "@types/qs": "npm:*" + "@types/range-parser": "npm:*" + "@types/send": "npm:*" + checksum: 10/186b275cd9110c7153ffd6f2c52e0e4242b0f2769873ea034c75885a96346b42535875012732e0866ccdfc7d5132bb32a725a297182e929427cb95aba62f9801 + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:^4.17.33, @types/express-serve-static-core@npm:^4.17.5": + version: 4.19.6 + resolution: "@types/express-serve-static-core@npm:4.19.6" + dependencies: + "@types/node": "npm:*" + "@types/qs": "npm:*" + "@types/range-parser": "npm:*" + "@types/send": "npm:*" + checksum: 10/a2e00b6c5993f0dd63ada2239be81076fe0220314b9e9fde586e8946c9c09ce60f9a2dd0d74410ee2b5fd10af8c3e755a32bb3abf134533e2158142488995455 + languageName: node + linkType: hard + +"@types/express@npm:*": + version: 5.0.0 + resolution: "@types/express@npm:5.0.0" + dependencies: + "@types/body-parser": "npm:*" + "@types/express-serve-static-core": "npm:^5.0.0" + "@types/qs": "npm:*" + "@types/serve-static": "npm:*" + checksum: 10/45b199ab669caa33e6badafeebf078e277ea95042309d325a04b1ec498f33d33fd5a4ae9c8e358342367b178fe454d7323c5dfc8002bf27070b210a2c6cc11f0 + languageName: node + linkType: hard + +"@types/express@npm:^4.17.21, @types/express@npm:^4.17.6": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" + dependencies: + "@types/body-parser": "npm:*" + "@types/express-serve-static-core": "npm:^4.17.33" + "@types/qs": "npm:*" + "@types/serve-static": "npm:*" + checksum: 10/7a6d26cf6f43d3151caf4fec66ea11c9d23166e4f3102edfe45a94170654a54ea08cf3103d26b3928d7ebcc24162c90488e33986b7e3a5f8941225edd5eb18c7 + languageName: node + linkType: hard + +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" + dependencies: + "@types/node": "npm:*" + checksum: 10/79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 + languageName: node + linkType: hard + +"@types/hast@npm:^2.0.0": + version: 2.3.10 + resolution: "@types/hast@npm:2.3.10" + dependencies: + "@types/unist": "npm:^2" + checksum: 10/41531b7fbf590b02452996fc63272479c20a07269e370bd6514982cbcd1819b4b84d3ea620f2410d1b9541a23d08ce2eeb0a592145d05e00e249c3d56700d460 + languageName: node + linkType: hard + +"@types/hoist-non-react-statics@npm:^3.3.0": + version: 3.3.6 + resolution: "@types/hoist-non-react-statics@npm:3.3.6" + dependencies: + "@types/react": "npm:*" + hoist-non-react-statics: "npm:^3.3.0" + checksum: 10/f03e43bd081876c49584ffa0eb690d69991f258203efca44dcc30efdda49a50653ff06402917d1edc9cb7e2adebbe9e2d1d0e739bc99c1b5372103b1cc534e47 + languageName: node + linkType: hard + +"@types/html-minifier-terser@npm:^6.0.0": + version: 6.1.0 + resolution: "@types/html-minifier-terser@npm:6.1.0" + checksum: 10/06bb3e1e8ebff43602c826d67f53f1fd3a6b9c751bfbc67d7ea4e85679446a639e20e60adad8c9d44ab4baf1337b3861b91e7e5e2be798575caf0cc1a5712552 + languageName: node + linkType: hard + +"@types/http-errors@npm:*": + version: 2.0.4 + resolution: "@types/http-errors@npm:2.0.4" + checksum: 10/1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 + languageName: node + linkType: hard + +"@types/http-proxy@npm:^1.17.8": + version: 1.17.15 + resolution: "@types/http-proxy@npm:1.17.15" + dependencies: + "@types/node": "npm:*" + checksum: 10/fa86d5397c021f6c824d1143a206009bfb64ff703da32fb30f6176c603daf6c24ce3a28daf26b3945c94dd10f9d76f07ea7a6a2c3e9b710e00ff42da32e08dea + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 10/3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" + dependencies: + "@types/istanbul-lib-coverage": "npm:*" + checksum: 10/b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" + dependencies: + "@types/istanbul-lib-report": "npm:*" + checksum: 10/93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 + languageName: node + linkType: hard + +"@types/jest@npm:^29.5.11": + version: 29.5.14 + resolution: "@types/jest@npm:29.5.14" + dependencies: + expect: "npm:^29.0.0" + pretty-format: "npm:^29.0.0" + checksum: 10/59ec7a9c4688aae8ee529316c43853468b6034f453d08a2e1064b281af9c81234cec986be796288f1bbb29efe943bc950e70c8fa8faae1e460d50e3cf9760f9b + languageName: node + linkType: hard + +"@types/js-cookie@npm:^2.2.6": + version: 2.2.7 + resolution: "@types/js-cookie@npm:2.2.7" + checksum: 10/851f47e94ca1fc43661d8f51614d67a613e7810c91b876d0a3b311ce72f7df800107fd02a08cb6948184e12c120b4f058edca2f50424d8798bdcffd6627281e3 + languageName: node + linkType: hard + +"@types/js-yaml@npm:^4.0.1": + version: 4.0.9 + resolution: "@types/js-yaml@npm:4.0.9" + checksum: 10/a0ce595db8a987904badd21fc50f9f444cb73069f4b95a76cc222e0a17b3ff180669059c763ec314bc4c3ce284379177a9da80e83c5f650c6c1310cafbfaa8e6 + languageName: node + linkType: hard + +"@types/jsdom@npm:^20.0.0": + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" + dependencies: + "@types/node": "npm:*" + "@types/tough-cookie": "npm:*" + parse5: "npm:^7.0.0" + checksum: 10/15fbb9a0bfb4a5845cf6e795f2fd12400aacfca53b8c7e5bca4a3e5e8fa8629f676327964d64258aefb127d2d8a2be86dad46359efbfca0e8c9c2b790e7f8a88 + languageName: node + linkType: hard + +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.4, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 + languageName: node + linkType: hard + +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: 10/4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56 + languageName: node + linkType: hard + +"@types/jsonwebtoken@npm:^9.0.0": + version: 9.0.7 + resolution: "@types/jsonwebtoken@npm:9.0.7" + dependencies: + "@types/node": "npm:*" + checksum: 10/4c0cffc488ba200765b50004de5e046c55360121a91ad9520d904e303cdd217b3f77b51b6ba8b9cbdd03d73876d546cbd0d9992d6e205d97decba918aee5b395 + languageName: node + linkType: hard + +"@types/keyv@npm:^4.2.0": + version: 4.2.0 + resolution: "@types/keyv@npm:4.2.0" + dependencies: + keyv: "npm:*" + checksum: 10/8713da9382b9346d664866a6cab2f91b0fd479f61379af891303a618e9a2abad6f347adc38a0850540e3f2dad278427de24e7555339264fddb04d1d17d3b50e0 + languageName: node + linkType: hard + +"@types/long@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/long@npm:4.0.2" + checksum: 10/68afa05fb20949d88345876148a76f6ccff5433310e720db51ac5ca21cb8cc6714286dbe04713840ddbd25a8b56b7a23aa87d08472fabf06463a6f2ed4967707 + languageName: node + linkType: hard + +"@types/lunr@npm:^2.3.3": + version: 2.3.7 + resolution: "@types/lunr@npm:2.3.7" + checksum: 10/262a09c908271bb6b3fb1a9f4d312ddea3436022ea7d17cbf4a04215ca8a909c2af8a03af89b931f7cd0d5389f75c606582a050f900c1837f6527544de5ae014 + languageName: node + linkType: hard + +"@types/luxon@npm:^2.0.4": + version: 2.4.0 + resolution: "@types/luxon@npm:2.4.0" + checksum: 10/f5e5a9b10d7a76974ea03e1af7d6704edd1ce0bed1c1543461871e9bf173bbaafc92e19fe93a308ae02bd485bd4382e3fcbaabe4921adbcb344b29a85ba70f10 + languageName: node + linkType: hard + +"@types/luxon@npm:^3.0.0, @types/luxon@npm:~3.4.0": + version: 3.4.2 + resolution: "@types/luxon@npm:3.4.2" + checksum: 10/fd89566e3026559f2bc4ddcc1e70a2c16161905ed50be9473ec0cfbbbe919165041408c4f6e06c4bcf095445535052e2c099087c76b1b38e368127e618fc968d + languageName: node + linkType: hard + +"@types/markdown-escape@npm:^1.1.3": + version: 1.1.3 + resolution: "@types/markdown-escape@npm:1.1.3" + checksum: 10/cb2e410993271f0ccc526190391a08344f4f602be69e06fee989d36d5886866ba9ba2184054895d0ad2a12d57b02f3ccf86d7a1fe8904be48bcc1ee61b98e32f + languageName: node + linkType: hard + +"@types/mdast@npm:^3.0.0": + version: 3.0.15 + resolution: "@types/mdast@npm:3.0.15" + dependencies: + "@types/unist": "npm:^2" + checksum: 10/050a5c1383928b2688dd145382a22535e2af87dc3fd592c843abb7851bcc99893a1ee0f63be19fc4e89779387ec26a57486cfb425b016c0b2a98a17fc4a1e8b3 + languageName: node + linkType: hard + +"@types/mime@npm:^1": + version: 1.3.5 + resolution: "@types/mime@npm:1.3.5" + checksum: 10/e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 + languageName: node + linkType: hard + +"@types/ms@npm:*": + version: 2.1.0 + resolution: "@types/ms@npm:2.1.0" + checksum: 10/532d2ebb91937ccc4a89389715e5b47d4c66e708d15942fe6cc25add6dc37b2be058230a327dd50f43f89b8b6d5d52b74685a9e8f70516edfc9bdd6be910eff4 + languageName: node + linkType: hard + +"@types/multer@npm:^1.4.12": + version: 1.4.12 + resolution: "@types/multer@npm:1.4.12" + dependencies: + "@types/express": "npm:*" + checksum: 10/3d2b32da58ddd67f972d4ef1021492f78d65f33f936b6fb25dd461bb6cc7b03bfd1de1a11562c4310680dac8054e4398038db51767a0ffbf1fe62457b3706e95 + languageName: node + linkType: hard + +"@types/node-forge@npm:^1.3.0": + version: 1.3.11 + resolution: "@types/node-forge@npm:1.3.11" + dependencies: + "@types/node": "npm:*" + checksum: 10/670c9b377c48189186ec415e3c8ed371f141ecc1a79ab71b213b20816adeffecba44dae4f8406cc0d09e6349a4db14eb8c5893f643d8e00fa19fc035cf49dee0 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^20.1.1": + version: 20.14.2 + resolution: "@types/node@npm:20.14.2" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 10/c38e47b190fa0a8bdfde24b036dddcf9401551f2fb170a90ff33625c7d6f218907e81c74e0fa6e394804a32623c24c60c50e249badc951007830f0d02c48ee0f + languageName: node + linkType: hard + +"@types/node@npm:^12.7.1": + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: 10/1f916a06fff02faadb09a16ed6e31820ce170798b202ef0b14fc244bfbd721938c54a3a99836e185e4414ca461fe96c5bb5c67c3d248f153555b7e6347f061dd + languageName: node + linkType: hard + +"@types/node@npm:^18.11.18, @types/node@npm:^18.11.9": + version: 18.19.74 + resolution: "@types/node@npm:18.19.74" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 10/2306bd0b41cdd528b890b210b96f287a5b5035c128f62636057d6616bd612b3f53d32d77f7e76ef41a9f130ea691e6980e6d5942dd625df05d3a641764fddb78 + languageName: node + linkType: hard + +"@types/oauth@npm:*": + version: 0.9.6 + resolution: "@types/oauth@npm:0.9.6" + dependencies: + "@types/node": "npm:*" + checksum: 10/6e1d42585a77b73c607be3c50c25d6f7f772fc1f3927c2ea10c9955b4ba118dfe6cc7303538e68cd53ffe6f133cf8b8c61f703a37023175c5bbb218460732147 + languageName: node + linkType: hard + +"@types/parse-json@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 10/5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 + languageName: node + linkType: hard + +"@types/passport-oauth2@npm:^1.4.11": + version: 1.4.17 + resolution: "@types/passport-oauth2@npm:1.4.17" + dependencies: + "@types/express": "npm:*" + "@types/oauth": "npm:*" + "@types/passport": "npm:*" + checksum: 10/4c5d2d6f717bb0b3d049669e47ca27cb166cbbef2073dccd302b10e62936c9e392074acabe6cb593f7eeb37a6a3cf81b9d3a4f35a46018a6645ac37d0f1706cb + languageName: node + linkType: hard + +"@types/passport-strategy@npm:^0.2.38": + version: 0.2.38 + resolution: "@types/passport-strategy@npm:0.2.38" + dependencies: + "@types/express": "npm:*" + "@types/passport": "npm:*" + checksum: 10/b580e165182b137a6e57b6b7511904e6c875a5e372f08679ec54f456dc5c2a72d86f23d9373a52d8286b207fe8240946686f9e3d50b0bc1b4f7316f336a06fa2 + languageName: node + linkType: hard + +"@types/passport@npm:*, @types/passport@npm:^1.0.16, @types/passport@npm:^1.0.3": + version: 1.0.17 + resolution: "@types/passport@npm:1.0.17" + dependencies: + "@types/express": "npm:*" + checksum: 10/3db90645d58d928796dd8e9c328dec8040b71a43f3691d42a08fb4779efcbfc7dccc43ea612066a961a41be0869800096d52fd8aaa71518a89aa4483f67f5914 + languageName: node + linkType: hard + +"@types/pluralize@npm:^0.0.33": + version: 0.0.33 + resolution: "@types/pluralize@npm:0.0.33" + checksum: 10/282d42dc0187e5e0912f9f36ee0f5615bfd273a08d40afe5bf5881cb28daf1977abe10564543032aa0f42352ebba739ff3d86bf5562ac4691c6d1761fcc7cf39 + languageName: node + linkType: hard + +"@types/prop-types@npm:*, @types/prop-types@npm:^15.0.0, @types/prop-types@npm:^15.7.12, @types/prop-types@npm:^15.7.3": + version: 15.7.14 + resolution: "@types/prop-types@npm:15.7.14" + checksum: 10/d0c5407b9ccc3dd5fae0ccf9b1007e7622ba5e6f1c18399b4f24dff33619d469da4b9fa918a374f19dc0d9fe6a013362aab0b844b606cfc10676efba3f5f736d + languageName: node + linkType: hard + +"@types/protocol-buffers-schema@npm:^3.4.3": + version: 3.4.3 + resolution: "@types/protocol-buffers-schema@npm:3.4.3" + dependencies: + "@types/node": "npm:*" + checksum: 10/a07e150d4737fea79ea8b58be8b8828c9736319f3d8bce92d282b424629ebcd5e056d083b1f8c150a0a7213cdf518bd62c8c7725473f2214f23f5331adead5fb + languageName: node + linkType: hard + +"@types/qs@npm:*, @types/qs@npm:^6.9.11, @types/qs@npm:^6.9.6": + version: 6.9.18 + resolution: "@types/qs@npm:6.9.18" + checksum: 10/152fab96efd819cc82ae67c39f089df415da6deddb48f1680edaaaa4e86a2a597de7b2ff0ad391df66d11a07006a08d52c9405e86b8cb8f3d5ba15881fe56cc7 + languageName: node + linkType: hard + +"@types/raf@npm:^3.4.0": + version: 3.4.3 + resolution: "@types/raf@npm:3.4.3" + checksum: 10/70b0d8ce4ed1fdd60abbee8ff2a572bd2947bd764691f98ef948748375f5012db7ee39a037dd063cfbbb52c0b7479bec68111bbb95ce5de023ec581794c9b85f + languageName: node + linkType: hard + +"@types/ramda@npm:~0.30.0": + version: 0.30.2 + resolution: "@types/ramda@npm:0.30.2" + dependencies: + types-ramda: "npm:^0.30.1" + checksum: 10/528e62da967adb38b7b6be3314ee11009f4e7312e4fbb9670f4556bb2f640754f08ae68ede87822ae255aba747e67296f40b37d53bfb427c58ab82f5b7a4989e + languageName: node + linkType: hard + +"@types/range-parser@npm:*": + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 10/95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a + languageName: node + linkType: hard + +"@types/react-dom@npm:^18": + version: 18.3.5 + resolution: "@types/react-dom@npm:18.3.5" + peerDependencies: + "@types/react": ^18.0.0 + checksum: 10/02095b326f373867498e0eb2b5ebb60f9bd9535db0d757ea13504c4b7d75e16605cf1d43ce7a2e67893d177b51db4357cabb2842fb4257c49427d02da1a14e09 + languageName: node + linkType: hard + +"@types/react-redux@npm:^7.1.20": + version: 7.1.34 + resolution: "@types/react-redux@npm:7.1.34" + dependencies: + "@types/hoist-non-react-statics": "npm:^3.3.0" + "@types/react": "npm:*" + hoist-non-react-statics: "npm:^3.3.0" + redux: "npm:^4.0.0" + checksum: 10/febcd1db0c83c5002c6bee0fdda9e70da0653454ffbb72d6c37cbf2f5c005e06fb5271cff344d7164c385c944526565282de9a95ff379e040476b71d27fc2512 + languageName: node + linkType: hard + +"@types/react-sparklines@npm:^1.7.0": + version: 1.7.5 + resolution: "@types/react-sparklines@npm:1.7.5" + dependencies: + "@types/react": "npm:*" + checksum: 10/e79755fb1ed504d36ca0b6aec4e7ef54eba30448a27c275ef56b55132c37761c11d693f885e248e2e8ba80f294bf9475e7d0e15ce5f5bb2a2219f07f18488409 + languageName: node + linkType: hard + +"@types/react-transition-group@npm:^4.2.0, @types/react-transition-group@npm:^4.4.10": + version: 4.4.12 + resolution: "@types/react-transition-group@npm:4.4.12" + peerDependencies: + "@types/react": "*" + checksum: 10/ea14bc84f529a3887f9954b753843820ac8a3c49fcdfec7840657ecc6a8800aad98afdbe4b973eb96c7252286bde38476fcf64b1c09527354a9a9366e516d9a2 + languageName: node + linkType: hard + +"@types/react@npm:^18": + version: 18.3.18 + resolution: "@types/react@npm:18.3.18" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10/7fdd8b853e0d291d4138133f93f8d5c333da918e5804afcea61a923aab4bdfc9bb15eb21a5640959b452972b8715ddf10ffb12b3bd071898b9e37738636463f2 + languageName: node + linkType: hard + +"@types/request@npm:^2.47.1, @types/request@npm:^2.48.8": + version: 2.48.12 + resolution: "@types/request@npm:2.48.12" + dependencies: + "@types/caseless": "npm:*" + "@types/node": "npm:*" + "@types/tough-cookie": "npm:*" + form-data: "npm:^2.5.0" + checksum: 10/a7b3f9f14cacc18fe235bb8e57eff1232a04bd3fa3dad29371f24a5d96db2cd295a0c8b6b34ed7efa3efbbcff845febb02c9635cd68c54811c947ea66ae22090 + languageName: node + linkType: hard + +"@types/resolve@npm:1.20.2": + version: 1.20.2 + resolution: "@types/resolve@npm:1.20.2" + checksum: 10/1bff0d3875e7e1557b6c030c465beca9bf3b1173ebc6937cac547654b0af3bb3ff0f16470e9c4d7c5dc308ad9ac8627c38dbff24ef698b66673ff5bd4ead7f7e + languageName: node + linkType: hard + +"@types/retry@npm:0.12.2": + version: 0.12.2 + resolution: "@types/retry@npm:0.12.2" + checksum: 10/e5675035717b39ce4f42f339657cae9637cf0c0051cf54314a6a2c44d38d91f6544be9ddc0280587789b6afd056be5d99dbe3e9f4df68c286c36321579b1bf4a + languageName: node + linkType: hard + +"@types/sarif@npm:^2.1.4": + version: 2.1.7 + resolution: "@types/sarif@npm:2.1.7" + checksum: 10/0901acef0b77b7c9eaacd6827796cda9c124cc7b871aa6f91de6ec8869fbc699c6d5c510d61f9e6b1c312ea668aa33f08d81cdd2bd55c462bbbe323a5e4c8c5e + languageName: node + linkType: hard + +"@types/semver@npm:7.5.8": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178 + languageName: node + linkType: hard + +"@types/send@npm:*": + version: 0.17.4 + resolution: "@types/send@npm:0.17.4" + dependencies: + "@types/mime": "npm:^1" + "@types/node": "npm:*" + checksum: 10/28320a2aa1eb704f7d96a65272a07c0bf3ae7ed5509c2c96ea5e33238980f71deeed51d3631927a77d5250e4091b3e66bce53b42d770873282c6a20bb8b0280d + languageName: node + linkType: hard + +"@types/serve-index@npm:^1.9.4": + version: 1.9.4 + resolution: "@types/serve-index@npm:1.9.4" + dependencies: + "@types/express": "npm:*" + checksum: 10/72727c88d54da5b13275ebfb75dcdc4aa12417bbe9da1939e017c4c5f0c906fae843aa4e0fbfe360e7ee9df2f3d388c21abfc488f77ce58693fb57809f8ded92 + languageName: node + linkType: hard + +"@types/serve-static@npm:*, @types/serve-static@npm:^1.15.5": + version: 1.15.7 + resolution: "@types/serve-static@npm:1.15.7" + dependencies: + "@types/http-errors": "npm:*" + "@types/node": "npm:*" + "@types/send": "npm:*" + checksum: 10/c5a7171d5647f9fbd096ed1a26105759f3153ccf683824d99fee4c7eb9cde2953509621c56a070dd9fb1159e799e86d300cbe4e42245ebc5b0c1767e8ca94a67 + languageName: node + linkType: hard + +"@types/sockjs@npm:^0.3.36": + version: 0.3.36 + resolution: "@types/sockjs@npm:0.3.36" + dependencies: + "@types/node": "npm:*" + checksum: 10/b4b5381122465d80ea8b158537c00bc82317222d3fb31fd7229ff25b31fa89134abfbab969118da55622236bf3d8fee75759f3959908b5688991f492008f29bc + languageName: node + linkType: hard + +"@types/ssh2-streams@npm:*": + version: 0.1.12 + resolution: "@types/ssh2-streams@npm:0.1.12" + dependencies: + "@types/node": "npm:*" + checksum: 10/377bfff70e6c13e42f7bf832209c916b9a80491bba611c21f4cbdc8c9f99553794e5583ee933fd02bb1b056dd9b97433195452f119104f592a5a2440806f3087 + languageName: node + linkType: hard + +"@types/ssh2@npm:*": + version: 1.15.4 + resolution: "@types/ssh2@npm:1.15.4" + dependencies: + "@types/node": "npm:^18.11.18" + checksum: 10/a4d37e28bf81c6bc41c785d78ee0208163af86294411f9662097f72bf91bb14647d4786f7a01a5c8e74594cfc1ccedcf9495bfdfb5541f2262a2cf433c94c5d9 + languageName: node + linkType: hard + +"@types/ssh2@npm:^0.5.48": + version: 0.5.52 + resolution: "@types/ssh2@npm:0.5.52" + dependencies: + "@types/node": "npm:*" + "@types/ssh2-streams": "npm:*" + checksum: 10/fc2584af091da49da9d6628dd8a5e851b217bb9b1b732b0361903894f2730ab3fdf8634f954be34c5a513f7eb0b2772d059d64062bcf6b4a0eb73bfc83c4b858 + languageName: node + linkType: hard + +"@types/stack-utils@npm:^2.0.0": + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 10/72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 + languageName: node + linkType: hard + +"@types/styled-jsx@npm:^2.2.8": + version: 2.2.9 + resolution: "@types/styled-jsx@npm:2.2.9" + dependencies: + "@types/react": "npm:*" + checksum: 10/0e7e9bce8435116168b2470c7599b3b6ad5775c678d5dc06b64b0bc4fe369c59603c794a7298e2ca4e209aa0135f98df89793a3a0778251c1907b34198c55e9e + languageName: node + linkType: hard + +"@types/tern@npm:*": + version: 0.23.9 + resolution: "@types/tern@npm:0.23.9" + dependencies: + "@types/estree": "npm:*" + checksum: 10/72d26a1abc2b13aa7ee6a34abc0558bfbff1f977beb1c9f2554c4193c6cfc7e1677e4f84663d3f971135b436c5b847f170c74c3b1d6c320e08a1aba7e83cc3c2 + languageName: node + linkType: hard + +"@types/tough-cookie@npm:*": + version: 4.0.5 + resolution: "@types/tough-cookie@npm:4.0.5" + checksum: 10/01fd82efc8202670865928629697b62fe9bf0c0dcbc5b1c115831caeb073a2c0abb871ff393d7df1ae94ea41e256cb87d2a5a91fd03cdb1b0b4384e08d4ee482 + languageName: node + linkType: hard + +"@types/triple-beam@npm:^1.3.2": + version: 1.3.5 + resolution: "@types/triple-beam@npm:1.3.5" + checksum: 10/519b6a1b30d4571965c9706ad5400a200b94e4050feca3e7856e3ea7ac00ec9903e32e9a10e2762d0f7e472d5d03e5f4b29c16c0bd8c1f77c8876c683b2231f1 + languageName: node + linkType: hard + +"@types/trusted-types@npm:^2.0.7": + version: 2.0.7 + resolution: "@types/trusted-types@npm:2.0.7" + checksum: 10/8e4202766a65877efcf5d5a41b7dd458480b36195e580a3b1085ad21e948bc417d55d6f8af1fd2a7ad008015d4117d5fdfe432731157da3c68678487174e4ba3 + languageName: node + linkType: hard + +"@types/unist@npm:^2, @types/unist@npm:^2.0.0": + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 10/6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e + languageName: node + linkType: hard + +"@types/urijs@npm:^1.19.19": + version: 1.19.25 + resolution: "@types/urijs@npm:1.19.25" + checksum: 10/8c6330086f8528c3fdbf079a226aadf1718da53118d54070e45b81a213e9f69be3313e7aa61ac2a3e5ca752095996c4d0a76d4722ddf7d3e68a56117c682ad0d + languageName: node + linkType: hard + +"@types/use-sync-external-store@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/use-sync-external-store@npm:0.0.6" + checksum: 10/a95ce330668501ad9b1c5b7f2b14872ad201e552a0e567787b8f1588b22c7040c7c3d80f142cbb9f92d13c4ea41c46af57a20f2af4edf27f224d352abcfe4049 + languageName: node + linkType: hard + +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: 10/b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 + languageName: node + linkType: hard + +"@types/webpack-env@npm:^1.15.2": + version: 1.18.5 + resolution: "@types/webpack-env@npm:1.18.5" + checksum: 10/3c8dd0b23d45e2d33abdfbae7f1d8f75ce23d54588b08943e833f4dba81eb683ac68672a75eccbdba8e008bc1647638803c1bcadc8cdfd1dd7142fa2c3f612de + languageName: node + linkType: hard + +"@types/ws@npm:*, @types/ws@npm:^8.0.0, @types/ws@npm:^8.5.10, @types/ws@npm:^8.5.3": + version: 8.5.13 + resolution: "@types/ws@npm:8.5.13" + dependencies: + "@types/node": "npm:*" + checksum: 10/21369beafa75c91ae3b00d3a2671c7408fceae1d492ca2abd5ac7c8c8bf4596d513c1599ebbddeae82c27c4a2d248976d0d714c4b3d34362b2ae35b964e2e637 + languageName: node + linkType: hard + +"@types/xml-encryption@npm:^1.2.4": + version: 1.2.4 + resolution: "@types/xml-encryption@npm:1.2.4" + dependencies: + "@types/node": "npm:*" + checksum: 10/1ef957dfb47cf55b12e114755e271a2343f73eb4c59ab6c68b0b7d1b8111d7e1bd8d2bfe0601d2aea09be83c66355bc77fc59f9b71aeff9bb9e15371bcfef5d3 + languageName: node + linkType: hard + +"@types/xml2js@npm:^0.4.14": + version: 0.4.14 + resolution: "@types/xml2js@npm:0.4.14" + dependencies: + "@types/node": "npm:*" + checksum: 10/d76338b8d6ce8540c7af6a32aacf96c38f6de48254568f58f6e5ac2af3f88e6bd1490e5346d3bb336990f91267d23c5cc09e8bf7e80840a63c7855dbf174ecbb + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: 10/a794eb750e8ebc6273a51b12a0002de41343ffe46befef460bdbb57262d187fdf608bc6615b7b11c462c63c3ceb70abe2564c8dd8ee0f7628f38a314f74a9b9b + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.33 + resolution: "@types/yargs@npm:17.0.33" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10/16f6681bf4d99fb671bf56029141ed01db2862e3db9df7fc92d8bea494359ac96a1b4b1c35a836d1e95e665fb18ad753ab2015fc0db663454e8fd4e5d5e2ef91 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^8.17.0": + version: 8.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.21.0" + dependencies: + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:8.21.0" + "@typescript-eslint/type-utils": "npm:8.21.0" + "@typescript-eslint/utils": "npm:8.21.0" + "@typescript-eslint/visitor-keys": "npm:8.21.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.3.1" + natural-compare: "npm:^1.4.0" + ts-api-utils: "npm:^2.0.0" + peerDependencies: + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10/4c7c274bd0f7d8ee2097278d9fb0829b883c28783b9a1c41e5f4e74dee0412c53063978db3590ad7609d538a38058e43f832895746e6af677da7558a8b16fbdd + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^8.16.0": + version: 8.21.0 + resolution: "@typescript-eslint/parser@npm:8.21.0" + dependencies: + "@typescript-eslint/scope-manager": "npm:8.21.0" + "@typescript-eslint/types": "npm:8.21.0" + "@typescript-eslint/typescript-estree": "npm:8.21.0" + "@typescript-eslint/visitor-keys": "npm:8.21.0" + debug: "npm:^4.3.4" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10/c403f56b0a856ad25ffc0d78d4f0ede64d622edb279ace8bc7554c82518c0462f608a1e06d62111633a57b9ffcc37e063378c3980fba138f93d14a7aad5d0db1 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" + dependencies: + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + checksum: 10/9eb2ae5d69d9f723e706c16b2b97744fc016996a5473bed596035ac4d12429b3d24e7340a8235d704efa57f8f52e1b3b37925ff7c2e3384859d28b23a99b8bcc + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:8.21.0": + version: 8.21.0 + resolution: "@typescript-eslint/scope-manager@npm:8.21.0" + dependencies: + "@typescript-eslint/types": "npm:8.21.0" + "@typescript-eslint/visitor-keys": "npm:8.21.0" + checksum: 10/99aa8257c758546c8c4905bd34381be446adea7642dbc279269039308dc33b8dbcf3d7b7d12da7bec8f8d8760b813a5852dc53d75e953cbe327fac05d3f18fc4 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:8.21.0": + version: 8.21.0 + resolution: "@typescript-eslint/type-utils@npm:8.21.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:8.21.0" + "@typescript-eslint/utils": "npm:8.21.0" + debug: "npm:^4.3.4" + ts-api-utils: "npm:^2.0.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10/b4bce1325a2e5e1a74b6919b3187356b7246475ac4d62898134ed68572e39e52fe5daa89d0bb66d78aef7b2057612cccc00400c0b81f9d5b75acec3174114c8d + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 10/0e30c73a3cc3c67dd06360a5a12fd12cee831e4092750eec3d6c031bdc4feafcb0ab1d882910a73e66b451a4f6e1dd015e9e2c4d45bf6bf716a474e5d123ddf0 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:8.21.0": + version: 8.21.0 + resolution: "@typescript-eslint/types@npm:8.21.0" + checksum: 10/a22c99f5687358c7343789b942c9885bc1b49eb239562b792f22e2ac4f0d3f04102f204cd2d749202d6888767566fba86f54447894955310890ec307fec8ed8d + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" + dependencies: + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/b01e66235a91aa4439d02081d4a5f8b4a7cf9cb24f26b334812f657e3c603493e5f41e5c1e89cf4efae7d64509fa1f73affc16afc5e15cb7f83f724577c82036 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:8.21.0": + version: 8.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.21.0" + dependencies: + "@typescript-eslint/types": "npm:8.21.0" + "@typescript-eslint/visitor-keys": "npm:8.21.0" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^2.0.0" + peerDependencies: + typescript: ">=4.8.4 <5.8.0" + checksum: 10/1a8bcd2968490dcf047273a36e1d2cd51725e893ad874e554e4b81e62bf54e4ff2b7ee2af206208a2ae9ac2cc5c8b50e2244dd4fe9c42ef34122df4360e9f9c2 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:8.21.0, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.21.0 + resolution: "@typescript-eslint/utils@npm:8.21.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.21.0" + "@typescript-eslint/types": "npm:8.21.0" + "@typescript-eslint/typescript-estree": "npm:8.21.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10/e44b4e87b8227f7524b4cd16e833ea37fbb73d3829caf484e7ca737060908817788755b9481d053bc4371bbcc99d2477e32b7ad43a421a3e61ce46c2c48c0bd7 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^7.0.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + peerDependencies: + eslint: ^8.56.0 + checksum: 10/f43fedb4f4d2e3836bdf137889449063a55c0ece74fdb283929cd376197b992313be8ef4df920c1c801b5c3076b92964c84c6c3b9b749d263b648d0011f5926e + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" + dependencies: + "@typescript-eslint/types": "npm:7.18.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10/b7cfe6fdeae86c507357ac6b2357813c64fb2fbf1aaf844393ba82f73a16e2599b41981b34200d9fc7765d70bc3a8181d76b503051e53f04bcb7c9afef637eab + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:8.21.0": + version: 8.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.21.0" + dependencies: + "@typescript-eslint/types": "npm:8.21.0" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10/781cafa354177de4e864511435dbe61d896a7d1331bca76dd0a151295cc27b9677412444d47e1d5c6d2e7de5fee29b7bef0489d76c494fa59139e421f860506a + languageName: node + linkType: hard + +"@uiw/codemirror-extensions-basic-setup@npm:4.23.7": + version: 4.23.7 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.23.7" + dependencies: + "@codemirror/autocomplete": "npm:^6.0.0" + "@codemirror/commands": "npm:^6.0.0" + "@codemirror/language": "npm:^6.0.0" + "@codemirror/lint": "npm:^6.0.0" + "@codemirror/search": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + peerDependencies: + "@codemirror/autocomplete": ">=6.0.0" + "@codemirror/commands": ">=6.0.0" + "@codemirror/language": ">=6.0.0" + "@codemirror/lint": ">=6.0.0" + "@codemirror/search": ">=6.0.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + checksum: 10/7b8cbb9ccc931bc1a6909d009e653f78797e4b851aa9fb8e11f90ae1cea233e643a1951ad4ad9e10123ef166808acee1acff24732ea9fc15cd77164f6b179b91 + languageName: node + linkType: hard + +"@uiw/react-codemirror@npm:^4.9.3": + version: 4.23.7 + resolution: "@uiw/react-codemirror@npm:4.23.7" + dependencies: + "@babel/runtime": "npm:^7.18.6" + "@codemirror/commands": "npm:^6.1.0" + "@codemirror/state": "npm:^6.1.1" + "@codemirror/theme-one-dark": "npm:^6.0.0" + "@uiw/codemirror-extensions-basic-setup": "npm:4.23.7" + codemirror: "npm:^6.0.0" + peerDependencies: + "@babel/runtime": ">=7.11.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/theme-one-dark": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + codemirror: ">=6.0.0" + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10/dc6f1fd2f1863120e29ea331b2e279054bf508f00656d3fed97779f17818ae00b6cf9d74d3b0996800174d444b59702da74ca88c303db563daad85c0824fc952 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.1 + resolution: "@ungap/structured-clone@npm:1.2.1" + checksum: 10/6770f71e8183311b2871601ddb02d62a26373be7cf2950cb546a345a2305c75b502e36ce80166120aa2f5f1ea1562141684651ebbfcc711c58acd32035d3e545 + languageName: node + linkType: hard + +"@useoptic/json-pointer-helpers@npm:0.55.1": + version: 0.55.1 + resolution: "@useoptic/json-pointer-helpers@npm:0.55.1" + dependencies: + jsonpointer: "npm:^5.0.1" + minimatch: "npm:9.0.3" + checksum: 10/874db1e25c4abecf29faf95c51d39d127ac50ee9f1ad9654babb3a0257a7c321e54312bf66214ac188e3f92f7e9c342fd81565356c0472689c120ea40465b15d + languageName: node + linkType: hard + +"@useoptic/openapi-utilities@npm:^0.55.0": + version: 0.55.1 + resolution: "@useoptic/openapi-utilities@npm:0.55.1" + dependencies: + "@useoptic/json-pointer-helpers": "npm:0.55.1" + ajv: "npm:^8.6.0" + ajv-errors: "npm:~3.0.0" + ajv-formats: "npm:~2.1.0" + chalk: "npm:^4.1.2" + fast-deep-equal: "npm:^3.1.3" + is-url: "npm:^1.2.4" + js-yaml: "npm:^4.1.0" + json-stable-stringify: "npm:^1.0.1" + lodash.groupby: "npm:^4.6.0" + lodash.isequal: "npm:^4.5.0" + lodash.omit: "npm:^4.5.0" + node-machine-id: "npm:^1.1.12" + openapi-types: "npm:^12.0.2" + ts-invariant: "npm:^0.9.3" + url-join: "npm:^4.0.1" + yaml-ast-parser: "npm:^0.0.43" + checksum: 10/c8580f4201cf643eef702e1e161bfa8e5655d81e9c3ca776470db0d68af44d4f3b6bcfb44ac52f9b4bf85ced3d1c6a80462c89e8b602872adb0532695202d8cd + languageName: node + linkType: hard + +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" + dependencies: + "@webassemblyjs/helper-numbers": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + checksum: 10/f83e6abe38057f5d87c1fb356513a371a8b43c9b87657f2790741a66b1ef8ecf958d1391bc42f27c5fb33f58ab8286a38ea849fdd21f433cd4df1307424bab45 + languageName: node + linkType: hard + +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: 10/e866ec8433f4a70baa511df5e8f2ebcd6c24f4e2cc6274c7c5aabe2bcce3459ea4680e0f35d450e1f3602acf3913b6b8e4f15069c8cfd34ae8609fb9a7d01795 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 10/48b5df7fd3095bb252f59a139fe2cbd999a62ac9b488123e9a0da3906ad8a2f2da7b2eb21d328c01a90da987380928706395c2897d1f3ed9e2125b6d75a920d0 + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: 10/9690afeafa5e765a34620aa6216e9d40f9126d4e37e9726a2594bf60cab6b211ef20ab6670fd3c4449dd4a3497e69e49b2b725c8da0fb213208c7f45f15f5d5b + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" + dependencies: + "@webassemblyjs/floating-point-hex-parser": "npm:1.13.2" + "@webassemblyjs/helper-api-error": "npm:1.13.2" + "@xtuc/long": "npm:4.2.2" + checksum: 10/e4c7d0b09811e1cda8eec644a022b560b28f4e974f50195375ccd007df5ee48a922a6dcff5ac40b6a8ec850d56d0ea6419318eee49fec7819ede14e90417a6a4 + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 10/3edd191fff7296df1ef3b023bdbe6cb5ea668f6386fd197ccfce46015c6f2a8cc9763cfb86503a0b94973ad27996645afff2252ee39a236513833259a47af6ed + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + checksum: 10/6b73874f906532512371181d7088460f767966f26309e836060c5a8e4e4bfe6d523fb5f4c034b34aa22ebb1192815f95f0e264298769485c1f0980fdd63ae0ce + languageName: node + linkType: hard + +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" + dependencies: + "@xtuc/ieee754": "npm:^1.2.0" + checksum: 10/d7e3520baa37a7309fa7db4d73d69fb869878853b1ebd4b168821bd03fcc4c0e1669c06231315b0039035d9a7a462e53de3ad982da4a426a4b0743b5888e8673 + languageName: node + linkType: hard + +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" + dependencies: + "@xtuc/long": "npm:4.2.2" + checksum: 10/3a10542c86807061ec3230bac8ee732289c852b6bceb4b88ebd521a12fbcecec7c432848284b298154f28619e2746efbed19d6904aef06c49ef20a0b85f650cf + languageName: node + linkType: hard + +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 10/27885e5d19f339501feb210867d69613f281eda695ac508f04d69fa3398133d05b6870969c0242b054dc05420ed1cc49a64dea4fe0588c18d211cddb0117cc54 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/helper-wasm-section": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-opt": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + "@webassemblyjs/wast-printer": "npm:1.14.1" + checksum: 10/c62c50eadcf80876713f8c9f24106b18cf208160ab842fcb92060fd78c37bf37e7fcf0b7cbf1afc05d230277c2ce0f3f728432082c472dd1293e184a95f9dbdd + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10/6085166b0987d3031355fe17a4f9ef0f412e08098d95454059aced2bd72a4c3df2bc099fa4d32d640551fc3eca1ac1a997b44432e46dc9d84642688e42c17ed4 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + checksum: 10/fa5d1ef8d2156e7390927f938f513b7fb4440dd6804b3d6c8622b7b1cf25a3abf1a5809f615896d4918e04b27b52bc3cbcf18faf2d563cb563ae0a9204a492db + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-api-error": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10/07d9805fda88a893c984ed93d5a772d20d671e9731358ab61c6c1af8e0e58d1c42fc230c18974dfddebc9d2dd7775d514ba4d445e70080b16478b4b16c39c7d9 + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@xtuc/long": "npm:4.2.2" + checksum: 10/cef09aad2fcd291bfcf9efdae2ea1e961a1ba0f925d1d9dcdd8c746d32fbaf431b6d26a0241699c0e39f82139018aa720b4ceb84ac6f4c78f13072747480db69 + languageName: node + linkType: hard + +"@whatwg-node/disposablestack@npm:^0.0.5": + version: 0.0.5 + resolution: "@whatwg-node/disposablestack@npm:0.0.5" + dependencies: + tslib: "npm:^2.6.3" + checksum: 10/4e47701c51e505f5d793af4ec9ec63f114c73b82dc55c55e16c9ce28a70b094f68f982ca0b054fc28fd195023551a8bd2eb4f9485a3f66230e10b38dc291b75d + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.10.0, @whatwg-node/fetch@npm:^0.10.1": + version: 0.10.3 + resolution: "@whatwg-node/fetch@npm:0.10.3" + dependencies: + "@whatwg-node/node-fetch": "npm:^0.7.7" + urlpattern-polyfill: "npm:^10.0.0" + checksum: 10/dca9741084bfc1c28566af02c57a1ed6030636ea14e6c8079bd7c7b4344507a96f2f4d373ef1847c8b49f9eccfcc034bf4d2876868267aa23222f9dd7856ce0d + languageName: node + linkType: hard + +"@whatwg-node/node-fetch@npm:^0.7.7": + version: 0.7.7 + resolution: "@whatwg-node/node-fetch@npm:0.7.7" + dependencies: + "@whatwg-node/disposablestack": "npm:^0.0.5" + busboy: "npm:^1.6.0" + tslib: "npm:^2.6.3" + checksum: 10/fe88c2766fc6cbe33c5bf58fb1ce5230f499d083a154643f0c46edfa3db679e173ae13ceb20cb89087252176c42b5e9ad7b540c6979f407b0c2444cf488121d1 + languageName: node + linkType: hard + +"@xmldom/is-dom-node@npm:^1.0.1": + version: 1.0.1 + resolution: "@xmldom/is-dom-node@npm:1.0.1" + checksum: 10/45683a6a192e4eff0f5189d4e3ef5272fcf8e3458f598f99614810490a8163c9a7ebe4ecaf241286fb74fcd762610b46c062ad3c7fddaa6eafa9a9f1537e338a + languageName: node + linkType: hard + +"@xmldom/xmldom@npm:^0.8.10, @xmldom/xmldom@npm:^0.8.5": + version: 0.8.10 + resolution: "@xmldom/xmldom@npm:0.8.10" + checksum: 10/62400bc5e0e75b90650e33a5ceeb8d94829dd11f9b260962b71a784cd014ddccec3e603fe788af9c1e839fa4648d8c521ebd80d8b752878d3a40edabc9ce7ccf + languageName: node + linkType: hard + +"@xobotyi/scrollbar-width@npm:^1.9.5": + version: 1.9.5 + resolution: "@xobotyi/scrollbar-width@npm:1.9.5" + checksum: 10/026ccd174ec3ce032f42794c7e2ee9dab3cfee4f8f9d6ce4f2b4a2fe50cbf8be7406583fb2e203707c699690c5d40a13ee1611f1f67f6ceb01ac2a543acadc30 + languageName: node + linkType: hard + +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: 10/ab033b032927d77e2f9fa67accdf31b1ca7440974c21c9cfabc8349e10ca2817646171c4f23be98d0e31896d6c2c3462a074fe37752e523abc3e45c79254259c + languageName: node + linkType: hard + +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 10/7217bae9fe240e0d804969e7b2af11cb04ec608837c78b56ca88831991b287e232a0b7fce8d548beaff42aaf0197ffa471d81be6ac4c4e53b0148025a2c076ec + languageName: node + linkType: hard + +"@yarnpkg/lockfile@npm:^1.1.0": + version: 1.1.0 + resolution: "@yarnpkg/lockfile@npm:1.1.0" + checksum: 10/cd19e1114aaf10a05126aeea8833ef4ca8af8a46e88e12884f8359d19333fd19711036dbc2698dbe937f81f037070cf9a8da45c2e8c6ca19cafd7d15659094ed + languageName: node + linkType: hard + +"@yarnpkg/parsers@npm:^3.0.0": + version: 3.0.2 + resolution: "@yarnpkg/parsers@npm:3.0.2" + dependencies: + js-yaml: "npm:^3.10.0" + tslib: "npm:^2.4.0" + checksum: 10/87506f140d6c401bdd89ff22073c3dd3ec7b6858e7f576e63ec1aea1b0b8a8ec241eb46ca5582dc2071098a86d6a55c3b0628da5eeff91d33afb4fa7cac0cf65 + languageName: node + linkType: hard + +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 10/ebe95d7278999e605823fc515a3b05d689bc72e7f825536e73c95ebf621636874c6de1b749b3c4bf866b96ccd4b3a2802efa313d0e45ad51a413c8c73247db20 + languageName: node + linkType: hard + +"abbrev@npm:^3.0.0": + version: 3.0.0 + resolution: "abbrev@npm:3.0.0" + checksum: 10/2ceee14efdeda42ef7355178c1069499f183546ff7112b3efe79c1edef09d20ad9c17939752215fb8f7fcf48d10e6a7c0aa00136dc9cf4d293d963718bb1d200 + languageName: node + linkType: hard + +"abort-controller@npm:^3.0.0": + version: 3.0.0 + resolution: "abort-controller@npm:3.0.0" + dependencies: + event-target-shim: "npm:^5.0.0" + checksum: 10/ed84af329f1828327798229578b4fe03a4dd2596ba304083ebd2252666bdc1d7647d66d0b18704477e1f8aa315f055944aa6e859afebd341f12d0a53c37b4b40 + languageName: node + linkType: hard + +"accepts@npm:^1.3.5, accepts@npm:~1.3.4, accepts@npm:~1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 + languageName: node + linkType: hard + +"acorn-globals@npm:^7.0.0": + version: 7.0.1 + resolution: "acorn-globals@npm:7.0.1" + dependencies: + acorn: "npm:^8.1.0" + acorn-walk: "npm:^8.0.2" + checksum: 10/2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10/871386764e1451c637bb8ab9f76f4995d408057e9909be6fb5ad68537ae3375d85e6a6f170b98989f44ab3ff6c74ad120bc2779a3d577606e7a0cd2b4efcaf77 + languageName: node + linkType: hard + +"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 10/6df29c35556782ca9e632db461a7f97947772c6c1d5438a81f0c873a3da3a792487e83e404d1c6c25f70513e91aa18745f6eafb1fcc3a43ecd1920b21dd173d2 + languageName: node + linkType: hard + +"address@npm:^1.0.1, address@npm:^1.1.2": + version: 1.2.2 + resolution: "address@npm:1.2.2" + checksum: 10/57d80a0c6ccadc8769ad3aeb130c1599e8aee86a8d25f671216c40df9b8489d6c3ef879bc2752b40d1458aa768f947c2d91e5b2fedfe63cf702c40afdfda9ba9 + languageName: node + linkType: hard + +"adm-zip@npm:^0.5.10": + version: 0.5.16 + resolution: "adm-zip@npm:0.5.16" + checksum: 10/e167d1b9e60cde37334efda828fa514680af9facbd4183952f36526390e5c7da9a90ca1e6880dfd3aba7b3517f1506c6178e0dc29cd630b26b98c795f97fc599 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: "npm:4" + checksum: 10/21fb903e0917e5cb16591b4d0ef6a028a54b83ac30cd1fca58dece3d4e0990512a8723f9f83130d88a41e2af8b1f7be1386fda3ea2d181bb1a62155e75e95e23 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 10/3db6d8d4651f2aa1a9e4af35b96ab11a7607af57a24f3bc721a387eaa3b5f674e901f0a648b0caefd48f3fd117c7761b79a3b55854e2aebaa96c3f32cf76af84 + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.1.4": + version: 4.6.0 + resolution: "agentkeepalive@npm:4.6.0" + dependencies: + humanize-ms: "npm:^1.2.1" + checksum: 10/80c546bd88dd183376d6a29e5598f117f380b1d567feb1de184241d6ece721e2bdd38f179a1674276de01780ccae229a38c60a77317e2f5ad2f1818856445bd7 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10/1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv-draft-04@npm:^1.0.0, ajv-draft-04@npm:~1.0.0": + version: 1.0.0 + resolution: "ajv-draft-04@npm:1.0.0" + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/3f11fa0e7f7359bef6608657f02ab78e9cc62b1fb7bdd860db0d00351b3863a1189c1a23b72466d2d82726cab4eb20725c76f5e7c134a89865e2bfd0e6828137 + languageName: node + linkType: hard + +"ajv-errors@npm:^3.0.0, ajv-errors@npm:~3.0.0": + version: 3.0.0 + resolution: "ajv-errors@npm:3.0.0" + peerDependencies: + ajv: ^8.0.1 + checksum: 10/bd3403f8547dc12f7417c40b6a003f6d891c0123e365b4b3cd9fffb0edd29100ae682b92ef47dcb3a3b4642a702a246873d3758c3fb92e24dfa3443f97476421 + languageName: node + linkType: hard + +"ajv-formats@npm:^2.1.1, ajv-formats@npm:~2.1.0": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/70c263ded219bf277ffd9127f793b625f10a46113b2e901e150da41931fcfd7f5592da6d66862f4449bb157ffe65867c3294a7df1d661cc232c4163d5a1718ed + languageName: node + linkType: hard + +"ajv-formats@npm:~3.0.1": + version: 3.0.1 + resolution: "ajv-formats@npm:3.0.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/5679b9f9ced9d0213a202a37f3aa91efcffe59a6de1a6e3da5c873344d3c161820a1f11cc29899661fee36271fd2895dd3851b6461c902a752ad661d1c1e8722 + languageName: node + linkType: hard + +"ajv-keywords@npm:^3.4.1, ajv-keywords@npm:^3.5.2": + version: 3.5.2 + resolution: "ajv-keywords@npm:3.5.2" + peerDependencies: + ajv: ^6.9.1 + checksum: 10/d57c9d5bf8849bddcbd801b79bc3d2ddc736c2adb6b93a6a365429589dd7993ddbd5d37c6025ed6a7f89c27506b80131d5345c5b1fa6a97e40cd10a96bcd228c + languageName: node + linkType: hard + +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + peerDependencies: + ajv: ^8.8.2 + checksum: 10/5021f96ab7ddd03a4005326bd06f45f448ebfbb0fe7018b1b70b6c28142fa68372bda2057359814b83fd0b2d4c8726c297f0a7557b15377be7b56ce5344533d8 + languageName: node + linkType: hard + +"ajv@npm:^6.12.2, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10/48d6ad21138d12eb4d16d878d630079a2bda25a04e745c07846a4ad768319533031e28872a9b3c5790fa1ec41aabdf2abed30a56e5a03ebc2cf92184b8ee306c + languageName: node + linkType: hard + +"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.11.0, ajv@npm:^8.12.0, ajv@npm:^8.16.0, ajv@npm:^8.17.1, ajv@npm:^8.6.0, ajv@npm:^8.9.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33 + languageName: node + linkType: hard + +"ajv@npm:~8.12.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.2.2" + checksum: 10/b406f3b79b5756ac53bfe2c20852471b08e122bc1ee4cde08ae4d6a800574d9cd78d60c81c69c63ff81e4da7cd0b638fafbb2303ae580d49cf1600b9059efb85 + languageName: node + linkType: hard + +"ajv@npm:~8.13.0": + version: 8.13.0 + resolution: "ajv@npm:8.13.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.4.1" + checksum: 10/4ada268c9a6e44be87fd295df0f0a91267a7bae8dbc8a67a2d5799c3cb459232839c99d18b035597bb6e3ffe88af6979f7daece854f590a81ebbbc2dfa80002c + languageName: node + linkType: hard + +"already@npm:^2.2.1": + version: 2.2.1 + resolution: "already@npm:2.2.1" + checksum: 10/1c55b50667c3dbe9d40716454d4a870f5758143061a0e39c0a7077eab2c6dbec116edf081796afb6f441462096bf68ef72a4daad074843a0d970527f29037ffe + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10/43d6e2fc7b1c6e4dc373de708ee76311ec2e0433e7e8bd3194e7ff123ea6a747428fc61afdcf5969da5be3a5f0fd054602bec56fc0ebe249ce2fcde6e649e3c2 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2 + languageName: node + linkType: hard + +"ansi-html-community@npm:^0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" + bin: + ansi-html: bin/ansi-html + checksum: 10/08df3696720edacd001a8d53b197bb5728242c55484680117dab9f7633a6320e961a939bddd88ee5c71d4a64f3ddb49444d1c694bd0668adbb3f95ba114f2386 + languageName: node + linkType: hard + +"ansi-html@npm:^0.0.9": + version: 0.0.9 + resolution: "ansi-html@npm:0.0.9" + bin: + ansi-html: bin/ansi-html + checksum: 10/3e83fae364d323d9c453f74a21aa29da68ae152e996c66de45a49a445ea362c4e2e9abce0069558239ff23e3d6ae73b5d27993d631382aa83d85f44b687e0aa1 + languageName: node + linkType: hard + +"ansi-regex@npm:^4.1.0": + version: 4.1.1 + resolution: "ansi-regex@npm:4.1.1" + checksum: 10/b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 10/495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10/b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10/d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 + languageName: node + linkType: hard + +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"apg-lite@npm:^1.0.3, apg-lite@npm:^1.0.4": + version: 1.0.4 + resolution: "apg-lite@npm:1.0.4" + checksum: 10/9c5eb431497415b738e332e5805f836c64ac9b75a399afaec0354859f3f44c95e203fd5c7b8fee9f28fe1e184dd30f6073ed9df062849c3df03c51624901a8a6 + languageName: node + linkType: hard + +"app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend": + version: 0.0.0-use.local + resolution: "app@link:../app::locator=backend%40workspace%3Apackages%2Fbackend" + languageName: node + linkType: soft + +"app@workspace:packages/app": + version: 0.0.0-use.local + resolution: "app@workspace:packages/app" + dependencies: + "@backstage-community/plugin-github-actions": "npm:^0.6.16" + "@backstage-community/plugin-manage": "workspace:^" + "@backstage-community/plugin-manage-module-tech-insights": "workspace:^" + "@backstage-community/plugin-manage-react": "workspace:^" + "@backstage-community/plugin-tech-insights": "npm:^0.4.0" + "@backstage-community/plugin-tech-radar": "npm:^0.7.4" + "@backstage/app-defaults": "npm:^1.5.16" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/cli": "npm:^0.29.5" + "@backstage/core-app-api": "npm:^1.15.4" + "@backstage/core-components": "npm:^0.16.3" + "@backstage/core-plugin-api": "npm:^1.10.3" + "@backstage/integration-react": "npm:^1.2.3" + "@backstage/plugin-api-docs": "npm:^0.12.3" + "@backstage/plugin-catalog": "npm:^1.26.1" + "@backstage/plugin-catalog-common": "npm:^1.1.3" + "@backstage/plugin-catalog-graph": "npm:^0.4.15" + "@backstage/plugin-catalog-import": "npm:^0.12.9" + "@backstage/plugin-catalog-react": "npm:^1.15.1" + "@backstage/plugin-org": "npm:^0.6.35" + "@backstage/plugin-permission-react": "npm:^0.4.30" + "@backstage/plugin-scaffolder": "npm:^1.27.4" + "@backstage/plugin-search": "npm:^1.4.22" + "@backstage/plugin-search-react": "npm:^1.8.5" + "@backstage/plugin-techdocs": "npm:^1.12.1" + "@backstage/plugin-techdocs-module-addons-contrib": "npm:^1.1.20" + "@backstage/plugin-techdocs-react": "npm:^1.2.13" + "@backstage/plugin-user-settings": "npm:^0.8.18" + "@backstage/test-utils": "npm:^1.7.4" + "@backstage/theme": "npm:^0.6.3" + "@material-ui/core": "npm:^4.12.2" + "@material-ui/icons": "npm:^4.9.1" + "@playwright/test": "npm:^1.32.3" + "@testing-library/dom": "npm:^9.0.0" + "@testing-library/jest-dom": "npm:^6.0.0" + "@testing-library/react": "npm:^14.0.0" + "@testing-library/user-event": "npm:^14.0.0" + "@types/react-dom": "npm:*" + cross-env: "npm:^7.0.0" + history: "npm:^5.0.0" + react: "npm:^18.0.2" + react-dom: "npm:^18.0.2" + react-router: "npm:^6.3.0" + react-router-dom: "npm:^6.3.0" + react-use: "npm:^17.2.4" + languageName: unknown + linkType: soft + +"append-field@npm:^1.0.0": + version: 1.0.0 + resolution: "append-field@npm:1.0.0" + checksum: 10/afb50f5ff668af1cb66bc5cfebb55ed9a1d99e24901782ee83d00aed1a499835f9375a149cf27b17f79595ecfcc3d1de0cd5b020b210a5359c43eaf607c217de + languageName: node + linkType: hard + +"archiver-utils@npm:^5.0.0, archiver-utils@npm:^5.0.2": + version: 5.0.2 + resolution: "archiver-utils@npm:5.0.2" + dependencies: + glob: "npm:^10.0.0" + graceful-fs: "npm:^4.2.0" + is-stream: "npm:^2.0.1" + lazystream: "npm:^1.0.0" + lodash: "npm:^4.17.15" + normalize-path: "npm:^3.0.0" + readable-stream: "npm:^4.0.0" + checksum: 10/9dde4aa3f0cb1bdfe0b3d4c969f82e6cca9ae76338b7fee6f0071a14a2a38c0cdd1c41ecd3e362466585aa6cc5d07e9e435abea8c94fd9c7ace35f184abef9e4 + languageName: node + linkType: hard + +"archiver@npm:^7.0.0, archiver@npm:^7.0.1": + version: 7.0.1 + resolution: "archiver@npm:7.0.1" + dependencies: + archiver-utils: "npm:^5.0.2" + async: "npm:^3.2.4" + buffer-crc32: "npm:^1.0.0" + readable-stream: "npm:^4.0.0" + readdir-glob: "npm:^1.1.2" + tar-stream: "npm:^3.0.0" + zip-stream: "npm:^6.0.1" + checksum: 10/81c6102db99d7ffd5cb2aed02a678f551c6603991a059ca66ef59249942b835a651a3d3b5240af4f8bec4e61e13790357c9d1ad4a99982bd2cc4149575c31d67 + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 10/969b491082f20cad166649fa4d2073ea9e974a4e5ac36247ca23d2e5a8b3cb12d60e9ff70a8acfe26d76566c71fd351ee5e6a9a6595157eb36f92b1fd64e1599 + languageName: node + linkType: hard + +"argparse@npm:^1.0.10, argparse@npm:^1.0.7, argparse@npm:~1.0.9": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: "npm:~1.0.2" + checksum: 10/c6a621343a553ff3779390bb5ee9c2263d6643ebcd7843227bdde6cc7adbed796eb5540ca98db19e3fd7b4714e1faa51551f8849b268bb62df27ddb15cbcd91e + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10/18640244e641a417ec75a9bd38b0b2b6b95af5199aa241b131d4b2fb206f334d7ecc600bd194861610a5579084978bfcbb02baa399dbe442d56d0ae5e60dbaef + languageName: node + linkType: hard + +"args@npm:^5.0.0": + version: 5.0.3 + resolution: "args@npm:5.0.3" + dependencies: + camelcase: "npm:5.0.0" + chalk: "npm:2.4.2" + leven: "npm:2.1.0" + mri: "npm:1.1.4" + checksum: 10/bb12788cc8edf1332121d8d8fff3b518d75b4e10af3053e28ef3088f3b50ab47554f35b61ccbe33ae374f209b49ea911cd5548ff05c153eba5d6bb52da30ed94 + languageName: node + linkType: hard + +"aria-hidden@npm:^1.2.4": + version: 1.2.4 + resolution: "aria-hidden@npm:1.2.4" + dependencies: + tslib: "npm:^2.0.0" + checksum: 10/df4bc15423aaaba3729a7d40abcbf6d3fffa5b8fd5eb33d3ac8b7da0110c47552fca60d97f2e1edfbb68a27cae1da499f1c3896966efb3e26aac4e3b57e3cc8b + languageName: node + linkType: hard + +"aria-query@npm:5.1.3": + version: 5.1.3 + resolution: "aria-query@npm:5.1.3" + dependencies: + deep-equal: "npm:^2.0.5" + checksum: 10/e5da608a7c4954bfece2d879342b6c218b6b207e2d9e5af270b5e38ef8418f02d122afdc948b68e32649b849a38377785252059090d66fa8081da95d1609c0d2 + languageName: node + linkType: hard + +"aria-query@npm:^5.0.0, aria-query@npm:^5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: 10/b2fe9bc98bd401bc322ccb99717c1ae2aaf53ea0d468d6e7aebdc02fac736e4a99b46971ee05b783b08ade23c675b2d8b60e4a1222a95f6e27bc4d2a0bfdcc03 + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.3" + is-array-buffer: "npm:^3.0.5" + checksum: 10/0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 + languageName: node + linkType: hard + +"array-flatten@npm:1.1.1": + version: 1.1.1 + resolution: "array-flatten@npm:1.1.1" + checksum: 10/e13c9d247241be82f8b4ec71d035ed7204baa82fae820d4db6948d30d3c4a9f2b3905eb2eec2b937d4aa3565200bd3a1c500480114cff649fa748747d2a50feb + languageName: node + linkType: hard + +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + is-string: "npm:^1.0.7" + checksum: 10/290b206c9451f181fb2b1f79a3bf1c0b66bb259791290ffbada760c79b284eef6f5ae2aeb4bcff450ebc9690edd25732c4c73a3c2b340fcc0f4563aed83bf488 + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"array.prototype.findlast@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlast@npm:1.2.5" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31 + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlastindex@npm:1.2.5" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/7c5c821f357cd53ab6cc305de8086430dd8d7a2485db87b13f843e868055e9582b1fd338f02338f67fc3a1603ceaf9610dd2a470b0b506f9d18934780f95b246 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/f9b992fa0775d8f7c97abc91eb7f7b2f0ed8430dd9aeb9fdc2967ac4760cdd7fc2ef7ead6528fef40c7261e4d790e117808ce0d3e7e89e91514d4963a531cd01 + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/473534573aa4b37b1d80705d0ce642f5933cccf5617c9f3e8a56686e9815ba93d469138e86a1f25d2fe8af999c3d24f54d703ec1fc2db2e6778d46d0f4ac951e + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + es-errors: "npm:^1.3.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + is-array-buffer: "npm:^3.0.4" + checksum: 10/4821ebdfe7d699f910c7f09bc9fa996f09b96b80bccb4f5dd4b59deae582f6ad6e505ecef6376f8beac1eda06df2dbc89b70e82835d104d6fcabd33c1aed1ae9 + languageName: node + linkType: hard + +"arrify@npm:^2.0.0": + version: 2.0.1 + resolution: "arrify@npm:2.0.1" + checksum: 10/067c4c1afd182806a82e4c1cb8acee16ab8b5284fbca1ce29408e6e91281c36bb5b612f6ddfbd40a0f7a7e0c75bf2696eb94c027f6e328d6e9c52465c98e4209 + languageName: node + linkType: hard + +"asn1.js@npm:^4.10.1": + version: 4.10.1 + resolution: "asn1.js@npm:4.10.1" + dependencies: + bn.js: "npm:^4.0.0" + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + checksum: 10/5a02104b9ba167917c786a3fdac9840a057d29e6b609250e6af924d0529ead1a32417da13eec809cadea8f991eb67782196f3df427c5b4f30eaf22044fc64fda + languageName: node + linkType: hard + +"asn1@npm:^0.2.6, asn1@npm:~0.2.3": + version: 0.2.6 + resolution: "asn1@npm:0.2.6" + dependencies: + safer-buffer: "npm:~2.1.0" + checksum: 10/cf629291fee6c1a6f530549939433ebf32200d7849f38b810ff26ee74235e845c0c12b2ed0f1607ac17383d19b219b69cefa009b920dab57924c5c544e495078 + languageName: node + linkType: hard + +"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": + version: 1.0.0 + resolution: "assert-plus@npm:1.0.0" + checksum: 10/f4f991ae2df849cc678b1afba52d512a7cbf0d09613ba111e72255409ff9158550c775162a47b12d015d1b82b3c273e8e25df0e4783d3ddb008a293486d00a07 + languageName: node + linkType: hard + +"assert@npm:^1.1.1": + version: 1.5.1 + resolution: "assert@npm:1.5.1" + dependencies: + object.assign: "npm:^4.1.4" + util: "npm:^0.10.4" + checksum: 10/207d0eceb6c64ef458f1511c8ce441f83111c46a6ba290c1701eebf4273a8a20bdcb4d0846b5a98d9c70536f5f389e3bc9be75a98a27c8c93b5d5686e6bf3aa3 + languageName: node + linkType: hard + +"ast-types-flow@npm:^0.0.8": + version: 0.0.8 + resolution: "ast-types-flow@npm:0.0.8" + checksum: 10/85a1c24af4707871c27cfe456bd2ff7fcbe678f3d1c878ac968c9557735a171a17bdcc8c8f903ceab3fc3c49d5b3da2194e6ab0a6be7fec0e133fa028f21ba1b + languageName: node + linkType: hard + +"ast-types@npm:^0.13.4": + version: 0.13.4 + resolution: "ast-types@npm:0.13.4" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10/c55b375b9aaf44713d8c0f77a08215ab6d44f368b13e44f2141c421022af3c62b615a30c8ea629457f0cbaec409c713401c0188a124552c8fe4a5ad6b17ff3c3 + languageName: node + linkType: hard + +"astring@npm:^1.8.1": + version: 1.9.0 + resolution: "astring@npm:1.9.0" + bin: + astring: bin/astring + checksum: 10/ee88f71d8534557b27993d6d035ae85d78488d8dbc6429cd8e8fdfcafec3c65928a3bdc518cf69767a1298d3361490559a4819cd4b314007edae1e94cf1f9e4c + languageName: node + linkType: hard + +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 10/1a09379937d846f0ce7614e75071c12826945d4e417db634156bf0e4673c495989302f52186dfa9767a1d9181794554717badd193ca2bbab046ef1da741d8efd + languageName: node + linkType: hard + +"async-lock@npm:^1.4.1": + version: 1.4.1 + resolution: "async-lock@npm:1.4.1" + checksum: 10/80d55ac95f920e880a865968b799963014f6d987dd790dd08173fae6e1af509d8cd0ab45a25daaca82e3ef8e7c939f5d128cd1facfcc5c647da8ac2409e20ef9 + languageName: node + linkType: hard + +"async-mutex@npm:^0.5.0": + version: 0.5.0 + resolution: "async-mutex@npm:0.5.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10/4c6bfce1cc9cd43f723c4d96403ac5f4757f885c953b839cde6956ec8817ff39623b82d67614de10c7933e21626925882fb9bac367db7d15d7cb4f84228722c9 + languageName: node + linkType: hard + +"async-retry@npm:^1.3.3": + version: 1.3.3 + resolution: "async-retry@npm:1.3.3" + dependencies: + retry: "npm:0.13.1" + checksum: 10/38a7152ff7265a9321ea214b9c69e8224ab1febbdec98efbbde6e562f17ff68405569b796b1c5271f354aef8783665d29953f051f68c1fc45306e61aec82fdc4 + languageName: node + linkType: hard + +"async@npm:^2.6.4": + version: 2.6.4 + resolution: "async@npm:2.6.4" + dependencies: + lodash: "npm:^4.17.14" + checksum: 10/df8e52817d74677ab50c438d618633b9450aff26deb274da6dfedb8014130909482acdc7753bce9b72e6171ce9a9f6a92566c4ced34c3cb3714d57421d58ad27 + languageName: node + linkType: hard + +"async@npm:^3.2.3, async@npm:^3.2.4": + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: 10/cb6e0561a3c01c4b56a799cc8bab6ea5fef45f069ab32500b6e19508db270ef2dffa55e5aed5865c5526e9907b1f8be61b27530823b411ffafb5e1538c86c368 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10/3ce727cbc78f69d6a4722517a58ee926c8c21083633b1d3fdf66fd688f6c127a53a592141bd4866f9b63240a86e9d8e974b13919450bd17fa33c2d22c4558ad8 + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 10/463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + languageName: node + linkType: hard + +"atlassian-openapi@npm:^1.0.8": + version: 1.0.20 + resolution: "atlassian-openapi@npm:1.0.20" + dependencies: + jsonpointer: "npm:^5.0.0" + urijs: "npm:^1.19.10" + checksum: 10/be8aa8ac78d3bdc8f8168780cda3b4ce425d346298a3c96f8a3441b03ac3705607aec7209412373df3bb0fa7a4b852c6a41675c3a935c1b410eb1adb5abfea3e + languageName: node + linkType: hard + +"atob@npm:^2.1.2": + version: 2.1.2 + resolution: "atob@npm:2.1.2" + bin: + atob: bin/atob.js + checksum: 10/0624406cc0295533b38b60ab2e3b028aa7b8225f37e0cde6be3bc5c13a8015c889b192e874fd7660671179cef055f2e258855f372b0e495bd4096cf0b4785c25 + languageName: node + linkType: hard + +"atomic-sleep@npm:^1.0.0": + version: 1.0.0 + resolution: "atomic-sleep@npm:1.0.0" + checksum: 10/3ab6d2cf46b31394b4607e935ec5c1c3c4f60f3e30f0913d35ea74b51b3585e84f590d09e58067f11762eec71c87d25314ce859030983dc0e4397eed21daa12e + languageName: node + linkType: hard + +"autolinker@npm:^3.11.0": + version: 3.16.2 + resolution: "autolinker@npm:3.16.2" + dependencies: + tslib: "npm:^2.3.0" + checksum: 10/b9352de5dbf1f9254d6e1b32b88b64203914f8d86433bb73e9c002dec889ef891bd5c7184707e08a510a9f4a353ab11d8bb95c8d367543511be58b778989b4aa + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab + languageName: node + linkType: hard + +"avsc@npm:^5.7.5, avsc@npm:^5.7.6": + version: 5.7.7 + resolution: "avsc@npm:5.7.7" + checksum: 10/d217af16981fb94c29554e61d0aad87b1bcea8b5fe6f714c8cba26af1402ae0ae6783635844029211842a84cd57d678a6d7f18ce560d3de01226f2c97a1c6b1d + languageName: node + linkType: hard + +"aws-sign2@npm:~0.7.0": + version: 0.7.0 + resolution: "aws-sign2@npm:0.7.0" + checksum: 10/2ac497d739f71be3264cf096a33ab256a1fea7fe80b87dc51ec29374505bd5a661279ef1c22989d68528ea61ed634021ca63b31cf1d3c2a3682ffc106f7d0e96 + languageName: node + linkType: hard + +"aws-ssl-profiles@npm:^1.1.1": + version: 1.1.2 + resolution: "aws-ssl-profiles@npm:1.1.2" + checksum: 10/af9e5c5e6e343e0f299106acaf03106a7458be69772d004f3e4cf0e3649bb41131b594126fcbc997ad89d73752d9e1d72886c72fcc8649ac5d590459d6b75827 + languageName: node + linkType: hard + +"aws4@npm:^1.8.0": + version: 1.13.2 + resolution: "aws4@npm:1.13.2" + checksum: 10/290b9f84facbad013747725bfd8b4c42d0b3b04b5620d8418f0219832ef95a7dc597a4af7b1589ae7fce18bacde96f40911c3cda36199dd04d9f8e01f72fa50a + languageName: node + linkType: hard + +"axe-core@npm:^4.10.0": + version: 4.10.2 + resolution: "axe-core@npm:4.10.2" + checksum: 10/a69423b2ff16c15922c4ea7cf9cc5112728a2817bbe0f2cc212248d648885ffd1ba554e3a341dfc289cd9e67fc0d06f333b5c6837c5c38ca6652507381216fc1 + languageName: node + linkType: hard + +"axios-cached-dns-resolve@npm:0.5.2": + version: 0.5.2 + resolution: "axios-cached-dns-resolve@npm:0.5.2" + dependencies: + babel-polyfill: "npm:^6.26.0" + json-stringify-safe: "npm:^5.0.1" + lodash: "npm:^4.17.15" + lru-cache: "npm:^5.1.1" + pino: "npm:^5.12.2" + pino-pretty: "npm:^2.6.0" + checksum: 10/3740fe4fe564e81b0d3e19c2a16f05d23075179106bbedbccf2c0d3f9cc9a6f6ec42716b882f701cb2e926c22ed65d326252a9d50868c9fe571e2ab3f728f8e6 + languageName: node + linkType: hard + +"axios@npm:1.7.9, axios@npm:^1.0.0, axios@npm:^1.6.0, axios@npm:^1.7.4": + version: 1.7.9 + resolution: "axios@npm:1.7.9" + dependencies: + follow-redirects: "npm:^1.15.6" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: 10/b7a5f660ea53ba9c2a745bf5ad77ad8bf4f1338e13ccc3f9f09f810267d6c638c03dac88b55dae8dc98b79c57d2d6835be651d58d2af97c174f43d289a9fd007 + languageName: node + linkType: hard + +"axobject-query@npm:^4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 10/e275dea9b673f71170d914f2d2a18be5d57d8d29717b629e7fedd907dcc2ebdc7a37803ff975874810bd423f222f299c020d28fde40a146f537448bf6bfecb6e + languageName: node + linkType: hard + +"b4a@npm:^1.6.4": + version: 1.6.7 + resolution: "b4a@npm:1.6.7" + checksum: 10/1ac056e3bce378d4d3e570e57319360a9d3125ab6916a1921b95bea33d9ee646698ebc75467561fd6fcc80ff697612124c89bb9b95e80db94c6dc23fcb977705 + languageName: node + linkType: hard + +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": "npm:^29.7.0" + "@types/babel__core": "npm:^7.1.14" + babel-plugin-istanbul: "npm:^6.1.1" + babel-preset-jest: "npm:^29.6.3" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + slash: "npm:^3.0.0" + peerDependencies: + "@babel/core": ^7.8.0 + checksum: 10/8a0953bd813b3a8926008f7351611055548869e9a53dd36d6e7e96679001f71e65fd7dbfe253265c3ba6a4e630dc7c845cf3e78b17d758ef1880313ce8fba258 + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-instrument: "npm:^5.0.4" + test-exclude: "npm:^6.0.0" + checksum: 10/ffd436bb2a77bbe1942a33245d770506ab2262d9c1b3c1f1da7f0592f78ee7445a95bc2efafe619dd9c1b6ee52c10033d6c7d29ddefe6f5383568e60f31dfe8d + languageName: node + linkType: hard + +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": "npm:^7.3.3" + "@babel/types": "npm:^7.3.3" + "@types/babel__core": "npm:^7.1.14" + "@types/babel__traverse": "npm:^7.0.6" + checksum: 10/9bfa86ec4170bd805ab8ca5001ae50d8afcb30554d236ba4a7ffc156c1a92452e220e4acbd98daefc12bf0216fccd092d0a2efed49e7e384ec59e0597a926d65 + languageName: node + linkType: hard + +"babel-plugin-macros@npm:^3.1.0": + version: 3.1.0 + resolution: "babel-plugin-macros@npm:3.1.0" + dependencies: + "@babel/runtime": "npm:^7.12.5" + cosmiconfig: "npm:^7.0.0" + resolve: "npm:^1.19.0" + checksum: 10/30be6ca45e9a124c58ca00af9a0753e5410ec0b79a737714fc4722bbbeb693e55d9258f05c437145ef4a867c2d1603e06a1c292d66c243ce1227458c8ea2ca8c + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.12 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.12" + dependencies: + "@babel/compat-data": "npm:^7.22.6" + "@babel/helper-define-polyfill-provider": "npm:^0.6.3" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/38b8cd69f0ba6a35f7f1cc08960f79fbc4572fe80e60aced719dab33a77c7872ee0faebc72da95852ae0d86df1aeaa54660bf309871db1934c5a4904f0744327 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.10.6": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + core-js-compat: "npm:^3.38.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/360ac9054a57a18c540059dc627ad5d84d15f79790cb3d84d19a02eec7188c67d08a07db789c3822d6f5df22d918e296d1f27c4055fec2e287d328f09ea8a78a + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.3 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.3" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.3" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/d12696e6b3f280eb78fac551619ca4389262db62c7352cd54bf679d830df8b35596eef2de77cf00db6648eada1c99d49c4f40636dbc9c335a1e5420cfef96750 + languageName: node + linkType: hard + +"babel-polyfill@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-polyfill@npm:6.26.0" + dependencies: + babel-runtime: "npm:^6.26.0" + core-js: "npm:^2.5.0" + regenerator-runtime: "npm:^0.10.5" + checksum: 10/2abfe4bf4af39c7b0c42af8ccce14897aefbde6547a227e36f4f12ba5795e8603d2964cc72ceb59086b5a69fafcb00b0deda5c1055e373c3bef76dcc517d6d0d + languageName: node + linkType: hard + +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.1.0 + resolution: "babel-preset-current-node-syntax@npm:1.1.0" + dependencies: + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/46331111ae72b7121172fd9e6a4a7830f651ad44bf26dbbf77b3c8a60a18009411a3eacb5e72274004290c110371230272109957d5224d155436b4794ead2f1b + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + languageName: node + linkType: hard + +"babel-runtime@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-runtime@npm:6.26.0" + dependencies: + core-js: "npm:^2.4.0" + regenerator-runtime: "npm:^0.11.0" + checksum: 10/2cdf0f083b9598a43cdb11cbf1e7060584079a9a2230f06aec997ba81e887ef17fdcb5ad813a484ee099e06d2de0cea832bdd3011c06325acb284284c754ee8f + languageName: node + linkType: hard + +"backend@workspace:packages/backend": + version: 0.0.0-use.local + resolution: "backend@workspace:packages/backend" + dependencies: + "@backstage-community/plugin-tech-insights-backend": "npm:^2.1.1" + "@backstage-community/plugin-tech-insights-backend-module-jsonfc": "npm:^0.3.1" + "@backstage-community/plugin-tech-insights-common": "npm:^0.4.0" + "@backstage-community/plugin-tech-insights-node": "npm:^2.2.0" + "@backstage/backend-defaults": "npm:^0.6.2" + "@backstage/backend-plugin-api": "npm:^1.1.1" + "@backstage/catalog-client": "npm:^1.9.1" + "@backstage/catalog-model": "npm:^1.7.3" + "@backstage/cli": "npm:^0.29.5" + "@backstage/config": "npm:^1.3.2" + "@backstage/plugin-app-backend": "npm:^0.4.4" + "@backstage/plugin-auth-backend": "npm:^0.24.2" + "@backstage/plugin-auth-backend-module-github-provider": "npm:^0.2.4" + "@backstage/plugin-auth-backend-module-guest-provider": "npm:^0.2.4" + "@backstage/plugin-auth-node": "npm:^0.5.6" + "@backstage/plugin-catalog-backend": "npm:^1.30.0" + "@backstage/plugin-permission-backend": "npm:^0.5.53" + "@backstage/plugin-permission-backend-module-allow-all-policy": "npm:^0.2.4" + "@backstage/plugin-permission-common": "npm:^0.8.4" + "@backstage/plugin-permission-node": "npm:^0.8.7" + "@backstage/plugin-proxy-backend": "npm:^0.5.10" + "@backstage/plugin-search-backend": "npm:^1.8.0" + "@backstage/plugin-search-backend-module-catalog": "npm:^0.3.0" + "@backstage/plugin-search-backend-module-techdocs": "npm:^0.3.5" + "@backstage/plugin-search-backend-node": "npm:^1.3.7" + "@backstage/plugin-techdocs-backend": "npm:^1.11.5" + "@types/dockerode": "npm:^3.3.0" + "@types/express": "npm:^4.17.6" + "@types/express-serve-static-core": "npm:^4.17.5" + "@types/luxon": "npm:^2.0.4" + app: "link:../app" + better-sqlite3: "npm:^9.0.0" + dockerode: "npm:^3.3.1" + node-gyp: "npm:^11.0.0" + pg: "npm:^8.11.3" + winston: "npm:^3.2.1" + languageName: unknown + linkType: soft + +"backo2@npm:^1.0.2": + version: 1.0.2 + resolution: "backo2@npm:1.0.2" + checksum: 10/fda8d0a0f4810068d23715f2f45153146d6ee8f62dd827ce1e0b6cc3c8328e84ad61e11399a83931705cef702fe7cbb457856bf99b9bd10c4ed57b0786252385 + languageName: node + linkType: hard + +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: 10/aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"bare-events@npm:^2.0.0, bare-events@npm:^2.2.0": + version: 2.5.4 + resolution: "bare-events@npm:2.5.4" + checksum: 10/135ef380b13f554ca2c6905bdbcfac8edae08fce85b7f953fa01f09a9f5b0da6a25e414111659bc9a6118216f0dd1f732016acd11ce91517f2afb26ebeb4b721 + languageName: node + linkType: hard + +"bare-fs@npm:^4.0.1": + version: 4.0.1 + resolution: "bare-fs@npm:4.0.1" + dependencies: + bare-events: "npm:^2.0.0" + bare-path: "npm:^3.0.0" + bare-stream: "npm:^2.0.0" + checksum: 10/70951cf7d7522f0b6780bdfaf7969226db85370fa107b1eee71c58272573463388b40203595a8826cd55ca34e6359ca4b1ee91fd5d0b8ea64ab0d1f9979de262 + languageName: node + linkType: hard + +"bare-os@npm:^3.0.1": + version: 3.4.0 + resolution: "bare-os@npm:3.4.0" + checksum: 10/bc74ee2ca764835fbf0bf3fd864e6f9330724e44be3a1a56060e8820a5f259a392011b5a169a52dec459fce4b18b22bc15380f8bc1640f316b0cc8faaa0405d4 + languageName: node + linkType: hard + +"bare-path@npm:^3.0.0": + version: 3.0.0 + resolution: "bare-path@npm:3.0.0" + dependencies: + bare-os: "npm:^3.0.1" + checksum: 10/712d90e9cd8c3263cc11b0e0d386d1531a452706d7840c081ee586b34b00d72544e65df7a40013d47c1b177277495225deeede65cb2984db88a979cb65aaa2ff + languageName: node + linkType: hard + +"bare-stream@npm:^2.0.0": + version: 2.6.4 + resolution: "bare-stream@npm:2.6.4" + dependencies: + streamx: "npm:^2.21.0" + peerDependencies: + bare-buffer: "*" + bare-events: "*" + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + checksum: 10/1666cb71d43eae0ca3783222f7be018a72f4323b676a952f2f657bcdab16cb04ea29dd5f25a80fb4b16d4a0a01eff117b6ea502055a9f5f1a00df85fec7f55be + languageName: node + linkType: hard + +"base64-arraybuffer@npm:^0.1.5": + version: 0.1.5 + resolution: "base64-arraybuffer@npm:0.1.5" + checksum: 10/fea6fb059b5f043c0c1d291591bf48a5901ddb0b193800d39ab30afc2809ecadeecfaec6b3089c50a8956eeedec6fe6d8cbf6c0f90e3f484e74f0c9a9bb872ea + languageName: node + linkType: hard + +"base64-arraybuffer@npm:^1.0.2": + version: 1.0.2 + resolution: "base64-arraybuffer@npm:1.0.2" + checksum: 10/15e6400d2d028bf18be4ed97702b11418f8f8779fb8c743251c863b726638d52f69571d4cc1843224da7838abef0949c670bde46936663c45ad078e89fee5c62 + languageName: node + linkType: hard + +"base64-js@npm:^1.0.2, base64-js@npm:^1.3.0, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"base64-stream@npm:^1.0.0": + version: 1.0.0 + resolution: "base64-stream@npm:1.0.0" + checksum: 10/45ee0ffaa30350e21f7bd58eedeeeb4567297e2537eac71000e00cc38be8578bdaa7fda59c30302dc9ed58c18b235e440207425abb81bd89de9a3ef79348921b + languageName: node + linkType: hard + +"base64url@npm:3.x.x": + version: 3.0.1 + resolution: "base64url@npm:3.0.1" + checksum: 10/a77b2a3a526b3343e25be424de3ae0aa937d78f6af7c813ef9020ef98001c0f4e2323afcd7d8b2d2978996bf8c42445c3e9f60c218c622593e5fdfd54a3d6e18 + languageName: node + linkType: hard + +"basic-auth@npm:~2.0.1": + version: 2.0.1 + resolution: "basic-auth@npm:2.0.1" + dependencies: + safe-buffer: "npm:5.1.2" + checksum: 10/3419b805d5dfc518f3a05dcf42aa53aa9ce820e50b6df5097f9e186322e1bc733c36722b624802cd37e791035aa73b828ed814d8362333d42d7f5cd04d7a5e48 + languageName: node + linkType: hard + +"basic-ftp@npm:^5.0.2": + version: 5.0.5 + resolution: "basic-ftp@npm:5.0.5" + checksum: 10/3dc56b2092b10d67e84621f5b9bbb0430469499178e857869194184d46fbdd367a9aa9fad660084388744b074b5f540e6ac8c22c0826ebba4fcc86a9d1c324e2 + languageName: node + linkType: hard + +"batch@npm:0.6.1": + version: 0.6.1 + resolution: "batch@npm:0.6.1" + checksum: 10/61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f + languageName: node + linkType: hard + +"bcrypt-pbkdf@npm:^1.0.0, bcrypt-pbkdf@npm:^1.0.2": + version: 1.0.2 + resolution: "bcrypt-pbkdf@npm:1.0.2" + dependencies: + tweetnacl: "npm:^0.14.3" + checksum: 10/13a4cde058250dbf1fa77a4f1b9a07d32ae2e3b9e28e88a0c7a1827835bc3482f3e478c4a0cfd4da6ff0c46dae07da1061123a995372b32cc563d9975f975404 + languageName: node + linkType: hard + +"before-after-hook@npm:^2.2.0": + version: 2.2.3 + resolution: "before-after-hook@npm:2.2.3" + checksum: 10/e676f769dbc4abcf4b3317db2fd2badb4a92c0710e0a7da12cf14b59c3482d4febf835ad7de7874499060fd4e13adf0191628e504728b3c5bb4ec7a878c09940 + languageName: node + linkType: hard + +"better-path-resolve@npm:1.0.0": + version: 1.0.0 + resolution: "better-path-resolve@npm:1.0.0" + dependencies: + is-windows: "npm:^1.0.0" + checksum: 10/5392dbe04e7fe68b944eb37961d9dfa147aaac3ee9ee3f6e13d42e2c9fbe949e68d16e896c14ee9016fa5f8e6e53ec7fd8b5f01b50a32067a7d94ac9cfb9a050 + languageName: node + linkType: hard + +"better-sqlite3@npm:^11.0.0": + version: 11.8.1 + resolution: "better-sqlite3@npm:11.8.1" + dependencies: + bindings: "npm:^1.5.0" + node-gyp: "npm:latest" + prebuild-install: "npm:^7.1.1" + checksum: 10/d7f40fe0d00d29191eccc69b06b3c7990bcc1f3e8ca44118fadcc24f83c85c52c0dd5ce30c07b24fcb5580a3121d0fbf6dd24e9b322de65dbcb821a502b3609b + languageName: node + linkType: hard + +"better-sqlite3@npm:^9.0.0": + version: 9.6.0 + resolution: "better-sqlite3@npm:9.6.0" + dependencies: + bindings: "npm:^1.5.0" + node-gyp: "npm:latest" + prebuild-install: "npm:^7.1.1" + checksum: 10/06b3d95221071a06c2e22a9746d9b7049c0bce7962e5e3290ccf088fffbf4d4d52868f0d98b8ae2565fe33b1adab89823145f23c6f6eb63ecc4fc1b883f9082c + languageName: node + linkType: hard + +"bfj@npm:^8.0.0": + version: 8.0.0 + resolution: "bfj@npm:8.0.0" + dependencies: + bluebird: "npm:^3.7.2" + check-types: "npm:^11.2.3" + hoopy: "npm:^0.1.4" + jsonpath: "npm:^1.1.1" + tryer: "npm:^1.0.1" + checksum: 10/3e79233e2ba30681a494470d664c654351d2f4fcba7c2972f7e8b6248e374a77a164141164ea32d23f805f0a235aa87dbf480ad0a5939c36f5efbf922de8beb4 + languageName: node + linkType: hard + +"big.js@npm:^5.2.2": + version: 5.2.2 + resolution: "big.js@npm:5.2.2" + checksum: 10/c04416aeb084f4aa1c5857722439c327cc0ada9bd99ab80b650e3f30e2e4f1b92a04527ed1e7df8ffcd7c0ea311745a04af12d53e2f091bf09a06f1292003827 + languageName: node + linkType: hard + +"bignumber.js@npm:^9.0.0": + version: 9.1.2 + resolution: "bignumber.js@npm:9.1.2" + checksum: 10/d89b8800a987225d2c00dcbf8a69dc08e92aa0880157c851c287b307d31ceb2fc2acb0c62c3e3a3d42b6c5fcae9b004035f13eb4386e56d529d7edac18d5c9d8 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + languageName: node + linkType: hard + +"bindings@npm:^1.5.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: "npm:1.0.0" + checksum: 10/593d5ae975ffba15fbbb4788fe5abd1e125afbab849ab967ab43691d27d6483751805d98cb92f7ac24a2439a8a8678cd0131c535d5d63de84e383b0ce2786133 + languageName: node + linkType: hard + +"bintrees@npm:1.0.2": + version: 1.0.2 + resolution: "bintrees@npm:1.0.2" + checksum: 10/071896cea5ea5413316c8436e95799444c208630d5c539edd8a7089fc272fc5d3634aa4a2e4847b28350dda1796162e14a34a0eda53108cc5b3c2ff6a036c1fa + languageName: node + linkType: hard + +"bl@npm:^4.0.3, bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: "npm:^5.5.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.4.0" + checksum: 10/b7904e66ed0bdfc813c06ea6c3e35eafecb104369dbf5356d0f416af90c1546de3b74e5b63506f0629acf5e16a6f87c3798f16233dcff086e9129383aa02ab55 + languageName: node + linkType: hard + +"bluebird@npm:^3.7.2": + version: 3.7.2 + resolution: "bluebird@npm:3.7.2" + checksum: 10/007c7bad22c5d799c8dd49c85b47d012a1fe3045be57447721e6afbd1d5be43237af1db62e26cb9b0d9ba812d2e4ca3bac82f6d7e016b6b88de06ee25ceb96e7 + languageName: node + linkType: hard + +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": + version: 4.12.1 + resolution: "bn.js@npm:4.12.1" + checksum: 10/07f22df8880b423c4890648e95791319898b96712b6ebc5d6b1082b34074f09dedb8601e717d67f905ce29bb1a5313f9a2b1a2015a679e42c9eed94392c0d379 + languageName: node + linkType: hard + +"bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 10/7a7e8764d7a6e9708b8b9841b2b3d6019cc154d2fc23716d0efecfe1e16921b7533c6f7361fb05471eab47986c4aa310c270f88e3507172104632ac8df2cfd84 + languageName: node + linkType: hard + +"body-parser@npm:1.20.3, body-parser@npm:^1.15.2": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" + dependencies: + bytes: "npm:3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + on-finished: "npm:2.4.1" + qs: "npm:6.13.0" + raw-body: "npm:2.5.2" + type-is: "npm:~1.6.18" + unpipe: "npm:1.0.0" + checksum: 10/8723e3d7a672eb50854327453bed85ac48d045f4958e81e7d470c56bf111f835b97e5b73ae9f6393d0011cc9e252771f46fd281bbabc57d33d3986edf1e6aeca + languageName: node + linkType: hard + +"bonjour-service@npm:^1.2.1": + version: 1.3.0 + resolution: "bonjour-service@npm:1.3.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + multicast-dns: "npm:^7.2.5" + checksum: 10/63d516d88f15fa4b89e247e6ff7d81c21a3ef5ed035b0b043c2b38e0c839f54f4ce58fbf9b7668027bf538ac86de366939dbb55cca63930f74eeea1e278c9585 + languageName: node + linkType: hard + +"boolbase@npm:^1.0.0": + version: 1.0.0 + resolution: "boolbase@npm:1.0.0" + checksum: 10/3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0 + languageName: node + linkType: hard + +"boolean@npm:^3.0.1": + version: 3.2.0 + resolution: "boolean@npm:3.2.0" + checksum: 10/d28a49dcaeef7fe10cf9fdf488214d3859f07350be8f5caa0c73ec621baf20650e5da6523262e5ce9221909519d4261c16d8430a5bf307fee9ef0e170cdb29f3 + languageName: node + linkType: hard + +"bowser@npm:^2.11.0": + version: 2.11.0 + resolution: "bowser@npm:2.11.0" + checksum: 10/ef46500eafe35072455e7c3ae771244e97827e0626686a9a3601c436d16eb272dad7ccbd49e2130b599b617ca9daa67027de827ffc4c220e02f63c84b69a8751 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10/faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10/a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 + languageName: node + linkType: hard + +"brorand@npm:^1.0.1, brorand@npm:^1.1.0": + version: 1.1.0 + resolution: "brorand@npm:1.1.0" + checksum: 10/8a05c9f3c4b46572dec6ef71012b1946db6cae8c7bb60ccd4b7dd5a84655db49fe043ecc6272e7ef1f69dc53d6730b9e2a3a03a8310509a3d797a618cbee52be + languageName: node + linkType: hard + +"brotli-wasm@npm:^3.0.0": + version: 3.0.1 + resolution: "brotli-wasm@npm:3.0.1" + checksum: 10/8d400459eea945cd66008ced3298efb24f65490d9cfd4953bfed088f4212aae0ff52bb3bd53970728b2cb29953ba25de02a2862d76f4fe74ba37befe265c5402 + languageName: node + linkType: hard + +"browserify-aes@npm:^1.0.4, browserify-aes@npm:^1.2.0": + version: 1.2.0 + resolution: "browserify-aes@npm:1.2.0" + dependencies: + buffer-xor: "npm:^1.0.3" + cipher-base: "npm:^1.0.0" + create-hash: "npm:^1.1.0" + evp_bytestokey: "npm:^1.0.3" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10/2813058f74e083a00450b11ea9d5d1f072de7bf0133f5d122d4ff7b849bece56d52b9c51ad0db0fad21c0bc4e8272fd5196114bbe7b94a9b7feb0f9fbb33a3bf + languageName: node + linkType: hard + +"browserify-cipher@npm:^1.0.1": + version: 1.0.1 + resolution: "browserify-cipher@npm:1.0.1" + dependencies: + browserify-aes: "npm:^1.0.4" + browserify-des: "npm:^1.0.0" + evp_bytestokey: "npm:^1.0.0" + checksum: 10/2d8500acf1ee535e6bebe808f7a20e4c3a9e2ed1a6885fff1facbfd201ac013ef030422bec65ca9ece8ffe82b03ca580421463f9c45af6c8415fd629f4118c13 + languageName: node + linkType: hard + +"browserify-des@npm:^1.0.0": + version: 1.0.2 + resolution: "browserify-des@npm:1.0.2" + dependencies: + cipher-base: "npm:^1.0.1" + des.js: "npm:^1.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10/2fd9018e598b1b25e002abaf656d46d8e0f2ee2666ff18852d37e5c3d0e47701d6824256b060fac395420d56a0c49c2b0d40a194e6fbd837bfdd893e7eb5ade4 + languageName: node + linkType: hard + +"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": + version: 4.1.1 + resolution: "browserify-rsa@npm:4.1.1" + dependencies: + bn.js: "npm:^5.2.1" + randombytes: "npm:^2.1.0" + safe-buffer: "npm:^5.2.1" + checksum: 10/62ae0da60e49e8d5dd3b0922119b6edee94ebfa3a184211c804024b3a75f9dab31a1d124cc0545ed050e273f0325c2fd7aba6a51e44ba6f726fceae3210ddade + languageName: node + linkType: hard + +"browserify-sign@npm:^4.2.3": + version: 4.2.3 + resolution: "browserify-sign@npm:4.2.3" + dependencies: + bn.js: "npm:^5.2.1" + browserify-rsa: "npm:^4.1.0" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + elliptic: "npm:^6.5.5" + hash-base: "npm:~3.0" + inherits: "npm:^2.0.4" + parse-asn1: "npm:^5.1.7" + readable-stream: "npm:^2.3.8" + safe-buffer: "npm:^5.2.1" + checksum: 10/403a8061d229ae31266670345b4a7c00051266761d2c9bbeb68b1a9bcb05f68143b16110cf23a171a5d6716396a1f41296282b3e73eeec0a1871c77f0ff4ee6b + languageName: node + linkType: hard + +"browserify-zlib@npm:^0.2.0": + version: 0.2.0 + resolution: "browserify-zlib@npm:0.2.0" + dependencies: + pako: "npm:~1.0.5" + checksum: 10/852e72effdc00bf8acc6d167d835179eda9e5bd13721ae5d0a2d132dc542f33e73bead2959eb43a2f181a9c495bc2ae2bdb4ec37c4e37ff61a0277741cbaaa7a + languageName: node + linkType: hard + +"browserslist@npm:^4.0.0, browserslist@npm:^4.18.1, browserslist@npm:^4.21.4, browserslist@npm:^4.24.0, browserslist@npm:^4.24.3": + version: 4.24.4 + resolution: "browserslist@npm:4.24.4" + dependencies: + caniuse-lite: "npm:^1.0.30001688" + electron-to-chromium: "npm:^1.5.73" + node-releases: "npm:^2.0.19" + update-browserslist-db: "npm:^1.1.1" + bin: + browserslist: cli.js + checksum: 10/11fda105e803d891311a21a1f962d83599319165faf471c2d70e045dff82a12128f5b50b1fcba665a2352ad66147aaa248a9d2355a80aadc3f53375eb3de2e48 + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: "npm:^0.4.0" + checksum: 10/edba1b65bae682450be4117b695997972bd9a3c4dfee029cab5bcb72ae5393a79a8f909b8bc77957eb0deec1c7168670f18f4d5c556f46cdd3bca5f3b3a8d020 + languageName: node + linkType: hard + +"btoa-lite@npm:^1.0.0": + version: 1.0.0 + resolution: "btoa-lite@npm:1.0.0" + checksum: 10/c2d61993b801f8e35a96f20692a45459c753d9baa29d86d1343e714f8d6bbe7069f1a20a5ae868488f3fb137d5bd0c560f6fbbc90b5a71050919d2d2c97c0475 + languageName: node + linkType: hard + +"btoa@npm:^1.2.1": + version: 1.2.1 + resolution: "btoa@npm:1.2.1" + bin: + btoa: bin/btoa.js + checksum: 10/29f2ca93837e10427184626bdfd5d00065dff28b604b822aa9849297dac8c8d6ad385cc96eed812ebf153d80c24a4556252afdbb97c7a712938baeaad7547705 + languageName: node + linkType: hard + +"buffer-crc32@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-crc32@npm:1.0.0" + checksum: 10/ef3b7c07622435085c04300c9a51e850ec34a27b2445f758eef69b859c7827848c2282f3840ca6c1eef3829145a1580ce540cab03ccf4433827a2b95d3b09ca7 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10/06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c + languageName: node + linkType: hard + +"buffer-equal-constant-time@npm:1.0.1": + version: 1.0.1 + resolution: "buffer-equal-constant-time@npm:1.0.1" + checksum: 10/80bb945f5d782a56f374b292770901065bad21420e34936ecbe949e57724b4a13874f735850dd1cc61f078773c4fb5493a41391e7bda40d1fa388d6bd80daaab + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"buffer-xor@npm:^1.0.3": + version: 1.0.3 + resolution: "buffer-xor@npm:1.0.3" + checksum: 10/4a63d48b5117c7eda896d81cd3582d9707329b07c97a14b0ece2edc6e64220ea7ea17c94b295e8c2cb7b9f8291e2b079f9096be8ac14be238420a43e06ec66e2 + languageName: node + linkType: hard + +"buffer@npm:5.6.0": + version: 5.6.0 + resolution: "buffer@npm:5.6.0" + dependencies: + base64-js: "npm:^1.0.2" + ieee754: "npm:^1.1.4" + checksum: 10/7874745b06533184c467d79e6cd35df1a528a4d587eb65cc8f0359200ff16837a3047bab88084c9eb01628665f554f99381682d90d4b6aa3fe5b1c16effa61ad + languageName: node + linkType: hard + +"buffer@npm:^4.3.0": + version: 4.9.2 + resolution: "buffer@npm:4.9.2" + dependencies: + base64-js: "npm:^1.0.2" + ieee754: "npm:^1.1.4" + isarray: "npm:^1.0.0" + checksum: 10/4852a455e167bc8ca580c3c585176bbe0931c9929aeb68f3e0b49adadcb4e513fd0922a43efdf67ddb2e8785bbe8254ae17f4b69038dd06329ee9e3283c8508f + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10/997434d3c6e3b39e0be479a80288875f71cd1c07d75a3855e6f08ef848a3c966023f79534e22e415ff3a5112708ce06127277ab20e527146d55c84566405c7c6 + languageName: node + linkType: hard + +"buffer@npm:^6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10/b6bc68237ebf29bdacae48ce60e5e28fc53ae886301f2ad9496618efac49427ed79096750033e7eab1897a4f26ae374ace49106a5758f38fb70c78c9fda2c3b1 + languageName: node + linkType: hard + +"buildcheck@npm:~0.0.6": + version: 0.0.6 + resolution: "buildcheck@npm:0.0.6" + checksum: 10/194ee8d3b0926fd6f3e799732130ad7ab194882c56900b8670ad43c81326f64871f49b7d9f1e9baad91ca3070eb4e8b678797fe9ae78cf87dde86d8916eb25d2 + languageName: node + linkType: hard + +"builtin-status-codes@npm:^3.0.0": + version: 3.0.0 + resolution: "builtin-status-codes@npm:3.0.0" + checksum: 10/1119429cf4b0d57bf76b248ad6f529167d343156ebbcc4d4e4ad600484f6bc63002595cbb61b67ad03ce55cd1d3c4711c03bbf198bf24653b8392420482f3773 + languageName: node + linkType: hard + +"bundle-name@npm:^4.1.0": + version: 4.1.0 + resolution: "bundle-name@npm:4.1.0" + dependencies: + run-applescript: "npm:^7.0.0" + checksum: 10/1d966c8d2dbf4d9d394e53b724ac756c2414c45c01340b37743621f59cc565a435024b394ddcb62b9b335d1c9a31f4640eb648c3fec7f97ee74dc0694c9beb6c + languageName: node + linkType: hard + +"busboy@npm:^1.0.0, busboy@npm:^1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" + dependencies: + streamsearch: "npm:^1.1.0" + checksum: 10/bee10fa10ea58e7e3e7489ffe4bda6eacd540a17de9f9cd21cc37e297b2dd9fe52b2715a5841afaec82900750d810d01d7edb4b2d456427f449b92b417579763 + languageName: node + linkType: hard + +"byline@npm:^5.0.0": + version: 5.0.0 + resolution: "byline@npm:5.0.0" + checksum: 10/737ca83e8eda2976728dae62e68bc733aea095fab08db4c6f12d3cee3cf45b6f97dce45d1f6b6ff9c2c947736d10074985b4425b31ce04afa1985a4ef3d334a7 + languageName: node + linkType: hard + +"bytes@npm:3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 + languageName: node + linkType: hard + +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" + dependencies: + "@npmcli/fs": "npm:^4.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^12.0.0" + tar: "npm:^7.4.3" + unique-filename: "npm:^4.0.0" + checksum: 10/ea026b27b13656330c2bbaa462a88181dcaa0435c1c2e705db89b31d9bdf7126049d6d0445ba746dca21454a0cfdf1d6f47fd39d34c8c8435296b30bc5738a13 + languageName: node + linkType: hard + +"cache-content-type@npm:^1.0.0": + version: 1.0.1 + resolution: "cache-content-type@npm:1.0.1" + dependencies: + mime-types: "npm:^2.1.18" + ylru: "npm:^1.2.0" + checksum: 10/18db4d59452669ccbfd7146a1510a37eb28e9eccf18ca7a4eb603dff2edc5cccdca7498fc3042a2978f76f11151fba486eb9eb69d9afa3fb124957870aef4fd3 + languageName: node + linkType: hard + +"cacheable-lookup@npm:^6.0.0": + version: 6.1.0 + resolution: "cacheable-lookup@npm:6.1.0" + checksum: 10/9b37d31fba27ff244254294814dfdad69e3d257cb283932f58823141de5043a46d35339fa81ec40fdbb5d76d1578324258995f41a4fd37ed05d4e9b54823802e + languageName: node + linkType: hard + +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "call-bind-apply-helpers@npm:1.0.1" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10/6e30c621170e45f1fd6735e84d02ee8e02a3ab95cb109499d5308cbe5d1e84d0cd0e10b48cc43c76aa61450ae1b03a7f89c37c10fc0de8d4998b42aab0f268cc + languageName: node + linkType: hard + +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.2" + checksum: 10/659b03c79bbfccf0cde3a79e7d52570724d7290209823e1ca5088f94b52192dc1836b82a324d0144612f816abb2f1734447438e38d9dafe0b3f82c2a1b9e3bce + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3": + version: 1.0.3 + resolution: "call-bound@npm:1.0.3" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + get-intrinsic: "npm:^1.2.6" + checksum: 10/c39a8245f68cdb7c1f5eea7b3b1e3a7a90084ea6efebb78ebc454d698ade2c2bb42ec033abc35f1e596d62496b6100e9f4cdfad1956476c510130e2cda03266d + languageName: node + linkType: hard + +"call-me-maybe@npm:^1.0.2": + version: 1.0.2 + resolution: "call-me-maybe@npm:1.0.2" + checksum: 10/3d375b6f810a82c751157b199daba60452876186c19ac653e81bfc5fc10d1e2ba7aedb8622367c3a8aca6879f0e6a29435a1193b35edb8f7fd8267a67ea32373 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10/072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: "npm:^3.1.2" + tslib: "npm:^2.0.3" + checksum: 10/bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + languageName: node + linkType: hard + +"camelcase@npm:5.0.0": + version: 5.0.0 + resolution: "camelcase@npm:5.0.0" + checksum: 10/b8bdde22345e5a6ef60483bb9e3ae2af34c75b0447c7163943c86b6daea075e6222b5bd0589d2b551bf90315bc44712f403f653795fb702a8bfbbdef961b9cb8 + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: 10/e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"caniuse-api@npm:^3.0.0": + version: 3.0.0 + resolution: "caniuse-api@npm:3.0.0" + dependencies: + browserslist: "npm:^4.0.0" + caniuse-lite: "npm:^1.0.0" + lodash.memoize: "npm:^4.1.2" + lodash.uniq: "npm:^4.5.0" + checksum: 10/db2a229383b20d0529b6b589dde99d7b6cb56ba371366f58cbbfa2929c9f42c01f873e2b6ef641d4eda9f0b4118de77dbb2805814670bdad4234bf08e720b0b4 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001688": + version: 1.0.30001695 + resolution: "caniuse-lite@npm:1.0.30001695" + checksum: 10/8107c5e89b86c7a2fd506b93c658ff945c98c6518260c3b28af9f02bd83bf83939696241f0b413545c5b9895c86bcae64c9370388576440e74e9b848f04170d3 + languageName: node + linkType: hard + +"canvg@npm:^3.0.6": + version: 3.0.10 + resolution: "canvg@npm:3.0.10" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@types/raf": "npm:^3.4.0" + core-js: "npm:^3.8.3" + raf: "npm:^3.4.1" + regenerator-runtime: "npm:^0.13.7" + rgbcolor: "npm:^1.0.1" + stackblur-canvas: "npm:^2.0.0" + svg-pathdata: "npm:^6.0.3" + checksum: 10/b8b418483df010e38c6a63597425d5826206e8295467ca6db24a42dacc56b5960dfd484d16fdf3e144fff54777a91e551be227588b76cc9ca71fb0efd3afde0e + languageName: node + linkType: hard + +"caseless@npm:~0.12.0": + version: 0.12.0 + resolution: "caseless@npm:0.12.0" + checksum: 10/ea1efdf430975fdbac3505cdd21007f7ac5aa29b6d4d1c091f965853cd1bf87e4b08ea07b31a6d688b038872b7cdf0589d9262d59c699d199585daad052aeb20 + languageName: node + linkType: hard + +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 10/48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 + languageName: node + linkType: hard + +"chalk@npm:2.4.2, chalk@npm:^2.3.2, chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 + languageName: node + linkType: hard + +"chalk@npm:3.0.0, chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10/37f90b31fd655fb49c2bd8e2a68aebefddd64522655d001ef417e6f955def0ed9110a867ffc878a533f2dafea5f2032433a37c8a7614969baa7f8a1cd424ddfc + languageName: node + linkType: hard + +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10/cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139 + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: 10/1ec5c2906adb9f84e7f6732a40baef05d7c85401b82ffcbc44b85fbd0f7a2b0c2a96f2eb9cf55cae3235dc12d4023003b88f09bcae8be9ae894f52ed746f4d48 + languageName: node + linkType: hard + +"character-entities-legacy@npm:^1.0.0": + version: 1.1.4 + resolution: "character-entities-legacy@npm:1.1.4" + checksum: 10/fe03a82c154414da3a0c8ab3188e4237ec68006cbcd681cf23c7cfb9502a0e76cd30ab69a2e50857ca10d984d57de3b307680fff5328ccd427f400e559c3a811 + languageName: node + linkType: hard + +"character-entities@npm:^1.0.0": + version: 1.2.4 + resolution: "character-entities@npm:1.2.4" + checksum: 10/7c11641c48d1891aaba7bc800d4500804d91a28f46d64e88c001c38e6ab2e7eae28873a77ae16e6c55d24cac35ddfbb15efe56c3012b86684a3c4e95c70216b7 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: 10/c8dd1f4bf1a92fccf7d2fad9673660a88b37854557d30f6076c32fedfb92d1420208298829ff1d3b6b4fa1c7012e8326c45e7f5c3ed1e9a09ec177593c521b2f + languageName: node + linkType: hard + +"character-reference-invalid@npm:^1.0.0": + version: 1.1.4 + resolution: "character-reference-invalid@npm:1.1.4" + checksum: 10/812ebc5e6e8d08fd2fa5245ae78c1e1a4bea4692e93749d256a135c4a442daf931ca18e067cc61ff4a58a419eae52677126a0bc4f05a511290427d60d3057805 + languageName: node + linkType: hard + +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 10/b0ec668fba5eeec575ed2559a0917ba41a6481f49063c8445400e476754e0957ee09e44dc032310f526182b8f1bf25e9d4ed371f74050af7be1383e06bc44952 + languageName: node + linkType: hard + +"check-types@npm:^11.2.3": + version: 11.2.3 + resolution: "check-types@npm:11.2.3" + checksum: 10/557e119fa018d7de4e873ada0a6c8917a0f6e0955dc19293396405f5292cfcfe190457557f4cc422e6845d715ef6bbb1d0ab9198ff6735dd96ac50e3ef1e2424 + languageName: node + linkType: hard + +"chokidar@npm:^3.3.1, chokidar@npm:^3.4.2, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df + languageName: node + linkType: hard + +"chownr@npm:^1.1.1": + version: 1.1.4 + resolution: "chownr@npm:1.1.4" + checksum: 10/115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10/c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10/b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c + languageName: node + linkType: hard + +"chrome-trace-event@npm:^1.0.2": + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: 10/1762bed739774903bf5915fe3045c3120fc3c7f7d929d88e566447ea38944937a6370ccb687278318c43c24f837ad22dac780bed67c066336815557b8cf558c6 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0, ci-info@npm:^3.7.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397 + languageName: node + linkType: hard + +"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": + version: 1.0.6 + resolution: "cipher-base@npm:1.0.6" + dependencies: + inherits: "npm:^2.0.4" + safe-buffer: "npm:^5.2.1" + checksum: 10/faf232deff2351448ea23d265eb8723e035ebbb454baca45fb60c1bd71056ede8b153bef1b221e067f13e6b9288ebb83bb6ae2d5dd4cec285411f9fc22ec1f5b + languageName: node + linkType: hard + +"cjs-module-lexer@npm:^1.0.0": + version: 1.4.1 + resolution: "cjs-module-lexer@npm:1.4.1" + checksum: 10/6e830a1e00a34d416949bbc1924f3e8da65cef4a6a09e2b7fa35722e2d1c34bf378d3baca987b698d1cbc3eb83e44b044039b4e82755c96f30e0f03d1d227637 + languageName: node + linkType: hard + +"classnames@npm:^2.2.6, classnames@npm:^2.3.1, classnames@npm:^2.5.1": + version: 2.5.1 + resolution: "classnames@npm:2.5.1" + checksum: 10/58eb394e8817021b153bb6e7d782cfb667e4ab390cb2e9dac2fc7c6b979d1cc2b2a733093955fc5c94aa79ef5c8c89f11ab77780894509be6afbb91dddd79d15 + languageName: node + linkType: hard + +"clean-css@npm:^5.2.2": + version: 5.3.3 + resolution: "clean-css@npm:5.3.3" + dependencies: + source-map: "npm:~0.6.0" + checksum: 10/2db1ae37b384c8ff0a06a12bfa80f56cc02b4abcaaf340db98c0ae88a61dd67c856653fd8135ace6eb0ec13aeab3089c425d2e4238d2a2ad6b6917e6ccc74729 + languageName: node + linkType: hard + +"clean-git-ref@npm:^2.0.1": + version: 2.0.1 + resolution: "clean-git-ref@npm:2.0.1" + checksum: 10/b25f585ed47040ea5d699d40a2bb84d1f35afd651f3fcc05fb077224358ffd3d7509fc9edbfc4570f1fc732c987e03ac7d8ec31524ac503ac35c53cb1f5e3bf9 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10/2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: "npm:^3.1.0" + checksum: 10/2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-spinners@npm:^2.5.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794 + languageName: node + linkType: hard + +"cli-width@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-width@npm:3.0.0" + checksum: 10/8730848b04fb189666ab037a35888d191c8f05b630b1d770b0b0e4c920b47bb5cc14bddf6b8ffe5bfc66cee97c8211d4d18e756c1ffcc75d7dbe7e1186cd7826 + languageName: node + linkType: hard + +"client-only@npm:^0.0.1": + version: 0.0.1 + resolution: "client-only@npm:0.0.1" + checksum: 10/0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 + languageName: node + linkType: hard + +"cliui@npm:7.0.4, cliui@npm:^7.0.2": + version: 7.0.4 + resolution: "cliui@npm:7.0.4" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.0" + wrap-ansi: "npm:^7.0.0" + checksum: 10/db858c49af9d59a32d603987e6fddaca2ce716cd4602ba5a2bb3a5af1351eebe82aba8dff3ef3e1b331f7fa9d40ca66e67bdf8e7c327ce0ea959747ead65c0ef + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^7.0.0" + checksum: 10/eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950 + languageName: node + linkType: hard + +"clone@npm:2.x, clone@npm:^2.1.2": + version: 2.1.2 + resolution: "clone@npm:2.1.2" + checksum: 10/d9c79efba655f0bf601ab299c57eb54cbaa9860fb011aee9d89ed5ac0d12df1660ab7642fddaabb9a26b7eff0e117d4520512cb70798319ff5d30a111b5310c2 + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: 10/d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + +"clsx@npm:^1.0.2, clsx@npm:^1.0.4, clsx@npm:^1.1.1, clsx@npm:^1.2.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 10/5ded6f61f15f1fa0350e691ccec43a28b12fb8e64c8e94715f2a937bc3722d4c3ed41d6e945c971fc4dcc2a7213a43323beaf2e1c28654af63ba70c9968a8643 + languageName: node + linkType: hard + +"clsx@npm:^2.1.0, clsx@npm:^2.1.1": + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: 10/cdfb57fa6c7649bbff98d9028c2f0de2f91c86f551179541cf784b1cfdc1562dcb951955f46d54d930a3879931a980e32a46b598acaea274728dbe068deca919 + languageName: node + linkType: hard + +"cluster-key-slot@npm:1.1.2, cluster-key-slot@npm:^1.1.0, cluster-key-slot@npm:^1.1.2": + version: 1.1.2 + resolution: "cluster-key-slot@npm:1.1.2" + checksum: 10/516ed8b5e1a14d9c3a9c96c72ef6de2d70dfcdbaa0ec3a90bc7b9216c5457e39c09a5775750c272369070308542e671146120153062ab5f2f481bed5de2c925f + languageName: node + linkType: hard + +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 10/a5d9f37091c70398a269e625cedff5622f200ed0aa0cff22ee7b55ed74a123834b58711776eb0f1dc58eb6ebbc1185aa7567b57bd5979a948c6e4f85073e2c05 + languageName: node + linkType: hard + +"code-block-writer@npm:^13.0.3": + version: 13.0.3 + resolution: "code-block-writer@npm:13.0.3" + checksum: 10/771546224f38610eecee0598e83c9e0f86dcd600ea316dbf27c2cfebaab4fed51b042325aa460b8e0f131fac5c1de208f6610a1ddbffe4b22e76f9b5256707cb + languageName: node + linkType: hard + +"codemirror-graphql@npm:^2.0.11, codemirror-graphql@npm:^2.0.13": + version: 2.2.0 + resolution: "codemirror-graphql@npm:2.2.0" + dependencies: + "@types/codemirror": "npm:^0.0.90" + graphql-language-service: "npm:5.3.0" + peerDependencies: + "@codemirror/language": 6.0.0 + codemirror: ^5.65.3 + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 + checksum: 10/050ab5205aded4b34f654622ea9f2f413680d76103683958b0958e2e92eb7b7c62afb25d018cf0c1c3ef88c7dd10561003e0b732609cfafa911c4d9b56b919f1 + languageName: node + linkType: hard + +"codemirror@npm:^5.65.3": + version: 5.65.18 + resolution: "codemirror@npm:5.65.18" + checksum: 10/223a3b3a5b50f5dfa9bb26318a67935c6e38320075a10189156695e88690ac376f31caecb6cf80b3ee4b8ca6f5542a0ba040c0be2e6d2b213fe13c01160ec1f7 + languageName: node + linkType: hard + +"codemirror@npm:^6.0.0": + version: 6.0.1 + resolution: "codemirror@npm:6.0.1" + dependencies: + "@codemirror/autocomplete": "npm:^6.0.0" + "@codemirror/commands": "npm:^6.0.0" + "@codemirror/language": "npm:^6.0.0" + "@codemirror/lint": "npm:^6.0.0" + "@codemirror/search": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + checksum: 10/4f858cde1cf8ce4670de9df4a64f4990bb8abdb8e13d3e437f278c40c86d841ef505aa1e5dc798582109ceaac8577a3bb4a1f026c0e5ce730465c89652ee6036 + languageName: node + linkType: hard + +"codeowners-utils@npm:^1.0.2": + version: 1.0.2 + resolution: "codeowners-utils@npm:1.0.2" + dependencies: + cross-spawn: "npm:^7.0.2" + find-up: "npm:^4.1.0" + ignore: "npm:^5.1.4" + locate-path: "npm:^5.0.0" + checksum: 10/7457b4841054a81eba8e3c6634e0e7b629ab2e8289ebef064d83d6c5b34746f484d9c552749691131707d6625b65d0d2e4b8762286884f149a667399bfbd3edf + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: 10/30ea7d5c9ee51f2fdba4901d4186c5b7114a088ef98fd53eda3979da77eed96758a2cae81cc6d97e239aaea6065868cf908b24980663f7b7e96aa291b3e12fa4 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0, color-convert@npm:^1.9.3": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10/fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:^1.0.0, color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-string@npm:^1.6.0, color-string@npm:^1.9.0": + version: 1.9.1 + resolution: "color-string@npm:1.9.1" + dependencies: + color-name: "npm:^1.0.0" + simple-swizzle: "npm:^0.2.2" + checksum: 10/72aa0b81ee71b3f4fb1ac9cd839cdbd7a011a7d318ef58e6cb13b3708dca75c7e45029697260488709f1b1c7ac4e35489a87e528156c1e365917d1c4ccb9b9cd + languageName: node + linkType: hard + +"color@npm:^3.1.3": + version: 3.2.1 + resolution: "color@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.3" + color-string: "npm:^1.6.0" + checksum: 10/bf70438e0192f4f62f4bfbb303e7231289e8cc0d15ff6b6cbdb722d51f680049f38d4fdfc057a99cb641895cf5e350478c61d98586400b060043afc44285e7ae + languageName: node + linkType: hard + +"color@npm:^4.0.1": + version: 4.2.3 + resolution: "color@npm:4.2.3" + dependencies: + color-convert: "npm:^2.0.1" + color-string: "npm:^1.9.0" + checksum: 10/b23f5e500a79ea22428db43d1a70642d983405c0dd1f95ef59dbdb9ba66afbb4773b334fa0b75bb10b0552fd7534c6b28d4db0a8b528f91975976e70973c0152 + languageName: node + linkType: hard + +"colord@npm:^2.9.1": + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 10/907a4506d7307e2f580b471b581e992181ed75ab0c6925ece9ca46d88161d2fc50ed15891cd0556d0d9321237ca75afc9d462e4c050b939ef88428517f047f30 + languageName: node + linkType: hard + +"colorette@npm:2.0.19": + version: 2.0.19 + resolution: "colorette@npm:2.0.19" + checksum: 10/6e2606435cd30e1cae8fc6601b024fdd809e20515c57ce1e588d0518403cff0c98abf807912ba543645a9188af36763b69b67e353d47397f24a1c961aba300bd + languageName: node + linkType: hard + +"colorette@npm:^2.0.10": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f + languageName: node + linkType: hard + +"colorspace@npm:1.1.x": + version: 1.1.4 + resolution: "colorspace@npm:1.1.4" + dependencies: + color: "npm:^3.1.3" + text-hex: "npm:1.0.x" + checksum: 10/bb3934ef3c417e961e6d03d7ca60ea6e175947029bfadfcdb65109b01881a1c0ecf9c2b0b59abcd0ee4a0d7c1eae93beed01b0e65848936472270a0b341ebce8 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10/2e969e637d05d09fa50b02d74c83a1186f6914aae89e6653b62595cc75a221464f884f55f231b8f4df7a49537fba60bdc0427acd2bf324c09a1dbb84837e36e4 + languageName: node + linkType: hard + +"comma-separated-tokens@npm:^1.0.0": + version: 1.0.8 + resolution: "comma-separated-tokens@npm:1.0.8" + checksum: 10/0adcb07174fa4d08cf0f5c8e3aec40a36b5ff0c2c720e5e23f50fe02e6789d1d00a67036c80e0c1e1539f41d3e7f0101b074039dd833b4e4a59031b659d6ca0d + languageName: node + linkType: hard + +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: 10/e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d + languageName: node + linkType: hard + +"command-exists@npm:^1.2.9": + version: 1.2.9 + resolution: "command-exists@npm:1.2.9" + checksum: 10/46fb3c4d626ca5a9d274f8fe241230817496abc34d12911505370b7411999e183c11adff7078dd8a03ec4cf1391290facda40c6a4faac8203ae38c985eaedd63 + languageName: node + linkType: hard + +"commander@npm:8.3.0, commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 10/6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3 + languageName: node + linkType: hard + +"commander@npm:^10.0.0": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 10/8799faa84a30da985802e661cc9856adfaee324d4b138413013ef7f087e8d7924b144c30a1f1405475f0909f467665cd9e1ce13270a2f41b141dab0b7a58f3fb + languageName: node + linkType: hard + +"commander@npm:^12.0.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 10/cdaeb672d979816853a4eed7f1310a9319e8b976172485c2a6b437ed0db0a389a44cfb222bfbde772781efa9f215bdd1b936f80d6b249485b465c6cb906e1f93 + languageName: node + linkType: hard + +"commander@npm:^2.19.0, commander@npm:^2.20.0": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b + languageName: node + linkType: hard + +"commander@npm:^4.0.0, commander@npm:^4.1.1": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c + languageName: node + linkType: hard + +"commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 10/9973af10727ad4b44f26703bf3e9fdc323528660a7590efe3aa9ad5042b4584c0deed84ba443f61c9d6f02dade54a5a5d3c95e306a1e1630f8374ae6db16c06d + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 10/c665d0f463ee79dda801471ad8da6cb33ff7332ba45609916a508ad3d77ba07ca9deeb452e83f81f24c2b081e2c1315347f23d239210e63d1c5e1a0c7c019fe2 + languageName: node + linkType: hard + +"commondir@npm:^1.0.1": + version: 1.0.1 + resolution: "commondir@npm:1.0.1" + checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c + languageName: node + linkType: hard + +"compare-versions@npm:4.1.4": + version: 4.1.4 + resolution: "compare-versions@npm:4.1.4" + checksum: 10/0c4f0d943477b824234f5c6600ea7404a86ef506c696b9d91ee67979bd32c08371a8b6532cc17e6e17cf2916e46ef16d499dce70245a4f6786c3c055afcea697 + languageName: node + linkType: hard + +"compress-commons@npm:^6.0.2": + version: 6.0.2 + resolution: "compress-commons@npm:6.0.2" + dependencies: + crc-32: "npm:^1.2.0" + crc32-stream: "npm:^6.0.0" + is-stream: "npm:^2.0.1" + normalize-path: "npm:^3.0.0" + readable-stream: "npm:^4.0.0" + checksum: 10/78e3ba10aeef919a1c5bbac21e120f3e1558a31b2defebbfa1635274fc7f7e8a3a0ee748a06249589acd0b33a0d58144b8238ff77afc3220f8d403a96fcc13aa + languageName: node + linkType: hard + +"compressible@npm:~2.0.18": + version: 2.0.18 + resolution: "compressible@npm:2.0.18" + dependencies: + mime-db: "npm:>= 1.43.0 < 2" + checksum: 10/58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 + languageName: node + linkType: hard + +"compression@npm:^1.7.4": + version: 1.7.5 + resolution: "compression@npm:1.7.5" + dependencies: + bytes: "npm:3.1.2" + compressible: "npm:~2.0.18" + debug: "npm:2.6.9" + negotiator: "npm:~0.6.4" + on-headers: "npm:~1.0.2" + safe-buffer: "npm:5.2.1" + vary: "npm:~1.1.2" + checksum: 10/c69cf6da151db6f9db2e242b6a0039ad41975ee886c385cff2920c5f8f7050678e0ee9a021437af033536c451791de529de376851b8d31fee42ca2d6adca03f0 + languageName: node + linkType: hard + +"compute-gcd@npm:^1.2.1": + version: 1.2.1 + resolution: "compute-gcd@npm:1.2.1" + dependencies: + validate.io-array: "npm:^1.0.3" + validate.io-function: "npm:^1.0.2" + validate.io-integer-array: "npm:^1.0.0" + checksum: 10/51cf33b75f7c8db5142fcb99a9d84a40260993fed8e02a7ab443834186c3ab99b3fd20b30ad9075a6a9d959d69df6da74dd3be8a59c78d9f2fe780ebda8242e1 + languageName: node + linkType: hard + +"compute-lcm@npm:^1.1.2": + version: 1.1.2 + resolution: "compute-lcm@npm:1.1.2" + dependencies: + compute-gcd: "npm:^1.2.1" + validate.io-array: "npm:^1.0.3" + validate.io-function: "npm:^1.0.2" + validate.io-integer-array: "npm:^1.0.0" + checksum: 10/d499ab57dcb48e8d0fd233b99844a06d1cc56115602c920c586e998ebba60293731f5b6976e8a1e83ae6cbfe86716f62d9432e8d94913fed8bd8352f447dc917 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10/9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2 + languageName: node + linkType: hard + +"concat-stream@npm:^1.5.2": + version: 1.6.2 + resolution: "concat-stream@npm:1.6.2" + dependencies: + buffer-from: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^2.2.2" + typedarray: "npm:^0.0.6" + checksum: 10/71db903c84fc073ca35a274074e8d26c4330713d299f8623e993c448c1f6bf8b967806dd1d1a7b0f8add6f15ab1af7435df21fe79b4fe7efd78420c89e054e28 + languageName: node + linkType: hard + +"concat-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "concat-stream@npm:2.0.0" + dependencies: + buffer-from: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.0.2" + typedarray: "npm:^0.0.6" + checksum: 10/250e576d0617e7c58e1c4b2dd6fe69560f316d2c962a409f9f3aac794018499ddb31948b1e4296f217008e124cd5d526432097745157fe504b5d9f3dc469eadb + languageName: node + linkType: hard + +"concat-with-sourcemaps@npm:^1.1.0": + version: 1.1.0 + resolution: "concat-with-sourcemaps@npm:1.1.0" + dependencies: + source-map: "npm:^0.6.1" + checksum: 10/57faa6f4a6f38a1846a58f96b2745ec8435755e0021f069e89085c651d091b78d9bc20807ea76c38c85021acca80dc2fa4cedda666aade169b602604215d25b9 + languageName: node + linkType: hard + +"concurrently@npm:6.5.1": + version: 6.5.1 + resolution: "concurrently@npm:6.5.1" + dependencies: + chalk: "npm:^4.1.0" + date-fns: "npm:^2.16.1" + lodash: "npm:^4.17.21" + rxjs: "npm:^6.6.3" + spawn-command: "npm:^0.0.2-1" + supports-color: "npm:^8.1.0" + tree-kill: "npm:^1.2.2" + yargs: "npm:^16.2.0" + bin: + concurrently: bin/concurrently.js + checksum: 10/9ea52a75547418b64fd9d6a956f2f6ffc5b5262d99958b258dce4403b041e81dc79ae09dd9edeb4ba81df1fd6bf62d73e779b8a23c1a76e5464b151830bd92d8 + languageName: node + linkType: hard + +"connect-history-api-fallback@npm:^2.0.0": + version: 2.0.0 + resolution: "connect-history-api-fallback@npm:2.0.0" + checksum: 10/3b26bf4041fdb33deacdcb3af9ae11e9a0b413fb14c95844d74a460b55e407625b364955dcf965c654605cde9d24ad5dad423c489aa430825aab2035859aba0c + languageName: node + linkType: hard + +"connect-session-knex@npm:^4.0.0": + version: 4.0.2 + resolution: "connect-session-knex@npm:4.0.2" + dependencies: + bluebird: "npm:^3.7.2" + knex: "npm:3" + checksum: 10/e8777e2191e64b1be415972fb1fc6022da87fecf33c1390c5239bfa7e4ceec09d1ab8709e85c399304d8162f5d7e70d713e703182c9d64dcb8813acbc2043343 + languageName: node + linkType: hard + +"connect@npm:^3.7.0": + version: 3.7.0 + resolution: "connect@npm:3.7.0" + dependencies: + debug: "npm:2.6.9" + finalhandler: "npm:1.1.2" + parseurl: "npm:~1.3.3" + utils-merge: "npm:1.0.1" + checksum: 10/f94818b198cc662092276ef6757dd825c59c8469c8064583525e7b81d39a3af86a01c7cb76107dfa0295dfc52b27a7ae1c40ea0e0a10189c3f8776cf08ce3a4e + languageName: node + linkType: hard + +"consola@npm:^2.15.0": + version: 2.15.3 + resolution: "consola@npm:2.15.3" + checksum: 10/ba5b3c6960b2eafb9d2ff2325444dd1d4eb53115df46eba823a4e7bfe6afbba0eb34747c0de82c7cd8a939db59b0cb5a8b8a54a94bb2e44feeddc26cefde3622 + languageName: node + linkType: hard + +"console-browserify@npm:^1.1.0": + version: 1.2.0 + resolution: "console-browserify@npm:1.2.0" + checksum: 10/4f16c471fa84909af6ae00527ce8d19dd9ed587eab85923c145cadfbc35414139f87e7bdd61746138e22cd9df45c2a1ca060370998c2c39f801d4a778105bac5 + languageName: node + linkType: hard + +"console.table@npm:0.10.0": + version: 0.10.0 + resolution: "console.table@npm:0.10.0" + dependencies: + easy-table: "npm:1.1.0" + checksum: 10/bd7d1d1507c60e4d0fdfe5d94d18a6dac2d7929a216f9e3cece26fef7ee38bdc40ad96844547b0a16d978e7c410bb9f6acda249a71038e33be16160ce948121b + languageName: node + linkType: hard + +"constants-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "constants-browserify@npm:1.0.0" + checksum: 10/49ef0babd907616dddde6905b80fe44ad5948e1eaaf6cf65d5f23a8c60c029ff63a1198c364665be1d6b2cb183d7e12921f33049cc126734ade84a3cfdbc83f6 + languageName: node + linkType: hard + +"content-disposition@npm:0.5.4, content-disposition@npm:~0.5.2": + version: 0.5.4 + resolution: "content-disposition@npm:0.5.4" + dependencies: + safe-buffer: "npm:5.2.1" + checksum: 10/b7f4ce176e324f19324be69b05bf6f6e411160ac94bc523b782248129eb1ef3be006f6cff431aaea5e337fe5d176ce8830b8c2a1b721626ead8933f0cbe78720 + languageName: node + linkType: hard + +"content-type@npm:^1.0.4, content-type@npm:^1.0.5, content-type@npm:~1.0.4, content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 10/585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662 + languageName: node + linkType: hard + +"convert-source-map@npm:^1.5.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: 10/dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10/c987be3ec061348cdb3c2bfb924bec86dea1eacad10550a85ca23edb0fe3556c3a61c7399114f3331ccb3499d7fd0285ab24566e5745929412983494c3926e15 + languageName: node + linkType: hard + +"cookie-parser@npm:^1.4.5": + version: 1.4.7 + resolution: "cookie-parser@npm:1.4.7" + dependencies: + cookie: "npm:0.7.2" + cookie-signature: "npm:1.0.6" + checksum: 10/243fa13f217e793d20a57675e6552beea08c5989fcc68495d543997a31646875335e0e82d687b42dcfd466df57891d22bae7f5ba6ab33b7705ed2dd6eb989105 + languageName: node + linkType: hard + +"cookie-signature@npm:1.0.6": + version: 1.0.6 + resolution: "cookie-signature@npm:1.0.6" + checksum: 10/f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a + languageName: node + linkType: hard + +"cookie-signature@npm:1.0.7": + version: 1.0.7 + resolution: "cookie-signature@npm:1.0.7" + checksum: 10/1a62808cd30d15fb43b70e19829b64d04b0802d8ef00275b57d152de4ae6a3208ca05c197b6668d104c4d9de389e53ccc2d3bc6bcaaffd9602461417d8c40710 + languageName: node + linkType: hard + +"cookie@npm:0.7.1": + version: 0.7.1 + resolution: "cookie@npm:0.7.1" + checksum: 10/aec6a6aa0781761bf55d60447d6be08861d381136a0fe94aa084fddd4f0300faa2b064df490c6798adfa1ebaef9e0af9b08a189c823e0811b8b313b3d9a03380 + languageName: node + linkType: hard + +"cookie@npm:0.7.2, cookie@npm:^0.7.0": + version: 0.7.2 + resolution: "cookie@npm:0.7.2" + checksum: 10/24b286c556420d4ba4e9bc09120c9d3db7d28ace2bd0f8ccee82422ce42322f73c8312441271e5eefafbead725980e5996cc02766dbb89a90ac7f5636ede608f + languageName: node + linkType: hard + +"cookies@npm:~0.9.0": + version: 0.9.1 + resolution: "cookies@npm:0.9.1" + dependencies: + depd: "npm:~2.0.0" + keygrip: "npm:~1.1.0" + checksum: 10/4816461a38d907b20f3fb7a2bc4741fe580e7a195f3e248ef7025cb3be56a07638a0f4e72553a5f535554ca30172c8a3245c63ac72c9737cec034e9a47773392 + languageName: node + linkType: hard + +"copy-to-clipboard@npm:^3.2.0, copy-to-clipboard@npm:^3.3.1": + version: 3.3.3 + resolution: "copy-to-clipboard@npm:3.3.3" + dependencies: + toggle-selection: "npm:^1.0.6" + checksum: 10/e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf + languageName: node + linkType: hard + +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": + version: 3.40.0 + resolution: "core-js-compat@npm:3.40.0" + dependencies: + browserslist: "npm:^4.24.3" + checksum: 10/3dd3d717b3d4ae0d9c2930d39c0f2a21ca6f195fcdd5711bda833557996c4d9f90277eab576423478e95689257e2de8d1a2623d6618084416bd224d10d5df9a4 + languageName: node + linkType: hard + +"core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2": + version: 3.40.0 + resolution: "core-js-pure@npm:3.40.0" + checksum: 10/f539347fd2823a4ea341bb44ff66731ce323e9715f1dccdd618f5f41b72da2b53ebad53a9599b4e946aa820e0001ae09da066cae7e9c76d7692116c181b32dba + languageName: node + linkType: hard + +"core-js@npm:^2.4.0, core-js@npm:^2.5.0": + version: 2.6.12 + resolution: "core-js@npm:2.6.12" + checksum: 10/7c624eb00a59c74c769d5d80f751f3bf1fc6201205b6562f27286ad5e00bbca1483f2f7eb0c2854b86f526ef5c7dc958b45f2ff536f8a31b8e9cb1a13a96efca + languageName: node + linkType: hard + +"core-js@npm:^3.6.0, core-js@npm:^3.6.5, core-js@npm:^3.8.3": + version: 3.40.0 + resolution: "core-js@npm:3.40.0" + checksum: 10/9c7e7d2839db6c3c7b72725a3ce5edf6dd61fc771e1551e08b5622ca7da330f2f5d3c7dcd6a6e7889baa8d4cc5a909ba75b4add0d1f3da940a2a60a3e0603be5 + languageName: node + linkType: hard + +"core-util-is@npm:1.0.2": + version: 1.0.2 + resolution: "core-util-is@npm:1.0.2" + checksum: 10/d0f7587346b44a1fe6c269267e037dd34b4787191e473c3e685f507229d88561c40eb18872fabfff02977301815d474300b7bfbd15396c13c5377393f7e87ec3 + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 10/9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + +"cors-gate@npm:^1.1.3": + version: 1.1.3 + resolution: "cors-gate@npm:1.1.3" + checksum: 10/161e36480d41ae11c16389267622f58b6bc69b12a28558aa3a972b44d851b92b62e11a8632cea5f0da1d48665a53c4992297e669d881e482837713e375300e1e + languageName: node + linkType: hard + +"cors@npm:^2.8.4, cors@npm:^2.8.5": + version: 2.8.5 + resolution: "cors@npm:2.8.5" + dependencies: + object-assign: "npm:^4" + vary: "npm:^1" + checksum: 10/66e88e08edee7cbce9d92b4d28a2028c88772a4c73e02f143ed8ca76789f9b59444eed6b1c167139e76fa662998c151322720093ba229f9941365ada5a6fc2c6 + languageName: node + linkType: hard + +"cosmiconfig@npm:^6.0.0": + version: 6.0.0 + resolution: "cosmiconfig@npm:6.0.0" + dependencies: + "@types/parse-json": "npm:^4.0.0" + import-fresh: "npm:^3.1.0" + parse-json: "npm:^5.0.0" + path-type: "npm:^4.0.0" + yaml: "npm:^1.7.2" + checksum: 10/b184d2bfbced9ba6840fd097dbf3455c68b7258249bb9b1277913823d516d8dfdade8c5ccbf79db0ca8ebd4cc9b9be521ccc06a18396bd242d50023c208f1594 + languageName: node + linkType: hard + +"cosmiconfig@npm:^7.0.0, cosmiconfig@npm:^7.0.1": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": "npm:^4.0.0" + import-fresh: "npm:^3.2.1" + parse-json: "npm:^5.0.0" + path-type: "npm:^4.0.0" + yaml: "npm:^1.10.0" + checksum: 10/03600bb3870c80ed151b7b706b99a1f6d78df8f4bdad9c95485072ea13358ef294b13dd99f9e7bf4cc0b43bcd3599d40df7e648750d21c2f6817ca2cd687e071 + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.1.0, cosmiconfig@npm:^8.2.0": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" + dependencies: + import-fresh: "npm:^3.3.0" + js-yaml: "npm:^4.1.0" + parse-json: "npm:^5.2.0" + path-type: "npm:^4.0.0" + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/91d082baca0f33b1c085bf010f9ded4af43cbedacba8821da0fb5667184d0a848addc52c31fadd080007f904a555319c238cf5f4c03e6d58ece2e4876b2e73d6 + languageName: node + linkType: hard + +"cpu-features@npm:~0.0.10": + version: 0.0.10 + resolution: "cpu-features@npm:0.0.10" + dependencies: + buildcheck: "npm:~0.0.6" + nan: "npm:^2.19.0" + node-gyp: "npm:latest" + checksum: 10/941b828ffe77582b2bdc03e894c913e2e2eeb5c6043ccb01338c34446d026f6888dc480ecb85e684809f9c3889d245f3648c7907eb61a92bdfc6aed039fcda8d + languageName: node + linkType: hard + +"crc-32@npm:^1.2.0": + version: 1.2.2 + resolution: "crc-32@npm:1.2.2" + bin: + crc32: bin/crc32.njs + checksum: 10/824f696a5baaf617809aa9cd033313c8f94f12d15ebffa69f10202480396be44aef9831d900ab291638a8022ed91c360696dd5b1ba691eb3f34e60be8835b7c3 + languageName: node + linkType: hard + +"crc32-stream@npm:^6.0.0": + version: 6.0.0 + resolution: "crc32-stream@npm:6.0.0" + dependencies: + crc-32: "npm:^1.2.0" + readable-stream: "npm:^4.0.0" + checksum: 10/e6edc2f81bc387daef6d18b2ac18c2ffcb01b554d3b5c7d8d29b177505aafffba574658fdd23922767e8dab1183d1962026c98c17e17fb272794c33293ef607c + languageName: node + linkType: hard + +"create-ecdh@npm:^4.0.4": + version: 4.0.4 + resolution: "create-ecdh@npm:4.0.4" + dependencies: + bn.js: "npm:^4.1.0" + elliptic: "npm:^6.5.3" + checksum: 10/0dd7fca9711d09e152375b79acf1e3f306d1a25ba87b8ff14c2fd8e68b83aafe0a7dd6c4e540c9ffbdd227a5fa1ad9b81eca1f233c38bb47770597ba247e614b + languageName: node + linkType: hard + +"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": + version: 1.2.0 + resolution: "create-hash@npm:1.2.0" + dependencies: + cipher-base: "npm:^1.0.1" + inherits: "npm:^2.0.1" + md5.js: "npm:^1.3.4" + ripemd160: "npm:^2.0.1" + sha.js: "npm:^2.4.0" + checksum: 10/3cfef32043b47a8999602af9bcd74966db6971dd3eb828d1a479f3a44d7f58e38c1caf34aa21a01941cc8d9e1a841738a732f200f00ea155f8a8835133d2e7bc + languageName: node + linkType: hard + +"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": + version: 1.1.7 + resolution: "create-hmac@npm:1.1.7" + dependencies: + cipher-base: "npm:^1.0.3" + create-hash: "npm:^1.1.0" + inherits: "npm:^2.0.1" + ripemd160: "npm:^2.0.0" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 10/2b26769f87e99ef72150bf99d1439d69272b2e510e23a2b8daf4e93e2412f4842504237d726044fa797cb20ee0ec8bee78d414b11f2d7ca93299185c93df0dae + languageName: node + linkType: hard + +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + prompts: "npm:^2.0.1" + bin: + create-jest: bin/create-jest.js + checksum: 10/847b4764451672b4174be4d5c6d7d63442ec3aa5f3de52af924e4d996d87d7801c18e125504f25232fc75840f6625b3ac85860fac6ce799b5efae7bdcaf4a2b7 + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: 10/a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + +"crelt@npm:^1.0.5": + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: 10/5ed326ca6bd243b1dba6b943f665b21c2c04be03271824bc48f20dba324b0f8233e221f8c67312526d24af2b1243c023dc05a41bd8bd05d1a479fd2c72fb39c3 + languageName: node + linkType: hard + +"cron-parser@npm:^4.2.0": + version: 4.9.0 + resolution: "cron-parser@npm:4.9.0" + dependencies: + luxon: "npm:^3.2.1" + checksum: 10/ffca5e532a5ee0923412ee6e4c7f9bbceacc6ddf8810c16d3e9fb4fe5ec7e2de1b6896d7956f304bb6bc96b0ce37ad7e3935304179d52951c18d84107184faa7 + languageName: node + linkType: hard + +"cron@npm:^3.0.0": + version: 3.5.0 + resolution: "cron@npm:3.5.0" + dependencies: + "@types/luxon": "npm:~3.4.0" + luxon: "npm:~3.5.0" + checksum: 10/0e667d87c9acc162db835439bff2664483f1fcbd471ae30a26c7426c736fa1798d27067cc4d0294d8a27890a1bc6c9deeefe47811cc339f11a8ba8288f51886d + languageName: node + linkType: hard + +"cross-env@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-env@npm:7.0.3" + dependencies: + cross-spawn: "npm:^7.0.1" + bin: + cross-env: src/bin/cross-env.js + cross-env-shell: src/bin/cross-env-shell.js + checksum: 10/e99911f0d31c20e990fd92d6fd001f4b01668a303221227cc5cb42ed155f086351b1b3bd2699b200e527ab13011b032801f8ce638e6f09f854bdf744095e604c + languageName: node + linkType: hard + +"cross-fetch@npm:^3.1.5": + version: 3.2.0 + resolution: "cross-fetch@npm:3.2.0" + dependencies: + node-fetch: "npm:^2.7.0" + checksum: 10/e4ab1d390a5b6ca8bb0605f028af2ffc1127d2e407b954654949f506d04873c4863ece264662c074865d7874060e35f938cec74fe7b5736d46d545e2685f6aec + languageName: node + linkType: hard + +"cross-fetch@npm:^4.0.0": + version: 4.1.0 + resolution: "cross-fetch@npm:4.1.0" + dependencies: + node-fetch: "npm:^2.7.0" + checksum: 10/07624940607b64777d27ec9c668ddb6649e8c59ee0a5a10e63a51ce857e2bbb1294a45854a31c10eccb91b65909a5b199fcb0217339b44156f85900a7384f489 + languageName: node + linkType: hard + +"cross-inspect@npm:1.0.1": + version: 1.0.1 + resolution: "cross-inspect@npm:1.0.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10/7c1e02e0a9670b62416a3ea1df7ae880fdad3aa0a857de8932c4e5f8acd71298c7e3db9da8e9da603f5692cd1879938f5e72e34a9f5d1345987bef656d117fc1 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86 + languageName: node + linkType: hard + +"crypto-browserify@npm:^3.11.0": + version: 3.12.1 + resolution: "crypto-browserify@npm:3.12.1" + dependencies: + browserify-cipher: "npm:^1.0.1" + browserify-sign: "npm:^4.2.3" + create-ecdh: "npm:^4.0.4" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + diffie-hellman: "npm:^5.0.3" + hash-base: "npm:~3.0.4" + inherits: "npm:^2.0.4" + pbkdf2: "npm:^3.1.2" + public-encrypt: "npm:^4.0.3" + randombytes: "npm:^2.1.0" + randomfill: "npm:^1.0.4" + checksum: 10/13da0b5f61b3e8e68fcbebf0394f2b2b4d35a0d0ba6ab762720c13391d3697ea42735260a26328a6a3d872be7d4cb5abe98a7a8f88bc93da7ba59b993331b409 + languageName: node + linkType: hard + +"css-box-model@npm:^1.2.0": + version: 1.2.1 + resolution: "css-box-model@npm:1.2.1" + dependencies: + tiny-invariant: "npm:^1.0.6" + checksum: 10/54778883733e59058b5de983cf442b9db6c1494543d4d84a3defd05b51b991a1865f59e4ae424e733af2aa1fdb6e0bd905cb73db0e7e548fbd89853859fedc81 + languageName: node + linkType: hard + +"css-declaration-sorter@npm:^6.3.1": + version: 6.4.1 + resolution: "css-declaration-sorter@npm:6.4.1" + peerDependencies: + postcss: ^8.0.9 + checksum: 10/06cbfd1f470b8accf5e235b0e658e2f82d33a1cea8c2a21b55dfef5280769b874a8979c50f2c035af9213836cf85fb7e4687748a9162d564d7638ed4a194888e + languageName: node + linkType: hard + +"css-in-js-utils@npm:^3.1.0": + version: 3.1.0 + resolution: "css-in-js-utils@npm:3.1.0" + dependencies: + hyphenate-style-name: "npm:^1.0.3" + checksum: 10/bd2f569f1870389004cfacfd7b798c0f40933d34af1f040c391a08322d097790b9a9524affb2ba4d26122e9cb8f4256afb59edb6077dbe607506944a9c673c67 + languageName: node + linkType: hard + +"css-line-break@npm:^2.1.0": + version: 2.1.0 + resolution: "css-line-break@npm:2.1.0" + dependencies: + utrie: "npm:^1.0.2" + checksum: 10/e75cae40de511026228d4fa69e8d464895714f8899880b8268a446b57f0faa84b490ba1bdda5ed9e7f38f99ab947c6bc941bb505d8119c49072db079c1cacea5 + languageName: node + linkType: hard + +"css-loader@npm:^6.5.1": + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" + dependencies: + icss-utils: "npm:^5.1.0" + postcss: "npm:^8.4.33" + postcss-modules-extract-imports: "npm:^3.1.0" + postcss-modules-local-by-default: "npm:^4.0.5" + postcss-modules-scope: "npm:^3.2.0" + postcss-modules-values: "npm:^4.0.0" + postcss-value-parser: "npm:^4.2.0" + semver: "npm:^7.5.4" + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10/9e3665509f6786d46683de5c5f5c4bdd4aa62396b4017b41dbbb41ea5ada4012c80ee1e3302b79b504bc24da7fa69e3552d99006cecc953e0d9eef4a3053b929 + languageName: node + linkType: hard + +"css-select@npm:^4.1.3": + version: 4.3.0 + resolution: "css-select@npm:4.3.0" + dependencies: + boolbase: "npm:^1.0.0" + css-what: "npm:^6.0.1" + domhandler: "npm:^4.3.1" + domutils: "npm:^2.8.0" + nth-check: "npm:^2.0.1" + checksum: 10/8f7310c9af30ccaba8f72cb4a54d32232c53bf9ba05d019b693e16bfd7ba5df0affc1f4d74b1ee55923643d23b80a837eedcf60938c53356e479b04049ff9994 + languageName: node + linkType: hard + +"css-tree@npm:^1.1.2, css-tree@npm:^1.1.3": + version: 1.1.3 + resolution: "css-tree@npm:1.1.3" + dependencies: + mdn-data: "npm:2.0.14" + source-map: "npm:^0.6.1" + checksum: 10/29710728cc4b136f1e9b23ee1228ec403ec9f3d487bc94a9c5dbec563c1e08c59bc917dd6f82521a35e869ff655c298270f43ca673265005b0cd05b292eb05ab + languageName: node + linkType: hard + +"css-vendor@npm:^2.0.8": + version: 2.0.8 + resolution: "css-vendor@npm:2.0.8" + dependencies: + "@babel/runtime": "npm:^7.8.3" + is-in-browser: "npm:^1.0.2" + checksum: 10/3868a17c84b01f1ad9f6d8a44ca84a44453594ea63202e58b20aef63ead801cad021ab0b7816ff8815506c9cc6f971173433fe56b9d150fa76cab09da3041a50 + languageName: node + linkType: hard + +"css-what@npm:^6.0.1": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: 10/c67a3a2d0d81843af87f8bf0a4d0845b0f952377714abbb2884e48942409d57a2110eabee003609d02ee487b054614bdfcfc59ee265728ff105bd5aa221c1d0e + languageName: node + linkType: hard + +"css.escape@npm:1.5.1, css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: 10/f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: 10/0e161912c1306861d8f46e1883be1cbc8b1b2879f0f509287c0db71796e4ddfb97ac96bdfca38f77f452e2c10554e1bb5678c99b07a5cf947a12778f73e47e12 + languageName: node + linkType: hard + +"cssnano-preset-default@npm:^5.2.14": + version: 5.2.14 + resolution: "cssnano-preset-default@npm:5.2.14" + dependencies: + css-declaration-sorter: "npm:^6.3.1" + cssnano-utils: "npm:^3.1.0" + postcss-calc: "npm:^8.2.3" + postcss-colormin: "npm:^5.3.1" + postcss-convert-values: "npm:^5.1.3" + postcss-discard-comments: "npm:^5.1.2" + postcss-discard-duplicates: "npm:^5.1.0" + postcss-discard-empty: "npm:^5.1.1" + postcss-discard-overridden: "npm:^5.1.0" + postcss-merge-longhand: "npm:^5.1.7" + postcss-merge-rules: "npm:^5.1.4" + postcss-minify-font-values: "npm:^5.1.0" + postcss-minify-gradients: "npm:^5.1.1" + postcss-minify-params: "npm:^5.1.4" + postcss-minify-selectors: "npm:^5.2.1" + postcss-normalize-charset: "npm:^5.1.0" + postcss-normalize-display-values: "npm:^5.1.0" + postcss-normalize-positions: "npm:^5.1.1" + postcss-normalize-repeat-style: "npm:^5.1.1" + postcss-normalize-string: "npm:^5.1.0" + postcss-normalize-timing-functions: "npm:^5.1.0" + postcss-normalize-unicode: "npm:^5.1.1" + postcss-normalize-url: "npm:^5.1.0" + postcss-normalize-whitespace: "npm:^5.1.1" + postcss-ordered-values: "npm:^5.1.3" + postcss-reduce-initial: "npm:^5.1.2" + postcss-reduce-transforms: "npm:^5.1.0" + postcss-svgo: "npm:^5.1.0" + postcss-unique-selectors: "npm:^5.1.1" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/4103f879a594e24eef7b2f175cd46b59d777982be23f0d1b84e962d044e0bea2f26aa107dea59a711e6394fdd77faf313cee6ae4be61d34656fdf33ff278f69d + languageName: node + linkType: hard + +"cssnano-utils@npm:^3.1.0": + version: 3.1.0 + resolution: "cssnano-utils@npm:3.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/975c84ce9174cf23bb1da1e9faed8421954607e9ea76440cd3bb0c1bea7e17e490d800fca5ae2812d1d9e9d5524eef23ede0a3f52497d7ccc628e5d7321536f2 + languageName: node + linkType: hard + +"cssnano@npm:^5.0.1": + version: 5.1.15 + resolution: "cssnano@npm:5.1.15" + dependencies: + cssnano-preset-default: "npm:^5.2.14" + lilconfig: "npm:^2.0.3" + yaml: "npm:^1.10.2" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/8c5acbeabd10ffc05d01c63d3a82dcd8742299ead3f6da4016c853548b687d9b392de43e6d0f682dad1c2200d577c9360d8e709711c23721509aa4e55e052fb3 + languageName: node + linkType: hard + +"csso@npm:^4.2.0": + version: 4.2.0 + resolution: "csso@npm:4.2.0" + dependencies: + css-tree: "npm:^1.1.2" + checksum: 10/8b6a2dc687f2a8165dde13f67999d5afec63cb07a00ab100fbb41e4e8b28d986cfa0bc466b4f5ba5de7260c2448a64e6ad26ec718dd204d3a7d109982f0bf1aa + languageName: node + linkType: hard + +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 10/b502a315b1ce020a692036cc38cb36afa44157219b80deadfa040ab800aa9321fcfbecf02fd2e6ec87db169715e27978b4ab3701f916461e9cf7808899f23b54 + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 10/49eacc88077555e419646c0ea84ddc73c97e3a346ad7cb95e22f9413a9722d8964b91d781ce21d378bd5ae058af9a745402383fa4e35e9cdfd19654b63f892a9 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: "npm:~0.3.6" + checksum: 10/46f7f05a153446c4018b0454ee1464b50f606cb1803c90d203524834b7438eb52f3b173ba0891c618f380ced34ee12020675dc0052a7f1be755fe4ebc27ee977 + languageName: node + linkType: hard + +"cssstyle@npm:^4.2.1": + version: 4.2.1 + resolution: "cssstyle@npm:4.2.1" + dependencies: + "@asamuzakjp/css-color": "npm:^2.8.2" + rrweb-cssom: "npm:^0.8.0" + checksum: 10/e287234f2fd4feb1d79217480f48356f398cc11b9d17d39e6624f7dc1bf4b51d1e2c49f12b1a324834b445c17cbbf83ae5d3ba22c89a6b229f86bcebeda746a8 + languageName: node + linkType: hard + +"csstype@npm:^2.5.2": + version: 2.6.21 + resolution: "csstype@npm:2.6.21" + checksum: 10/bf9072344fac1b56dc390fbc410b411bbc2a03fa9c3d243a74ff5687f94777f9da03a5681ac01efc2e68b51055e2c7d6a489185a85a8f01c976a85f9eec3b75e + languageName: node + linkType: hard + +"csstype@npm:^3.0.2, csstype@npm:^3.1.2, csstype@npm:^3.1.3": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 10/f593cce41ff5ade23f44e77521e3a1bcc2c64107041e1bf6c3c32adc5187d0d60983292fda326154d20b01079e24931aa5b08e4467cc488b60bb1e7f6d478ade + languageName: node + linkType: hard + +"ctrlc-windows@npm:^2.1.0": + version: 2.2.0 + resolution: "ctrlc-windows@npm:2.2.0" + checksum: 10/3d044eda5aa8c58d35e34b05249f9330e7258bec88999e50f25fd21807c2bedabbcab28e10a24e60c15748267ef0ebf9a915d4e430f484d5ce2ec5c75663c352 + languageName: node + linkType: hard + +"d3-color@npm:1 - 3": + version: 3.1.0 + resolution: "d3-color@npm:3.1.0" + checksum: 10/536ba05bfd9f4fcd6fa289b5974f5c846b21d186875684637e22bf6855e6aba93e24a2eb3712985c6af3f502fbbfa03708edb72f58142f626241a8a17258e545 + languageName: node + linkType: hard + +"d3-dispatch@npm:1 - 3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: 10/2b82f41bf4ef88c2f9033dfe32815b67e2ef1c5754a74137a74c7d44d6f0d6ecfa934ac56ed8afe358f6c1f06462e8aa42ca0a388397b5b77a42721570e80487 + languageName: node + linkType: hard + +"d3-drag@npm:2 - 3": + version: 3.0.0 + resolution: "d3-drag@npm:3.0.0" + dependencies: + d3-dispatch: "npm:1 - 3" + d3-selection: "npm:3" + checksum: 10/80bc689935e5a46ee92b2d7f71e1c792279382affed9fbcf46034bff3ff7d3f50cf61a874da4bdf331037292b9e7dca5c6401a605d4bb699fdcb4e0c87e176ec + languageName: node + linkType: hard + +"d3-ease@npm:1 - 3": + version: 3.0.1 + resolution: "d3-ease@npm:3.0.1" + checksum: 10/985d46e868494e9e6806fedd20bad712a50dcf98f357bf604a843a9f6bc17714a657c83dd762f183173dcde983a3570fa679b2bc40017d40b24163cdc4167796 + languageName: node + linkType: hard + +"d3-force@npm:^3.0.0": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: "npm:1 - 3" + d3-quadtree: "npm:1 - 3" + d3-timer: "npm:1 - 3" + checksum: 10/85945f8d444d78567009518f0ab54c0f0c8873eb8eb9a2ff0ab667b0f81b419e101a411415d4a2c752547ec7143f89675e8c33b8f111e55e5579a04cb7f4591c + languageName: node + linkType: hard + +"d3-interpolate@npm:1 - 3": + version: 3.0.1 + resolution: "d3-interpolate@npm:3.0.1" + dependencies: + d3-color: "npm:1 - 3" + checksum: 10/988d66497ef5c190cf64f8c80cd66e1e9a58c4d1f8932d776a8e3ae59330291795d5a342f5a97602782ccbef21a5df73bc7faf1f0dc46a5145ba6243a82a0f0e + languageName: node + linkType: hard + +"d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 10/8e97a9ab4930a05b18adda64cf4929219bac913a5506cf8585631020253b39309549632a5cbeac778c0077994442ddaaee8316ee3f380e7baf7566321b84e76a + languageName: node + linkType: hard + +"d3-quadtree@npm:1 - 3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 10/1915b6a7b031fc312f9af61947072db9468c5a2b03837f6a90b38fdaebcd0ea17a883bffd94d16b8a6848e81711a06222f7d39f129386ef1850297219b8d32ba + languageName: node + linkType: hard + +"d3-selection@npm:2 - 3, d3-selection@npm:3, d3-selection@npm:^3.0.0": + version: 3.0.0 + resolution: "d3-selection@npm:3.0.0" + checksum: 10/0e5acfd305b31628b7be5009ba7303d84bb34817a88ed4dde9c8bd9c23528573fc5272f89fc04e5be03d2cbf5441a248d7274aaf55a8ef3dad46e16333d72298 + languageName: node + linkType: hard + +"d3-shape@npm:^3.0.0": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: "npm:^3.1.0" + checksum: 10/2e861f4d4781ee8abd85d2b435f848d667479dcf01a4e0db3a06600a5bdeddedb240f88229ec7b3bf7fa300c2b3526faeaf7e75f9a24dbf4396d3cc5358ff39d + languageName: node + linkType: hard + +"d3-timer@npm:1 - 3": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 10/004128602bb187948d72c7dc153f0f063f38ac7a584171de0b45e3a841ad2e17f1e40ad396a4af9cce5551b6ab4a838d5246d23492553843d9da4a4050a911e2 + languageName: node + linkType: hard + +"d3-transition@npm:2 - 3": + version: 3.0.1 + resolution: "d3-transition@npm:3.0.1" + dependencies: + d3-color: "npm:1 - 3" + d3-dispatch: "npm:1 - 3" + d3-ease: "npm:1 - 3" + d3-interpolate: "npm:1 - 3" + d3-timer: "npm:1 - 3" + peerDependencies: + d3-selection: 2 - 3 + checksum: 10/02571636acb82f5532117928a87fe25de68f088c38ab4a8b16e495f0f2d08a3fd2937eaebdefdfcf7f1461545524927d2632d795839b88d2e4c71e387aaaffac + languageName: node + linkType: hard + +"d3-zoom@npm:^3.0.0": + version: 3.0.0 + resolution: "d3-zoom@npm:3.0.0" + dependencies: + d3-dispatch: "npm:1 - 3" + d3-drag: "npm:2 - 3" + d3-interpolate: "npm:1 - 3" + d3-selection: "npm:2 - 3" + d3-transition: "npm:2 - 3" + checksum: 10/0e6e5c14e33c4ecdff311a900dd037dea407734f2dd2818988ed6eae342c1799e8605824523678bd404f81e37824cc588f62dbde46912444c89acc7888036c6b + languageName: node + linkType: hard + +"dagre@npm:^0.8.5": + version: 0.8.5 + resolution: "dagre@npm:0.8.5" + dependencies: + graphlib: "npm:^2.1.8" + lodash: "npm:^4.17.15" + checksum: 10/f39899e29e9090581d67177ef6e2dd3ca5d7f764fbf3de81758d879bba66fee6fd8802d41d0c5d3d9a0563b334e99e1454a8d6ab4ce17e8e4f50836a3a403fdd + languageName: node + linkType: hard + +"damerau-levenshtein@npm:^1.0.8": + version: 1.0.8 + resolution: "damerau-levenshtein@npm:1.0.8" + checksum: 10/f4eba1c90170f96be25d95fa3857141b5f81e254f7e4d530da929217b19990ea9a0390fc53d3c1cafac9152fda78e722ea4894f765cf6216be413b5af1fbf821 + languageName: node + linkType: hard + +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10/137b287fa021201ce100cef772c8eeeaaafdd2aa7282864022acf3b873021e54cb809e9c060fa164840bf54ff72d00d6e2d8da1ee5a86d7200eeefa1123a8f7f + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 10/0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^6.0.2": + version: 6.0.2 + resolution: "data-uri-to-buffer@npm:6.0.2" + checksum: 10/8b6927c33f9b54037f442856be0aa20e5fd49fa6c9c8ceece408dc306445d593ad72d207d57037c529ce65f413b421da800c6827b1dbefb607b8056f17123a61 + languageName: node + linkType: hard + +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: "npm:^2.0.6" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^11.0.0" + checksum: 10/033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + +"data-urls@npm:^5.0.0": + version: 5.0.0 + resolution: "data-urls@npm:5.0.0" + dependencies: + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.0.0" + checksum: 10/5c40568c31b02641a70204ff233bc4e42d33717485d074244a98661e5f2a1e80e38fe05a5755dfaf2ee549f2ab509d6a3af2a85f4b2ad2c984e5d176695eaf46 + languageName: node + linkType: hard + +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.2" + checksum: 10/c10b155a4e93999d3a215d08c23eea95f865e1f510b2e7748fcae1882b776df1afe8c99f483ace7fc0e5a3193ab08da138abebc9829d12003746c5a338c4d644 + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.2" + checksum: 10/2a47055fcf1ab3ec41b00b6f738c6461a841391a643c9ed9befec1117c1765b4d492661d97fb7cc899200c328949dca6ff189d2c6537d96d60e8a02dfe3c95f7 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10/fa3bdfa0968bea6711ee50375094b39f561bce3f15f9e558df59de9c25f0bdd4cddc002d9c1d70ac7772ebd36854a7e22d1761e7302a934e6f1c2263bcf44aa2 + languageName: node + linkType: hard + +"dataloader@npm:^2.0.0, dataloader@npm:^2.2.3": + version: 2.2.3 + resolution: "dataloader@npm:2.2.3" + checksum: 10/83fe6259abe00ae64c5f48252ef59d8e5fcabda9fd4d26685f14a76eeca596bf6f9500d9f22a0094c50c3ea782a0977728f9367e232dfa0fdb5c9d646de279b2 + languageName: node + linkType: hard + +"date-fns@npm:^2.16.1": + version: 2.30.0 + resolution: "date-fns@npm:2.30.0" + dependencies: + "@babel/runtime": "npm:^7.21.0" + checksum: 10/70b3e8ea7aaaaeaa2cd80bd889622a4bcb5d8028b4de9162cbcda359db06e16ff6e9309e54eead5341e71031818497f19aaf9839c87d1aba1e27bb4796e758a9 + languageName: node + linkType: hard + +"date-format@npm:^4.0.14": + version: 4.0.14 + resolution: "date-format@npm:4.0.14" + checksum: 10/6b07fd1df247439c53b71244e3468b93e6dfebb5d409b9328dd7b7e9ed0d2e875018e20fb1a95ae6b677dea708ec06aaa5058a7a5faa1a7f649338aabf04991a + languageName: node + linkType: hard + +"dateformat@npm:^3.0.3": + version: 3.0.3 + resolution: "dateformat@npm:3.0.3" + checksum: 10/0504baf50c3777ad333c96c37d1673d67efcb7dd071563832f70b5cbf7f3f4753f18981d44bfd8f665d5e5a511d2fc0af8e0ead8b585b9b3ddaa90067864d3f0 + languageName: node + linkType: hard + +"debounce-promise@npm:^3.1.2": + version: 3.1.2 + resolution: "debounce-promise@npm:3.1.2" + checksum: 10/9a06b4f4674abf92ccda608510ba896f1a6f25c594d6288b787f40e99de836461ad8122f6cd8ce335816b693a678dfb37b7470961888ea4b08863208f3eea348 + languageName: node + linkType: hard + +"debounce@npm:^1.2.0": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 10/0b95b2a9d80ed69117d890f8dab8c0f2d6066f8d20edd1d810ae51f8f366a6d4c8b1d56e97dcb9304e93d57de4d5db440d34a03def7dad50403fc3f22bf16808 + languageName: node + linkType: hard + +"debug@npm:2.6.9, debug@npm:^2.6.0": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: "npm:2.0.0" + checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 + languageName: node + linkType: hard + +"debug@npm:4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/0073c3bcbd9cb7d71dd5f6b55be8701af42df3e56e911186dfa46fac3a5b9eb7ce7f377dd1d3be6db8977221f8eb333d945216f645cf56f6b688cd484837d255 + languageName: node + linkType: hard + +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: "npm:^2.1.1" + checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639 + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.2, decimal.js@npm:^10.4.3": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 10/de663a7bc4d368e3877db95fcd5c87b965569b58d16cdc4258c063d231ca7118748738df17cd638f7e9dd0be8e34cec08d7234b20f1f2a756a52fc5a38b188d0 + languageName: node + linkType: hard + +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: "npm:^2.0.0" + checksum: 10/f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + languageName: node + linkType: hard + +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: "npm:^3.1.0" + checksum: 10/d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + +"dedent@npm:^1.0.0": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 10/e5277f6268f288649503125b781a7b7a2c9b22d011139688c0b3619fe40121e600eb1f077c891938d4b2428bdb6326cc3c77a763e4b1cc681bd9666ab1bad2a1 + languageName: node + linkType: hard + +"deep-equal@npm:^2.0.5": + version: 2.2.3 + resolution: "deep-equal@npm:2.2.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.0" + call-bind: "npm:^1.0.5" + es-get-iterator: "npm:^1.1.3" + get-intrinsic: "npm:^1.2.2" + is-arguments: "npm:^1.1.1" + is-array-buffer: "npm:^3.0.2" + is-date-object: "npm:^1.0.5" + is-regex: "npm:^1.1.4" + is-shared-array-buffer: "npm:^1.0.2" + isarray: "npm:^2.0.5" + object-is: "npm:^1.1.5" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.4" + regexp.prototype.flags: "npm:^1.5.1" + side-channel: "npm:^1.0.4" + which-boxed-primitive: "npm:^1.0.2" + which-collection: "npm:^1.0.1" + which-typed-array: "npm:^1.1.13" + checksum: 10/1ce49d0b71d0f14d8ef991a742665eccd488dfc9b3cada069d4d7a86291e591c92d2589c832811dea182b4015736b210acaaebce6184be356c1060d176f5a05f + languageName: node + linkType: hard + +"deep-equal@npm:~1.0.1": + version: 1.0.1 + resolution: "deep-equal@npm:1.0.1" + checksum: 10/cbecc071afb2891334ced9e9de5834889b9a9992ae8d8369b7eb74c513529eb6d1f6c04d4e2b5f34d8386f7816cd7a6cda45edff847695faea45e43c23973f45 + languageName: node + linkType: hard + +"deep-extend@npm:0.6.0, deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 10/7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: 10/ec12d074aef5ae5e81fa470b9317c313142c9e8e2afe3f8efa124db309720db96d1d222b82b84c834e5f87e7a614b44a4684b6683583118b87c833b3be40d4d8 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1, deepmerge@npm:~4.3.0": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529 + languageName: node + linkType: hard + +"default-browser-id@npm:^5.0.0": + version: 5.0.0 + resolution: "default-browser-id@npm:5.0.0" + checksum: 10/185bfaecec2c75fa423544af722a3469b20704c8d1942794a86e4364fe7d9e8e9f63241a5b769d61c8151993bc65833a5b959026fa1ccea343b3db0a33aa6deb + languageName: node + linkType: hard + +"default-browser@npm:^5.2.1": + version: 5.2.1 + resolution: "default-browser@npm:5.2.1" + dependencies: + bundle-name: "npm:^4.1.0" + default-browser-id: "npm:^5.0.0" + checksum: 10/afab7eff7b7f5f7a94d9114d1ec67273d3fbc539edf8c0f80019879d53aa71e867303c6f6d7cffeb10a6f3cfb59d4f963dba3f9c96830b4540cc7339a1bf9840 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: "npm:^1.0.2" + checksum: 10/3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae + languageName: node + linkType: hard + +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 10/0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 + languageName: node + linkType: hard + +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 10/f28421cf9ee86eecaf5f3b8fe875f13d7009c2625e97645bfff7a2a49aca678270b86c39f9c32939e5ca7ab96b551377ed4139558c795e076774287ad3af1aa4 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + object-keys: "npm:^1.1.1" + checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + +"degenerator@npm:^5.0.0": + version: 5.0.1 + resolution: "degenerator@npm:5.0.1" + dependencies: + ast-types: "npm:^0.13.4" + escodegen: "npm:^2.1.0" + esprima: "npm:^4.0.1" + checksum: 10/a64fa39cdf6c2edd75188157d32338ee9de7193d7dbb2aeb4acb1eb30fa4a15ed80ba8dae9bd4d7b085472cf174a5baf81adb761aaa8e326771392c922084152 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10/46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: 10/a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"denque@npm:^2.1.0": + version: 2.1.0 + resolution: "denque@npm:2.1.0" + checksum: 10/8ea05321576624b90acfc1ee9208b8d1d04b425cf7573b9b4fa40a2c3ed4d4b0af5190567858f532f677ed2003d4d2b73c8130b34e3c7b8d5e88cdcfbfaa1fe7 + languageName: node + linkType: hard + +"depd@npm:2.0.0, depd@npm:^2.0.0, depd@npm:~2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca + languageName: node + linkType: hard + +"depd@npm:~1.1.2": + version: 1.1.2 + resolution: "depd@npm:1.1.2" + checksum: 10/2ed6966fc14463a9e85451db330ab8ba041efed0b9a1a472dbfc6fbf2f82bab66491915f996b25d8517dddc36c8c74e24c30879b34877f3c4410733444a51d1d + languageName: node + linkType: hard + +"dependency-graph@npm:0.11.0, dependency-graph@npm:~0.11.0": + version: 0.11.0 + resolution: "dependency-graph@npm:0.11.0" + checksum: 10/6b5eb540303753037a613e781da4b81534d139cbabc92f342630ed622e3ef4c332fc40cf87823e1ec71a7aeb4b195f8d88d7e625931ce6007bf2bf09a8bfb01e + languageName: node + linkType: hard + +"deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": + version: 2.3.1 + resolution: "deprecation@npm:2.3.1" + checksum: 10/f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 + languageName: node + linkType: hard + +"dequal@npm:^2.0.0, dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10/6ff05a7561f33603df87c45e389c9ac0a95e3c056be3da1a0c4702149e3a7f6fe5ffbb294478687ba51a9e95f3a60e8b6b9005993acd79c292c7d15f71964b6b + languageName: node + linkType: hard + +"des.js@npm:^1.0.0": + version: 1.1.0 + resolution: "des.js@npm:1.1.0" + dependencies: + inherits: "npm:^2.0.1" + minimalistic-assert: "npm:^1.0.0" + checksum: 10/d35fc82b5a0b2127b12699212e90b54ddd8134e0cf8d27a8c30507ed3572aa574ab71800cbb473769128a52dcf21acc3271c5c359508a5aa772e990df3b1a698 + languageName: node + linkType: hard + +"destroy@npm:1.2.0, destroy@npm:^1.0.4": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + +"destroyable-server@npm:^1.0.2": + version: 1.0.2 + resolution: "destroyable-server@npm:1.0.2" + dependencies: + "@types/node": "npm:*" + checksum: 10/c93c7651dac530bf9dd4263eab59f5724a2453dc35658d98e3707c4c9171d8496ef404655852bef257586b31850f4f6730397bc5ff496ed799352660b0495a0a + languageName: node + linkType: hard + +"detect-indent@npm:^6.0.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d + languageName: node + linkType: hard + +"detect-libc@npm:^2.0.0": + version: 2.0.3 + resolution: "detect-libc@npm:2.0.3" + checksum: 10/b4ea018d623e077bd395f168a9e81db77370dde36a5b01d067f2ad7989924a81d31cb547ff764acb2aa25d50bb7fdde0b0a93bec02212b0cb430621623246d39 + languageName: node + linkType: hard + +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: 10/ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 + languageName: node + linkType: hard + +"detect-node-es@npm:^1.1.0": + version: 1.1.0 + resolution: "detect-node-es@npm:1.1.0" + checksum: 10/e46307d7264644975b71c104b9f028ed1d3d34b83a15b8a22373640ce5ea630e5640b1078b8ea15f202b54641da71e4aa7597093bd4b91f113db520a26a37449 + languageName: node + linkType: hard + +"detect-node@npm:^2.0.4": + version: 2.1.0 + resolution: "detect-node@npm:2.1.0" + checksum: 10/832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e + languageName: node + linkType: hard + +"detect-port-alt@npm:^1.1.6": + version: 1.1.6 + resolution: "detect-port-alt@npm:1.1.6" + dependencies: + address: "npm:^1.0.1" + debug: "npm:^2.6.0" + bin: + detect: ./bin/detect-port + detect-port: ./bin/detect-port + checksum: 10/35c9f9c69d12d2ca43d093f4f02d7763b47673910749bd12e6fedeb0ab5c546d27ab8e6425a9cbc65edd408490241390a8e680e8ec7e13940e84754ad81d632e + languageName: node + linkType: hard + +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: 10/179daf9d2f9af5c57ad66d97cb902a538bcf8ed64963fa7aa0c329b3de3665ce2eb6ffdc2f69f29d445fa4af2517e5e55e5b6e00c00a9ae4f43645f97f7078cb + languageName: node + linkType: hard + +"diff3@npm:0.0.3": + version: 0.0.3 + resolution: "diff3@npm:0.0.3" + checksum: 10/9fb9983052e35209be1912c6999ee4aa1887365666ea28d5aba364ffe8514e0a745a4408a3702b5c5943e717571dcc892073b8f3b48fed5814e2c7fc1883f74e + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: 10/ec09ec2101934ca5966355a229d77afcad5911c92e2a77413efda5455636c4cf2ce84057e2d7715227a2eeeda04255b849bd3ae3a4dd22eb22e86e76456df069 + languageName: node + linkType: hard + +"diff@npm:^5.0.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 10/01b7b440f83a997350a988e9d2f558366c0f90f15be19f4aa7f1bb3109a4e153dfc3b9fbf78e14ea725717017407eeaa2271e3896374a0181e8f52445740846d + languageName: node + linkType: hard + +"diffie-hellman@npm:^5.0.3": + version: 5.0.3 + resolution: "diffie-hellman@npm:5.0.3" + dependencies: + bn.js: "npm:^4.1.0" + miller-rabin: "npm:^4.0.0" + randombytes: "npm:^2.0.0" + checksum: 10/2ff28231f93b27a4903461432d2de831df02e3568ea7633d5d7b6167eb73077f823b2bca26de6ba4f5c7ecd10a3df5aa94d376d136ab6209948c03cc4e4ac1fe + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: "npm:^4.0.0" + checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"discontinuous-range@npm:1.0.0": + version: 1.0.0 + resolution: "discontinuous-range@npm:1.0.0" + checksum: 10/3c1716c6f107e80082600ac57648b49baa9aa60f71a442dadbaf66179610e239ed95ba96ff6080bc7845ea027ffe9176e22e94a04ff275a7dd5c30e2aece4cba + languageName: node + linkType: hard + +"dns-packet@npm:^5.2.2": + version: 5.6.1 + resolution: "dns-packet@npm:5.6.1" + dependencies: + "@leichtgewicht/ip-codec": "npm:^2.0.1" + checksum: 10/ef5496dd5a906e22ed262cbe1a6f5d532c0893c4f1884a7aa37d4d0d8b8376a2b43f749aab087c8bb1354d67b40444f7fca8de4017b161a4cea468543061aed3 + languageName: node + linkType: hard + +"docker-compose@npm:^0.24.8": + version: 0.24.8 + resolution: "docker-compose@npm:0.24.8" + dependencies: + yaml: "npm:^2.2.2" + checksum: 10/2b8526f9797a55c819ff2d7dcea57085b012b3a3d77bc2e1a6b45c3fc9e82196312f5298cbe8299966462454a5ac8f68814bb407736b4385e0d226a2a39e877a + languageName: node + linkType: hard + +"docker-modem@npm:^3.0.0": + version: 3.0.8 + resolution: "docker-modem@npm:3.0.8" + dependencies: + debug: "npm:^4.1.1" + readable-stream: "npm:^3.5.0" + split-ca: "npm:^1.0.1" + ssh2: "npm:^1.11.0" + checksum: 10/a731d057b3da5a9da3dd9aff7e25bc33f2d29f3e0af947bd823d1361350071afb5b7cb0582af5bf012b08fca356520685bcff87bfcba08e85725576b32f264a2 + languageName: node + linkType: hard + +"docker-modem@npm:^5.0.6": + version: 5.0.6 + resolution: "docker-modem@npm:5.0.6" + dependencies: + debug: "npm:^4.1.1" + readable-stream: "npm:^3.5.0" + split-ca: "npm:^1.0.1" + ssh2: "npm:^1.15.0" + checksum: 10/4977797814c29205f0762215f2e3e26600986bb65139018ff6840ff4c596e5d19f3002be1abcc5e73e3828870bb73bab28275a6458ad027ed56ab61fca014b6d + languageName: node + linkType: hard + +"dockerode@npm:^3.3.1, dockerode@npm:^3.3.5": + version: 3.3.5 + resolution: "dockerode@npm:3.3.5" + dependencies: + "@balena/dockerignore": "npm:^1.0.2" + docker-modem: "npm:^3.0.0" + tar-fs: "npm:~2.0.1" + checksum: 10/1748e8d96f88fe71bb165a4c05726904937f5863b69eaeb4a3c1bb3bbf66940c7bef13b349ff757dc43664b4367611aab76f35c1ba468f07dcbaba567e6acd88 + languageName: node + linkType: hard + +"dockerode@npm:^4.0.0": + version: 4.0.4 + resolution: "dockerode@npm:4.0.4" + dependencies: + "@balena/dockerignore": "npm:^1.0.2" + "@grpc/grpc-js": "npm:^1.11.1" + "@grpc/proto-loader": "npm:^0.7.13" + docker-modem: "npm:^5.0.6" + protobufjs: "npm:^7.3.2" + tar-fs: "npm:~2.0.1" + uuid: "npm:^10.0.0" + checksum: 10/db2304e6125d0c4246833eaa6a389497c98564ba2ed18fa465eace1b6eb6c2a41f1711fc1e57cd2fc0f7ca6be80eeca43b0c35cd6b86205e34faf9acb0f72bcc + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10/555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48 + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 10/377b4a7f9eae0a5d72e1068c369c99e0e4ca17fdfd5219f3abd32a73a590749a267475a59d7b03a891f9b673c27429133a818c44b2e47e32fec024b34274e2ca + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: 10/83d3371f8226487fbad36e160d44f1d9017fb26d46faba6a06fcad15f34633fc827b8c3e99d49f71d5f3253d866e2131826866fd0a3c86626f8eccfc361881ff + languageName: node + linkType: hard + +"dom-converter@npm:^0.2.0": + version: 0.2.0 + resolution: "dom-converter@npm:0.2.0" + dependencies: + utila: "npm:~0.4" + checksum: 10/71b22f56bce6255a963694a72860a99f08763cf500f02ff38ce4c7489f95b07e7a0069f10b04c7d200e21375474abe01232833ca1600f104bdee7173e493a5b9 + languageName: node + linkType: hard + +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": "npm:^7.8.7" + csstype: "npm:^3.0.2" + checksum: 10/bed2341adf8864bf932b3289c24f35fdd99930af77df46688abf2d753ff291df49a15850c874d686d9be6ec4e1c6835673906e64dbd8b2839d227f117a11fd41 + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.2.0" + entities: "npm:^2.0.0" + checksum: 10/53b217bcfed4a0f90dd47f34f239b1c81fff53ffa39d164d722325817fdb554903b145c2d12c8421ce0df7d31c1b180caf7eacd3c86391dd925f803df8027dcc + languageName: node + linkType: hard + +"domain-browser@npm:^1.1.1": + version: 1.2.0 + resolution: "domain-browser@npm:1.2.0" + checksum: 10/3f339b1be9a22135d66fe12398d788ff35ba936c924b1b201b27ef221c1381790454fffc028fe01b69a434c60fdae4082005a4d43b40c32c47d0b0e71874f944 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: 10/ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: "npm:^7.0.0" + checksum: 10/4ed443227d2871d76c58d852b2e93c68e0443815b2741348f20881bedee8c1ad4f9bfc5d30c7dec433cd026b57da63407c010260b1682fef4c8847e7181ea43f + languageName: node + linkType: hard + +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: "npm:^2.2.0" + checksum: 10/e0d2af7403997a3ca040a9ace4a233b75ebe321e0ef628b417e46d619d65d47781b2f2038b6c2ef6e56e73e66aec99caf6a12c7e687ecff18ef74af6dfbde5de + languageName: node + linkType: hard + +"dompurify@npm:=3.1.6": + version: 3.1.6 + resolution: "dompurify@npm:3.1.6" + checksum: 10/036844bc9b717b172ba27f5863b56f950289a05d8eebfb702d6953bbf80bd021e480ce4217bd084567186f2d0ada13358ce5556963492cfe402d774e8667f120 + languageName: node + linkType: hard + +"dompurify@npm:^2.5.4": + version: 2.5.8 + resolution: "dompurify@npm:2.5.8" + checksum: 10/d1b7653abe9cbe81c7c5af3effb0c0fbc784f06df433b48149f4962b1931487b884ce5b9c5950b7c0b749878748758810965439251e9f6baee3a15de6b9f0411 + languageName: node + linkType: hard + +"dompurify@npm:^3.0.0, dompurify@npm:^3.2.3": + version: 3.2.3 + resolution: "dompurify@npm:3.2.3" + dependencies: + "@types/trusted-types": "npm:^2.0.7" + dependenciesMeta: + "@types/trusted-types": + optional: true + checksum: 10/aad472bcdff40afdbb307fd02abbca86acefee9c39cb35e9634ebbc5e047750a7eeb021b02cd66894d60cf75ad021f69394de2e9e8786b0dd91c5832f497a9af + languageName: node + linkType: hard + +"domutils@npm:^2.5.2, domutils@npm:^2.8.0": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: "npm:^1.0.1" + domelementtype: "npm:^2.2.0" + domhandler: "npm:^4.2.0" + checksum: 10/1f316a03f00b09a8893d4a25d297d5cbffd02c564509dede28ef72d5ce38d93f6d61f1de88d439f31b14a1d9b42f587ed711b9e8b1b4d3bf6001399832bfc4e0 + languageName: node + linkType: hard + +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10/a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + +"drange@npm:^1.0.2": + version: 1.1.1 + resolution: "drange@npm:1.1.1" + checksum: 10/7e6ed639f9ab4d826e79717e2b0685a7ab02ecd39dac6483305dcc43ea2a27dc78b538e10adaba35c086efab216ef1f53f22bc402abfd0d29454b1c5f48fecd1 + languageName: node + linkType: hard + +"dset@npm:^3.1.2, dset@npm:^3.1.4": + version: 3.1.4 + resolution: "dset@npm:3.1.4" + checksum: 10/6268c9e2049c8effe6e5a1952f02826e8e32468b5ced781f15f8f3b1c290da37626246fec014fbdd1503413f981dff6abd8a4c718ec9952fd45fccb6ac9de43f + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10/5add88a3d68d42d6e6130a0cac450b7c2edbe73364bbd2fc334564418569bea97c6943a8fcd70e27130bf32afc236f30982fc4905039b703f23e9e0433c29934 + languageName: node + linkType: hard + +"duplexer@npm:^0.1.2": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 10/62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 + languageName: node + linkType: hard + +"duplexify@npm:^3.5.1": + version: 3.7.1 + resolution: "duplexify@npm:3.7.1" + dependencies: + end-of-stream: "npm:^1.0.0" + inherits: "npm:^2.0.1" + readable-stream: "npm:^2.0.0" + stream-shift: "npm:^1.0.0" + checksum: 10/7799984d178fb57e11c43f5f172a10f795322ec85ff664c2a98d2c2de6deeb9d7a30b810f83923dcd7ebe0f1786724b8aee2b62ca4577522141f93d6d48fb31c + languageName: node + linkType: hard + +"duplexify@npm:^4.0.0, duplexify@npm:^4.1.3": + version: 4.1.3 + resolution: "duplexify@npm:4.1.3" + dependencies: + end-of-stream: "npm:^1.4.1" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.1.1" + stream-shift: "npm:^1.0.2" + checksum: 10/b44b98ba0ffac3a658b4b1bf877219e996db288c5ae6f3dc55ca9b2cbef7df60c10eabfdd947f3d73a623eb9975a74a66d6d61e6f26bff90155315adb362aa77 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10/9b1d3e1baefeaf7d70799db8774149cef33b97183a6addceeba0cf6b85ba23ee2686f302f14482006df32df75d32b17c509c143a3689627929e4a8efaf483952 + languageName: node + linkType: hard + +"easy-table@npm:1.1.0": + version: 1.1.0 + resolution: "easy-table@npm:1.1.0" + dependencies: + wcwidth: "npm:>=1.0.1" + dependenciesMeta: + wcwidth: + optional: true + checksum: 10/f01fde1162c41ad770e0067c6a732d9bad9edf542d79306ed08509e4f829dd9b18e98b7e25b065ea7e5e5de67f4ff3a4331e3f8c384b17b82c4869b58bb81307 + languageName: node + linkType: hard + +"easy-table@npm:1.2.0": + version: 1.2.0 + resolution: "easy-table@npm:1.2.0" + dependencies: + ansi-regex: "npm:^5.0.1" + wcwidth: "npm:^1.0.1" + dependenciesMeta: + wcwidth: + optional: true + checksum: 10/0d1be7cd9419cd1b56ca5a978646b3cff241ccd8cf95bdb2742f36854084b3aef2e9af6ec14142855aa80e4cab1f4baad0f610a99c77509f23676b8330730177 + languageName: node + linkType: hard + +"ebnf@npm:^1.9.1": + version: 1.9.1 + resolution: "ebnf@npm:1.9.1" + bin: + ebnf: dist/bin.js + checksum: 10/d23fff8d070b6f5a70cf64d7a84a0b8d6cdaaa85599fa401be2036acc47612626ed997a1106399d85d57888769db446dc330b3c8f7bdc255ec5836df19826425 + languageName: node + linkType: hard + +"ecc-jsbn@npm:~0.1.1": + version: 0.1.2 + resolution: "ecc-jsbn@npm:0.1.2" + dependencies: + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.1.0" + checksum: 10/d43591f2396196266e186e6d6928038cc11c76c3699a912cb9c13757060f7bbc7f17f47c4cb16168cdeacffc7965aef021142577e646fb3cb88810c15173eb57 + languageName: node + linkType: hard + +"ecdsa-sig-formatter@npm:1.0.11, ecdsa-sig-formatter@npm:^1.0.11": + version: 1.0.11 + resolution: "ecdsa-sig-formatter@npm:1.0.11" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10/878e1aab8a42773320bc04c6de420bee21aebd71810e40b1799880a8a1c4594bcd6adc3d4213a0fb8147d4c3f529d8f9a618d7f59ad5a9a41b142058aceda23f + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.73": + version: 1.5.86 + resolution: "electron-to-chromium@npm:1.5.86" + checksum: 10/e1f03f4d61a250cc1755a1266d42514cbabc22b9b7e53171f55431368e4d254764563ce656bf77a4b22398455cbf225711ba7124fdebb354361ccc6af8878ff5 + languageName: node + linkType: hard + +"elliptic@npm:^6.5.3, elliptic@npm:^6.5.5": + version: 6.6.1 + resolution: "elliptic@npm:6.6.1" + dependencies: + bn.js: "npm:^4.11.9" + brorand: "npm:^1.1.0" + hash.js: "npm:^1.0.0" + hmac-drbg: "npm:^1.0.1" + inherits: "npm:^2.0.4" + minimalistic-assert: "npm:^1.0.1" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10/dc678c9febd89a219c4008ba3a9abb82237be853d9fd171cd602c8fb5ec39927e65c6b5e7a1b2a4ea82ee8e0ded72275e7932bb2da04a5790c2638b818e4e1c5 + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 10/fbe214171d878b924eedf1757badf58a5dce071cd1fa7f620fa841a0901a80d6da47ff05929d53163105e621ce11a71b9d8acb1148ffe1745e045145f6e69521 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10/c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10/915acf859cea7131dac1b2b5c9c8e35c4849e325a1d114c30adb8cd615970f6dca0e27f64f3a4949d7d6ed86ecd79a1c5c63f02e697513cddd7b5835c90948b8 + languageName: node + linkType: hard + +"emojis-list@npm:^3.0.0": + version: 3.0.0 + resolution: "emojis-list@npm:3.0.0" + checksum: 10/114f47d6d45612621497d2b1556c8f142c35332a591780a54e863e42d281e72d6c7d7c419f2e419319d4eb7f6ebf1db82d9744905d90f275db20d06a763b5e19 + languageName: node + linkType: hard + +"enabled@npm:2.0.x": + version: 2.0.0 + resolution: "enabled@npm:2.0.0" + checksum: 10/9d256d89f4e8a46ff988c6a79b22fa814b4ffd82826c4fdacd9b42e9b9465709d3b748866d0ab4d442dfc6002d81de7f7b384146ccd1681f6a7f868d2acca063 + languageName: node + linkType: hard + +"encodeurl@npm:^1.0.2, encodeurl@npm:~1.0.2": + version: 1.0.2 + resolution: "encodeurl@npm:1.0.2" + checksum: 10/e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c + languageName: node + linkType: hard + +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10/abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10/530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + +"enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.18.0": + version: 5.18.0 + resolution: "enhanced-resolve@npm:5.18.0" + dependencies: + graceful-fs: "npm:^4.2.4" + tapable: "npm:^2.2.0" + checksum: 10/e88463ef97b68d40d0da0cd0c572e23f43dba0be622d6d44eae5cafed05f0c5dac43e463a83a86c4f70186d029357f82b56d9e1e47e8fc91dce3d6602f8bd6ce + languageName: node + linkType: hard + +"enquirer@npm:^2.4.1": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 10/b3726486cd98f0d458a851a03326a2a5dd4d84f37ff94ff2a2960c915e0fc865865da3b78f0877dc36ac5c1189069eca603e82ec63d5bc6b0dd9985bf6426d7a + languageName: node + linkType: hard + +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 10/2c765221ee324dbe25e1b8ca5d1bf2a4d39e750548f2e85cbf7ca1d167d709689ddf1796623e66666ae747364c11ed512c03b48c5bbe70968d30f2a4009509b7 + languageName: node + linkType: hard + +"entities@npm:^4.4.0, entities@npm:^4.5.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 10/ede2a35c9bce1aeccd055a1b445d41c75a14a2bb1cd22e242f20cf04d236cdcd7f9c859eb83f76885327bfae0c25bf03303665ee1ce3d47c5927b98b0e3e3d48 + languageName: node + linkType: hard + +"entities@npm:~2.1.0": + version: 2.1.0 + resolution: "entities@npm:2.1.0" + checksum: 10/fe71642e42e108540b0324dea03e00f3dbad93617c601bfcf292c3f852c236af3e58469219c4653f6f05df781a446f3b82105b8d26b936d0fa246b0103f2f951 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10/1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: "npm:^0.2.1" + checksum: 10/d547740aa29c34e753fb6fed2c5de81802438529c12b3673bd37b6bb1fe49b9b7abdc3c11e6062fe625d8a296b3cf769a80f878865e25e685f787763eede3ffb + languageName: node + linkType: hard + +"error-stack-parser@npm:^2.0.6": + version: 2.1.4 + resolution: "error-stack-parser@npm:2.1.4" + dependencies: + stackframe: "npm:^1.3.4" + checksum: 10/23db33135bfc6ba701e5eee45e1bb9bd2fe33c5d4f9927440d9a499c7ac538f91f455fcd878611361269893c56734419252c40d8105eb3b023cf8b0fc2ebb64e + languageName: node + linkType: hard + +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": + version: 1.23.9 + resolution: "es-abstract@npm:1.23.9" + dependencies: + array-buffer-byte-length: "npm:^1.0.2" + arraybuffer.prototype.slice: "npm:^1.0.4" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + data-view-buffer: "npm:^1.0.2" + data-view-byte-length: "npm:^1.0.2" + data-view-byte-offset: "npm:^1.0.1" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-set-tostringtag: "npm:^2.1.0" + es-to-primitive: "npm:^1.3.0" + function.prototype.name: "npm:^1.1.8" + get-intrinsic: "npm:^1.2.7" + get-proto: "npm:^1.0.0" + get-symbol-description: "npm:^1.1.0" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.1.0" + is-array-buffer: "npm:^3.0.5" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.2" + is-regex: "npm:^1.2.1" + is-shared-array-buffer: "npm:^1.0.4" + is-string: "npm:^1.1.1" + is-typed-array: "npm:^1.1.15" + is-weakref: "npm:^1.1.0" + math-intrinsics: "npm:^1.1.0" + object-inspect: "npm:^1.13.3" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.7" + own-keys: "npm:^1.0.1" + regexp.prototype.flags: "npm:^1.5.3" + safe-array-concat: "npm:^1.1.3" + safe-push-apply: "npm:^1.0.0" + safe-regex-test: "npm:^1.1.0" + set-proto: "npm:^1.0.0" + string.prototype.trim: "npm:^1.2.10" + string.prototype.trimend: "npm:^1.0.9" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.3" + typed-array-byte-length: "npm:^1.0.3" + typed-array-byte-offset: "npm:^1.0.4" + typed-array-length: "npm:^1.0.7" + unbox-primitive: "npm:^1.1.0" + which-typed-array: "npm:^1.1.18" + checksum: 10/31a321966d760d88fc2ed984104841b42f4f24fc322b246002b9be0af162e03803ee41fcc3cf8be89e07a27ba3033168f877dd983703cb81422ffe5322a27582 + languageName: node + linkType: hard + +"es-aggregate-error@npm:^1.0.7": + version: 1.0.13 + resolution: "es-aggregate-error@npm:1.0.13" + dependencies: + define-data-property: "npm:^1.1.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + globalthis: "npm:^1.0.3" + has-property-descriptors: "npm:^1.0.2" + set-function-name: "npm:^2.0.2" + checksum: 10/c3cde5768dc3b0610ecf973583bf3359313db14bd1e0e4a11afa80cb7dbc8164a224db77e9a9c3fd5b0be661797117d141e4ae6021d1bd28f4c3614ea9c74936 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10/f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 + languageName: node + linkType: hard + +"es-get-iterator@npm:^1.1.3": + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" + dependencies: + call-bind: "npm:^1.0.2" + get-intrinsic: "npm:^1.1.3" + has-symbols: "npm:^1.0.3" + is-arguments: "npm:^1.1.1" + is-map: "npm:^2.0.2" + is-set: "npm:^2.0.2" + is-string: "npm:^1.0.7" + isarray: "npm:^2.0.5" + stop-iteration-iterator: "npm:^1.0.0" + checksum: 10/bc2194befbe55725f9489098626479deee3c801eda7e83ce0dff2eb266a28dc808edb9b623ff01d31ebc1328f09d661333d86b601036692c2e3c1a6942319433 + languageName: node + linkType: hard + +"es-iterator-helpers@npm:^1.2.1": + version: 1.2.1 + resolution: "es-iterator-helpers@npm:1.2.1" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.6" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.0.3" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.6" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + iterator.prototype: "npm:^1.1.4" + safe-array-concat: "npm:^1.1.3" + checksum: 10/802e0e8427a05ff4a5b0c70c7fdaaeff37cdb81a28694aeb7bfb831c6ab340d8f3deeb67b96732ff9e9699ea240524d5ea8a9a6a335fcd15aa3983b27b06113f + languageName: node + linkType: hard + +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.3.1": + version: 1.6.0 + resolution: "es-module-lexer@npm:1.6.0" + checksum: 10/807ee7020cc46a9c970c78cad1f2f3fc139877e5ebad7f66dbfbb124d451189ba1c48c1c632bd5f8ce1b8af2caef3fca340ba044a410fa890d17b080a59024bb + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10/54fe77de288451dae51c37bfbfe3ec86732dc3778f98f3eb3bdb4bf48063b2c0b8f9c93542656986149d08aa5be3204286e2276053d19582b76753f1a2728867 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" + dependencies: + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/86814bf8afbcd8966653f731415888019d4bc4aca6b6c354132a7a75bb87566751e320369654a101d23a91c87a85c79b178bcf40332839bd347aff437c4fb65f + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.2": + version: 1.0.2 + resolution: "es-shim-unscopables@npm:1.0.2" + dependencies: + hasown: "npm:^2.0.0" + checksum: 10/6d3bf91f658a27cc7217cd32b407a0d714393a84d125ad576319b9e83a893bea165cf41270c29e9ceaa56d3cf41608945d7e2a2c31fd51c0009b0c31402b91c7 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" + dependencies: + is-callable: "npm:^1.2.7" + is-date-object: "npm:^1.0.5" + is-symbol: "npm:^1.0.4" + checksum: 10/17faf35c221aad59a16286cbf58ef6f080bf3c485dff202c490d074d8e74da07884e29b852c245d894eac84f73c58330ec956dfd6d02c0b449d75eb1012a3f9b + languageName: node + linkType: hard + +"es6-error@npm:^4.1.1": + version: 4.1.1 + resolution: "es6-error@npm:4.1.1" + checksum: 10/48483c25701dc5a6376f39bbe2eaf5da0b505607ec5a98cd3ade472c1939242156660636e2e508b33211e48e88b132d245341595c067bd4a95ac79fa7134da06 + languageName: node + linkType: hard + +"esbuild-loader@npm:^4.0.0": + version: 4.2.2 + resolution: "esbuild-loader@npm:4.2.2" + dependencies: + esbuild: "npm:^0.21.0" + get-tsconfig: "npm:^4.7.0" + loader-utils: "npm:^2.0.4" + webpack-sources: "npm:^1.4.3" + peerDependencies: + webpack: ^4.40.0 || ^5.0.0 + checksum: 10/235d06c60e26827333c3c66df6e2f13fef31e1b84b8310ba36ebdb6aaa31abdf7628a940326e4923824cdb501c8ce6a6e9129c4e465daaeab112f0b5db3423f4 + languageName: node + linkType: hard + +"esbuild@npm:^0.21.0": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b + languageName: node + linkType: hard + +"esbuild@npm:^0.24.0": + version: 0.24.2 + resolution: "esbuild@npm:0.24.2" + dependencies: + "@esbuild/aix-ppc64": "npm:0.24.2" + "@esbuild/android-arm": "npm:0.24.2" + "@esbuild/android-arm64": "npm:0.24.2" + "@esbuild/android-x64": "npm:0.24.2" + "@esbuild/darwin-arm64": "npm:0.24.2" + "@esbuild/darwin-x64": "npm:0.24.2" + "@esbuild/freebsd-arm64": "npm:0.24.2" + "@esbuild/freebsd-x64": "npm:0.24.2" + "@esbuild/linux-arm": "npm:0.24.2" + "@esbuild/linux-arm64": "npm:0.24.2" + "@esbuild/linux-ia32": "npm:0.24.2" + "@esbuild/linux-loong64": "npm:0.24.2" + "@esbuild/linux-mips64el": "npm:0.24.2" + "@esbuild/linux-ppc64": "npm:0.24.2" + "@esbuild/linux-riscv64": "npm:0.24.2" + "@esbuild/linux-s390x": "npm:0.24.2" + "@esbuild/linux-x64": "npm:0.24.2" + "@esbuild/netbsd-arm64": "npm:0.24.2" + "@esbuild/netbsd-x64": "npm:0.24.2" + "@esbuild/openbsd-arm64": "npm:0.24.2" + "@esbuild/openbsd-x64": "npm:0.24.2" + "@esbuild/sunos-x64": "npm:0.24.2" + "@esbuild/win32-arm64": "npm:0.24.2" + "@esbuild/win32-ia32": "npm:0.24.2" + "@esbuild/win32-x64": "npm:0.24.2" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/95425071c9f24ff88bf61e0710b636ec0eb24ddf8bd1f7e1edef3044e1221104bbfa7bbb31c18018c8c36fa7902c5c0b843f829b981ebc89160cf5eebdaa58f4 + languageName: node + linkType: hard + +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6 + languageName: node + linkType: hard + +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 10/9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 10/20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + +"escodegen@npm:^1.8.1": + version: 1.14.3 + resolution: "escodegen@npm:1.14.3" + dependencies: + esprima: "npm:^4.0.1" + estraverse: "npm:^4.2.0" + esutils: "npm:^2.0.2" + optionator: "npm:^0.8.1" + source-map: "npm:~0.6.1" + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 10/70f095ca9393535f9f1c145ef99dc0b3ff14cca6bc4a79d90ff3352f90c3f2e07f75af6d6c05174ea67c45271f75e80dd440dd7d04ed2cf44c9452c3042fa84a + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: "npm:^4.0.1" + estraverse: "npm:^5.2.0" + esutils: "npm:^2.0.2" + source-map: "npm:~0.6.1" + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 10/47719a65b2888b4586e3fa93769068b275961c13089e90d5d01a96a6e8e95871b1c3893576814c8fbf08a4a31a496f37e7b2c937cf231270f4d81de012832c7c + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^9.0.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 10/411e3b3b1c7aa04e3e0f20d561271b3b909014956c4dba51c878bf1a23dbb8c800a3be235c46c4732c70827276e540b6eed4636d9b09b444fd0a8e07f0fcd830 + languageName: node + linkType: hard + +"eslint-formatter-friendly@npm:^7.0.0": + version: 7.0.0 + resolution: "eslint-formatter-friendly@npm:7.0.0" + dependencies: + "@babel/code-frame": "npm:7.0.0" + chalk: "npm:2.4.2" + extend: "npm:3.0.2" + strip-ansi: "npm:5.2.0" + text-table: "npm:0.2.0" + checksum: 10/37a383ed9ebf5027c49010a4da391d5b1d0d4b3995d5c284642cd6aabd8b2c3ffe38a8a3b963a910dcf963b56bde498614f3300d01ba9d7c609b34a6239578bf + languageName: node + linkType: hard + +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: "npm:^3.2.7" + is-core-module: "npm:^2.13.0" + resolve: "npm:^1.22.4" + checksum: 10/d52e08e1d96cf630957272e4f2644dcfb531e49dcfd1edd2e07e43369eb2ec7a7d4423d417beee613201206ff2efa4eb9a582b5825ee28802fc7c71fcd53ca83 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" + dependencies: + debug: "npm:^3.2.7" + peerDependenciesMeta: + eslint: + optional: true + checksum: 10/dd27791147eca17366afcb83f47d6825b6ce164abb256681e5de4ec1d7e87d8605641eb869298a0dbc70665e2446dbcc2f40d3e1631a9475dd64dd23d4ca5dee + languageName: node + linkType: hard + +"eslint-plugin-deprecation@npm:^3.0.0": + version: 3.0.0 + resolution: "eslint-plugin-deprecation@npm:3.0.0" + dependencies: + "@typescript-eslint/utils": "npm:^7.0.0" + ts-api-utils: "npm:^1.3.0" + tslib: "npm:^2.3.1" + peerDependencies: + eslint: ^8.0.0 + typescript: ^4.2.4 || ^5.0.0 + checksum: 10/6b13f68be641b750b1e777d4818b554efe77df9900deb3f90580455991f32bad173245f11d628690096c99a01fb71e323c694bb2093329dc16da3417d3d90627 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:^2.31.0": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" + dependencies: + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.8" + array.prototype.findlastindex: "npm:^1.2.5" + array.prototype.flat: "npm:^1.3.2" + array.prototype.flatmap: "npm:^1.3.2" + debug: "npm:^3.2.7" + doctrine: "npm:^2.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-module-utils: "npm:^2.12.0" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.15.1" + is-glob: "npm:^4.0.3" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.0" + semver: "npm:^6.3.1" + string.prototype.trimend: "npm:^1.0.8" + tsconfig-paths: "npm:^3.15.0" + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 10/6b76bd009ac2db0615d9019699d18e2a51a86cb8c1d0855a35fb1b418be23b40239e6debdc6e8c92c59f1468ed0ea8d7b85c817117a113d5cc225be8a02ad31c + languageName: node + linkType: hard + +"eslint-plugin-jest@npm:^28.9.0": + version: 28.11.0 + resolution: "eslint-plugin-jest@npm:28.11.0" + dependencies: + "@typescript-eslint/utils": "npm:^6.0.0 || ^7.0.0 || ^8.0.0" + peerDependencies: + "@typescript-eslint/eslint-plugin": ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + jest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + jest: + optional: true + checksum: 10/7f3896ec2dc03110688bb9f359a7aa1ba1a6d9a60ffbc3642361c4aaf55afcba9ce36b6609b20b1507028c2170ffe29b0f3e9cc9b7fe12fdd233740a2f9ce0a1 + languageName: node + linkType: hard + +"eslint-plugin-jsx-a11y@npm:^6.10.2": + version: 6.10.2 + resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" + dependencies: + aria-query: "npm:^5.3.2" + array-includes: "npm:^3.1.8" + array.prototype.flatmap: "npm:^1.3.2" + ast-types-flow: "npm:^0.0.8" + axe-core: "npm:^4.10.0" + axobject-query: "npm:^4.1.0" + damerau-levenshtein: "npm:^1.0.8" + emoji-regex: "npm:^9.2.2" + hasown: "npm:^2.0.2" + jsx-ast-utils: "npm:^3.3.5" + language-tags: "npm:^1.0.9" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.8" + safe-regex-test: "npm:^1.0.3" + string.prototype.includes: "npm:^2.0.1" + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: 10/388550798548d911e2286d530a29153ca00434a06fcfc0e31e0dda46a5e7960005e532fb29ce1ccbf1e394a3af3e5cf70c47ca43778861eacc5e3ed799adb79c + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^5.0.0": + version: 5.1.0 + resolution: "eslint-plugin-react-hooks@npm:5.1.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 10/b6778fd9e1940b06868921309e8b269426e17eda555816d4b71def4dcf0572de1199fdb627ac09ce42160b9569a93cd9b0fd81b740ab4df98205461c53997a43 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:^7.37.2": + version: 7.37.4 + resolution: "eslint-plugin-react@npm:7.37.4" + dependencies: + array-includes: "npm:^3.1.8" + array.prototype.findlast: "npm:^1.2.5" + array.prototype.flatmap: "npm:^1.3.3" + array.prototype.tosorted: "npm:^1.1.4" + doctrine: "npm:^2.1.0" + es-iterator-helpers: "npm:^1.2.1" + estraverse: "npm:^5.3.0" + hasown: "npm:^2.0.2" + jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" + minimatch: "npm:^3.1.2" + object.entries: "npm:^1.1.8" + object.fromentries: "npm:^2.0.8" + object.values: "npm:^1.2.1" + prop-types: "npm:^15.8.1" + resolve: "npm:^2.0.0-next.5" + semver: "npm:^6.3.1" + string.prototype.matchall: "npm:^4.0.12" + string.prototype.repeat: "npm:^1.0.0" + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 10/c538c10665c87cb90a0bcc4efe53a758570db10997d079d31474a9760116ef5584648fa22403d889ca672df8071bda10b40434ea0499e5ee8360bc5c8aba1679 + languageName: node + linkType: hard + +"eslint-plugin-unused-imports@npm:^4.1.4": + version: 4.1.4 + resolution: "eslint-plugin-unused-imports@npm:4.1.4" + peerDependencies: + "@typescript-eslint/eslint-plugin": ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + checksum: 10/8e987028ad925ce1e04c01dcae70adbf44c2878a8b15c4327b33a2861e471d7fe00f6fe213fbd2b936f3fcefc8ccabb0d778aa1d6e0e0387a3dc7fe150cd4ed4 + languageName: node + linkType: hard + +"eslint-scope@npm:5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^4.1.1" + checksum: 10/c541ef384c92eb5c999b7d3443d80195fcafb3da335500946f6db76539b87d5826c8f2e1d23bf6afc3154ba8cd7c8e566f8dc00f1eea25fdf3afc8fb9c87b238 + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 10/9651b3356b01760e586b4c631c5268c0e1a85236e3292bf754f0472f465bf9a856c0ddc261fceace155334118c0151778effafbab981413dbf9288349343fa25 + languageName: node + linkType: hard + +"eslint-webpack-plugin@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-webpack-plugin@npm:4.2.0" + dependencies: + "@types/eslint": "npm:^8.56.10" + jest-worker: "npm:^29.7.0" + micromatch: "npm:^4.0.5" + normalize-path: "npm:^3.0.0" + schema-utils: "npm:^4.2.0" + peerDependencies: + eslint: ^8.0.0 || ^9.0.0 + webpack: ^5.0.0 + checksum: 10/061d11a93832b82bd0362d6c546f51fe5e3a0eb811374b86536a2929ff46fea7e5ef30e32f0d3194b9da146a7c0ae43f13b2ec5ce0f65a9ca9c4d961d9e446b3 + languageName: node + linkType: hard + +"eslint@npm:^8.6.0": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@nodelib/fs.walk": "npm:^1.2.8" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.2" + debug: "npm:^4.3.2" + doctrine: "npm:^3.0.0" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" + esquery: "npm:^1.4.2" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^6.0.1" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + globals: "npm:^13.19.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + is-path-inside: "npm:^3.0.3" + js-yaml: "npm:^4.1.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + levn: "npm:^0.4.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + bin: + eslint: bin/eslint.js + checksum: 10/5504fa24879afdd9f9929b2fbfc2ee9b9441a3d464efd9790fbda5f05738858530182029f13323add68d19fec749d3ab4a70320ded091ca4432b1e9cc4ed104c + languageName: node + linkType: hard + +"esm@npm:^3.2.25": + version: 3.2.25 + resolution: "esm@npm:3.2.25" + checksum: 10/ee96b8202b76dd1841c55e8a066608d6f0ae0333012be5c77829ccadcd21114283b4d7bf9ac1b8c09853258829c7843e9c6d7e0594acbc5e813cb37d82728d4b + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: "npm:^8.9.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 + languageName: node + linkType: hard + +"esprima@npm:1.2.2": + version: 1.2.2 + resolution: "esprima@npm:1.2.2" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10/7ed9274abb1fed861354239f0da8fa3ec6592617ad0fd2aab16b0beb0425137c46f05c82faa0de89b3bb3d704054815c2657658c7e221b1fb550e88c237eefd2 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10/f1d3c622ad992421362294f7acf866aa9409fbad4eb2e8fa230bd33944ce371d32279667b242d8b8907ec2b6ad7353a717f3c0e60e748873a34a7905174bc0eb + languageName: node + linkType: hard + +"esquery@npm:^1.4.2": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10/c587fb8ec9ed83f2b1bc97cf2f6854cc30bf784a79d62ba08c6e358bf22280d69aee12827521cf38e69ae9761d23fb7fde593ce315610f85655c139d99b05e5a + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10/44ffcd89e714ea6b30143e7f119b104fc4d75e77ee913f34d59076b40ef2d21967f84e019f84e1fd0465b42cdbf725db449f232b5e47f29df29ed76194db8e16 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1, estraverse@npm:^4.2.0": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: 10/3f67ad02b6dbfaddd9ea459cf2b6ef4ecff9a6082a7af9d22e445b9abc082ad9ca47e1825557b293fcdae477f4714e561123e30bb6a5b2f184fb2bad4a9497eb + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e + languageName: node + linkType: hard + +"estree-walker@npm:^0.6.1": + version: 0.6.1 + resolution: "estree-walker@npm:0.6.1" + checksum: 10/b8da7815030c4e0b735f5f8af370af09525e052ee14e539cecabc24ad6da1782448778361417e7c438091a59e7ca9f4a0c11642f7da4f2ebf1ba7a150a590bcc + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 10/b02109c5d46bc2ed47de4990eef770f7457b1159a229f0999a09224d2b85ffeed2d7679cffcff90aeb4448e94b0168feb5265b209cdec29aad50a3d6e93d21e2 + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 10/b23acd24791db11d8f65be5ea58fd9a6ce2df5120ae2da65c16cfc5331ff59d5ac4ef50af66cd4bde238881503ec839928a0135b99a036a9cdfa22d17fd56cdb + languageName: node + linkType: hard + +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + +"event-target-shim@npm:^5.0.0": + version: 5.0.1 + resolution: "event-target-shim@npm:5.0.1" + checksum: 10/49ff46c3a7facbad3decb31f597063e761785d7fdb3920d4989d7b08c97a61c2f51183e2f3a03130c9088df88d4b489b1b79ab632219901f184f85158508f4c8 + languageName: node + linkType: hard + +"eventemitter2@npm:^6.4.4": + version: 6.4.9 + resolution: "eventemitter2@npm:6.4.9" + checksum: 10/b829b1c6b11e15926b635092b5ad62b4463d1c928859831dcae606e988cf41893059e3541f5a8209d21d2f15314422ddd4d84d20830b4bf44978608d15b06b08 + languageName: node + linkType: hard + +"eventemitter3@npm:^3.1.0": + version: 3.1.2 + resolution: "eventemitter3@npm:3.1.2" + checksum: 10/e2886001beb52cd2fe47d2470fd6266b7c70bd3ac356c0041a7e64336ed57bb1fc9b07bc9043d34b39913488a8d81bfcde62d3af597974980aa01b50844d869b + languageName: node + linkType: hard + +"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.4": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 10/8030029382404942c01d0037079f1b1bc8fed524b5849c237b80549b01e2fc49709e1d0c557fa65ca4498fc9e24cff1475ef7b855121fcc15f9d61f93e282346 + languageName: node + linkType: hard + +"events@npm:3.3.0, events@npm:^3.0.0, events@npm:^3.2.0, events@npm:^3.3.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: 10/a3d47e285e28d324d7180f1e493961a2bbb4cad6412090e4dec114f4db1f5b560c7696ee8e758f55e23913ede856e3689cd3aa9ae13c56b5d8314cd3b3ddd1be + languageName: node + linkType: hard + +"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3": + version: 1.0.3 + resolution: "evp_bytestokey@npm:1.0.3" + dependencies: + md5.js: "npm:^1.3.4" + node-gyp: "npm:latest" + safe-buffer: "npm:^5.1.1" + checksum: 10/ad4e1577f1a6b721c7800dcc7c733fe01f6c310732bb5bf2240245c2a5b45a38518b91d8be2c610611623160b9d1c0e91f1ce96d639f8b53e8894625cf20fa45 + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597 + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87 + languageName: node + linkType: hard + +"expand-template@npm:^2.0.3": + version: 2.0.3 + resolution: "expand-template@npm:2.0.3" + checksum: 10/588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099 + languageName: node + linkType: hard + +"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": + version: 2.0.2 + resolution: "expand-tilde@npm:2.0.2" + dependencies: + homedir-polyfill: "npm:^1.0.1" + checksum: 10/2efe6ed407d229981b1b6ceb552438fbc9e5c7d6a6751ad6ced3e0aa5cf12f0b299da695e90d6c2ac79191b5c53c613e508f7149e4573abfbb540698ddb7301a + languageName: node + linkType: hard + +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10/63f97bc51f56a491950fb525f9ad94f1916e8a014947f8d8445d3847a665b5471b768522d659f5e865db20b6c2033d2ac10f35fcbd881a4d26407a4f6f18451a + languageName: node + linkType: hard + +"expiry-map@npm:^2.0.0": + version: 2.0.0 + resolution: "expiry-map@npm:2.0.0" + dependencies: + map-age-cleaner: "npm:^0.2.0" + checksum: 10/9be8662e1a5c1084fb6d0ddc5402658dd06101c330454062b2f5efbf1477259d272e54ec16663d7d12a93d08ed510535781c36acb214696c5bc3a690a02a7a9d + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10/2d9bbb6473de7051f96790d5f9a678f32e60ed0aa70741dc7fdc96fec8d631124ec3374ac144387604f05afff9500f31a1d45bd9eee4cdc2e4f9ad2d9b9d5dbd + languageName: node + linkType: hard + +"express-openapi-validator@npm:^5.0.4": + version: 5.4.2 + resolution: "express-openapi-validator@npm:5.4.2" + dependencies: + "@apidevtools/json-schema-ref-parser": "npm:^11.7.2" + "@types/multer": "npm:^1.4.12" + ajv: "npm:^8.17.1" + ajv-draft-04: "npm:^1.0.0" + ajv-formats: "npm:^2.1.1" + content-type: "npm:^1.0.5" + json-schema-traverse: "npm:^1.0.0" + lodash.clonedeep: "npm:^4.5.0" + lodash.get: "npm:^4.4.2" + media-typer: "npm:^1.1.0" + multer: "npm:^1.4.5-lts.1" + ono: "npm:^7.1.3" + path-to-regexp: "npm:^8.2.0" + peerDependencies: + express: "*" + checksum: 10/ca0c33933391b3351f375171f4ea59509a97f95160712749f0f209e1f0021d4494540f7bf7bacd104ca6e2c2e0e5a20f53234b9294cba3fd69ce725657407914 + languageName: node + linkType: hard + +"express-promise-router@npm:^4.1.0": + version: 4.1.1 + resolution: "express-promise-router@npm:4.1.1" + dependencies: + is-promise: "npm:^4.0.0" + lodash.flattendeep: "npm:^4.0.0" + methods: "npm:^1.0.0" + peerDependencies: + "@types/express": ^4.0.0 + express: ^4.0.0 + peerDependenciesMeta: + "@types/express": + optional: true + checksum: 10/7e6da926733756700b788f8eea81be96fe9668299b29b87815071f89408ae8368d5054cd68ec9d2b141000b8213b87d1f495a00b887f9e021a90f9e0cbb23146 + languageName: node + linkType: hard + +"express-session@npm:^1.17.1": + version: 1.18.1 + resolution: "express-session@npm:1.18.1" + dependencies: + cookie: "npm:0.7.2" + cookie-signature: "npm:1.0.7" + debug: "npm:2.6.9" + depd: "npm:~2.0.0" + on-headers: "npm:~1.0.2" + parseurl: "npm:~1.3.3" + safe-buffer: "npm:5.2.1" + uid-safe: "npm:~2.1.5" + checksum: 10/fec407d20e2b7c110e92c992f4a094b9603bf3e1d1040cf5a2f70fe64e23560f7f2d41e0e6dc8864dd146bbf0c07d9d5aa6848f80c403cbeac4cee4303192a53 + languageName: node + linkType: hard + +"express@npm:^4.14.0, express@npm:^4.17.1, express@npm:^4.18.2, express@npm:^4.19.2, express@npm:^4.21.2": + version: 4.21.2 + resolution: "express@npm:4.21.2" + dependencies: + accepts: "npm:~1.3.8" + array-flatten: "npm:1.1.1" + body-parser: "npm:1.20.3" + content-disposition: "npm:0.5.4" + content-type: "npm:~1.0.4" + cookie: "npm:0.7.1" + cookie-signature: "npm:1.0.6" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + finalhandler: "npm:1.3.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + merge-descriptors: "npm:1.0.3" + methods: "npm:~1.1.2" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + path-to-regexp: "npm:0.1.12" + proxy-addr: "npm:~2.0.7" + qs: "npm:6.13.0" + range-parser: "npm:~1.2.1" + safe-buffer: "npm:5.2.1" + send: "npm:0.19.0" + serve-static: "npm:1.16.2" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + type-is: "npm:~1.6.18" + utils-merge: "npm:1.0.1" + vary: "npm:~1.1.2" + checksum: 10/34571c442fc8c9f2c4b442d2faa10ea1175cf8559237fc6a278f5ce6254a8ffdbeb9a15d99f77c1a9f2926ab183e3b7ba560e3261f1ad4149799e3412ab66bd1 + languageName: node + linkType: hard + +"extend@npm:3.0.2, extend@npm:^3.0.0, extend@npm:^3.0.2, extend@npm:~3.0.2": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: 10/59e89e2dc798ec0f54b36d82f32a27d5f6472c53974f61ca098db5d4648430b725387b53449a34df38fd0392045434426b012f302b3cc049a6500ccf82877e4e + languageName: node + linkType: hard + +"extendable-error@npm:^0.1.5": + version: 0.1.7 + resolution: "extendable-error@npm:0.1.7" + checksum: 10/80478be7429a1675d2085f701239796bab3230ed6f2fb1b138fbabec24bea6516b7c5ceb6e9c209efcc9c089948d93715703845653535f8e8a49655066a9255e + languageName: node + linkType: hard + +"external-editor@npm:^3.0.3, external-editor@npm:^3.1.0": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: "npm:^0.7.0" + iconv-lite: "npm:^0.4.24" + tmp: "npm:^0.0.33" + checksum: 10/776dff1d64a1d28f77ff93e9e75421a81c062983fd1544279d0a32f563c0b18c52abbb211f31262e2827e48edef5c9dc8f960d06dd2d42d1654443b88568056b + languageName: node + linkType: hard + +"extract-files@npm:^11.0.0": + version: 11.0.0 + resolution: "extract-files@npm:11.0.0" + checksum: 10/02bf0dde9617d67795e38a182d8bf58828a7c5d77762623ff05e72d461a0e980071a860e2503231db2cc8824d8da35cefb1750937dcbe018cb0e67e37f20a7be + languageName: node + linkType: hard + +"extsprintf@npm:1.3.0": + version: 1.3.0 + resolution: "extsprintf@npm:1.3.0" + checksum: 10/26967d6c7ecbfb5bc5b7a6c43503dc5fafd9454802037e9fa1665e41f615da4ff5918bd6cb871a3beabed01a31eca1ccd0bdfb41231f50ad50d405a430f78377 + languageName: node + linkType: hard + +"extsprintf@npm:^1.2.0": + version: 1.4.1 + resolution: "extsprintf@npm:1.4.1" + checksum: 10/bfd6d55f3c0c04d826fe0213264b383c03f32825af6b1ff777f3f2dc49467e599361993568d75b7b19a8ea1bb08c8e7cd8c3d87d179ced91bb0dcf81ca6938e0 + languageName: node + linkType: hard + +"fast-copy@npm:^3.0.2": + version: 3.0.2 + resolution: "fast-copy@npm:3.0.2" + checksum: 10/97e1022e2aaa27acf4a986d679310bfd66bfb87fe8da9dd33b698e3e50189484001cf1eeb9670e19b59d9d299828ed86c8da354c954f125995ab2a6331c5f290 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10/e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": + version: 1.3.2 + resolution: "fast-fifo@npm:1.3.2" + checksum: 10/6bfcba3e4df5af7be3332703b69a7898a8ed7020837ec4395bb341bd96cc3a6d86c3f6071dd98da289618cf2234c70d84b2a6f09a33dd6f988b1ff60d8e54275 + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2, fast-glob@npm:^3.3.3": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.8" + checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad + languageName: node + linkType: hard + +"fast-json-parse@npm:^1.0.3": + version: 1.0.3 + resolution: "fast-json-parse@npm:1.0.3" + checksum: 10/4ae38b50a4641d503995862e3f103ad77b865a5c8c8894923a88eb1839af35fe7d2f1a7b2cabb42481fec781fad9876cc6e37d9bf25d175da35ea47e874dafb5 + languageName: node + linkType: hard + +"fast-json-patch@npm:^3.0.0-1, fast-json-patch@npm:^3.1.0, fast-json-patch@npm:^3.1.1": + version: 3.1.1 + resolution: "fast-json-patch@npm:3.1.1" + checksum: 10/3e56304e1c95ad1862a50e5b3f557a74c65c0ff2ba5b15caab983b43e70e86ddbc5bc887e9f7064f0aacfd0f0435a29ab2f000fe463379e72b906486345e6671 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 10/eb7e220ecf2bab5159d157350b81d01f75726a4382f5a9266f42b9150c4523b9795f7f5d9fbbbeaeac09a441b2369f05ee02db48ea938584205530fe5693cfe1 + languageName: node + linkType: hard + +"fast-memoize@npm:^2.5.2": + version: 2.5.2 + resolution: "fast-memoize@npm:2.5.2" + checksum: 10/b7e2839d70607c791ffda617bb3cf7d9944bd5483be05cedbc060be1381c79093efc470215f1bc5aa666b8ecc2c9ae49e6f56ab6f45f0c1474f6628651c9959b + languageName: node + linkType: hard + +"fast-redact@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-redact@npm:2.1.0" + checksum: 10/363884aca025a1078da665c80a6698137498b5bc7be50a2ad8ecaabb7165577212e27e58dc9c73ff4ad1fc58dcbfb0570f57043cc822cfc73eb7b40690914e47 + languageName: node + linkType: hard + +"fast-safe-stringify@npm:2.1.1, fast-safe-stringify@npm:^2.0.6, fast-safe-stringify@npm:^2.0.7": + version: 2.1.1 + resolution: "fast-safe-stringify@npm:2.1.1" + checksum: 10/dc1f063c2c6ac9533aee14d406441f86783a8984b2ca09b19c2fe281f9ff59d315298bc7bc22fd1f83d26fe19ef2f20e2ddb68e96b15040292e555c5ced0c1e4 + languageName: node + linkType: hard + +"fast-shallow-equal@npm:^1.0.0": + version: 1.0.0 + resolution: "fast-shallow-equal@npm:1.0.0" + checksum: 10/ae89318ce43c0c46410d9511ac31520d59cfe675bad3d0b1cb5f900b2d635943d788b8370437178e91ae0d0412decc394229c03e69925ade929a8c02da241610 + languageName: node + linkType: hard + +"fast-uri@npm:^3.0.1": + version: 3.0.6 + resolution: "fast-uri@npm:3.0.6" + checksum: 10/43c87cd03926b072a241590e49eca0e2dfe1d347ddffd4b15307613b42b8eacce00a315cf3c7374736b5f343f27e27ec88726260eb03a758336d507d6fbaba0a + languageName: node + linkType: hard + +"fast-xml-parser@npm:4.4.1": + version: 4.4.1 + resolution: "fast-xml-parser@npm:4.4.1" + dependencies: + strnum: "npm:^1.0.5" + bin: + fxparser: src/cli/cli.js + checksum: 10/0c05ab8703630d8c857fafadbd78d0020d3a8e54310c3842179cd4a0d9d97e96d209ce885e91241f4aa9dd8dfc2fd924a682741a423d65153cad34da2032ec44 + languageName: node + linkType: hard + +"fast-xml-parser@npm:^4.3.0, fast-xml-parser@npm:^4.4.1, fast-xml-parser@npm:^4.5.0": + version: 4.5.1 + resolution: "fast-xml-parser@npm:4.5.1" + dependencies: + strnum: "npm:^1.0.5" + bin: + fxparser: src/cli/cli.js + checksum: 10/17ce5908e798de1b6d12a39d26f04ac3b582ea9ce28f3a6e3b9c401edcb74790f28df84d75377608af53308ff8caad2b244ba1283cc4b5b4cf4cc7bd532a9983 + languageName: node + linkType: hard + +"fastest-stable-stringify@npm:^2.0.2": + version: 2.0.2 + resolution: "fastest-stable-stringify@npm:2.0.2" + checksum: 10/41bb381c0eab1419eb353658c0d78cb79a4e99ef8f53ec5d36b131f076e62ff3cdca6d22888640c55ea3382ae2c93d8629a67f5734655442976708448a8c2500 + languageName: node + linkType: hard + +"fastq@npm:^1.15.0, fastq@npm:^1.6.0": + version: 1.18.0 + resolution: "fastq@npm:1.18.0" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10/c5b501333dc8f5d188d828ea162aad03ff5a81aed185b6d4a5078aaeae0a42babc34296d7af13ebce86401cccd93c9b7b3cbf61280821c5f20af233378b42fbb + languageName: node + linkType: hard + +"fault@npm:^1.0.0": + version: 1.0.4 + resolution: "fault@npm:1.0.4" + dependencies: + format: "npm:^0.2.0" + checksum: 10/5ac610d8b09424e0f2fa8cf913064372f2ee7140a203a79957f73ed557c0e79b1a3d096064d7f40bde8132a69204c1fe25ec23634c05c6da2da2039cff26c4e7 + languageName: node + linkType: hard + +"faye-websocket@npm:^0.11.3": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: "npm:>=0.5.1" + checksum: 10/22433c14c60925e424332d2794463a8da1c04848539b5f8db5fced62a7a7c71a25335a4a8b37334e3a32318835e2b87b1733d008561964121c4a0bd55f0878c3 + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: "npm:2.1.1" + checksum: 10/4f95d336fb805786759e383fd7fff342ceb7680f53efcc0ef82f502eb479ce35b98e8b207b6dfdfeea0eba845862107dc73813775fc6b56b3098c6e90a2dad77 + languageName: node + linkType: hard + +"fdir@npm:^6.4.2": + version: 6.4.3 + resolution: "fdir@npm:6.4.3" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10/8e6d20f4590dc168de1374a9cadaa37e20ca6e0b822aa247c230e7ea1d9e9674a68cd816146435e4ecc98f9285091462ab7e5e56eebc9510931a1794e4db68b2 + languageName: node + linkType: hard + +"fecha@npm:^4.2.0": + version: 4.2.3 + resolution: "fecha@npm:4.2.3" + checksum: 10/534ce630c8f63c116292145607fc18c0f06bfa2fd74094357bf65daacc5d3f4f2b285bf8eb112c3bbf98c5caa6d386cced797f44b9b1b33da0c0a81020444826 + languageName: node + linkType: hard + +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10/5264ecceb5fdc19eb51d1d0359921f12730941e333019e673e71eb73921146dceabcb0b8f534582be4497312d656508a439ad0f5edeec2b29ab2e10c72a1f86b + languageName: node + linkType: hard + +"fflate@npm:^0.8.1": + version: 0.8.2 + resolution: "fflate@npm:0.8.2" + checksum: 10/2bd26ba6d235d428de793c6a0cd1aaa96a06269ebd4e21b46c8fd1bd136abc631acf27e188d47c3936db090bf3e1ede11d15ce9eae9bffdc4bfe1b9dc66ca9cb + languageName: node + linkType: hard + +"figures@npm:^3.0.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10/a3bf94e001be51d3770500789157f067218d4bc681a65e1f69d482de15120bcac822dceb1a7b3803f32e4e3a61a46df44f7f2c8ba95d6375e7491502e0dd3d97 + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: "npm:^3.0.4" + checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b + languageName: node + linkType: hard + +"file-type@npm:^16.5.4": + version: 16.5.4 + resolution: "file-type@npm:16.5.4" + dependencies: + readable-web-to-node-stream: "npm:^3.0.0" + strtok3: "npm:^6.2.4" + token-types: "npm:^4.1.1" + checksum: 10/46ced46bb925ab547e0a6d43108a26d043619d234cb0588d7abce7b578dafac142bcfd2e23a6adb0a4faa4b951bd1b14b355134a193362e07cd352f9bf0dc349 + languageName: node + linkType: hard + +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: 10/b648580bdd893a008c92c7ecc96c3ee57a5e7b6c4c18a9a09b44fb5d36d79146f8e442578bc0e173dc027adf3987e254ba1dfd6e3ec998b7c282873010502144 + languageName: node + linkType: hard + +"filefy@npm:^0.1.11": + version: 0.1.11 + resolution: "filefy@npm:0.1.11" + checksum: 10/b65e7a92ec80f8bb4d9f7d8df6434b4b13c8202b3dc0feefeda53f2e7525a11a89a507ac7b6ae512f813b8ef6bf216202ae609a3f5d062198017dee4fa56e74b + languageName: node + linkType: hard + +"filesize@npm:^8.0.6": + version: 8.0.7 + resolution: "filesize@npm:8.0.7" + checksum: 10/e35f1799c314cef49a585af82fe2d15b362f743a74c95f06e3dd99cf0334ca45516ed144f6a58649ca0e2e5e63844c0ef476d9374d5d43736d26f7c13aa49dad + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea + languageName: node + linkType: hard + +"finalhandler@npm:1.1.2": + version: 1.1.2 + resolution: "finalhandler@npm:1.1.2" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + on-finished: "npm:~2.3.0" + parseurl: "npm:~1.3.3" + statuses: "npm:~1.5.0" + unpipe: "npm:~1.0.0" + checksum: 10/351e99a889abf149eb3edb24568586469feeb3019f5eafb9b31e632a5ad886f12a5595a221508245e6a37da69ae866c9fb411eb541a844238e2c900f63ac1576 + languageName: node + linkType: hard + +"finalhandler@npm:1.3.1": + version: 1.3.1 + resolution: "finalhandler@npm:1.3.1" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + statuses: "npm:2.0.1" + unpipe: "npm:~1.0.0" + checksum: 10/4babe72969b7373b5842bc9f75c3a641a4d0f8eb53af6b89fa714d4460ce03fb92b28de751d12ba415e96e7e02870c436d67412120555e2b382640535697305b + languageName: node + linkType: hard + +"find-file-up@npm:^2.0.1": + version: 2.0.1 + resolution: "find-file-up@npm:2.0.1" + dependencies: + resolve-dir: "npm:^1.0.1" + checksum: 10/dfe820bfb80e75bed5dd5080057858c0ad2393e1438c48a3bb682663e9ecdcfbe3224ed4768bfedd00776800b4ae76bc8953d250d15ae3feabf381d2c6d04268 + languageName: node + linkType: hard + +"find-pkg@npm:2.0.0": + version: 2.0.0 + resolution: "find-pkg@npm:2.0.0" + dependencies: + find-file-up: "npm:^2.0.1" + checksum: 10/44785204c8bbbdfeaece6b834ba81a35163421c30e20f531281d26e6b5890663d7ac884b82a9aebf6ce23e479336cd6f70ea5597da35495c16abdeba2fd4f845 + languageName: node + linkType: hard + +"find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: 10/caa799c976a14925ba7f31ca1a226fe73d3aa270f4f1b623fcfeb1c6e263111db4beb807d8acd31bd4d48d44c343b93688a9288dfbccca27463c36a0301b0bb9 + languageName: node + linkType: hard + +"find-up@npm:^3.0.0": + version: 3.0.0 + resolution: "find-up@npm:3.0.0" + dependencies: + locate-path: "npm:^3.0.0" + checksum: 10/38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 + languageName: node + linkType: hard + +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" + rimraf: "npm:^3.0.2" + checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70 + languageName: node + linkType: hard + +"flatstr@npm:^1.0.12": + version: 1.0.12 + resolution: "flatstr@npm:1.0.12" + checksum: 10/2334fec61d9b4e1d8de8ceb33d9a8c64f87073d06d5cb157b04c8835c50f600b10e763a303fa388443ee423f28ed600cfd04cba1e793fe5d7c2d7e13fd912a01 + languageName: node + linkType: hard + +"flatted@npm:3.3.2, flatted@npm:^3.2.7, flatted@npm:^3.2.9": + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: 10/ac3c159742e01d0e860a861164bcfd35bb567ccbebb8a0dd041e61cf3c64a435b917dd1e7ed1c380c2ebca85735fb16644485ec33665bc6aafc3b316aa1eed44 + languageName: node + linkType: hard + +"fn.name@npm:1.x.x": + version: 1.1.0 + resolution: "fn.name@npm:1.1.0" + checksum: 10/000198af190ae02f0138ac5fa4310da733224c628e0230c81e3fff7c4e094af7e0e8bb9f4357cabd21db601759d89f3445da744afbae20623cfa41edf3888397 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" + peerDependenciesMeta: + debug: + optional: true + checksum: 10/e3ab42d1097e90d28b913903841e6779eb969b62a64706a3eb983e894a5db000fbd89296f45f08885a0e54cd558ef62e81be1165da9be25a6c44920da10f424c + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: "npm:^1.1.3" + checksum: 10/fdac0cde1be35610bd635ae958422e8ce0cc1313e8d32ea6d34cfda7b60850940c1fd07c36456ad76bd9c24aef6ff5e03b02beb58c83af5ef6c968a64eada676 + languageName: node + linkType: hard + +"foreach@npm:^2.0.4": + version: 2.0.6 + resolution: "foreach@npm:2.0.6" + checksum: 10/93b0e65b3f03d9f696418d45f589d0135268b97bf71b4c2628687ce77ce49c20abd60f3c1b23052306b4e789435683a467a7828beac486d2ea17ba8b80933d38 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10/e3a60480f3a09b12273ce2c5fcb9514d98dd0e528f58656a1b04680225f918d60a2f81f6a368f2f3b937fcee9cfc0cbf16f1ad9a0bc6a3a6e103a84c9a90087e + languageName: node + linkType: hard + +"forever-agent@npm:~0.6.1": + version: 0.6.1 + resolution: "forever-agent@npm:0.6.1" + checksum: 10/c1e1644d5e074ac063ecbc3fb8582013ef91fff0e3fa41e76db23d2f62bc6d9677aac86db950917deed4fe1fdd772df780cfaa352075f23deec9c015313afb97 + languageName: node + linkType: hard + +"fork-ts-checker-webpack-plugin@npm:^6.5.0": + version: 6.5.3 + resolution: "fork-ts-checker-webpack-plugin@npm:6.5.3" + dependencies: + "@babel/code-frame": "npm:^7.8.3" + "@types/json-schema": "npm:^7.0.5" + chalk: "npm:^4.1.0" + chokidar: "npm:^3.4.2" + cosmiconfig: "npm:^6.0.0" + deepmerge: "npm:^4.2.2" + fs-extra: "npm:^9.0.0" + glob: "npm:^7.1.6" + memfs: "npm:^3.1.2" + minimatch: "npm:^3.0.4" + schema-utils: "npm:2.7.0" + semver: "npm:^7.3.2" + tapable: "npm:^1.0.0" + peerDependencies: + eslint: ">= 6" + typescript: ">= 2.7" + vue-template-compiler: "*" + webpack: ">= 4" + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + checksum: 10/415263839afe11c291be60e3335ece3ccdc80c5e0d91eeecf0d3060cfb72c7b0cb33be326dd24b325939357d53215e10c41e8187edb5db8a08fe9aaa8aa6c510 + languageName: node + linkType: hard + +"fork-ts-checker-webpack-plugin@npm:^9.0.0": + version: 9.0.2 + resolution: "fork-ts-checker-webpack-plugin@npm:9.0.2" + dependencies: + "@babel/code-frame": "npm:^7.16.7" + chalk: "npm:^4.1.2" + chokidar: "npm:^3.5.3" + cosmiconfig: "npm:^8.2.0" + deepmerge: "npm:^4.2.2" + fs-extra: "npm:^10.0.0" + memfs: "npm:^3.4.1" + minimatch: "npm:^3.0.4" + node-abort-controller: "npm:^3.0.1" + schema-utils: "npm:^3.1.1" + semver: "npm:^7.3.5" + tapable: "npm:^2.2.1" + peerDependencies: + typescript: ">3.6.0" + webpack: ^5.11.0 + checksum: 10/3399ea114d9397da5e51baaa1cf2ca704f4616c8255df672889cafc2a823f77e8bf9913133852d29d676657b1d40e4a2fba8eb9fafee09e00faeda924289220e + languageName: node + linkType: hard + +"form-data@npm:^2.3.2, form-data@npm:^2.5.0": + version: 2.5.2 + resolution: "form-data@npm:2.5.2" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.6" + mime-types: "npm:^2.1.12" + safe-buffer: "npm:^5.2.1" + checksum: 10/ef602e52f0bfcc8f8c346b8783f6dbd2fb271596788d42cf929dddaa50bd61e97da21f01464b4524e77872682264765e53c75ac1ab1466ea23f5c96de585faff + languageName: node + linkType: hard + +"form-data@npm:^4.0.0, form-data@npm:^4.0.1": + version: 4.0.1 + resolution: "form-data@npm:4.0.1" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10/6adb1cff557328bc6eb8a68da205f9ae44ab0e88d4d9237aaf91eed591ffc64f77411efb9016af7d87f23d0a038c45a788aa1c6634e51175c4efa36c2bc53774 + languageName: node + linkType: hard + +"form-data@npm:~2.3.2": + version: 2.3.3 + resolution: "form-data@npm:2.3.3" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.6" + mime-types: "npm:^2.1.12" + checksum: 10/1b6f3ccbf4540e535887b42218a2431a3f6cfdea320119c2affa2a7a374ad8fdd1e60166fc865181f45d49b1684c3e90e7b2190d3fe016692957afb9cf0d0d02 + languageName: node + linkType: hard + +"format@npm:^0.2.0": + version: 0.2.2 + resolution: "format@npm:0.2.2" + checksum: 10/5f878b8fc1a672c8cbefa4f293bdd977c822862577d70d53456a48b4169ec9b51677c0c995bf62c633b4e5cd673624b7c273f57923b28735a6c0c0a72c382a4a + languageName: node + linkType: hard + +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: "npm:^3.1.2" + checksum: 10/9b5001d2edef3c9449ac3f48bd4f8cc92e7d0f2e7c1a5c8ba555ad4e77535cc5cf621fabe49e97f304067037282dd9093b9160a3cb533e46420b446c4e6bc06f + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: 10/29ba9fd347117144e97cbb8852baae5e8b2acb7d1b591ef85695ed96f5b933b1804a7fac4a15dd09ca7ac7d0cdc104410e8102aae2dd3faa570a797ba07adb81 + languageName: node + linkType: hard + +"framer-motion@npm:^6.5.1": + version: 6.5.1 + resolution: "framer-motion@npm:6.5.1" + dependencies: + "@emotion/is-prop-valid": "npm:^0.8.2" + "@motionone/dom": "npm:10.12.0" + framesync: "npm:6.0.1" + hey-listen: "npm:^1.0.8" + popmotion: "npm:11.0.3" + style-value-types: "npm:5.0.0" + tslib: "npm:^2.1.0" + peerDependencies: + react: ">=16.8 || ^17.0.0 || ^18.0.0" + react-dom: ">=16.8 || ^17.0.0 || ^18.0.0" + dependenciesMeta: + "@emotion/is-prop-valid": + optional: true + checksum: 10/ecdb2cceb0ff400f2bddc8800b74e0b377fd7d627a051437ec510cf3c1e7184b6a0afc68696e70cb21bf277e41ea41813e2833f8878e23de178be10d7b2978e5 + languageName: node + linkType: hard + +"framesync@npm:6.0.1": + version: 6.0.1 + resolution: "framesync@npm:6.0.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/38a985189c90867a969e9acc1d31bfcab8184bccc0f1ad41a12dbd573e3ec0ba74259d12f3fcabaccd914330601cabd686f47b543798cf6e8c4ad23ea3c0a581 + languageName: node + linkType: hard + +"fresh@npm:0.5.2, fresh@npm:~0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1 + languageName: node + linkType: hard + +"fromentries@npm:^1.3.1": + version: 1.3.2 + resolution: "fromentries@npm:1.3.2" + checksum: 10/10d6e07d289db102c0c1eaf5c3e3fa55ddd6b50033d7de16d99a7cd89f1e1a302dfadb26457031f9bb5d2ed95a179aaf0396092dde5abcae06e8a2f0476826be + languageName: node + linkType: hard + +"fs-constants@npm:^1.0.0": + version: 1.0.0 + resolution: "fs-constants@npm:1.0.0" + checksum: 10/18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d + languageName: node + linkType: hard + +"fs-extra@npm:10.1.0, fs-extra@npm:^10.0.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/05ce2c3b59049bcb7b52001acd000e44b3c4af4ec1f8839f383ef41ec0048e3cfa7fd8a637b1bddfefad319145db89be91f4b7c1db2908205d38bf91e7d1d3b7 + languageName: node + linkType: hard + +"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca + languageName: node + linkType: hard + +"fs-extra@npm:^11.0.0, fs-extra@npm:^11.2.0": + version: 11.3.0 + resolution: "fs-extra@npm:11.3.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/c9fe7b23dded1efe7bbae528d685c3206477e20cc60e9aaceb3f024f9b9ff2ee1f62413c161cb88546cc564009ab516dec99e9781ba782d869bb37e4fe04a97f + languageName: node + linkType: hard + +"fs-extra@npm:^7.0.1, fs-extra@npm:~7.0.1": + version: 7.0.1 + resolution: "fs-extra@npm:7.0.1" + dependencies: + graceful-fs: "npm:^4.1.2" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10/3fc6e56ba2f07c00d452163f27f21a7076b72ef7da8a50fef004336d59ef4c34deda11d10ecd73fd8fbcf20e4f575f52857293090b3c9f8741d4e0598be30fea + languageName: node + linkType: hard + +"fs-extra@npm:^8.1.0": + version: 8.1.0 + resolution: "fs-extra@npm:8.1.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10/6fb12449f5349be724a138b4a7b45fe6a317d2972054517f5971959c26fbd17c0e145731a11c7324460262baa33e0a799b183ceace98f7a372c95fbb6f20f5de + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f + languageName: node + linkType: hard + +"fs-monkey@npm:^1.0.4": + version: 1.0.6 + resolution: "fs-monkey@npm:1.0.6" + checksum: 10/a0502a23aa0b467f671cd5c7f989ff48611cce1f23deb8f6924862b49234ff37de6828f739a4f2c1acf8f20e80cb426bf6a9d135c401f3df1e7089b7de04c815 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10/e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96 + languageName: node + linkType: hard + +"fsevents@npm:2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: "npm:latest" + checksum: 10/6b5b6f5692372446ff81cf9501c76e3e0459a4852b3b5f1fc72c103198c125a6b8c72f5f166bdd76ffb2fca261e7f6ee5565daf80dca6e571e55bcc589cc1256 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10/4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin<compat/fsevents>": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin<compat/fsevents>::version=2.3.2&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin<compat/fsevents>, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin<compat/fsevents>": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin<compat/fsevents>::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454 + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + functions-have-names: "npm:^1.2.3" + hasown: "npm:^2.0.2" + is-callable: "npm:^1.2.7" + checksum: 10/25b9e5bea936732a6f0c0c08db58cc0d609ac1ed458c6a07ead46b32e7b9bf3fe5887796c3f83d35994efbc4fdde81c08ac64135b2c399b8f2113968d44082bc + languageName: node + linkType: hard + +"functional-red-black-tree@npm:^1.0.1": + version: 1.0.1 + resolution: "functional-red-black-tree@npm:1.0.1" + checksum: 10/debe73e92204341d1fa5f89614e44284d3add26dee660722978d8c50829170f87d1c74768f68c251d215ae461c11db7bac13101c77f4146ff051da75466f7a12 + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05 + languageName: node + linkType: hard + +"gaxios@npm:^6.0.0, gaxios@npm:^6.0.2, gaxios@npm:^6.1.1": + version: 6.7.1 + resolution: "gaxios@npm:6.7.1" + dependencies: + extend: "npm:^3.0.2" + https-proxy-agent: "npm:^7.0.1" + is-stream: "npm:^2.0.0" + node-fetch: "npm:^2.6.9" + uuid: "npm:^9.0.1" + checksum: 10/c85599162208884eadee91215ebbfa1faa412551df4044626cb561300e15193726e8f23d63b486533e066dadad130f58ed872a23acab455238d8d48b531a0695 + languageName: node + linkType: hard + +"gcp-metadata@npm:^6.1.0": + version: 6.1.0 + resolution: "gcp-metadata@npm:6.1.0" + dependencies: + gaxios: "npm:^6.0.0" + json-bigint: "npm:^1.0.0" + checksum: 10/a0d12a9cb7499fdb9de0fff5406aa220310c1326b80056be8d9b747aae26414f99d14bd795c0ec52ef7d0473eef9d61bb657b8cd3d8186c8a84c4ddbff025fe9 + languageName: node + linkType: hard + +"generate-function@npm:^2.3.1": + version: 2.3.1 + resolution: "generate-function@npm:2.3.1" + dependencies: + is-property: "npm:^1.0.2" + checksum: 10/318f85af87c3258d86df4ebbb56b63a2ae52e71bd6cde8d0a79de09450de7422a7047fb1f8d52ccc135564a36cb986d73c63149eed96b7ac57e38acba44f29e2 + languageName: node + linkType: hard + +"generic-names@npm:^4.0.0": + version: 4.0.0 + resolution: "generic-names@npm:4.0.0" + dependencies: + loader-utils: "npm:^3.2.0" + checksum: 10/ef05166395a17fbdcc7ceaa59635318b6ae89125391780c4d4abbc1e7ae7a6e07a31602fbc785860cf701cee08f790f71e286676c80db634f56d3d1af2703319 + languageName: node + linkType: hard + +"generic-pool@npm:3.9.0": + version: 3.9.0 + resolution: "generic-pool@npm:3.9.0" + checksum: 10/3c632d30a6a7d47412dc67ddc517992691e0fde819c0cb6b5871bc87d10f61a7c09f12a60dbd77c78ae3e6ca10db41e2eaee28985ce724d9620354a006205ce1 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10/17d8333460204fbf1f9160d067e1e77f908a5447febb49424b8ab043026049835c9ef3974445c57dbd39161f4d2b04356d7de12b2eecaa27a7a7ea7d871cbedd + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7": + version: 1.2.7 + resolution: "get-intrinsic@npm:1.2.7" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + function-bind: "npm:^1.1.2" + get-proto: "npm:^1.0.0" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10/4f7149c9a826723f94c6d49f70bcb3df1d3f9213994fab3668f12f09fa72074681460fb29ebb6f135556ec6372992d63802386098791a8f09cfa6f27090fa67b + languageName: node + linkType: hard + +"get-nonce@npm:^1.0.0": + version: 1.0.1 + resolution: "get-nonce@npm:1.0.1" + checksum: 10/ad5104871d114a694ecc506a2d406e2331beccb961fe1e110dc25556b38bcdbf399a823a8a375976cd8889668156a9561e12ebe3fa6a4c6ba169c8466c2ff868 + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: 10/bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 + languageName: node + linkType: hard + +"get-port@npm:^5.1.1": + version: 5.1.1 + resolution: "get-port@npm:5.1.1" + checksum: 10/0162663ffe5c09e748cd79d97b74cd70e5a5c84b760a475ce5767b357fb2a57cb821cee412d646aa8a156ed39b78aab88974eddaa9e5ee926173c036c0713787 + languageName: node + linkType: hard + +"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: 10/781266d29725f35c59f1d214aedc92b0ae855800a980800e2923b3fbc4e56b3cb6e462c42e09a1cf1a00c64e056a78fa407cbe06c7c92b7e5cd49b4b85c2a497 + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.1.0": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + checksum: 10/a353e3a9595a74720b40fb5bae3ba4a4f826e186e83814d93375182384265676f59e49998b9cdfac4a2225ce95a3d32a68f502a2c5619303987f1c183ab80494 + languageName: node + linkType: hard + +"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.2": + version: 4.10.0 + resolution: "get-tsconfig@npm:4.10.0" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10/5259b5c99a1957114337d9d0603b4a305ec9e29fa6cac7d2fbf634ba6754a0cc88bfd281a02416ce64e604b637d3cb239185381a79a5842b17fb55c097b38c4b + languageName: node + linkType: hard + +"get-uri@npm:^6.0.1": + version: 6.0.4 + resolution: "get-uri@npm:6.0.4" + dependencies: + basic-ftp: "npm:^5.0.2" + data-uri-to-buffer: "npm:^6.0.2" + debug: "npm:^4.3.4" + checksum: 10/ea000a18610198d69a3d2dcc727b1cc53b7002e3b09170fcf3fb36602f4ab7609f95fca24471993b504e589cf213f40188fff42931bd7a68061aeccb36d4f368 + languageName: node + linkType: hard + +"getopts@npm:2.3.0": + version: 2.3.0 + resolution: "getopts@npm:2.3.0" + checksum: 10/64c7494d05d6b6205f3351336d9c000265e3f84975ab1bb2b500ff9488eb506bad1d04fa8d2687fd7d81379846e9a500409f8e4b9e20dc604c785abd9b5cf7fd + languageName: node + linkType: hard + +"getpass@npm:^0.1.1": + version: 0.1.7 + resolution: "getpass@npm:0.1.7" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10/ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 + languageName: node + linkType: hard + +"git-up@npm:^7.0.0": + version: 7.0.0 + resolution: "git-up@npm:7.0.0" + dependencies: + is-ssh: "npm:^1.4.0" + parse-url: "npm:^8.1.0" + checksum: 10/003ef38424702ac4cbe6d2817ccfb5811251244c955a8011ca40298d12cf1fb6529529f074d5832b5221e193ec05f4742ecf7806e6c4f41a81a2f2cff65d6bf4 + languageName: node + linkType: hard + +"git-url-parse@npm:^14.0.0": + version: 14.1.0 + resolution: "git-url-parse@npm:14.1.0" + dependencies: + git-up: "npm:^7.0.0" + checksum: 10/3bbf1182cd5a57c5ba2bd2c722f7391b771edb7d8bd37e060e25bd48b4f2a444bc5b5709fee0075f058a51b1233a65e4124b53715b5e091b34586b9a263ae2c3 + languageName: node + linkType: hard + +"git-url-parse@npm:^15.0.0": + version: 15.0.0 + resolution: "git-url-parse@npm:15.0.0" + dependencies: + git-up: "npm:^7.0.0" + checksum: 10/b6e54fc58bb4f4c9bfb1060ec93c3d1462880c6bec76926978e32b2bbfac3535001c87efd1ef0dca9cd9ee0ffdaacba2f50dc4f7032ba09ad92d93e9acc9936b + languageName: node + linkType: hard + +"github-from-package@npm:0.0.0": + version: 0.0.0 + resolution: "github-from-package@npm:0.0.0" + checksum: 10/2a091ba07fbce22205642543b4ea8aaf068397e1433c00ae0f9de36a3607baf5bcc14da97fbb798cfca6393b3c402031fca06d8b491a44206d6efef391c58537 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob-to-regexp@npm:^0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: 10/9009529195a955c40d7b9690794aeff5ba665cc38f1519e111c58bb54366fd0c106bde80acf97ba4e533208eb53422c83b136611a54c5fefb1edd8dc267cb62e + languageName: node + linkType: hard + +"glob@npm:9.3.5": + version: 9.3.5 + resolution: "glob@npm:9.3.5" + dependencies: + fs.realpath: "npm:^1.0.0" + minimatch: "npm:^8.0.2" + minipass: "npm:^4.2.4" + path-scurry: "npm:^1.6.1" + checksum: 10/e5fa8a58adf53525bca42d82a1fad9e6800032b7e4d372209b80cfdca524dd9a7dbe7d01a92d7ed20d89c572457f12c250092bc8817cb4f1c63efefdf9b658c0 + languageName: node + linkType: hard + +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.1": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6, glob@npm:^7.1.7": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b + languageName: node + linkType: hard + +"glob@npm:^8.0.1, glob@npm:^8.0.3, glob@npm:^8.1.0": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^5.0.1" + once: "npm:^1.3.0" + checksum: 10/9aab1c75eb087c35dbc41d1f742e51d0507aa2b14c910d96fb8287107a10a22f4bbdce26fc0a3da4c69a20f7b26d62f1640b346a4f6e6becfff47f335bb1dc5e + languageName: node + linkType: hard + +"global-agent@npm:^3.0.0": + version: 3.0.0 + resolution: "global-agent@npm:3.0.0" + dependencies: + boolean: "npm:^3.0.1" + es6-error: "npm:^4.1.1" + matcher: "npm:^3.0.0" + roarr: "npm:^2.15.3" + semver: "npm:^7.3.2" + serialize-error: "npm:^7.0.1" + checksum: 10/a26d96d1d79af57a8ef957f66cef6f3889a8fa55131f0bbd72b8e1bc340a9b7ed7b627b96eaf5eb14aee08a8b4ad44395090e2cf77146e993f1d2df7abaa0a0d + languageName: node + linkType: hard + +"global-modules@npm:^1.0.0": + version: 1.0.0 + resolution: "global-modules@npm:1.0.0" + dependencies: + global-prefix: "npm:^1.0.1" + is-windows: "npm:^1.0.1" + resolve-dir: "npm:^1.0.0" + checksum: 10/e4031a01c0c7401349bb69e1499c7268d636552b16374c0002d677c7a6185da6782a2927a7a3a7c046eb7be97cd26b3c7b1b736f9818ecc7ac09e9d61449065e + languageName: node + linkType: hard + +"global-modules@npm:^2.0.0": + version: 2.0.0 + resolution: "global-modules@npm:2.0.0" + dependencies: + global-prefix: "npm:^3.0.0" + checksum: 10/4aee73adf533fe82ead2ad15c8bfb6ea4fb29e16d2d067521ab39d3b45b8f834d71c47a807e4f8f696e79497c3946d4ccdcd708da6f3a4522d65b087b8852f64 + languageName: node + linkType: hard + +"global-prefix@npm:^1.0.1": + version: 1.0.2 + resolution: "global-prefix@npm:1.0.2" + dependencies: + expand-tilde: "npm:^2.0.2" + homedir-polyfill: "npm:^1.0.1" + ini: "npm:^1.3.4" + is-windows: "npm:^1.0.1" + which: "npm:^1.2.14" + checksum: 10/68cf78f81cd85310095ca1f0ec22dd5f43a1059646b2c7b3fc4a7c9ce744356e66ca833adda4e5753e38021847aaec393a159a029ba2d257c08ccb3f00ca2899 + languageName: node + linkType: hard + +"global-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "global-prefix@npm:3.0.0" + dependencies: + ini: "npm:^1.3.5" + kind-of: "npm:^6.0.2" + which: "npm:^1.3.1" + checksum: 10/a405b9f83c7d88a49dc1c1e458d6585e258356810d3d0f41094265152a06a0f393b14d911f45616e35a4ce3894176a73be2984883575e778f55e90bf812d7337 + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10/9f054fa38ff8de8fa356502eb9d2dae0c928217b8b5c8de1f09f5c9b6c8a96d8b9bd3afc49acbcd384a98a81fea713c859e1b09e214c60509517bb8fc2bc13c2 + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" + dependencies: + type-fest: "npm:^0.20.2" + checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e + languageName: node + linkType: hard + +"globalthis@npm:^1.0.1, globalthis@npm:^1.0.3, globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" + dependencies: + define-properties: "npm:^1.2.1" + gopd: "npm:^1.0.1" + checksum: 10/1f1fd078fb2f7296306ef9dd51019491044ccf17a59ed49d375b576ca108ff37e47f3d29aead7add40763574a992f16a5367dd1e2173b8634ef18556ab719ac4 + languageName: node + linkType: hard + +"globby@npm:^11.0.0, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: "npm:^2.1.0" + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.2.9" + ignore: "npm:^5.2.0" + merge2: "npm:^1.4.1" + slash: "npm:^3.0.0" + checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1 + languageName: node + linkType: hard + +"google-auth-library@npm:^9.0.0, google-auth-library@npm:^9.3.0, google-auth-library@npm:^9.6.3": + version: 9.15.0 + resolution: "google-auth-library@npm:9.15.0" + dependencies: + base64-js: "npm:^1.3.0" + ecdsa-sig-formatter: "npm:^1.0.11" + gaxios: "npm:^6.1.1" + gcp-metadata: "npm:^6.1.0" + gtoken: "npm:^7.0.0" + jws: "npm:^4.0.0" + checksum: 10/fba2db9732bbf1b3a3a2e2b45131ba8e8aba297377f1c104d0b2ab3386bbc1e02047f20b8a7afca1c6308492da1540104618f1c7b5cd539703552e10399c560e + languageName: node + linkType: hard + +"google-gax@npm:^4.3.3": + version: 4.4.1 + resolution: "google-gax@npm:4.4.1" + dependencies: + "@grpc/grpc-js": "npm:^1.10.9" + "@grpc/proto-loader": "npm:^0.7.13" + "@types/long": "npm:^4.0.0" + abort-controller: "npm:^3.0.0" + duplexify: "npm:^4.0.0" + google-auth-library: "npm:^9.3.0" + node-fetch: "npm:^2.7.0" + object-hash: "npm:^3.0.0" + proto3-json-serializer: "npm:^2.0.2" + protobufjs: "npm:^7.3.2" + retry-request: "npm:^7.0.0" + uuid: "npm:^9.0.1" + checksum: 10/c569e603b9191a1036b01daf442fbcc786c14c66abf7cc8d7451d396ee7d7ae1f52f7c020b22410b6e82e71807a6000bef582c7fb6e4faf9ff19b93f498cfdf0 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897 + languageName: node + linkType: hard + +"graphiql@npm:3.1.1": + version: 3.1.1 + resolution: "graphiql@npm:3.1.1" + dependencies: + "@graphiql/react": "npm:^0.20.3" + "@graphiql/toolkit": "npm:^0.9.1" + graphql-language-service: "npm:^5.2.0" + markdown-it: "npm:^12.2.0" + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 + react: ^16.8.0 || ^17 || ^18 + react-dom: ^16.8.0 || ^17 || ^18 + checksum: 10/c234f24e3bb568f210a45f6a408cc12adb2a82cc7be8ecbdf81cadc7ae398f35474a443fbc20e99d6125acf20268e6a666b05b928725542ea3d133c51798687f + languageName: node + linkType: hard + +"graphlib@npm:^2.1.8": + version: 2.1.8 + resolution: "graphlib@npm:2.1.8" + dependencies: + lodash: "npm:^4.17.15" + checksum: 10/37cbd851d3c1fb99f3174750ccaa22305d23d11746e5df81a38ba3bf25c0ba29cd9658ba69a0159ea81d56c28e8e875033eeaaa7167d838419fae08d9cd2c62c + languageName: node + linkType: hard + +"graphql-config@npm:^5.0.2": + version: 5.1.3 + resolution: "graphql-config@npm:5.1.3" + dependencies: + "@graphql-tools/graphql-file-loader": "npm:^8.0.0" + "@graphql-tools/json-file-loader": "npm:^8.0.0" + "@graphql-tools/load": "npm:^8.0.0" + "@graphql-tools/merge": "npm:^9.0.0" + "@graphql-tools/url-loader": "npm:^8.0.0" + "@graphql-tools/utils": "npm:^10.0.0" + cosmiconfig: "npm:^8.1.0" + jiti: "npm:^2.0.0" + minimatch: "npm:^9.0.5" + string-env-interpolation: "npm:^1.0.1" + tslib: "npm:^2.4.0" + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + checksum: 10/9d37f5d424f302808102d118988878be5e4841ba1a06a865cdb9052b24e26eaa9923fb18163bf4f32102d87b3895c53e2ffcdebc1d651f04b56f93f5c38b83c3 + languageName: node + linkType: hard + +"graphql-http@npm:^1.22.0": + version: 1.22.4 + resolution: "graphql-http@npm:1.22.4" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: 10/ef81c3d86ac75743509d225aaf88a79262adee8801035712e5af655deedd5755afb0060e68306ca54aa54067c4ef0a382a03b2ecde016e0fb43454b73184a04d + languageName: node + linkType: hard + +"graphql-language-service@npm:5.3.0, graphql-language-service@npm:^5.2.0, graphql-language-service@npm:^5.2.2": + version: 5.3.0 + resolution: "graphql-language-service@npm:5.3.0" + dependencies: + debounce-promise: "npm:^3.1.2" + nullthrows: "npm:^1.0.0" + vscode-languageserver-types: "npm:^3.17.1" + peerDependencies: + graphql: ^15.5.0 || ^16.0.0 || ^17.0.0-alpha.2 + bin: + graphql: dist/temp-bin.js + checksum: 10/461a3d9135e1076f667ef83522db63906e902f4403486addd7a958c128c34e85ec3f74c2b22dc394ad0538e5189bbfc989ec78fae452958a31648f98596431cb + languageName: node + linkType: hard + +"graphql-subscriptions@npm:^1.1.0": + version: 1.2.1 + resolution: "graphql-subscriptions@npm:1.2.1" + dependencies: + iterall: "npm:^1.3.0" + peerDependencies: + graphql: ^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + checksum: 10/6dfc0bf278b595c7d99b577e05902d18cd0e56c8c060892ccba7651ff1a49218c7cdd5a8e811fcb9071b98492d238609ba6f326129f5cb0f5433c993671e2d14 + languageName: node + linkType: hard + +"graphql-tag@npm:^2.10.3, graphql-tag@npm:^2.12.6": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" + dependencies: + tslib: "npm:^2.1.0" + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 10/23a2bc1d3fbeae86444204e0ac08522e09dc369559ba75768e47421a7321b59f352fb5b2c9a5c37d3cf6de890dca4e5ac47e740c7cc622e728572ecaa649089e + languageName: node + linkType: hard + +"graphql-ws@npm:^5.14.0, graphql-ws@npm:^5.4.1": + version: 5.16.2 + resolution: "graphql-ws@npm:5.16.2" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: 10/6647bfe640b467f27aaf5ee044c1d114fe266e82cda4ebbb4368d5a4e98df5d2de9d6be70d28eb5e821d87fbf8964c3a8a18abf87c76d4f148800fd8e0488c3d + languageName: node + linkType: hard + +"graphql@npm:^14.0.2 || ^15.5": + version: 15.10.1 + resolution: "graphql@npm:15.10.1" + checksum: 10/49177f52c1fbac022866d39bb15040122da4c3ccd12644233b20edfcb1f76aa92aa92f2a82af4668101d8f726112fda111cb11a12feb05635cd689443a7aafb8 + languageName: node + linkType: hard + +"graphql@npm:^16.0.0": + version: 16.10.0 + resolution: "graphql@npm:16.10.0" + checksum: 10/d42cf81ddcf3a61dfb213217576bf33c326f15b02c4cee369b373dc74100cbdcdc4479b3b797e79b654dabd8fddf50ef65ff75420e9ce5596c02e21f24c9126a + languageName: node + linkType: hard + +"gtoken@npm:^7.0.0": + version: 7.1.0 + resolution: "gtoken@npm:7.1.0" + dependencies: + gaxios: "npm:^6.0.0" + jws: "npm:^4.0.0" + checksum: 10/640392261e55c9242137a81a4af8feb053b57061762cedddcbb6a0d62c2314316161808ac2529eea67d06d69fdc56d82361af50f2d840a04a87ea29e124d7382 + languageName: node + linkType: hard + +"gzip-size@npm:^6.0.0": + version: 6.0.0 + resolution: "gzip-size@npm:6.0.0" + dependencies: + duplexer: "npm:^0.1.2" + checksum: 10/2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194 + languageName: node + linkType: hard + +"handle-thing@npm:^2.0.0": + version: 2.0.1 + resolution: "handle-thing@npm:2.0.1" + checksum: 10/441ec98b07f26819c70c702f6c874088eebeb551b242fe8fae4eab325746b82bf84ae7a1f6419547698accb3941fa26806c5f5f93c50e19f90e499065a711d61 + languageName: node + linkType: hard + +"handlebars@npm:^4.7.3": + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" + dependencies: + minimist: "npm:^1.2.5" + neo-async: "npm:^2.6.2" + source-map: "npm:^0.6.1" + uglify-js: "npm:^3.1.4" + wordwrap: "npm:^1.0.0" + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 10/bd528f4dd150adf67f3f857118ef0fa43ff79a153b1d943fa0a770f2599e38b25a7a0dbac1a3611a4ec86970fd2325a81310fb788b5c892308c9f8743bd02e11 + languageName: node + linkType: hard + +"har-schema@npm:^2.0.0": + version: 2.0.0 + resolution: "har-schema@npm:2.0.0" + checksum: 10/d8946348f333fb09e2bf24cc4c67eabb47c8e1d1aa1c14184c7ffec1140a49ec8aa78aa93677ae452d71d5fc0fdeec20f0c8c1237291fc2bcb3f502a5d204f9b + languageName: node + linkType: hard + +"har-validator@npm:~5.1.3": + version: 5.1.5 + resolution: "har-validator@npm:5.1.5" + dependencies: + ajv: "npm:^6.12.3" + har-schema: "npm:^2.0.0" + checksum: 10/b998a7269ca560d7f219eedc53e2c664cd87d487e428ae854a6af4573fc94f182fe9d2e3b92ab968249baec7ebaf9ead69cf975c931dc2ab282ec182ee988280 + languageName: node + linkType: hard + +"harmony-reflect@npm:^1.4.6": + version: 1.6.2 + resolution: "harmony-reflect@npm:1.6.2" + checksum: 10/69d30ebfb5dbd6ff0553725c7922404cf1dfe5390db1618298eed27fe6c9bd2f3f677727e9da969d21648f4a6a39041e2f46e99976be4385f9e34bac23058cd4 + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.2": + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 10/90fb1b24d40d2472bcd1c8bd9dd479037ec240215869bdbff97b2be83acef57d28f7e96bdd003a21bed218d058b49097f4acc8821c05b1629cc5d48dd7bfcccd + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2 + languageName: node + linkType: hard + +"has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: "npm:^1.0.0" + checksum: 10/7eaed07728eaa28b77fadccabce53f30de467ff186a766872669a833ac2e87d8922b76a22cc58339d7e0277aefe98d6d00762113b27a97cdf65adcf958970935 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10/959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe + languageName: node + linkType: hard + +"hash-base@npm:^3.0.0": + version: 3.1.0 + resolution: "hash-base@npm:3.1.0" + dependencies: + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + safe-buffer: "npm:^5.2.0" + checksum: 10/26b7e97ac3de13cb23fc3145e7e3450b0530274a9562144fc2bf5c1e2983afd0e09ed7cc3b20974ba66039fad316db463da80eb452e7373e780cbee9a0d2f2dc + languageName: node + linkType: hard + +"hash-base@npm:~3.0, hash-base@npm:~3.0.4": + version: 3.0.5 + resolution: "hash-base@npm:3.0.5" + dependencies: + inherits: "npm:^2.0.4" + safe-buffer: "npm:^5.2.1" + checksum: 10/6a82675a5de2ea9347501bbe655a2334950c7ec972fd9810ae9529e06aeab8f7e8ef68fc2112e5e6f0745561a7e05326efca42ad59bb5fd116537f5f8b0a216d + languageName: node + linkType: hard + +"hash-it@npm:^6.0.0": + version: 6.0.0 + resolution: "hash-it@npm:6.0.0" + checksum: 10/25f3c094cd7e560ef73a47b6f8181249795c1d1e5e1c6e140aa0d46c08d6c190bedf17cbef2a142eb778a0110f2967238799a6f7f5fc2a5c0ca2040fbec25d5d + languageName: node + linkType: hard + +"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" + dependencies: + inherits: "npm:^2.0.3" + minimalistic-assert: "npm:^1.0.1" + checksum: 10/0c89ee4006606a40f92df5cc3c263342e7fea68110f3e9ef032bd2083650430505db01b6b7926953489517d4027535e4fdc7f970412893d3031c361d3ec8f4b3 + languageName: node + linkType: hard + +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + +"hast-util-parse-selector@npm:^2.0.0": + version: 2.2.5 + resolution: "hast-util-parse-selector@npm:2.2.5" + checksum: 10/22ee4afbd11754562144cb3c4f3ec52524dafba4d90ee52512902d17cf11066d83b38f7bdf6ca571bbc2541f07ba30db0d234657b6ecb8ca4631587466459605 + languageName: node + linkType: hard + +"hast-util-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "hast-util-whitespace@npm:2.0.1" + checksum: 10/ad5a61f4e81330413d4182247e158d77408a076994fbe7257574ea6489728bb4138c83e00482051c941973d4ed3049729afb35600debfc6d1d945c40453685f7 + languageName: node + linkType: hard + +"hastscript@npm:^6.0.0": + version: 6.0.0 + resolution: "hastscript@npm:6.0.0" + dependencies: + "@types/hast": "npm:^2.0.0" + comma-separated-tokens: "npm:^1.0.0" + hast-util-parse-selector: "npm:^2.0.0" + property-information: "npm:^5.0.0" + space-separated-tokens: "npm:^1.0.0" + checksum: 10/78f91b71e50506f7499c8275d67645f9f4f130e6f12b038853261d1fa7393432da4113baf3508c41b79d933f255089d6d593beea9d4cda89dfd34d0a498cf378 + languageName: node + linkType: hard + +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 10/d09b2243da4e23f53336e8de3093e5c43d2c39f8d0d18817abfa32ce3e9355391b2edb4bb5edc376aea5d4b0b59d6a0482aab4c52bc02ef95751e4b818e847f1 + languageName: node + linkType: hard + +"helmet@npm:^6.0.0": + version: 6.2.0 + resolution: "helmet@npm:6.2.0" + checksum: 10/f112fcd0d8494e6c8ad10e9307e182f1be9c9c4917a3f9a3718c13ae120d4c4e1f251e735297d6a9266e068dcc0463ab101c8d7f2b809c0ceabcef4681f81a2a + languageName: node + linkType: hard + +"hey-listen@npm:^1.0.8": + version: 1.0.8 + resolution: "hey-listen@npm:1.0.8" + checksum: 10/744b5f4c18c7cfb82b22bd22e1d300a9ac4eafe05a22e58fb87e48addfca8be00604d9aa006434ea02f9530990eb4b393ddb28659e2ab7f833ce873e32eb809c + languageName: node + linkType: hard + +"highlight.js@npm:^10.4.1, highlight.js@npm:^10.7.2, highlight.js@npm:~10.7.0": + version: 10.7.3 + resolution: "highlight.js@npm:10.7.3" + checksum: 10/db8d10a541936b058e221dbde77869664b2b45bca75d660aa98065be2cd29f3924755fbc7348213f17fd931aefb6e6597448ba6fe82afba6d8313747a91983ee + languageName: node + linkType: hard + +"highlightjs-vue@npm:^1.0.0": + version: 1.0.0 + resolution: "highlightjs-vue@npm:1.0.0" + checksum: 10/44c9187a19fa3c7eac16bf1d327c03cb07c4b444f744624eaf873eb55e4e449a0bb6573b8ba5982006b65743707d6cad39cfc404f3fe5fb8aeb740a57ff6bc24 + languageName: node + linkType: hard + +"history@npm:^5.0.0": + version: 5.3.0 + resolution: "history@npm:5.3.0" + dependencies: + "@babel/runtime": "npm:^7.7.6" + checksum: 10/52ba685b842ca6438ff11ef459951eb13d413ae715866a8dc5f7c3b1ea0cdeb8db6aabf7254551b85f56abc205e6e2d7e1d5afb36b711b401cdaff4f2cf187e9 + languageName: node + linkType: hard + +"hmac-drbg@npm:^1.0.1": + version: 1.0.1 + resolution: "hmac-drbg@npm:1.0.1" + dependencies: + hash.js: "npm:^1.0.3" + minimalistic-assert: "npm:^1.0.0" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10/0298a1445b8029a69b713d918ecaa84a1d9f614f5857e0c6e1ca517abfa1357216987b2ee08cc6cc73ba82a6c6ddf2ff11b9717a653530ef03be599d4699b836 + languageName: node + linkType: hard + +"hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: "npm:^16.7.0" + checksum: 10/1acbe85f33e5a39f90c822ad4d28b24daeb60f71c545279431dc98c312cd28a54f8d64788e477fe21dc502b0e3cf58589ebe5c1ad22af27245370391c2d24ea6 + languageName: node + linkType: hard + +"homedir-polyfill@npm:^1.0.1": + version: 1.0.3 + resolution: "homedir-polyfill@npm:1.0.3" + dependencies: + parse-passwd: "npm:^1.0.0" + checksum: 10/18dd4db87052c6a2179d1813adea0c4bfcfa4f9996f0e226fefb29eb3d548e564350fa28ec46b0bf1fbc0a1d2d6922ceceb80093115ea45ff8842a4990139250 + languageName: node + linkType: hard + +"hoopy@npm:^0.1.4": + version: 0.1.4 + resolution: "hoopy@npm:0.1.4" + checksum: 10/7a73f1839a7fd6b953356770dff2c3cff813d97d899cddd75b348926c4df36059d987c06bedb57b1b7711504dba83d3b7b986f979a08b1e415da73a51fefa767 + languageName: node + linkType: hard + +"hpack.js@npm:^2.1.6": + version: 2.1.6 + resolution: "hpack.js@npm:2.1.6" + dependencies: + inherits: "npm:^2.0.1" + obuf: "npm:^1.0.0" + readable-stream: "npm:^2.0.1" + wbuf: "npm:^1.1.0" + checksum: 10/6910e4b9d943a78fd8e84ac42729fdab9bd406789d6204ad160af9dc5aa4750fc01f208249bf7116c11dc0678207a387b4ade24e4b628b95385b251ceeeb719c + languageName: node + linkType: hard + +"hpagent@npm:^1.2.0": + version: 1.2.0 + resolution: "hpagent@npm:1.2.0" + checksum: 10/bad186449da7e3456788a8cbae459fc6c0a855d5872a7f460c48ce4a613020d8d914839dad10047297099299c4f9e6c65a0eec3f5886af196c0a516e4ad8a845 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: "npm:^2.0.0" + checksum: 10/707a812ec2acaf8bb5614c8618dc81e2fb6b4399d03e95ff18b65679989a072f4e919b9bef472039301a1bbfba64063ba4c79ea6e851c653ac9db80dbefe8fe5 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^4.0.0": + version: 4.0.0 + resolution: "html-encoding-sniffer@npm:4.0.0" + dependencies: + whatwg-encoding: "npm:^3.1.1" + checksum: 10/e86efd493293a5671b8239bd099d42128433bb3c7b0fdc7819282ef8e118a21f5dead0ad6f358e024a4e5c84f17ebb7a9b36075220fac0a6222b207248bede6f + languageName: node + linkType: hard + +"html-entities@npm:^2.1.0, html-entities@npm:^2.5.2": + version: 2.5.2 + resolution: "html-entities@npm:2.5.2" + checksum: 10/4ec12ebdf2d5ba8192c68e1aef3c1e4a4f36b29246a0a88464fe278a54517d0196d3489af46a3145c7ecacb4fc5fd50497be19eb713b810acab3f0efcf36fdc2 + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: 10/034d74029dcca544a34fb6135e98d427acd73019796ffc17383eaa3ec2fe1c0471dcbbc8f8ed39e46e86d43ccd753a160631615e4048285e313569609b66d5b7 + languageName: node + linkType: hard + +"html-minifier-terser@npm:^6.0.2": + version: 6.1.0 + resolution: "html-minifier-terser@npm:6.1.0" + dependencies: + camel-case: "npm:^4.1.2" + clean-css: "npm:^5.2.2" + commander: "npm:^8.3.0" + he: "npm:^1.2.0" + param-case: "npm:^3.0.4" + relateurl: "npm:^0.2.7" + terser: "npm:^5.10.0" + bin: + html-minifier-terser: cli.js + checksum: 10/a244fa944e002b57c66cc829a3f2dfdb9514b1833c2d838ada624964bf8c0afaf61d36c371758c7e44dedae95cea740a84d8d1067b916ed204f35175184d0e27 + languageName: node + linkType: hard + +"html-webpack-plugin@npm:^5.6.3": + version: 5.6.3 + resolution: "html-webpack-plugin@npm:5.6.3" + dependencies: + "@types/html-minifier-terser": "npm:^6.0.0" + html-minifier-terser: "npm:^6.0.2" + lodash: "npm:^4.17.21" + pretty-error: "npm:^4.0.0" + tapable: "npm:^2.0.0" + peerDependencies: + "@rspack/core": 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10/fd2bf1ac04823526c8b609555d027b38b9d61b4ba9f5c8116a37cc6b62d5b86cab1f478616e8c5344fee13663d2566f5c470c66265ecb1e9574dc38d0459889d + languageName: node + linkType: hard + +"html2canvas@npm:^1.0.0-rc.5": + version: 1.4.1 + resolution: "html2canvas@npm:1.4.1" + dependencies: + css-line-break: "npm:^2.1.0" + text-segmentation: "npm:^1.0.3" + checksum: 10/595790810557a1d4287f07b6ead49aed4f169f08eb00e20c1f030b93344003e84797d28cd8a220e8ec1b78641d460ca6add11b8531960725526f11a7b9fa9900 + languageName: node + linkType: hard + +"htmlparser2@npm:^6.1.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" + dependencies: + domelementtype: "npm:^2.0.1" + domhandler: "npm:^4.0.0" + domutils: "npm:^2.5.2" + entities: "npm:^2.0.0" + checksum: 10/c9c34b0b722f5923c4ae05e59268aeb768582152969e3338a1cd3342b87f8dd2c0420f4745e46d2fd87f1b677ea2f314c3a93436ed8831905997e6347e081a5d + languageName: node + linkType: hard + +"http-assert@npm:^1.3.0": + version: 1.5.0 + resolution: "http-assert@npm:1.5.0" + dependencies: + deep-equal: "npm:~1.0.1" + http-errors: "npm:~1.8.0" + checksum: 10/69c9b3c14cf8b2822916360a365089ce936c883c49068f91c365eccba5c141a9964d19fdda589150a480013bf503bf37d8936c732e9635819339e730ab0e7527 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10/362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f + languageName: node + linkType: hard + +"http-deceiver@npm:^1.2.7": + version: 1.2.7 + resolution: "http-deceiver@npm:1.2.7" + checksum: 10/9ae293b0acbfad6ed45d52c1f85f58ab062465872fd9079c80d78c6527634002d73c2a9d8c0296cc12d178a0b689bb5291d9979aad3ce71ab17a7517588adbf7 + languageName: node + linkType: hard + +"http-encoding@npm:^2.0.1": + version: 2.0.1 + resolution: "http-encoding@npm:2.0.1" + dependencies: + brotli-wasm: "npm:^3.0.0" + pify: "npm:^5.0.0" + zstd-codec: "npm:^0.1.5" + checksum: 10/99562ef2a8ed71eae1d99ceb37b6d41f9c25606288141fe0ef955f9b2496d503aa3bccffeb52227508039ddb266e9c4bfd55857ceb05ac2559140ea0e9c1245b + languageName: node + linkType: hard + +"http-errors@npm:2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" + dependencies: + depd: "npm:2.0.0" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + toidentifier: "npm:1.0.1" + checksum: 10/0e7f76ee8ff8a33e58a3281a469815b893c41357378f408be8f6d4aa7d1efafb0da064625518e7078381b6a92325949b119dc38fcb30bdbc4e3a35f78c44c439 + languageName: node + linkType: hard + +"http-errors@npm:^1.6.3, http-errors@npm:~1.8.0": + version: 1.8.1 + resolution: "http-errors@npm:1.8.1" + dependencies: + depd: "npm:~1.1.2" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:>= 1.5.0 < 2" + toidentifier: "npm:1.0.1" + checksum: 10/76fc491bd8df2251e21978e080d5dae20d9736cfb29bb72b5b76ec1bcebb1c14f0f58a3a128dd89288934379d2173cfb0421c571d54103e93dd65ef6243d64d8 + languageName: node + linkType: hard + +"http-errors@npm:~1.6.2": + version: 1.6.3 + resolution: "http-errors@npm:1.6.3" + dependencies: + depd: "npm:~1.1.2" + inherits: "npm:2.0.3" + setprototypeof: "npm:1.1.0" + statuses: "npm:>= 1.4.0 < 2" + checksum: 10/e48732657ea0b4a09853d2696a584fa59fa2a8c1ba692af7af3137b5491a997d7f9723f824e7e08eb6a87098532c09ce066966ddf0f9f3dd30905e52301acadb + languageName: node + linkType: hard + +"http-parser-js@npm:>=0.5.1": + version: 0.5.9 + resolution: "http-parser-js@npm:0.5.9" + checksum: 10/65e6ef5e063b4f67c590bdd122b255e9b70c5bf3429718f8b72951fe98f4f968c55a58ec88cc96a11357a437d75c4af9302b8026c0b53c525065ff4eb0cd969e + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": "npm:2" + agent-base: "npm:6" + debug: "npm:4" + checksum: 10/5ee19423bc3e0fd5f23ce991b0755699ad2a46a440ce9cec99e8126bb98448ad3479d2c0ea54be5519db5b19a4ffaa69616bac01540db18506dd4dac3dc418f0 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.1, http-proxy-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848 + languageName: node + linkType: hard + +"http-proxy-middleware@npm:^2.0.0, http-proxy-middleware@npm:^2.0.7": + version: 2.0.7 + resolution: "http-proxy-middleware@npm:2.0.7" + dependencies: + "@types/http-proxy": "npm:^1.17.8" + http-proxy: "npm:^1.18.1" + is-glob: "npm:^4.0.1" + is-plain-obj: "npm:^3.0.0" + micromatch: "npm:^4.0.2" + peerDependencies: + "@types/express": ^4.17.13 + peerDependenciesMeta: + "@types/express": + optional: true + checksum: 10/4a51bf612b752ad945701995c1c029e9501c97e7224c0cf3f8bf6d48d172d6a8f2b57c20fec469534fdcac3aa8a6f332224a33c6b0d7f387aa2cfff9b67216fd + languageName: node + linkType: hard + +"http-proxy@npm:^1.18.1": + version: 1.18.1 + resolution: "http-proxy@npm:1.18.1" + dependencies: + eventemitter3: "npm:^4.0.0" + follow-redirects: "npm:^1.0.0" + requires-port: "npm:^1.0.0" + checksum: 10/2489e98aba70adbfd8b9d41ed1ff43528be4598c88616c558b109a09eaffe4bb35e551b6c75ac42ed7d948bb7530a22a2be6ef4f0cecacb5927be139f4274594 + languageName: node + linkType: hard + +"http-signature@npm:~1.2.0": + version: 1.2.0 + resolution: "http-signature@npm:1.2.0" + dependencies: + assert-plus: "npm:^1.0.0" + jsprim: "npm:^1.2.2" + sshpk: "npm:^1.7.0" + checksum: 10/2ff7112e6b0d8f08b382dfe705078c655501f2ddd76cf589d108445a9dd388a0a9be928c37108261519a7f53e6bbd1651048d74057b804807cce1ec49e87a95b + languageName: node + linkType: hard + +"http2-wrapper@npm:^2.2.1": + version: 2.2.1 + resolution: "http2-wrapper@npm:2.2.1" + dependencies: + quick-lru: "npm:^5.1.1" + resolve-alpn: "npm:^1.2.0" + checksum: 10/e7a5ac6548318e83fc0399cd832cdff6bbf902b165d211cad47a56ee732922e0aa1107246dd884b12532a1c4649d27c4d44f2480911c65202e93c90bde8fa29d + languageName: node + linkType: hard + +"https-browserify@npm:^1.0.0": + version: 1.0.0 + resolution: "https-browserify@npm:1.0.0" + checksum: 10/2d707c457319e1320adf0e7556174c190865fb345b6a183f033cee440f73221dbe7fa3f0adcffb1e6b0664726256bd44771a82e50fe6c66976c10b237100536a + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: "npm:6" + debug: "npm:4" + checksum: 10/f0dce7bdcac5e8eaa0be3c7368bb8836ed010fb5b6349ffb412b172a203efe8f807d9a6681319105ea1b6901e1972c7b5ea899672a7b9aad58309f766dcbe0df + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.3, https-proxy-agent@npm:^7.0.6": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13 + languageName: node + linkType: hard + +"human-id@npm:^1.0.2": + version: 1.0.2 + resolution: "human-id@npm:1.0.2" + checksum: 10/16b116ef68c3fc3f65c90b32a338abd0f9ee656a6257baa92c4d7e1154c66469bb6bd4ee840018c35e972aa817f5ae3f0cbabffb78f2ac90aaf02d88a299a371 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: 10/df59be9e0af479036798a881d1f136c4a29e0b518d4abb863afbd11bf30efa3eeb1d0425fc65942dcc05ab3bf40205ea436b0ff389f2cd20b75b8643d539bf86 + languageName: node + linkType: hard + +"humanize-duration@npm:^3.25.1": + version: 3.32.1 + resolution: "humanize-duration@npm:3.32.1" + checksum: 10/5909107485c33d0c025e5d15a45b2700f91c9efc1e88510867926b3d1ef24d2d0c8bf31f52abef92da53b29e69410c5acb3a4d6d72429bd8b61d82ac25739ce4 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: "npm:^2.0.0" + checksum: 10/9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"hyperdyperid@npm:^1.2.0": + version: 1.2.0 + resolution: "hyperdyperid@npm:1.2.0" + checksum: 10/64abb5568ff17aa08ac0175ae55e46e22831c5552be98acdd1692081db0209f36fff58b31432017b4e1772c178962676a2cc3c54e4d5d7f020d7710cec7ad7a6 + languageName: node + linkType: hard + +"hyphenate-style-name@npm:^1.0.3": + version: 1.1.0 + resolution: "hyphenate-style-name@npm:1.1.0" + checksum: 10/b9ed74e29181d96bd58a2d0e62fc4a19879db591dba268275829ff0ae595fcdf11faafaeaa63330a45c3004664d7db1f0fc7cdb372af8ee4615ed8260302c207 + languageName: node + linkType: hard + +"i18next@npm:^22.4.15": + version: 22.5.1 + resolution: "i18next@npm:22.5.1" + dependencies: + "@babel/runtime": "npm:^7.20.6" + checksum: 10/ab1a0adee97911917fc46fb4216b8eb7c4ec0a243966609dda6a384e4b22acd25386a817dc51146328d5272ce1c6133558361788ebc4a36fbca250b8b3e90bd1 + languageName: node + linkType: hard + +"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 10/6d3a2dac6e5d1fb126d25645c25c3a1209f70cceecc68b8ef51ae0da3cdc078c151fade7524a30b12a3094926336831fca09c666ef55b37e2c69638b5d6bd2e3 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10/24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f + languageName: node + linkType: hard + +"icss-replace-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "icss-replace-symbols@npm:1.1.0" + checksum: 10/24575b2c2f7e762bfc6f4beee31be9ba98a01cad521b5aa9954090a5de2b5e1bf67814c17e22f9e51b7d798238db8215a173d6c2b4726ce634ce06b68ece8045 + languageName: node + linkType: hard + +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10/5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 + languageName: node + linkType: hard + +"idb-keyval@npm:5.1.5": + version: 5.1.5 + resolution: "idb-keyval@npm:5.1.5" + dependencies: + safari-14-idb-fix: "npm:^1.0.6" + checksum: 10/ea171bf45788b1d0d6923b3b661609c434684bb860e638f76320f35b838a4f800dcfb835e4f3f3d39bf8864a68d76facc6b7800819704e720c94948c2f94b197 + languageName: node + linkType: hard + +"identity-obj-proxy@npm:3.0.0": + version: 3.0.0 + resolution: "identity-obj-proxy@npm:3.0.0" + dependencies: + harmony-reflect: "npm:^1.4.6" + checksum: 10/66fe4d2ffc67655174f6abe100ab3b36d2f5e4de5b28a7c3121e5f51bd4e7c8c1bee4f9a41ce0586ace57fb63bfedbfc39508b7cb43b9e3ed6dc42f762158b4e + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13, ieee754@npm:^1.1.4, ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 + languageName: node + linkType: hard + +"ignore-walk@npm:^5.0.1": + version: 5.0.1 + resolution: "ignore-walk@npm:5.0.1" + dependencies: + minimatch: "npm:^5.0.1" + checksum: 10/a88b3fbda155496363fb3db66c7c7b85cf04d614fb51146f0aa5fc6b35c65370c57f9e6c550cd6048651fc378985b7a2bb9015c9fcb3e0dc798fc0728746703c + languageName: node + linkType: hard + +"ignore@npm:^5.1.4, ignore@npm:^5.1.8, ignore@npm:^5.2.0, ignore@npm:^5.3.1": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98 + languageName: node + linkType: hard + +"immediate@npm:~3.0.5": + version: 3.0.6 + resolution: "immediate@npm:3.0.6" + checksum: 10/f9b3486477555997657f70318cc8d3416159f208bec4cca3ff3442fd266bc23f50f0c9bd8547e1371a6b5e82b821ec9a7044a4f7b944798b25aa3cc6d5e63e62 + languageName: node + linkType: hard + +"immer@npm:^9.0.6, immer@npm:^9.0.7": + version: 9.0.21 + resolution: "immer@npm:9.0.21" + checksum: 10/8455d6b4dc8abfe40f06eeec9bcc944d147c81279424c0f927a4d4905ae34e5af19ab6da60bcc700c14f51c452867d7089b3b9236f5a9a2248e39b4a09ee89de + languageName: node + linkType: hard + +"immutable@npm:^3.x.x": + version: 3.8.2 + resolution: "immutable@npm:3.8.2" + checksum: 10/8a94647c769e97c9685be1b89d5e1b3171e8c1361fb9061fbcf78f630f70bf60e4de0bfca8bdd24a54b1fb814a945a76a30b11b7ee08967f9802a138a54498a2 + languageName: node + linkType: hard + +"import-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "import-cwd@npm:3.0.0" + dependencies: + import-from: "npm:^3.0.0" + checksum: 10/f2c4230e8389605154a390124381f9136811306ae4ba1c8017398c3c6926bc5cf75cf89350372b4938f79792ea373776b4efabd27506440ec301ce34c4e867eb + languageName: node + linkType: hard + +"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10/2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"import-from@npm:^3.0.0": + version: 3.0.0 + resolution: "import-from@npm:3.0.0" + dependencies: + resolve-from: "npm:^5.0.0" + checksum: 10/5040a7400e77e41e2c3bb6b1b123b52a15a284de1ffc03d605879942c00e3a87428499d8d031d554646108a0f77652549411167f6a7788e4fc7027eefccf3356 + languageName: node + linkType: hard + +"import-lazy@npm:~4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 10/943309cc8eb01ada12700448c288b0384f77a1bc33c7e00fa4cb223c665f467a13ce9aaceb8d2e4cf586b07c1d2828040263dcc069873ce63cfc2ac6fd087971 + languageName: node + linkType: hard + +"import-local@npm:^3.0.2": + version: 3.2.0 + resolution: "import-local@npm:3.2.0" + dependencies: + pkg-dir: "npm:^4.2.0" + resolve-cwd: "npm:^3.0.0" + bin: + import-local-fixture: fixtures/cli.js + checksum: 10/0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10/2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10/cd3f5cbc9ca2d624c6a1f53f12e6b341659aba0e2d3254ae2b4464aaea8b4294cdb09616abbc59458f980531f2429784ed6a420d48d245bcad0811980c9efae9 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10/d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 + languageName: node + linkType: hard + +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 10/8771303d66c51be433b564427c16011a8e3fbc3449f1f11ea50efb30a4369495f1d0e89f0fc12bdec0bd7e49102ced5d137e031d39ea09821cb3c717fcf21e69 + languageName: node + linkType: hard + +"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: 10/314ae176e8d4deb3def56106da8002b462221c174ddb7ce0c49ee72c8cd1f9044f7b10cc555a7d8850982c3b9ca96fc212122749f5234bc2b6fb05fb942ed566 + languageName: node + linkType: hard + +"inline-style-parser@npm:0.1.1": + version: 0.1.1 + resolution: "inline-style-parser@npm:0.1.1" + checksum: 10/e661f4fb6824a41076c4d23358e8b581fd3410fbfb9baea4cb542a85448b487691c3b9bbb58ad73a95613041ca616f059595f19cadd0c22476a1fffa79842b48 + languageName: node + linkType: hard + +"inline-style-prefixer@npm:^7.0.1": + version: 7.0.1 + resolution: "inline-style-prefixer@npm:7.0.1" + dependencies: + css-in-js-utils: "npm:^3.1.0" + checksum: 10/a430c962693f32a36bcec0124c9798bcf3725bb90468d493108c0242446a9cc92ff1967bdf99b6ce5331e7a9b75e6836bc9ba1b3d4756876b8ef48036acb2509 + languageName: node + linkType: hard + +"inquirer@npm:8.2.6, inquirer@npm:^8.2.0": + version: 8.2.6 + resolution: "inquirer@npm:8.2.6" + dependencies: + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.1.1" + cli-cursor: "npm:^3.1.0" + cli-width: "npm:^3.0.0" + external-editor: "npm:^3.0.3" + figures: "npm:^3.0.0" + lodash: "npm:^4.17.21" + mute-stream: "npm:0.0.8" + ora: "npm:^5.4.1" + run-async: "npm:^2.4.0" + rxjs: "npm:^7.5.5" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + through: "npm:^2.3.6" + wrap-ansi: "npm:^6.0.1" + checksum: 10/f642b9e5a94faaba54f277bdda2af0e0a6b592bd7f88c60e1614b5795b19336c7025e0c2923915d5f494f600a02fe8517413779a794415bb79a9563b061d68ab + languageName: node + linkType: hard + +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10/1d5219273a3dab61b165eddf358815eefc463207db33c20fcfca54717da02e3f492003757721f972fd0bf21e4b426cab389c5427b99ceea4b8b670dc88ee6d4a + languageName: node + linkType: hard + +"interpret@npm:^2.2.0": + version: 2.2.0 + resolution: "interpret@npm:2.2.0" + checksum: 10/a62d4de5c1f8ab1fd0ccc8a1a8cca8dc31e14928b70364f0787576fe4639c0c463bd79cfe58c9bd9f54db9b7e53d3e646e68fb7627c6b65e3b0e3893156c5126 + languageName: node + linkType: hard + +"invariant@npm:^2.2.2": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" + dependencies: + loose-envify: "npm:^1.0.0" + checksum: 10/cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14 + languageName: node + linkType: hard + +"ioredis@npm:^5.4.1": + version: 5.4.2 + resolution: "ioredis@npm:5.4.2" + dependencies: + "@ioredis/commands": "npm:^1.1.1" + cluster-key-slot: "npm:^1.1.0" + debug: "npm:^4.3.4" + denque: "npm:^2.1.0" + lodash.defaults: "npm:^4.2.0" + lodash.isarguments: "npm:^3.1.0" + redis-errors: "npm:^1.2.0" + redis-parser: "npm:^3.0.0" + standard-as-callback: "npm:^2.1.0" + checksum: 10/1ba306dfb5ec03b07f797e7c55da99207448ce5f733ffd46b03a215ec4db73bd572adb7cf20c993e04f437e80ba4ebe261077d0fc98ed14162cd1b09aa4b8634 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10/1ed81e06721af012306329b31f532b5e24e00cb537be18ddc905a84f19fe8f83a09a1699862bf3a1ec4b9dea93c55a3fa5faf8b5ea380431469df540f38b092c + languageName: node + linkType: hard + +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10/864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca + languageName: node + linkType: hard + +"ipaddr.js@npm:^2.1.0": + version: 2.2.0 + resolution: "ipaddr.js@npm:2.2.0" + checksum: 10/9e1cdd9110b3bca5d910ab70d7fb1933e9c485d9b92cb14ef39f30c412ba3fe02a553921bf696efc7149cc653453c48ccf173adb996ec27d925f1f340f872986 + languageName: node + linkType: hard + +"is-alphabetical@npm:^1.0.0": + version: 1.0.4 + resolution: "is-alphabetical@npm:1.0.4" + checksum: 10/6508cce44fd348f06705d377b260974f4ce68c74000e7da4045f0d919e568226dc3ce9685c5a2af272195384df6930f748ce9213fc9f399b5d31b362c66312cb + languageName: node + linkType: hard + +"is-alphanumerical@npm:^1.0.0": + version: 1.0.4 + resolution: "is-alphanumerical@npm:1.0.4" + dependencies: + is-alphabetical: "npm:^1.0.0" + is-decimal: "npm:^1.0.0" + checksum: 10/e2e491acc16fcf5b363f7c726f666a9538dba0a043665740feb45bba1652457a73441e7c5179c6768a638ed396db3437e9905f403644ec7c468fb41f4813d03f + languageName: node + linkType: hard + +"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": + version: 1.2.0 + resolution: "is-arguments@npm:1.2.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/471a8ef631b8ee8829c43a8ab05c081700c0e25180c73d19f3bf819c1a8448c426a9e8e601f278973eca68966384b16ceb78b8c63af795b099cd199ea5afc457 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/ef1095c55b963cd0dcf6f88a113e44a0aeca91e30d767c475e7d746d28d1195b10c5076b94491a7a0cd85020ca6a4923070021d74651d093dc909e9932cf689b + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: 10/73ced84fa35e59e2c57da2d01e12cd01479f381d7f122ce41dcbb713f09dbfc651315832cd2bf8accba7681a69e4d6f1e03941d94dd10040d415086360e7005e + languageName: node + linkType: hard + +"is-arrayish@npm:^0.3.1": + version: 0.3.2 + resolution: "is-arrayish@npm:0.3.2" + checksum: 10/81a78d518ebd8b834523e25d102684ee0f7e98637136d3bdc93fd09636350fa06f1d8ca997ea28143d4d13cb1b69c0824f082db0ac13e1ab3311c10ffea60ade + languageName: node + linkType: hard + +"is-async-function@npm:^2.0.0": + version: 2.1.1 + resolution: "is-async-function@npm:2.1.1" + dependencies: + async-function: "npm:^1.0.0" + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10/7c2ac7efdf671e03265e74a043bcb1c0a32e226bc2a42dfc5ec8644667df668bbe14b91c08e6c1414f392f8cf86cd1d489b3af97756e2c7a49dd1ba63fd40ca6 + languageName: node + linkType: hard + +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" + dependencies: + has-bigints: "npm:^1.0.2" + checksum: 10/10cf327310d712fe227cfaa32d8b11814c214392b6ac18c827f157e1e85363cf9c8e2a22df526689bd5d25e53b58cc110894787afb54e138e7c504174dba15fd + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10/078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.2.1": + version: 1.2.1 + resolution: "is-boolean-object@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/5a15524635c9334ebbd668f20a6cbf023adceed5725ec96a50056d21ae65f52759d04a8fa7d7febf00ff3bc4e6d3837638eb84be572f287bcfd15f8b8facde43 + languageName: node + linkType: hard + +"is-buffer@npm:^2.0.0": + version: 2.0.5 + resolution: "is-buffer@npm:2.0.5" + checksum: 10/3261a8b858edcc6c9566ba1694bf829e126faa88911d1c0a747ea658c5d81b14b6955e3a702d59dabadd58fdd440c01f321aa71d6547105fd21d03f94d0597e7 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10/452b2c2fb7f889cbbf7e54609ef92cf6c24637c568acc7e63d166812a0fb365ae8a504c333a29add8bdb1686704068caa7f4e4b639b650dde4f00a038b8941fb + languageName: node + linkType: hard + +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + is-typed-array: "npm:^1.1.13" + checksum: 10/357e9a48fa38f369fd6c4c3b632a3ab2b8adca14997db2e4b3fe94c4cd0a709af48e0fb61b02c64a90c0dd542fd489d49c2d03157b05ae6c07f5e4dec9e730a8 + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/3a811b2c3176fb31abee1d23d3dc78b6c65fd9c07d591fcb67553cab9e7f272728c3dd077d2d738b53f9a2103255b0a6e8dfc9568a7805c56a78b2563e8d1dec + languageName: node + linkType: hard + +"is-decimal@npm:^1.0.0": + version: 1.0.4 + resolution: "is-decimal@npm:1.0.4" + checksum: 10/ed483a387517856dc395c68403a10201fddcc1b63dc56513fbe2fe86ab38766120090ecdbfed89223d84ca8b1cd28b0641b93cb6597b6e8f4c097a7c24e3fb96 + languageName: node + linkType: hard + +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 10/3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 + languageName: node + linkType: hard + +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: 10/b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + checksum: 10/0bfb145e9a1ba852ddde423b0926d2169ae5fe9e37882cde9e8f69031281a986308df4d982283e152396e88b86562ed2256cbaa5e6390fb840a4c25ab54b8a80 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: 10/a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 + languageName: node + linkType: hard + +"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": + version: 1.1.0 + resolution: "is-generator-function@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.0" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10/5906ff51a856a5fbc6b90a90fce32040b0a6870da905f98818f1350f9acadfc9884f7c3dec833fce04b83dd883937b86a190b6593ede82e8b1af8b6c4ecf7cbd + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11 + languageName: node + linkType: hard + +"is-hexadecimal@npm:^1.0.0": + version: 1.0.4 + resolution: "is-hexadecimal@npm:1.0.4" + checksum: 10/a452e047587b6069332d83130f54d30da4faf2f2ebaa2ce6d073c27b5703d030d58ed9e0b729c8e4e5b52c6f1dab26781bb77b7bc6c7805f14f320e328ff8cd5 + languageName: node + linkType: hard + +"is-in-browser@npm:^1.0.2, is-in-browser@npm:^1.1.3": + version: 1.1.3 + resolution: "is-in-browser@npm:1.1.3" + checksum: 10/f7411dbea0875ac609a794e28a545d654331e2a51f42a8c1629abbedf21ecb642ca726a4a9c8be28f9854990a764693483652b65612ccf7b5bc68aa4657e9a26 + languageName: node + linkType: hard + +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: "npm:^3.0.0" + bin: + is-inside-container: cli.js + checksum: 10/c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 + languageName: node + linkType: hard + +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: 10/824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 + languageName: node + linkType: hard + +"is-map@npm:^2.0.2, is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb + languageName: node + linkType: hard + +"is-module@npm:^1.0.0": + version: 1.0.0 + resolution: "is-module@npm:1.0.0" + checksum: 10/8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f + languageName: node + linkType: hard + +"is-network-error@npm:^1.0.0": + version: 1.1.0 + resolution: "is-network-error@npm:1.1.0" + checksum: 10/b2fe6aac07f814a9de275efd05934c832c129e7ba292d27614e9e8eec9e043b7a0bbeaeca5d0916b0f462edbec2aa2eaee974ee0a12ac095040e9515c222c251 + languageName: node + linkType: hard + +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/a5922fb8779ab1ea3b8a9c144522b3d0bea5d9f8f23f7a72470e61e1e4df47714e28e0154ac011998b709cce260c3c9447ad3cd24a96c2f2a0abfdb2cbdc76c8 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86 + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-obj@npm:^3.0.0": + version: 3.0.0 + resolution: "is-plain-obj@npm:3.0.0" + checksum: 10/a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c + languageName: node + linkType: hard + +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 10/6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: "npm:^3.0.1" + checksum: 10/2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: 10/ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + +"is-primitive@npm:^3.0.1": + version: 3.0.1 + resolution: "is-primitive@npm:3.0.1" + checksum: 10/c4da6a6e6d487f31d85b9259b67695fffcc75dca6c9612b0a002e3050c734227b9911be09b877539ec6309710229c19f4edd0f9e26ed2a67924ee0916baf0bed + languageName: node + linkType: hard + +"is-promise@npm:^4.0.0": + version: 4.0.0 + resolution: "is-promise@npm:4.0.0" + checksum: 10/0b46517ad47b00b6358fd6553c83ec1f6ba9acd7ffb3d30a0bf519c5c69e7147c132430452351b8a9fc198f8dd6c4f76f8e6f5a7f100f8c77d57d9e0f4261a8a + languageName: node + linkType: hard + +"is-property@npm:^1.0.2": + version: 1.0.2 + resolution: "is-property@npm:1.0.2" + checksum: 10/2f66eacb3d7237ba5c725496672edec656a20b12c80790921988578e6b11c258a062ce1e602f3cd2e3c2e05dd8b6e24e1d59254375207f157424a02ef0abb3d7 + languageName: node + linkType: hard + +"is-reference@npm:1.2.1": + version: 1.2.1 + resolution: "is-reference@npm:1.2.1" + dependencies: + "@types/estree": "npm:*" + checksum: 10/e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc + languageName: node + linkType: hard + +"is-regex@npm:^1.1.4, is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/c42b7efc5868a5c9a4d8e6d3e9816e8815c611b09535c00fead18a1138455c5cb5e1887f0023a467ad3f9c419d62ba4dc3d9ba8bafe55053914d6d6454a945d2 + languageName: node + linkType: hard + +"is-root@npm:^2.1.0": + version: 2.1.0 + resolution: "is-root@npm:2.1.0" + checksum: 10/37eea0822a2a9123feb58a9d101558ba276771a6d830f87005683349a9acff15958a9ca590a44e778c6b335660b83e85c744789080d734f6081a935a4880aee2 + languageName: node + linkType: hard + +"is-set@npm:^2.0.2, is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" + dependencies: + call-bound: "npm:^1.0.3" + checksum: 10/0380d7c60cc692856871526ffcd38a8133818a2ee42d47bb8008248a0cd2121d8c8b5f66b6da3cac24bc5784553cacb6faaf678f66bc88c6615b42af2825230e + languageName: node + linkType: hard + +"is-ssh@npm:^1.4.0": + version: 1.4.0 + resolution: "is-ssh@npm:1.4.0" + dependencies: + protocols: "npm:^2.0.1" + checksum: 10/e2d17d74a19b4368cc06ce5c76d4f625952442da337098d670a9840e1db5334c646aa0a6ed3a01e9d396901e22c755174ce64e74c3139bb10e5df03d5a6fb3fa + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0, is-stream@npm:^2.0.1": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-string@npm:^1.0.7, is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/5277cb9e225a7cc8a368a72623b44a99f2cfa139659c6b203553540681ad4276bfc078420767aad0e73eef5f0bd07d4abf39a35d37ec216917879d11cebc1f8b + languageName: node + linkType: hard + +"is-subdir@npm:^1.1.1": + version: 1.2.0 + resolution: "is-subdir@npm:1.2.0" + dependencies: + better-path-resolve: "npm:1.0.0" + checksum: 10/31029a383972bff4cc4f1bd1463fd04dde017e0a04ae3a6f6e08124a90c6c4656312d593101b0f38805fa3f3c8f6bc4583524bbf72c50784fa5ca0d3e5a76279 + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + safe-regex-test: "npm:^1.1.0" + checksum: 10/db495c0d8cd0a7a66b4f4ef7fccee3ab5bd954cb63396e8ac4d32efe0e9b12fdfceb851d6c501216a71f4f21e5ff20fc2ee845a3d52d455e021c466ac5eb2db2 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" + dependencies: + which-typed-array: "npm:^1.1.16" + checksum: 10/e8cf60b9ea85667097a6ad68c209c9722cfe8c8edf04d6218366469e51944c5cc25bae45ffb845c23f811d262e4314d3b0168748eb16711aa34d12724cdf0735 + languageName: node + linkType: hard + +"is-typedarray@npm:~1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 10/4b433bfb0f9026f079f4eb3fbaa4ed2de17c9995c3a0b5c800bec40799b4b2a8b4e051b1ada77749deb9ded4ae52fe2096973f3a93ff83df1a5a7184a669478c + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + languageName: node + linkType: hard + +"is-url@npm:^1.2.4": + version: 1.2.4 + resolution: "is-url@npm:1.2.4" + checksum: 10/100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432 + languageName: node + linkType: hard + +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: 10/a7b7e23206c542dcf2fa0abc483142731788771527e90e7e24f658c0833a0d91948a4f7b30d78f7a65255a48512e41a0288b778ba7fc396137515c12e201fd11 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": + version: 1.1.0 + resolution: "is-weakref@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + checksum: 10/89e627cc1763ea110574bb408fcf060ede47e70437d9278858bc939e3b3f7e4b7c558610b733da5f2ad6084d9f12b9c714b011ccf3fa771ec87e221c22bed910 + languageName: node + linkType: hard + +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" + dependencies: + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/1d5e1d0179beeed3661125a6faa2e59bfb48afda06fc70db807f178aa0ebebc3758fb6358d76b3d528090d5ef85148c345dcfbf90839592fe293e3e5e82f2134 + languageName: node + linkType: hard + +"is-windows@npm:^1.0.0, is-windows@npm:^1.0.1": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 10/438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: "npm:^2.0.0" + checksum: 10/20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 + languageName: node + linkType: hard + +"is-wsl@npm:^3.1.0": + version: 3.1.0 + resolution: "is-wsl@npm:3.1.0" + dependencies: + is-inside-container: "npm:^1.0.0" + checksum: 10/f9734c81f2f9cf9877c5db8356bfe1ff61680f1f4c1011e91278a9c0564b395ae796addb4bf33956871041476ec82c3e5260ed57b22ac91794d4ae70a1d2f0a9 + languageName: node + linkType: hard + +"isarray@npm:^1.0.0, isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: 10/f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92 + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10/7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"isomorphic-dompurify@npm:^2.14.0": + version: 2.20.0 + resolution: "isomorphic-dompurify@npm:2.20.0" + dependencies: + dompurify: "npm:^3.2.3" + jsdom: "npm:^26.0.0" + checksum: 10/af4b59f538874dff7886062ea090e6708fd30ddcf3437fb35d58cbc1ead3b62f62b31581b2527393434876bbdfcb688e51e0803db100b56986e30d5a1c3cf129 + languageName: node + linkType: hard + +"isomorphic-form-data@npm:^2.0.0": + version: 2.0.0 + resolution: "isomorphic-form-data@npm:2.0.0" + dependencies: + form-data: "npm:^2.3.2" + checksum: 10/234bfaa1ed037b1d6cf659eb7a5806889f1f60bc4c7effe5f54e52506004604a9d7229a03a8f9656a1a7ea5fcedca4342277083e38f88ff910b64eefa97dd95e + languageName: node + linkType: hard + +"isomorphic-git@npm:^1.23.0": + version: 1.29.0 + resolution: "isomorphic-git@npm:1.29.0" + dependencies: + async-lock: "npm:^1.4.1" + clean-git-ref: "npm:^2.0.1" + crc-32: "npm:^1.2.0" + diff3: "npm:0.0.3" + ignore: "npm:^5.1.4" + minimisted: "npm:^2.0.0" + pako: "npm:^1.0.10" + path-browserify: "npm:^1.0.1" + pify: "npm:^4.0.1" + readable-stream: "npm:^3.4.0" + sha.js: "npm:^2.4.9" + simple-get: "npm:^4.0.1" + bin: + isogit: cli.cjs + checksum: 10/d9a7ec608bc6a374019018fa9116a10c7dd5148317ccbc1d76524d3fda4146c8eac4eb4120a602333849e0d390d229843adb4e926faf641ead60b016a611f5cf + languageName: node + linkType: hard + +"isomorphic-rslog@npm:0.0.7": + version: 0.0.7 + resolution: "isomorphic-rslog@npm:0.0.7" + checksum: 10/cb6f03a64bdbb3972c22429a4fcdff25505ceca2bf09ca2cebc1c8086b2580f67d4dd04daba79d7dd642af099deea1eb884667ddf183bd3192b67faaf86438cc + languageName: node + linkType: hard + +"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: 10/e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 + languageName: node + linkType: hard + +"isomorphic-ws@npm:^4.0.1": + version: 4.0.1 + resolution: "isomorphic-ws@npm:4.0.1" + peerDependencies: + ws: "*" + checksum: 10/d7190eadefdc28bdb93d67b5f0c603385aaf87724fa2974abb382ac1ec9756ed2cfb27065cbe76122879c2d452e2982bc4314317f3d6c737ddda6c047328771a + languageName: node + linkType: hard + +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 10/22d9c181015226d4534a227539256897bbbcb7edd1066ca4fc4d3a06dbd976325dfdd16b3983c7d236a89f256805c1a685a772e0364e98873d3819b064ad35a1 + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 10/40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": "npm:^7.12.3" + "@babel/parser": "npm:^7.14.7" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^6.3.0" + checksum: 10/bbc4496c2f304d799f8ec22202ab38c010ac265c441947f075c0f7d46bd440b45c00e46017cf9053453d42182d768b1d6ed0e70a142c95ab00df9843aa5ab80e + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: 10/aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695 + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: "npm:^3.0.0" + make-dir: "npm:^4.0.0" + supports-color: "npm:^7.1.0" + checksum: 10/86a83421ca1cf2109a9f6d193c06c31ef04a45e72a74579b11060b1e7bb9b6337a4e6f04abfb8857e2d569c271273c65e855ee429376a0d7c91ad91db42accd1 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: "npm:^4.1.1" + istanbul-lib-coverage: "npm:^3.0.0" + source-map: "npm:^0.6.1" + checksum: 10/5526983462799aced011d776af166e350191b816821ea7bcf71cab3e5272657b062c47dc30697a22a43656e3ced78893a42de677f9ccf276a28c913190953b82 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.3": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa + languageName: node + linkType: hard + +"iterall@npm:^1.2.1, iterall@npm:^1.3.0": + version: 1.3.0 + resolution: "iterall@npm:1.3.0" + checksum: 10/700c3e9ae194a00b66dc8dcb449195f84add4e64afaf7ed624177e19565393f9bddd34d621ea70c8eceab87a8536fc0e45bb1c9d1ea7c710d41ed0c3d937b19f + languageName: node + linkType: hard + +"iterare@npm:1.2.1": + version: 1.2.1 + resolution: "iterare@npm:1.2.1" + checksum: 10/ee8322dd9d92e86d8653c899df501c58c5b8e90d6767cf2af0b6d6dc5a4b9b7ed8bce936976f4f4c3a55be110a300c8a7d71967d03f72e104e8db66befcfd874 + languageName: node + linkType: hard + +"iterator.prototype@npm:^1.1.4": + version: 1.1.5 + resolution: "iterator.prototype@npm:1.1.5" + dependencies: + define-data-property: "npm:^1.1.4" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.6" + get-proto: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" + set-function-name: "npm:^2.0.2" + checksum: 10/352bcf333f42189e65cc8cb2dcb94a5c47cf0a9110ce12aba788d405a980b5f5f3a06c79bf915377e1d480647169babd842ded0d898bed181bf6686e8e6823f6 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3 + languageName: node + linkType: hard + +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: "npm:^5.0.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + checksum: 10/3d93742e56b1a73a145d55b66e96711fbf87ef89b96c2fab7cfdfba8ec06612591a982111ca2b712bb853dbc16831ec8b43585a2a96b83862d6767de59cbf83d + languageName: node + linkType: hard + +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + co: "npm:^4.6.0" + dedent: "npm:^1.0.0" + is-generator-fn: "npm:^2.0.0" + jest-each: "npm:^29.7.0" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + pure-rand: "npm:^6.0.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10/716a8e3f40572fd0213bcfc1da90274bf30d856e5133af58089a6ce45089b63f4d679bd44e6be9d320e8390483ebc3ae9921981993986d21639d9019b523123d + languageName: node + linkType: hard + +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + create-jest: "npm:^29.7.0" + exit: "npm:^0.1.2" + import-local: "npm:^3.0.2" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + yargs: "npm:^17.3.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10/6cc62b34d002c034203065a31e5e9a19e7c76d9e8ef447a6f70f759c0714cb212c6245f75e270ba458620f9c7b26063cd8cf6cd1f7e3afd659a7cc08add17307 + languageName: node + linkType: hard + +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/test-sequencer": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-jest: "npm:^29.7.0" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + deepmerge: "npm:^4.2.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-circus: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + parse-json: "npm:^5.2.0" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-json-comments: "npm:^3.1.1" + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 10/6bdf570e9592e7d7dd5124fc0e21f5fe92bd15033513632431b211797e3ab57eaa312f83cc6481b3094b72324e369e876f163579d60016677c117ec4853cf02b + languageName: node + linkType: hard + +"jest-css-modules@npm:^2.1.0": + version: 2.1.0 + resolution: "jest-css-modules@npm:2.1.0" + dependencies: + identity-obj-proxy: "npm:3.0.0" + checksum: 10/c7065e35e44aca2272eaa3c271e5f6af00c42768fd92dfe10344392dfc94ffc599f76d166412f55d917ef28405e32b28e80ece426c803eea2507f8bdea05ccb5 + languageName: node + linkType: hard + +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + diff-sequences: "npm:^29.6.3" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10/6f3a7eb9cd9de5ea9e5aa94aed535631fa6f80221832952839b3cb59dd419b91c20b73887deb0b62230d06d02d6b6cf34ebb810b88d904bb4fe1e2e4f0905c98 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: "npm:^3.0.0" + checksum: 10/8d48818055bc96c9e4ec2e217a5a375623c0d0bfae8d22c26e011074940c202aa2534a3362294c81d981046885c05d304376afba9f2874143025981148f3e96d + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + checksum: 10/bd1a077654bdaa013b590deb5f7e7ade68f2e3289180a8c8f53bc8a49f3b40740c0ec2d3a3c1aee906f682775be2bebbac37491d80b634d15276b0aa0f2e3fda + languageName: node + linkType: hard + +"jest-environment-jsdom@npm:^29.0.2": + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/jsdom": "npm:^20.0.0" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jsdom: "npm:^20.0.0" + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10/23bbfc9bca914baef4b654f7983175a4d49b0f515a5094ebcb8f819f28ec186f53c0ba06af1855eac04bab1457f4ea79dae05f70052cf899863e8096daa6e0f5 + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10/9cf7045adf2307cc93aed2f8488942e39388bff47ec1df149a997c6f714bfc66b2056768973770d3f8b1bf47396c19aa564877eb10ec978b952c6018ed1bd637 + languageName: node + linkType: hard + +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 10/88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/graceful-fs": "npm:^4.1.3" + "@types/node": "npm:*" + anymatch: "npm:^3.0.3" + fb-watchman: "npm:^2.0.0" + fsevents: "npm:^2.3.2" + graceful-fs: "npm:^4.2.9" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + walker: "npm:^1.0.8" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/8531b42003581cb18a69a2774e68c456fb5a5c3280b1b9b77475af9e346b6a457250f9d756bfeeae2fe6cbc9ef28434c205edab9390ee970a919baddfa08bb85 + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10/e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10/981904a494299cf1e3baed352f8a3bd8b50a8c13a662c509b6a53c31461f94ea3bfeffa9d5efcfeb248e384e318c87de7e3baa6af0f79674e987482aa189af40 + languageName: node + linkType: hard + +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": "npm:^7.12.13" + "@jest/types": "npm:^29.6.3" + "@types/stack-utils": "npm:^2.0.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10/31d53c6ed22095d86bab9d14c0fa70c4a92c749ea6ceece82cf30c22c9c0e26407acdfbdb0231435dc85a98d6d65ca0d9cbcd25cd1abb377fe945e843fb770b9 + languageName: node + linkType: hard + +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + checksum: 10/ae51d1b4f898724be5e0e52b2268a68fcd876d9b20633c864a6dd6b1994cbc48d62402b0f40f3a1b669b30ebd648821f086c26c08ffde192ced951ff4670d51c + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: 10/db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 + languageName: node + linkType: hard + +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 10/0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: "npm:^29.6.3" + jest-snapshot: "npm:^29.7.0" + checksum: 10/1e206f94a660d81e977bcfb1baae6450cb4a81c92e06fad376cc5ea16b8e8c6ea78c383f39e95591a9eb7f925b6a1021086c38941aa7c1b8a6a813c2f6e93675 + languageName: node + linkType: hard + +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-pnp-resolver: "npm:^1.2.2" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + resolve: "npm:^1.20.0" + resolve.exports: "npm:^2.0.0" + slash: "npm:^3.0.0" + checksum: 10/faa466fd9bc69ea6c37a545a7c6e808e073c66f46ab7d3d8a6ef084f8708f201b85d5fe1799789578b8b47fa1de47b9ee47b414d1863bc117a49e032ba77b7c7 + languageName: node + linkType: hard + +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/environment": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + graceful-fs: "npm:^4.2.9" + jest-docblock: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-leak-detector: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-resolve: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + source-map-support: "npm:0.5.13" + checksum: 10/9d8748a494bd90f5c82acea99be9e99f21358263ce6feae44d3f1b0cd90991b5df5d18d607e73c07be95861ee86d1cbab2a3fc6ca4b21805f07ac29d47c1da1e + languageName: node + linkType: hard + +"jest-runtime@npm:^29.0.2, jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/globals": "npm:^29.7.0" + "@jest/source-map": "npm:^29.6.3" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + cjs-module-lexer: "npm:^1.0.0" + collect-v8-coverage: "npm:^1.0.0" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-bom: "npm:^4.0.0" + checksum: 10/59eb58eb7e150e0834a2d0c0d94f2a0b963ae7182cfa6c63f2b49b9c6ef794e5193ef1634e01db41420c36a94cefc512cdd67a055cd3e6fa2f41eaf0f82f5a20 + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@babel/generator": "npm:^7.7.2" + "@babel/plugin-syntax-jsx": "npm:^7.7.2" + "@babel/plugin-syntax-typescript": "npm:^7.7.2" + "@babel/types": "npm:^7.3.3" + "@jest/expect-utils": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + chalk: "npm:^4.0.0" + expect: "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + natural-compare: "npm:^1.4.0" + pretty-format: "npm:^29.7.0" + semver: "npm:^7.5.3" + checksum: 10/cb19a3948256de5f922d52f251821f99657339969bf86843bd26cf3332eae94883e8260e3d2fba46129a27c3971c1aa522490e460e16c7fad516e82d10bbf9f8 + languageName: node + linkType: hard + +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + graceful-fs: "npm:^4.2.9" + picomatch: "npm:^2.2.3" + checksum: 10/30d58af6967e7d42bd903ccc098f3b4d3859ed46238fbc88d4add6a3f10bea00c226b93660285f058bc7a65f6f9529cf4eb80f8d4707f79f9e3a23686b4ab8f3 + languageName: node + linkType: hard + +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + camelcase: "npm:^6.2.0" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + leven: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + checksum: 10/8ee1163666d8eaa16d90a989edba2b4a3c8ab0ffaa95ad91b08ca42b015bfb70e164b247a5b17f9de32d096987cada63ed8491ab82761bfb9a28bc34b27ae161 + languageName: node + linkType: hard + +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + jest-util: "npm:^29.7.0" + string-length: "npm:^4.0.1" + checksum: 10/4f616e0345676631a7034b1d94971aaa719f0cd4a6041be2aa299be437ea047afd4fe05c48873b7963f5687a2f6c7cbf51244be8b14e313b97bfe32b1e127e55 + languageName: node + linkType: hard + +"jest-worker@npm:^27.4.5": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "npm:*" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10/06c6e2a84591d9ede704d5022fc13791e8876e83397c89d481b0063332abbb64c0f01ef4ca7de520b35c7a1058556078d6bdc3631376f4e9ffb42316c1a8488e + languageName: node + linkType: hard + +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10/364cbaef00d8a2729fc760227ad34b5e60829e0869bd84976bdfbd8c0d0f9c2f22677b3e6dd8afa76ed174765351cd12bae3d4530c62eefb3791055127ca9745 + languageName: node + linkType: hard + +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + import-local: "npm:^3.0.2" + jest-cli: "npm:^29.7.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10/97023d78446098c586faaa467fbf2c6b07ff06e2c85a19e3926adb5b0effe9ac60c4913ae03e2719f9c01ae8ffd8d92f6b262cedb9555ceeb5d19263d8c6362a + languageName: node + linkType: hard + +"jiti@npm:^2.0.0, jiti@npm:^2.4.2": + version: 2.4.2 + resolution: "jiti@npm:2.4.2" + bin: + jiti: lib/jiti-cli.mjs + checksum: 10/e2b07eb2e3fbb245e29ad288dddecab31804967fc84d5e01d39858997d2743b5e248946defcecf99272275a00284ecaf7ec88b8c841331324f0c946d8274414b + languageName: node + linkType: hard + +"jju@npm:~1.4.0": + version: 1.4.0 + resolution: "jju@npm:1.4.0" + checksum: 10/1067ff8ce02221faac5a842116ed0ec79a53312a111d0bf8342a80bd02c0a3fdf0b8449694a65947db0a3e8420e8b326dffb489c7dd5866efc380c0d1708a707 + languageName: node + linkType: hard + +"jmespath@npm:^0.15.0": + version: 0.15.0 + resolution: "jmespath@npm:0.15.0" + checksum: 10/575eea08816166004fbd3c0a0d1aa1ae3368fb7f60f6a97022d247082009d7c4d3d295c9ed318495ef005e496ec77150a8a48a7787e00c1f9128cc38c5dbef7e + languageName: node + linkType: hard + +"jose@npm:^4.15.9": + version: 4.15.9 + resolution: "jose@npm:4.15.9" + checksum: 10/256234b6f85cdc080b1331f2d475bd58c8ccf459cb20f70ac5e4200b271bce10002b1c2f8e5b96dd975d83065ae5a586d52cdf89d28471d56de5d297992f9905 + languageName: node + linkType: hard + +"jose@npm:^5.0.0": + version: 5.9.6 + resolution: "jose@npm:5.9.6" + checksum: 10/3ebbda9f6a96d493944f2720bf4436347884666cd87b7087a61cff12a3b540fe6fd743b5eb8defe7bc2a45aa58992ae6687da78797d91fc4e3e5e8588aa98c7d + languageName: node + linkType: hard + +"js-base64@npm:^3.6.0": + version: 3.7.7 + resolution: "js-base64@npm:3.7.7" + checksum: 10/185e34c536a6b1c4e1ad8bd96d25b49a9ea4e6803e259eaaaca95f1b392a0d590b2933c5ca8580c776f7279507944b81ff1faf889d84baa5e31f026e96d676a5 + languageName: node + linkType: hard + +"js-cookie@npm:^2.2.1": + version: 2.2.1 + resolution: "js-cookie@npm:2.2.1" + checksum: 10/4387f5f5691cb96ca9ff8852c589d3012b53f484fda68630a39e20cabc6c5b740f09225e23233ba56cd9de6ebe300a23d20b2c7315f10c309ad5a89fd8c4990b + languageName: node + linkType: hard + +"js-file-download@npm:^0.4.12": + version: 0.4.12 + resolution: "js-file-download@npm:0.4.12" + checksum: 10/a03847eef0184fbf34a7b7fd365ea6aa1a6cc142efeac52c4baa0cdde845dc93718eb66808dfcffd6c91b37ddc9d058d352ac9698b4280744bad3587240c93b6 + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2 + languageName: node + linkType: hard + +"js-yaml@npm:=4.1.0, js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/c138a34a3fd0d08ebaf71273ad4465569a483b8a639e0b118ff65698d257c2791d3199e3f303631f2cb98213fa7b5f5d6a4621fd0fff819421b990d30d967140 + languageName: node + linkType: hard + +"js-yaml@npm:^3.10.0, js-yaml@npm:^3.13.1, js-yaml@npm:^3.6.1, js-yaml@npm:^3.8.3": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/9e22d80b4d0105b9899135365f746d47466ed53ef4223c529b3c0f7a39907743fdbd3c4379f94f1106f02755b5e90b2faaf84801a891135544e1ea475d1a1379 + languageName: node + linkType: hard + +"js-yaml@npm:~3.13.1": + version: 3.13.1 + resolution: "js-yaml@npm:3.13.1" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/cec89175b065743875fce53e63adc8b89aded77e18d00e54ff80c57ab730f22ccfddaf2fe3e6adab1d6dff59a3d55dd9ae6fc711d46335b7e94c32d3583a5627 + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10/bebe7ae829bbd586ce8cbe83501dd8cb8c282c8902a8aeeed0a073a89dc37e8103b1244f3c6acd60278bcbfe12d93a3f83c9ac396868a3b3bbc3c5e5e3b648ef + languageName: node + linkType: hard + +"jsbn@npm:~0.1.0": + version: 0.1.1 + resolution: "jsbn@npm:0.1.1" + checksum: 10/5450133242845100e694f0ef9175f44c012691a9b770b2571e677314e6f70600abb10777cdfc9a0c6a9f2ac6d134577403633de73e2fcd0f97875a67744e2d14 + languageName: node + linkType: hard + +"jsdom@npm:^20.0.0": + version: 20.0.3 + resolution: "jsdom@npm:20.0.3" + dependencies: + abab: "npm:^2.0.6" + acorn: "npm:^8.8.1" + acorn-globals: "npm:^7.0.0" + cssom: "npm:^0.5.0" + cssstyle: "npm:^2.3.0" + data-urls: "npm:^3.0.2" + decimal.js: "npm:^10.4.2" + domexception: "npm:^4.0.0" + escodegen: "npm:^2.0.0" + form-data: "npm:^4.0.0" + html-encoding-sniffer: "npm:^3.0.0" + http-proxy-agent: "npm:^5.0.0" + https-proxy-agent: "npm:^5.0.1" + is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.2" + parse5: "npm:^7.1.1" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^4.1.2" + w3c-xmlserializer: "npm:^4.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^2.0.0" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^11.0.0" + ws: "npm:^8.11.0" + xml-name-validator: "npm:^4.0.0" + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10/a4cdcff5b07eed87da90b146b82936321533b5efe8124492acf7160ebd5b9cf2b3c2435683592bf1cffb479615245756efb6c173effc1906f845a86ed22af985 + languageName: node + linkType: hard + +"jsdom@npm:^26.0.0": + version: 26.0.0 + resolution: "jsdom@npm:26.0.0" + dependencies: + cssstyle: "npm:^4.2.1" + data-urls: "npm:^5.0.0" + decimal.js: "npm:^10.4.3" + form-data: "npm:^4.0.1" + html-encoding-sniffer: "npm:^4.0.0" + http-proxy-agent: "npm:^7.0.2" + https-proxy-agent: "npm:^7.0.6" + is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.16" + parse5: "npm:^7.2.1" + rrweb-cssom: "npm:^0.8.0" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^5.0.0" + w3c-xmlserializer: "npm:^5.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^3.1.1" + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.1.0" + ws: "npm:^8.18.0" + xml-name-validator: "npm:^5.0.0" + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10/8c230ee4657240bbbca6b4ebb484be53fc6a777a22a3357c80c5537222813666e3e1f54740bc13e769c461d9598ba7dac402c245949c6cef7ef7014ce6f36f01 + languageName: node + linkType: hard + +"jsep@npm:^1.2.0, jsep@npm:^1.3.6, jsep@npm:^1.4.0": + version: 1.4.0 + resolution: "jsep@npm:1.4.0" + checksum: 10/935824fe6ac28fcff3cd13878f508f99f6c13e7f0f53ec9fca0d3db465e6dd15f8af030bcdc75a38b07c78359c656647435923a26aceb91607027021f00c17f2 + languageName: node + linkType: hard + +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" + bin: + jsesc: bin/jsesc + checksum: 10/20bd37a142eca5d1794f354db8f1c9aeb54d85e1f5c247b371de05d23a9751ecd7bd3a9c4fc5298ea6fa09a100dafb4190fa5c98c6610b75952c3487f3ce7967 + languageName: node + linkType: hard + +"jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: 10/8e5a7de6b70a8bd71f9cb0b5a7ade6a73ae6ab55e697c74cc997cede97417a3a65ed86c36f7dd6125fe49766e8386c845023d9e213916ca92c9dfdd56e2babf3 + languageName: node + linkType: hard + +"json-bigint@npm:^1.0.0": + version: 1.0.0 + resolution: "json-bigint@npm:1.0.0" + dependencies: + bignumber.js: "npm:^9.0.0" + checksum: 10/cd3973b88e5706f8f89d2a9c9431f206ef385bd5c584db1b258891a5e6642507c32316b82745239088c697f5ddfe967351e1731f5789ba7855aed56ad5f70e1f + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1, json-buffer@npm:^3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10/82876154521b7b68ba71c4f969b91572d1beabadd87bd3a6b236f85fbc7dc4695089191ed60bb59f9340993c51b33d479f45b6ba9f3548beb519705281c32c3c + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10/5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf + languageName: node + linkType: hard + +"json-pointer@npm:0.6.2": + version: 0.6.2 + resolution: "json-pointer@npm:0.6.2" + dependencies: + foreach: "npm:^2.0.4" + checksum: 10/1d8fc507008cf28815ad398baa7a6d62a73cce2d5ca7859097bb56043b3b6889e393bf5285db9674ddcdb8bc10551146cf8048d3d6430d55ce922105813661e2 + languageName: node + linkType: hard + +"json-rules-engine@npm:^7.0.0": + version: 7.3.0 + resolution: "json-rules-engine@npm:7.3.0" + dependencies: + clone: "npm:^2.1.2" + eventemitter2: "npm:^6.4.4" + hash-it: "npm:^6.0.0" + jsonpath-plus: "npm:^10.2.0" + checksum: 10/ed29f87f5d7410056b6944683d44550848027a6495d8063cbddbf116da0d93f4a6c2d53a4c14eb18ad77d577012d191699ae7b313f342b2b3b7af504b9744623 + languageName: node + linkType: hard + +"json-schema-compare@npm:^0.2.2": + version: 0.2.2 + resolution: "json-schema-compare@npm:0.2.2" + dependencies: + lodash: "npm:^4.17.4" + checksum: 10/90af65174517b281ffe93fc398946f215a9c1a0a4fe15a50723755e347c4305a2c208ea07d6cee3108c2db22d82b8d5410c006b8dc9cd1a9b4a7d4eb9a727fc1 + languageName: node + linkType: hard + +"json-schema-library@npm:^9.0.0": + version: 9.3.5 + resolution: "json-schema-library@npm:9.3.5" + dependencies: + "@sagold/json-pointer": "npm:^5.1.2" + "@sagold/json-query": "npm:^6.1.3" + deepmerge: "npm:^4.3.1" + fast-copy: "npm:^3.0.2" + fast-deep-equal: "npm:^3.1.3" + smtp-address-parser: "npm:1.0.10" + valid-url: "npm:^1.0.9" + checksum: 10/c78e0fb2a925767ff900081e3ff604b070d0a214be2388f241d43737b613af64ecddf0476f0752a10c10c3b56644e5062f3dac34507c6a17b4d8ae9fbf6fa823 + languageName: node + linkType: hard + +"json-schema-merge-allof@npm:^0.8.1": + version: 0.8.1 + resolution: "json-schema-merge-allof@npm:0.8.1" + dependencies: + compute-lcm: "npm:^1.1.2" + json-schema-compare: "npm:^0.2.2" + lodash: "npm:^4.17.20" + checksum: 10/a12d8690038cedd7391ac1f7d5897b2d7b8fb867174839ec7583f53b025ad0a90ccefab572bafdf0a5421b3434305c5797ffd6209edc835527b325e6a1a5d562 + languageName: node + linkType: hard + +"json-schema-to-ts@npm:^3.0.0": + version: 3.1.1 + resolution: "json-schema-to-ts@npm:3.1.1" + dependencies: + "@babel/runtime": "npm:^7.18.3" + ts-algebra: "npm:^2.0.0" + checksum: 10/9fd0490279d36ff8b4604cc10632df05e4e5f5ee1d0a77841c927623fc1e636c47eb4ace488018c4e9a2e7e5dde5520d0870e06dfc84b930d9c98c6eacd0f041 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10/7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 10/02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json-schema@npm:0.4.0, json-schema@npm:^0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 10/8b3b64eff4a807dc2a3045b104ed1b9335cd8d57aa74c58718f07f0f48b8baa3293b00af4dcfbdc9144c3aafea1e97982cc27cc8e150fc5d93c540649507a458 + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: 10/12786c2e2f22c27439e6db0532ba321f1d0617c27ad8cb1c352a0e9249a50182fd1ba8b52a18899291604b0c32eafa8afd09e51203f19109a0537f68db2b652d + languageName: node + linkType: hard + +"json-stable-stringify@npm:^1.0.1": + version: 1.2.1 + resolution: "json-stable-stringify@npm:1.2.1" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + isarray: "npm:^2.0.5" + jsonify: "npm:^0.0.1" + object-keys: "npm:^1.1.1" + checksum: 10/f4600d34605e1da81a615ddf7dc62f021a5a5c822aee38b3c878e9a703bbd72623402944dbd7848140602c9ec54bfa2df65dfe75cc40afcfd79f3f072ca5307b + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10/59169a081e4eeb6f9559ae1f938f656191c000e0512aa6df9f3c8b2437a4ab1823819c6b9fd1818a4e39593ccfd72e9a051fdd3e2d1e340ed913679e888ded8c + languageName: node + linkType: hard + +"json5@npm:^1.0.1, json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: "npm:^1.2.0" + bin: + json5: lib/cli.js + checksum: 10/a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6 + languageName: node + linkType: hard + +"json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da + languageName: node + linkType: hard + +"jsonc-parser@npm:^3.2.0": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 10/9b0dc391f20b47378f843ef1e877e73ec652a5bdc3c5fa1f36af0f119a55091d147a86c1ee86a232296f55c929bba174538c2bf0312610e0817a22de131cc3f4 + languageName: node + linkType: hard + +"jsonc-parser@npm:~2.2.1": + version: 2.2.1 + resolution: "jsonc-parser@npm:2.2.1" + checksum: 10/326cc4ea2ae4649e3b45fd7802d2523e7746f77a08ef6aba44a106f368362ead3c0b214cc7268a9d534946c01b0b20a8259fa1f3a62b3c8ee7708b417b6d8113 + languageName: node + linkType: hard + +"jsonfile@npm:^4.0.0": + version: 4.0.0 + resolution: "jsonfile@npm:4.0.0" + dependencies: + graceful-fs: "npm:^4.1.6" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10/17796f0ab1be8479827d3683433f97ebe0a1c6932c3360fa40348eac36904d69269aab26f8b16da311882d94b42e9208e8b28e490bf926364f3ac9bff134c226 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10/03014769e7dc77d4cf05fa0b534907270b60890085dd5e4d60a382ff09328580651da0b8b4cdf44d91e4c8ae64d91791d965f05707beff000ed494a38b6fec85 + languageName: node + linkType: hard + +"jsonify@npm:^0.0.1": + version: 0.0.1 + resolution: "jsonify@npm:0.0.1" + checksum: 10/7b86b6f4518582ff1d8b7624ed6c6277affd5246445e864615dbdef843a4057ac58587684faf129ea111eeb80e01c15f0a4d9d03820eb3f3985fa67e81b12398 + languageName: node + linkType: hard + +"jsonpath-plus@npm:10.2.0, jsonpath-plus@npm:^10.0.0, jsonpath-plus@npm:^10.2.0, jsonpath-plus@npm:^6.0.1 || ^10.1.0": + version: 10.2.0 + resolution: "jsonpath-plus@npm:10.2.0" + dependencies: + "@jsep-plugin/assignment": "npm:^1.3.0" + "@jsep-plugin/regex": "npm:^1.0.4" + jsep: "npm:^1.4.0" + bin: + jsonpath: bin/jsonpath-cli.js + jsonpath-plus: bin/jsonpath-cli.js + checksum: 10/3a6bd775d4348f5e014249a11abb635af2f1265d83ba716b3d633ca3f118e79c318223dd685170c50652494a492f3354163bbe4cd5554bb4d7992fecf53c4874 + languageName: node + linkType: hard + +"jsonpath-plus@npm:^7.2.0": + version: 7.2.0 + resolution: "jsonpath-plus@npm:7.2.0" + checksum: 10/f602445b1aa2d55abc2875859fd948f942980ef6400ca2a0362c7a6aa6f912467865262f4d092e04a16889fa74f0dbf6fd67b9dc9583485a5059be6e0a62c6c2 + languageName: node + linkType: hard + +"jsonpath@npm:^1.1.1": + version: 1.1.1 + resolution: "jsonpath@npm:1.1.1" + dependencies: + esprima: "npm:1.2.2" + static-eval: "npm:2.0.2" + underscore: "npm:1.12.1" + checksum: 10/aa6c2fea9c05eeba4a37870cbbcf30c20de5211d0fd967786b6c59b8546c9f80182328ee2428daf989c8d5c6e6bf97fed28eefc790144258b1238707c30706eb + languageName: node + linkType: hard + +"jsonpointer@npm:^5.0.0, jsonpointer@npm:^5.0.1": + version: 5.0.1 + resolution: "jsonpointer@npm:5.0.1" + checksum: 10/0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c + languageName: node + linkType: hard + +"jsonwebtoken@npm:^9.0.0, jsonwebtoken@npm:^9.0.2": + version: 9.0.2 + resolution: "jsonwebtoken@npm:9.0.2" + dependencies: + jws: "npm:^3.2.2" + lodash.includes: "npm:^4.3.0" + lodash.isboolean: "npm:^3.0.3" + lodash.isinteger: "npm:^4.0.4" + lodash.isnumber: "npm:^3.0.3" + lodash.isplainobject: "npm:^4.0.6" + lodash.isstring: "npm:^4.0.1" + lodash.once: "npm:^4.0.0" + ms: "npm:^2.1.1" + semver: "npm:^7.5.4" + checksum: 10/6e9b6d879cec2b27f2f3a88a0c0973edc7ba956a5d9356b2626c4fddfda969e34a3832deaf79c3e1c6c9a525bc2c4f2c2447fa477f8ac660f0017c31a59ae96b + languageName: node + linkType: hard + +"jspdf-autotable@npm:^3.6.0": + version: 3.8.4 + resolution: "jspdf-autotable@npm:3.8.4" + peerDependencies: + jspdf: ^2.5.1 + checksum: 10/1cadf7d55f01d45aaf907a24370ed6b03a6812163ac3efcada82f38300ffc229c260b22f0ede79a3fdefa64e47169b0d9bc2c1448910366aae20965fb467406b + languageName: node + linkType: hard + +"jspdf@npm:^2.5.1": + version: 2.5.2 + resolution: "jspdf@npm:2.5.2" + dependencies: + "@babel/runtime": "npm:^7.23.2" + atob: "npm:^2.1.2" + btoa: "npm:^1.2.1" + canvg: "npm:^3.0.6" + core-js: "npm:^3.6.0" + dompurify: "npm:^2.5.4" + fflate: "npm:^0.8.1" + html2canvas: "npm:^1.0.0-rc.5" + dependenciesMeta: + canvg: + optional: true + core-js: + optional: true + dompurify: + optional: true + html2canvas: + optional: true + checksum: 10/8e82c5b342c99bf7a1ac2470a01b2f5a9e6638749704b89aef858daad37054160ce41081913bbc2f4a8f76fb848bc7c4296f8fa5d781de94926bc1b8d97c2238 + languageName: node + linkType: hard + +"jsprim@npm:^1.2.2": + version: 1.4.2 + resolution: "jsprim@npm:1.4.2" + dependencies: + assert-plus: "npm:1.0.0" + extsprintf: "npm:1.3.0" + json-schema: "npm:0.4.0" + verror: "npm:1.10.0" + checksum: 10/df2bf234eab1b5078d01bcbff3553d50a243f7b5c10a169745efeda6344d62798bd1d85bcca6a8446f3b5d0495e989db45f9de8dae219f0f9796e70e0c776089 + languageName: node + linkType: hard + +"jss-plugin-camel-case@npm:^10.10.0, jss-plugin-camel-case@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-camel-case@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + hyphenate-style-name: "npm:^1.0.3" + jss: "npm:10.10.0" + checksum: 10/b4d68391316d41200881d3923ba771740be091b2feca09440470e5a5dc0260ce9adff8996b11e1f1c860eb20eed2fc89ae0b5813478b40c9d46a4e9142ffed81 + languageName: node + linkType: hard + +"jss-plugin-default-unit@npm:^10.10.0, jss-plugin-default-unit@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-default-unit@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + jss: "npm:10.10.0" + checksum: 10/7784f8b3668a99e27480b7baa28ec974f721438c67fd11f2a12851f1b0965d7a5116b473f5d34114276b14548fcea673c41467f62e136a3c4018be0bc1582a9c + languageName: node + linkType: hard + +"jss-plugin-global@npm:^10.10.0, jss-plugin-global@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-global@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + jss: "npm:10.10.0" + checksum: 10/c0c2653ea340cd4bc2eb38a7d427bab001e6dd0dde1cf934c70ce624bd3e928f63a1917bcea59da714267dee6e424255b9079f6ca4c5e8aa4ccd726f2a53f9ba + languageName: node + linkType: hard + +"jss-plugin-nested@npm:^10.10.0, jss-plugin-nested@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-nested@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + jss: "npm:10.10.0" + tiny-warning: "npm:^1.0.2" + checksum: 10/834b795330edf1c4bbddfad68703bc436c7678bad3cebe724395c07abc4d0bd9b6f665d4c90819cab122531363024c8f53d61ae210ae1a26de1222da01f200b3 + languageName: node + linkType: hard + +"jss-plugin-props-sort@npm:^10.10.0, jss-plugin-props-sort@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-props-sort@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + jss: "npm:10.10.0" + checksum: 10/89eebe2bc4f58e763c3e3e9f96a54df87cc762a3c027b638459100dc880bfd3461092b1893de0946f6938e21b9fd3ffa3357e94ec6dd7c52ea3eefe3a9fbcb65 + languageName: node + linkType: hard + +"jss-plugin-rule-value-function@npm:^10.10.0, jss-plugin-rule-value-function@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-rule-value-function@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + jss: "npm:10.10.0" + tiny-warning: "npm:^1.0.2" + checksum: 10/71cc09090fb1bb2170c8db79aa8844bc7e348f97d0ac6b7937e668d7725c7088da0758bd701997c829e22a5ef291ddb9e5bd19f27ead7f86ecd85601f854bdd6 + languageName: node + linkType: hard + +"jss-plugin-vendor-prefixer@npm:^10.10.0, jss-plugin-vendor-prefixer@npm:^10.5.1": + version: 10.10.0 + resolution: "jss-plugin-vendor-prefixer@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + css-vendor: "npm:^2.0.8" + jss: "npm:10.10.0" + checksum: 10/c497a32b756652853319cf3f5509688512b01010164145b2748a3f6748291eec9bd414970ef1371a8a41991083f966f0d30f46be6e1283e12c2bedc3923b1755 + languageName: node + linkType: hard + +"jss@npm:10.10.0, jss@npm:^10.10.0, jss@npm:^10.5.1, jss@npm:~10.10.0": + version: 10.10.0 + resolution: "jss@npm:10.10.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + csstype: "npm:^3.0.2" + is-in-browser: "npm:^1.1.3" + tiny-warning: "npm:^1.0.2" + checksum: 10/a08605d8e023cf0e67a53d00c03c4e52419e314020fcd0b27728986c3bf5c148d85447797980ab2d9a36288d907909fc6939f91fef5341a51976bc5ff11d147b + languageName: node + linkType: hard + +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": + version: 3.3.5 + resolution: "jsx-ast-utils@npm:3.3.5" + dependencies: + array-includes: "npm:^3.1.6" + array.prototype.flat: "npm:^1.3.1" + object.assign: "npm:^4.1.4" + object.values: "npm:^1.1.6" + checksum: 10/b61d44613687dfe4cc8ad4b4fbf3711bf26c60b8d5ed1f494d723e0808415c59b24a7c0ed8ab10736a40ff84eef38cbbfb68b395e05d31117b44ffc59d31edfc + languageName: node + linkType: hard + +"jszip@npm:^3.10.1": + version: 3.10.1 + resolution: "jszip@npm:3.10.1" + dependencies: + lie: "npm:~3.3.0" + pako: "npm:~1.0.2" + readable-stream: "npm:~2.3.6" + setimmediate: "npm:^1.0.5" + checksum: 10/bfbfbb9b0a27121330ac46ab9cdb3b4812433faa9ba4a54742c87ca441e31a6194ff70ae12acefa5fe25406c432290e68003900541d948a169b23d30c34dd984 + languageName: node + linkType: hard + +"jwa@npm:^1.4.1": + version: 1.4.1 + resolution: "jwa@npm:1.4.1" + dependencies: + buffer-equal-constant-time: "npm:1.0.1" + ecdsa-sig-formatter: "npm:1.0.11" + safe-buffer: "npm:^5.0.1" + checksum: 10/0bc002b71dd70480fedc7d442a4d2b9185a9947352a027dcb4935864ad2323c57b5d391adf968a3622b61e940cef4f3484d5813b95864539272d41cac145d6f3 + languageName: node + linkType: hard + +"jwa@npm:^2.0.0": + version: 2.0.0 + resolution: "jwa@npm:2.0.0" + dependencies: + buffer-equal-constant-time: "npm:1.0.1" + ecdsa-sig-formatter: "npm:1.0.11" + safe-buffer: "npm:^5.0.1" + checksum: 10/ab983f6685d99d13ddfbffef9b1c66309a536362a8412d49ba6e687d834a1240ce39290f30ac7dbe241e0ab6c76fee7ff795776ce534e11d148158c9b7193498 + languageName: node + linkType: hard + +"jws@npm:^3.2.2": + version: 3.2.2 + resolution: "jws@npm:3.2.2" + dependencies: + jwa: "npm:^1.4.1" + safe-buffer: "npm:^5.0.1" + checksum: 10/70b016974af8a76d25030c80a0097b24ed5b17a9cf10f43b163c11cb4eb248d5d04a3fe48c0d724d2884c32879d878ccad7be0663720f46b464f662f7ed778fe + languageName: node + linkType: hard + +"jws@npm:^4.0.0": + version: 4.0.0 + resolution: "jws@npm:4.0.0" + dependencies: + jwa: "npm:^2.0.0" + safe-buffer: "npm:^5.0.1" + checksum: 10/1d15f4cdea376c6bd6a81002bd2cb0bf3d51d83da8f0727947b5ba3e10cf366721b8c0d099bf8c1eb99eb036e2c55e5fd5efd378ccff75a2b4e0bd10002348b9 + languageName: node + linkType: hard + +"keygrip@npm:~1.1.0": + version: 1.1.0 + resolution: "keygrip@npm:1.1.0" + dependencies: + tsscmp: "npm:1.0.6" + checksum: 10/078cd16a463d187121f0a27c1c9c95c52ad392b620f823431689f345a0501132cee60f6e96914b07d570105af470b96960402accd6c48a0b1f3cd8fac4fa2cae + languageName: node + linkType: hard + +"keyv@npm:*, keyv@npm:^5.2.1, keyv@npm:^5.2.2": + version: 5.2.3 + resolution: "keyv@npm:5.2.3" + dependencies: + "@keyv/serialize": "npm:^1.0.2" + checksum: 10/47b4e9deb33e6a80e5ea79f3022ed3a14bc9fe553b7527ffff0a70b10c7a6c1a5d7e49b9bcfdbd8e8b9fb4632d68baa19d09e82628bcf853103e750e56d49a9e + languageName: node + linkType: hard + +"keyv@npm:^4.5.2, keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75 + languageName: node + linkType: hard + +"kind-of@npm:^6.0.2": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 10/5873d303fb36aad875b7538798867da2ae5c9e328d67194b0162a3659a627d22f742fc9c4ae95cd1704132a24b00cae5041fc00c0f6ef937dc17080dc4dbb962 + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: 10/0c0ecaf00a5c6173d25059c7db2113850b5457016dfa1d0e3ef26da4704fbb186b4938d7611246d86f0ddf1bccf26828daa5877b1f232a65e7373d0122a83e7f + languageName: node + linkType: hard + +"kleur@npm:^4.0.3": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 10/44d84cc4eedd4311099402ef6d4acd9b2d16e08e499d6ef3bb92389bd4692d7ef09e35248c26e27f98acac532122acb12a1bfee645994ae3af4f0a37996da7df + languageName: node + linkType: hard + +"knex@npm:3, knex@npm:^3.0.0": + version: 3.1.0 + resolution: "knex@npm:3.1.0" + dependencies: + colorette: "npm:2.0.19" + commander: "npm:^10.0.0" + debug: "npm:4.3.4" + escalade: "npm:^3.1.1" + esm: "npm:^3.2.25" + get-package-type: "npm:^0.1.0" + getopts: "npm:2.3.0" + interpret: "npm:^2.2.0" + lodash: "npm:^4.17.21" + pg-connection-string: "npm:2.6.2" + rechoir: "npm:^0.8.0" + resolve-from: "npm:^5.0.0" + tarn: "npm:^3.0.2" + tildify: "npm:2.0.0" + peerDependenciesMeta: + better-sqlite3: + optional: true + mysql: + optional: true + mysql2: + optional: true + pg: + optional: true + pg-native: + optional: true + sqlite3: + optional: true + tedious: + optional: true + bin: + knex: bin/cli.js + checksum: 10/12eb978ebec9944d6d0225d33d31d44feb54046b3a02f9f14dfa33a4e665a54d784290991b17a68fd8141a14a3336b325c7706af35557f845dae9e500f3c8aae + languageName: node + linkType: hard + +"knip@npm:^5.27.4": + version: 5.43.1 + resolution: "knip@npm:5.43.1" + dependencies: + "@nodelib/fs.walk": "npm:3.0.1" + "@snyk/github-codeowners": "npm:1.1.0" + easy-table: "npm:1.2.0" + enhanced-resolve: "npm:^5.18.0" + fast-glob: "npm:^3.3.3" + jiti: "npm:^2.4.2" + js-yaml: "npm:^4.1.0" + minimist: "npm:^1.2.8" + picocolors: "npm:^1.1.0" + picomatch: "npm:^4.0.1" + pretty-ms: "npm:^9.0.0" + smol-toml: "npm:^1.3.1" + strip-json-comments: "npm:5.0.1" + summary: "npm:2.1.0" + zod: "npm:^3.22.4" + zod-validation-error: "npm:^3.0.3" + peerDependencies: + "@types/node": ">=18" + typescript: ">=5.0.4" + bin: + knip: bin/knip.js + knip-bun: bin/knip-bun.js + checksum: 10/068e4145371cf3a4434d07a206eddf8f1d509541482d76252440484562f0b989c11c3efb9c4083d8b5854a90758d3bbcc4a228fe935f6e90ecc9ef2c9f9da8a7 + languageName: node + linkType: hard + +"koa-compose@npm:^4.1.0": + version: 4.1.0 + resolution: "koa-compose@npm:4.1.0" + checksum: 10/46cb16792d96425e977c2ae4e5cb04930280740e907242ec9c25e3fb8b4a1d7b54451d7432bc24f40ec62255edea71894d2ceeb8238501842b4e48014f2e83db + languageName: node + linkType: hard + +"koa-convert@npm:^2.0.0": + version: 2.0.0 + resolution: "koa-convert@npm:2.0.0" + dependencies: + co: "npm:^4.6.0" + koa-compose: "npm:^4.1.0" + checksum: 10/7385b3391995f59c1312142e110d5dff677f9850dbfbcf387cd36a7b0af03b5d26e82b811eb9bb008b4f3e661cdab1f8817596e46b1929da2cf6e97a2f7456ed + languageName: node + linkType: hard + +"koa@npm:2.15.3": + version: 2.15.3 + resolution: "koa@npm:2.15.3" + dependencies: + accepts: "npm:^1.3.5" + cache-content-type: "npm:^1.0.0" + content-disposition: "npm:~0.5.2" + content-type: "npm:^1.0.4" + cookies: "npm:~0.9.0" + debug: "npm:^4.3.2" + delegates: "npm:^1.0.0" + depd: "npm:^2.0.0" + destroy: "npm:^1.0.4" + encodeurl: "npm:^1.0.2" + escape-html: "npm:^1.0.3" + fresh: "npm:~0.5.2" + http-assert: "npm:^1.3.0" + http-errors: "npm:^1.6.3" + is-generator-function: "npm:^1.0.7" + koa-compose: "npm:^4.1.0" + koa-convert: "npm:^2.0.0" + on-finished: "npm:^2.3.0" + only: "npm:~0.0.2" + parseurl: "npm:^1.3.2" + statuses: "npm:^1.5.0" + type-is: "npm:^1.6.16" + vary: "npm:^1.1.2" + checksum: 10/b2c2771a4ee5268f9d039ce025b9c3798a0baba8c3cf3895a6fc2d286363e0cd2c98c02a5b87f14100baa2bc17d854eed6ed80f9bd41afda1d056f803b206514 + languageName: node + linkType: hard + +"kuler@npm:^2.0.0": + version: 2.0.0 + resolution: "kuler@npm:2.0.0" + checksum: 10/9e10b5a1659f9ed8761d38df3c35effabffbd19fc6107324095238e4ef0ff044392cae9ac64a1c2dda26e532426485342226b93806bd97504b174b0dcf04ed81 + languageName: node + linkType: hard + +"language-subtag-registry@npm:^0.3.20": + version: 0.3.23 + resolution: "language-subtag-registry@npm:0.3.23" + checksum: 10/fe13ed74ab9f862db8e5747b98cc9aa08d52a19f85b5cdb4975cd364c8539bd2da3380e4560d2dbbd728ec33dff8a4b4421fcb2e5b1b1bdaa21d16f91a54d0d4 + languageName: node + linkType: hard + +"language-tags@npm:^1.0.9": + version: 1.0.9 + resolution: "language-tags@npm:1.0.9" + dependencies: + language-subtag-registry: "npm:^0.3.20" + checksum: 10/d3a7c14b694e67f519153d6df6cb200681648d38d623c3bfa9d6a66a5ec5493628acb88e9df5aceef3cf1902ab263a205e7d59ee4cf1d6bb67e707b83538bd6d + languageName: node + linkType: hard + +"launch-editor@npm:^2.6.1": + version: 2.9.1 + resolution: "launch-editor@npm:2.9.1" + dependencies: + picocolors: "npm:^1.0.0" + shell-quote: "npm:^1.8.1" + checksum: 10/69eb1e69db4f0fcd34a42bd47e9adbad27cb5413408fcc746eb7b016128ce19d71a30629534b17aa5886488936aaa959bf7dab17307ad5ed6c7247a0d145be18 + languageName: node + linkType: hard + +"lazystream@npm:^1.0.0": + version: 1.0.1 + resolution: "lazystream@npm:1.0.1" + dependencies: + readable-stream: "npm:^2.0.5" + checksum: 10/35f8cf8b5799c76570b211b079d4d706a20cbf13a4936d44cc7dbdacab1de6b346ab339ed3e3805f4693155ee5bbebbda4050fa2b666d61956e89a573089e3d4 + languageName: node + linkType: hard + +"leven@npm:2.1.0": + version: 2.1.0 + resolution: "leven@npm:2.1.0" + checksum: 10/f7b4a01b15c0ee2f92a04c0367ea025d10992b044df6f0d4ee1a845d4a488b343e99799e2f31212d72a2b1dea67124f57c1bb1b4561540df45190e44b5b8b394 + languageName: node + linkType: hard + +"leven@npm:3.1.0, leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 10/638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10/2e4720ff79f21ae08d42374b0a5c2f664c5be8b6c8f565bb4e1315c96ed3a8acaa9de788ffed82d7f2378cf36958573de07ef92336cb5255ed74d08b8318c9ee + languageName: node + linkType: hard + +"levn@npm:~0.3.0": + version: 0.3.0 + resolution: "levn@npm:0.3.0" + dependencies: + prelude-ls: "npm:~1.1.2" + type-check: "npm:~0.3.2" + checksum: 10/e1c3e75b5c430d9aa4c32c83c8a611e4ca53608ca78e3ea3bf6bbd9d017e4776d05d86e27df7901baebd3afa732abede9f26f715b8c1be19e95505c7a3a7b589 + languageName: node + linkType: hard + +"lie@npm:~3.3.0": + version: 3.3.0 + resolution: "lie@npm:3.3.0" + dependencies: + immediate: "npm:~3.0.5" + checksum: 10/f335ce67fe221af496185d7ce39c8321304adb701e122942c495f4f72dcee8803f9315ee572f5f8e8b08b9e8d7195da91b9fad776e8864746ba8b5e910adf76e + languageName: node + linkType: hard + +"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 10/b1314a2e55319013d5e7d7d08be39015829d2764a1eaee130129545d40388499d81b1c31b0f9b3417d4db12775a88008b72ec33dd06e0184cf7503b32ca7cc0b + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10/0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"linkify-it@npm:^3.0.1": + version: 3.0.3 + resolution: "linkify-it@npm:3.0.3" + dependencies: + uc.micro: "npm:^1.0.1" + checksum: 10/1ed466b02ad361bb5e5b94a81232fc126890751038bf3e61f648f4ccb01e5e096bba66c3eff3d21ed5e3da738de0dc29783afedf0255733669889aa09d49e47e + languageName: node + linkType: hard + +"linkify-it@npm:^5.0.0": + version: 5.0.0 + resolution: "linkify-it@npm:5.0.0" + dependencies: + uc.micro: "npm:^2.0.0" + checksum: 10/ef3b7609dda6ec0c0be8a7b879cea195f0d36387b0011660cd6711bba0ad82137f59b458b7e703ec74f11d88e7c1328e2ad9b855a8500c0ded67461a8c4519e6 + languageName: node + linkType: hard + +"linkify-react@npm:4.1.3": + version: 4.1.3 + resolution: "linkify-react@npm:4.1.3" + peerDependencies: + linkifyjs: ^4.0.0 + react: ">= 15.0.0" + checksum: 10/e21dec51798783288c08979a74d0b8b6ee87315205d9a6ca36d8dc062c967577184791ab6456bb70f3635c2d156930040de9c278a3ca6dc940a45ea3b5d184c4 + languageName: node + linkType: hard + +"linkifyjs@npm:4.1.3": + version: 4.1.3 + resolution: "linkifyjs@npm:4.1.3" + checksum: 10/7c17dac6a66fdea30e56b17d49d882a333833ec093993723738842b224c8cbd87bcddc6f51f2deac9529c868f162358d7acb0c44753b92832027ae761eceac1a + languageName: node + linkType: hard + +"loader-runner@npm:^4.2.0": + version: 4.3.0 + resolution: "loader-runner@npm:4.3.0" + checksum: 10/555ae002869c1e8942a0efd29a99b50a0ce6c3296efea95caf48f00d7f6f7f659203ed6613688b6181aa81dc76de3e65ece43094c6dffef3127fe1a84d973cd3 + languageName: node + linkType: hard + +"loader-utils@npm:^1.1.0": + version: 1.4.2 + resolution: "loader-utils@npm:1.4.2" + dependencies: + big.js: "npm:^5.2.2" + emojis-list: "npm:^3.0.0" + json5: "npm:^1.0.1" + checksum: 10/2ae94cc88ad9cf2991e322b9ddf547cff80cf6fc0f9c77546b258c5ed9f77b0827f64c2625cb0baa06432f1f441bb4744c9ab1e1412ee6f8e97d31f8e9c730d6 + languageName: node + linkType: hard + +"loader-utils@npm:^2.0.0, loader-utils@npm:^2.0.4": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" + dependencies: + big.js: "npm:^5.2.2" + emojis-list: "npm:^3.0.0" + json5: "npm:^2.1.2" + checksum: 10/28bd9af2025b0cb2fc6c9c2d8140a75a3ab61016e5a86edf18f63732216e985a50bf2479a662555beb472a54d12292e380423705741bfd2b54cab883aa067f18 + languageName: node + linkType: hard + +"loader-utils@npm:^3.2.0": + version: 3.3.1 + resolution: "loader-utils@npm:3.3.1" + checksum: 10/3f994a948ded4248569773f065b1f6d7c95da059888c8429153e203f9bdadfb1691ca517f9eac6548a8af2fe5c724a8e09cbb79f665db4209426606a57ec7650 + languageName: node + linkType: hard + +"locate-path@npm:^3.0.0": + version: 3.0.0 + resolution: "locate-path@npm:3.0.0" + dependencies: + p-locate: "npm:^3.0.0" + path-exists: "npm:^3.0.0" + checksum: 10/53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10/83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10/72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 10/03f39878ea1e42b3199bd3f478150ab723f93cc8730ad86fec1f2804f4a07c6e30deaac73cad53a88e9c3db33348bb8ceeb274552390e7a75d7849021c02df43 + languageName: node + linkType: hard + +"lodash.camelcase@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: 10/c301cc379310441dc73cd6cebeb91fb254bea74e6ad3027f9346fc43b4174385153df420ffa521654e502fd34c40ef69ca4e7d40ee7129a99e06f306032bfc65 + languageName: node + linkType: hard + +"lodash.clonedeep@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.clonedeep@npm:4.5.0" + checksum: 10/957ed243f84ba6791d4992d5c222ffffca339a3b79dbe81d2eaf0c90504160b500641c5a0f56e27630030b18b8e971ea10b44f928a977d5ced3c8948841b555f + languageName: node + linkType: hard + +"lodash.clonedeepwith@npm:4.5.0": + version: 4.5.0 + resolution: "lodash.clonedeepwith@npm:4.5.0" + checksum: 10/4bc1db18374addc891cab4c0b5d263f60801a6339831289f5745d9dc8b6d9487f82c4413a08de944d3d6bef3bf19e19c03d56bbe4d95e137916fa114577864ff + languageName: node + linkType: hard + +"lodash.debounce@npm:^4, lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: 10/cd0b2819786e6e80cb9f5cda26b1a8fc073daaf04e48d4cb462fa4663ec9adb3a5387aa22d7129e48eed1afa05b482e2a6b79bfc99b86886364449500cbb00fd + languageName: node + linkType: hard + +"lodash.defaults@npm:^4.2.0": + version: 4.2.0 + resolution: "lodash.defaults@npm:4.2.0" + checksum: 10/6a2a9ea5ad7585aff8d76836c9e1db4528e5f5fa50fc4ad81183152ba8717d83aef8aec4fa88bf3417ed946fd4b4358f145ee08fbc77fb82736788714d3e12db + languageName: node + linkType: hard + +"lodash.flattendeep@npm:^4.0.0": + version: 4.4.0 + resolution: "lodash.flattendeep@npm:4.4.0" + checksum: 10/0d0b41d8d86999e8bea94905ac65347404d427aacddbc6654dc2f85905e27cd2b708139671ecea135fa6f0a17ed94b9d4cab8ce12b08eddcbb1ddd83952ee4c2 + languageName: node + linkType: hard + +"lodash.get@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.get@npm:4.4.2" + checksum: 10/2a4925f6e89bc2c010a77a802d1ba357e17ed1ea03c2ddf6a146429f2856a216663e694a6aa3549a318cbbba3fd8b7decb392db457e6ac0b83dc745ed0a17380 + languageName: node + linkType: hard + +"lodash.groupby@npm:^4.6.0": + version: 4.6.0 + resolution: "lodash.groupby@npm:4.6.0" + checksum: 10/98bd04e58ce4cebb2273010352508b5ea12025e94fcfd70c84c8082ef3b0689178e8e6dd53bff919f525fae9bd67b4aba228d606b75a967f30e84ec9610b5de1 + languageName: node + linkType: hard + +"lodash.includes@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.includes@npm:4.3.0" + checksum: 10/45e0a7c7838c931732cbfede6327da321b2b10482d5063ed21c020fa72b09ca3a4aa3bda4073906ab3f436cf36eb85a52ea3f08b7bab1e0baca8235b0e08fe51 + languageName: node + linkType: hard + +"lodash.isarguments@npm:^3.1.0": + version: 3.1.0 + resolution: "lodash.isarguments@npm:3.1.0" + checksum: 10/e5186d5fe0384dcb0652501d9d04ebb984863ebc9c9faa2d4b9d5dfd81baef9ffe8e2887b9dc471d62ed092bc0788e5f1d42e45c72457a2884bbb54ac132ed92 + languageName: node + linkType: hard + +"lodash.isboolean@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isboolean@npm:3.0.3" + checksum: 10/b70068b4a8b8837912b54052557b21fc4774174e3512ed3c5b94621e5aff5eb6c68089d0a386b7e801d679cd105d2e35417978a5e99071750aa2ed90bffd0250 + languageName: node + linkType: hard + +"lodash.isequal@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: 10/82fc58a83a1555f8df34ca9a2cd300995ff94018ac12cc47c349655f0ae1d4d92ba346db4c19bbfc90510764e0c00ddcc985a358bdcd4b3b965abf8f2a48a214 + languageName: node + linkType: hard + +"lodash.isinteger@npm:^4.0.4": + version: 4.0.4 + resolution: "lodash.isinteger@npm:4.0.4" + checksum: 10/c971f5a2d67384f429892715550c67bac9f285604a0dd79275fd19fef7717aec7f2a6a33d60769686e436ceb9771fd95fe7fcb68ad030fc907d568d5a3b65f70 + languageName: node + linkType: hard + +"lodash.isnumber@npm:^3.0.3": + version: 3.0.3 + resolution: "lodash.isnumber@npm:3.0.3" + checksum: 10/913784275b565346255e6ae6a6e30b760a0da70abc29f3e1f409081585875105138cda4a429ff02577e1bc0a7ae2a90e0a3079a37f3a04c3d6c5aaa532f4cab2 + languageName: node + linkType: hard + +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: 10/29c6351f281e0d9a1d58f1a4c8f4400924b4c79f18dfc4613624d7d54784df07efaff97c1ff2659f3e085ecf4fff493300adc4837553104cef2634110b0d5337 + languageName: node + linkType: hard + +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: 10/eaac87ae9636848af08021083d796e2eea3d02e80082ab8a9955309569cb3a463ce97fd281d7dc119e402b2e7d8c54a23914b15d2fc7fff56461511dc8937ba0 + languageName: node + linkType: hard + +"lodash.memoize@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 10/192b2168f310c86f303580b53acf81ab029761b9bd9caa9506a019ffea5f3363ea98d7e39e7e11e6b9917066c9d36a09a11f6fe16f812326390d8f3a54a1a6da + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: 10/d0ea2dd0097e6201be083865d50c3fb54fbfbdb247d9cc5950e086c991f448b7ab0cdab0d57eacccb43473d3f2acd21e134db39f22dac2d6c9ba6bf26978e3d6 + languageName: node + linkType: hard + +"lodash.omit@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.omit@npm:4.5.0" + checksum: 10/f5c67cd1df11f1275662060febb629a4d4e7b547c4bea66454508b5e6096162c2af882aab1ff8cb5dcf2b328f22252416de6ca9c1334588f6310edfac525e511 + languageName: node + linkType: hard + +"lodash.once@npm:^4.0.0": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 10/202f2c8c3d45e401b148a96de228e50ea6951ee5a9315ca5e15733d5a07a6b1a02d9da1e7fdf6950679e17e8ca8f7190ec33cae47beb249b0c50019d753f38f3 + languageName: node + linkType: hard + +"lodash.startcase@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.startcase@npm:4.4.0" + checksum: 10/3091048a54a2f92bcf2c6441d2bd9a706fb133d5f461ae7c310d6dca1530338a06c91e9e42a5b14b12e875ddae1814d448050dc02afe2cec09b3995d8e836837 + languageName: node + linkType: hard + +"lodash.topath@npm:^4.5.2": + version: 4.5.2 + resolution: "lodash.topath@npm:4.5.2" + checksum: 10/1d26fc23c2e3170f461b255f6089a05c9f474d5989899adb9ab31e1c377f96f08f517ea62d2532c4d7cf854c8ebc820fef8206493858c5cb1420af19e2c0da4a + languageName: node + linkType: hard + +"lodash.uniq@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.uniq@npm:4.5.0" + checksum: 10/86246ca64ac0755c612e5df6d93cfe92f9ecac2e5ff054b965efbbb1d9a647b6310969e78545006f70f52760554b03233ad0103324121ae31474c20d5f7a2812 + languageName: node + linkType: hard + +"lodash@npm:4.17.21, lodash@npm:^4.15.0, lodash@npm:^4.16.4, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.15, lodash@npm:~4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 + languageName: node + linkType: hard + +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"log4js@npm:6.9.1": + version: 6.9.1 + resolution: "log4js@npm:6.9.1" + dependencies: + date-format: "npm:^4.0.14" + debug: "npm:^4.3.4" + flatted: "npm:^3.2.7" + rfdc: "npm:^1.3.0" + streamroller: "npm:^3.1.5" + checksum: 10/421fb9c1e5a8859a810a40c9ee01fb8e4dfc2fed838049946e67c0064d197bdf76ca43b8fc45df50c5d709e6fc4f218d314f189a0feb8be0c48bdae80cb0934c + languageName: node + linkType: hard + +"logform@npm:^2.3.2, logform@npm:^2.7.0": + version: 2.7.0 + resolution: "logform@npm:2.7.0" + dependencies: + "@colors/colors": "npm:1.6.0" + "@types/triple-beam": "npm:^1.3.2" + fecha: "npm:^4.2.0" + ms: "npm:^2.1.1" + safe-stable-stringify: "npm:^2.3.1" + triple-beam: "npm:^1.3.0" + checksum: 10/4b861bfd67efe599ab41113ae3ffe92b1873bf86793fb442f58971852430d8f416f9904da69e5043071fb3725690e2499a13acbfe92a57ba7d21690004f9edc0 + languageName: node + linkType: hard + +"long-timeout@npm:0.1.1": + version: 0.1.1 + resolution: "long-timeout@npm:0.1.1" + checksum: 10/48668e5362cb74c4b77a6b833d59f149b9bb9e99c5a5097609807e2597cd0920613b2a42b89bd0870848298be3691064d95599a04ae010023d07dba39932afa7 + languageName: node + linkType: hard + +"long@npm:^5.0.0, long@npm:^5.2.1": + version: 5.2.4 + resolution: "long@npm:5.2.4" + checksum: 10/c27c060a683d4d76dc48da12ded0ae49c610aaf10d028ec938829d7bebe916979dcc8b67ed71f8bf6d845a90151b66a9b741a3ee51ec874908e496c2a576697a + languageName: node + linkType: hard + +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: 10/d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 + languageName: node + linkType: hard + +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: "npm:^2.0.3" + checksum: 10/83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + +"lowlight@npm:^1.17.0": + version: 1.20.0 + resolution: "lowlight@npm:1.20.0" + dependencies: + fault: "npm:^1.0.0" + highlight.js: "npm:~10.7.0" + checksum: 10/3294677be15bbc256556f097d9b675f23f14309aceeada7880473c57bdbdd7761f200d903fe26d8fa5e82259f70a39465d1d40754c4c049ad2bbd33d77e2c06f + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^10.4.3": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10/951d2673dcc64a7fb888bf3d13bc2fdf923faca97d89cdb405ba3dfff77e2b26e5798d405e78fcd7094c9e7b8b4dab2ddc5a4f8a11928af24a207b7c738ca3f8 + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10/fc1fe2ee205f7c8855fa0f34c1ab0bcf14b6229e35579ec1fd1079f31d6fc8ef8eb6fd17f2f4d99788d7e339f50e047555551ebd5e434dda503696e7c6591825 + languageName: node + linkType: hard + +"lru-cache@npm:^7.14.0, lru-cache@npm:^7.14.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: 10/6029ca5aba3aacb554e919d7ef804fffd4adfc4c83db00fac8248c7c78811fb6d4b6f70f7fd9d55032b3823446546a007edaa66ad1f2377ae833bd983fac5d98 + languageName: node + linkType: hard + +"lru-cache@npm:^9.0.0": + version: 9.1.2 + resolution: "lru-cache@npm:9.1.2" + checksum: 10/8830ad333f5202656e712d40df16a4dbd373a489821c1f22d5dc2b3cf49820734cf814e7fd89bbda80ecb32e1bfd716e2dc2d78fae0dd7b55fe65ffd0158edd7 + languageName: node + linkType: hard + +"lru.min@npm:^1.0.0": + version: 1.1.1 + resolution: "lru.min@npm:1.1.1" + checksum: 10/513252ac8414cfef99473d5decb1b6482edcb9e8b1e3cc815b72d8581b05e4f95141d349ee3ae9141fa6d9554a8a26e36e455bf2434489a84c63911d031070a5 + languageName: node + linkType: hard + +"lunr@npm:^2.3.9": + version: 2.3.9 + resolution: "lunr@npm:2.3.9" + checksum: 10/f2f6db34c046f5a767782fe2454e6dd69c75ba3c5cf5c1cb9cacca2313a99c2ba78ff8fa67dac866fb7c4ffd5f22e06684793f5f15ba14bddb598b94513d54bf + languageName: node + linkType: hard + +"luxon@npm:^3.0.0, luxon@npm:^3.2.1, luxon@npm:~3.5.0": + version: 3.5.0 + resolution: "luxon@npm:3.5.0" + checksum: 10/48f86e6c1c96815139f8559456a3354a276ba79bcef0ae0d4f2172f7652f3ba2be2237b0e103b8ea0b79b47715354ac9fac04eb1db3485dcc72d5110491dd47f + languageName: node + linkType: hard + +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 10/e86f0280e99a8d8cd4eef24d8601ddae15ce54e43ac9990dfcb79e1e081c255ad24424a30d78d2ad8e51a8ce82a66a930047fed4b4aa38c6f0b392ff9300edfc + languageName: node + linkType: hard + +"magic-string@npm:^0.30.10, magic-string@npm:^0.30.3": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10/2f71af2b0afd78c2e9012a29b066d2c8ba45a9cd0c8070f7fd72de982fb1c403b4e3afdb1dae00691d56885ede66b772ef6bedf765e02e3a7066208fe2fec4aa + languageName: node + linkType: hard + +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: "npm:^7.5.3" + checksum: 10/bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + languageName: node + linkType: hard + +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: 10/b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" + dependencies: + "@npmcli/agent": "npm:^3.0.0" + cacache: "npm:^19.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^4.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^12.0.0" + checksum: 10/fce0385840b6d86b735053dfe941edc2dd6468fda80fe74da1eeff10cbd82a75760f406194f2bc2fa85b99545b2bc1f84c08ddf994b21830775ba2d1a87e8bdf + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: "npm:1.0.5" + checksum: 10/4c66ddfc654537333da952c084f507fa4c30c707b1635344eb35be894d797ba44c901a9cebe914aa29a7f61357543ba09b09dddbd7f65b4aee756b450f169f40 + languageName: node + linkType: hard + +"map-age-cleaner@npm:^0.2.0": + version: 0.2.0 + resolution: "map-age-cleaner@npm:0.2.0" + dependencies: + p-defer: "npm:^1.0.0" + checksum: 10/13a6810b76b0067efa7f4b0f3dc58b58b4a4b5faa4cae5a0e8d5d59eda04d7074724eee426c9b5890a1d7e14d1e2902a090587acc8e2430198e79ab1556a2dad + languageName: node + linkType: hard + +"markdown-escape@npm:^2.0.0": + version: 2.0.0 + resolution: "markdown-escape@npm:2.0.0" + checksum: 10/74c66d817636ac5f6a275fdc79ecb1e208d907ca85289d660b515256fbc3e380eb18d29b6bbbd6a77968ee4fb5872d40ecf31e52bc9f17855bb01bb723569fa0 + languageName: node + linkType: hard + +"markdown-it@npm:^12.2.0": + version: 12.3.2 + resolution: "markdown-it@npm:12.3.2" + dependencies: + argparse: "npm:^2.0.1" + entities: "npm:~2.1.0" + linkify-it: "npm:^3.0.1" + mdurl: "npm:^1.0.1" + uc.micro: "npm:^1.0.5" + bin: + markdown-it: bin/markdown-it.js + checksum: 10/d83d794bfb9f5e05750b25db401d9c1f9b97c6bbabb6cfd78988bb98652c62c24417435487238e2b91fd4e495547ae8c9429fb4c69e9f5bf49bd0dd292d53f24 + languageName: node + linkType: hard + +"markdown-it@npm:^14.1.0": + version: 14.1.0 + resolution: "markdown-it@npm:14.1.0" + dependencies: + argparse: "npm:^2.0.1" + entities: "npm:^4.4.0" + linkify-it: "npm:^5.0.0" + mdurl: "npm:^2.0.0" + punycode.js: "npm:^2.3.1" + uc.micro: "npm:^2.1.0" + bin: + markdown-it: bin/markdown-it.mjs + checksum: 10/f34f921be178ed0607ba9e3e27c733642be445e9bb6b1dba88da7aafe8ba1bc5d2f1c3aa8f3fc33b49a902da4e4c08c2feadfafb290b8c7dda766208bb6483a9 + languageName: node + linkType: hard + +"markdown-table@npm:^3.0.0": + version: 3.0.4 + resolution: "markdown-table@npm:3.0.4" + checksum: 10/bc699819e6a15607e5def0f21aa862aa061cf1f49877baa93b0185574f6ab143591afe0e18b94d9b15ea80c6a693894150dbccfacf4f6767160dc32ae393dfe0 + languageName: node + linkType: hard + +"markdown-to-jsx@npm:^7.4.1": + version: 7.7.3 + resolution: "markdown-to-jsx@npm:7.7.3" + peerDependencies: + react: ">= 0.14.0" + checksum: 10/b71383b98e6254bda2c94ffb0744619c1d89714cdff449defb330e18942c565fc2203d9ba0235aff7bb65a52656b850e4e42d62c65582e500a6b11bd78c6f04b + languageName: node + linkType: hard + +"marked@npm:^4.0.14": + version: 4.3.0 + resolution: "marked@npm:4.3.0" + bin: + marked: bin/marked.js + checksum: 10/c830bb4cb3705b754ca342b656e8a582d7428706b2678c898b856f6030c134ce2d1e19136efa3e6a1841f7330efbd24963d6bdeddc57d2938e906250f99895d0 + languageName: node + linkType: hard + +"matcher@npm:^3.0.0": + version: 3.0.0 + resolution: "matcher@npm:3.0.0" + dependencies: + escape-string-regexp: "npm:^4.0.0" + checksum: 10/8bee1a7ab7609c2c21d9c9254b6785fa708eadf289032b556d57a34e98fcd4c537659a004dafee6ce80ab157099e645c199dc52678dff1e7fb0a6684e0da4dbe + languageName: node + linkType: hard + +"material-ui-popup-state@npm:^1.9.3": + version: 1.9.3 + resolution: "material-ui-popup-state@npm:1.9.3" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@material-ui/types": "npm:^6.0.1" + classnames: "npm:^2.2.6" + prop-types: "npm:^15.7.2" + peerDependencies: + "@material-ui/core": ^4.0.0 || ^5.0.0-beta + react: ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10/9b0bb7bdcf257e1bf868cb2e74e2d80208fb870ab8e29229c49a0b64f1c1cb5c8b7ba78e89fb81019c2109729d25473188d79bf99f889c8ee698020f2013d578 + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10/11df2eda46d092a6035479632e1ec865b8134bdfc4bd9e571a656f4191525404f13a283a515938c3a8de934dbfd9c09674d9da9fa831e6eb7e22b50b197d2edd + languageName: node + linkType: hard + +"md5.js@npm:^1.3.4": + version: 1.3.5 + resolution: "md5.js@npm:1.3.5" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10/098494d885684bcc4f92294b18ba61b7bd353c23147fbc4688c75b45cb8590f5a95fd4584d742415dcc52487f7a1ef6ea611cfa1543b0dc4492fe026357f3f0c + languageName: node + linkType: hard + +"mdast-util-definitions@npm:^5.0.0": + version: 5.1.2 + resolution: "mdast-util-definitions@npm:5.1.2" + dependencies: + "@types/mdast": "npm:^3.0.0" + "@types/unist": "npm:^2.0.0" + unist-util-visit: "npm:^4.0.0" + checksum: 10/4491b7c551ce1bdeb6c8fb1968cd461acb01ca1584f12c240755541a92d7f02bc5b9c9d6303d50deaed6d959ba58fe9a352a3e676e0f1d954e003de1277f57e4 + languageName: node + linkType: hard + +"mdast-util-find-and-replace@npm:^2.0.0": + version: 2.2.2 + resolution: "mdast-util-find-and-replace@npm:2.2.2" + dependencies: + "@types/mdast": "npm:^3.0.0" + escape-string-regexp: "npm:^5.0.0" + unist-util-is: "npm:^5.0.0" + unist-util-visit-parents: "npm:^5.0.0" + checksum: 10/59e11e853b74d8f6083950327df39e27287b383930ff836298a5100aeda5568282bb45046c27886d2156ea101580bb0689b890c29623cefa5adc74e95d9ca9ff + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^1.0.0": + version: 1.3.1 + resolution: "mdast-util-from-markdown@npm:1.3.1" + dependencies: + "@types/mdast": "npm:^3.0.0" + "@types/unist": "npm:^2.0.0" + decode-named-character-reference: "npm:^1.0.0" + mdast-util-to-string: "npm:^3.1.0" + micromark: "npm:^3.0.0" + micromark-util-decode-numeric-character-reference: "npm:^1.0.0" + micromark-util-decode-string: "npm:^1.0.0" + micromark-util-normalize-identifier: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + unist-util-stringify-position: "npm:^3.0.0" + uvu: "npm:^0.5.0" + checksum: 10/1d334a54ddd6481ec4acf64c2c537b6463bc5113ba5a408f65c228dcc302d46837352814f11307af0f8b51dd7e4a0b887ce692e4d30ff31ff9d578b8ca82810b + languageName: node + linkType: hard + +"mdast-util-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-autolink-literal@npm:1.0.3" + dependencies: + "@types/mdast": "npm:^3.0.0" + ccount: "npm:^2.0.0" + mdast-util-find-and-replace: "npm:^2.0.0" + micromark-util-character: "npm:^1.0.0" + checksum: 10/272d075cdc7937bec0179af4052bd9032a6fbb05608b387b1b075b0491c73ce012f3ff1c718cdb5fb0ed1032c1fa7570d955b59c0ab3c3c72609928754774529 + languageName: node + linkType: hard + +"mdast-util-gfm-footnote@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-footnote@npm:1.0.2" + dependencies: + "@types/mdast": "npm:^3.0.0" + mdast-util-to-markdown: "npm:^1.3.0" + micromark-util-normalize-identifier: "npm:^1.0.0" + checksum: 10/825f207afc98fd1daa0acc8adcb5754d1f0d577ccb1749245289bee7c892557668d8ee3a5ab618f42e710646cf018dcda84f3c0c608ae11718e9014e5bf4f9dc + languageName: node + linkType: hard + +"mdast-util-gfm-strikethrough@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-strikethrough@npm:1.0.3" + dependencies: + "@types/mdast": "npm:^3.0.0" + mdast-util-to-markdown: "npm:^1.3.0" + checksum: 10/a9c2dc3ef46be7952d13b7063a16171bba8aa266bffe6b1e7267df02a60b4fa3734115cca311e9127db8cfcbbcd68fdd92aa26152bcd0c14372c79b254e4df2f + languageName: node + linkType: hard + +"mdast-util-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "mdast-util-gfm-table@npm:1.0.7" + dependencies: + "@types/mdast": "npm:^3.0.0" + markdown-table: "npm:^3.0.0" + mdast-util-from-markdown: "npm:^1.0.0" + mdast-util-to-markdown: "npm:^1.3.0" + checksum: 10/167f7f7a9dc17ce852f4f9bd155d7be179588e2ccf4ce3c4f23b12c1c9db5de904cdacc6f41b2d635cb84eb09a7ff5a33497585f2664a7f1e6bd6f7ab7e1197a + languageName: node + linkType: hard + +"mdast-util-gfm-task-list-item@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-task-list-item@npm:1.0.2" + dependencies: + "@types/mdast": "npm:^3.0.0" + mdast-util-to-markdown: "npm:^1.3.0" + checksum: 10/958417a7d7690728b44d65127ab9189c7feaa17aea924dd56a888c781ab3abaa4eb0c209f05c4dbf203da3d0c4df8fdace4c9471b644268bfc7fc792a018a171 + languageName: node + linkType: hard + +"mdast-util-gfm@npm:^2.0.0": + version: 2.0.2 + resolution: "mdast-util-gfm@npm:2.0.2" + dependencies: + mdast-util-from-markdown: "npm:^1.0.0" + mdast-util-gfm-autolink-literal: "npm:^1.0.0" + mdast-util-gfm-footnote: "npm:^1.0.0" + mdast-util-gfm-strikethrough: "npm:^1.0.0" + mdast-util-gfm-table: "npm:^1.0.0" + mdast-util-gfm-task-list-item: "npm:^1.0.0" + mdast-util-to-markdown: "npm:^1.0.0" + checksum: 10/70e6cd32af94181d409f171f984f83fc18b3efe316844c62f31816f5c1612a92517b8ed766340f23e0a6d6cb0f27a8b07d288bab6619cbdbb0c5341006bcdc4d + languageName: node + linkType: hard + +"mdast-util-phrasing@npm:^3.0.0": + version: 3.0.1 + resolution: "mdast-util-phrasing@npm:3.0.1" + dependencies: + "@types/mdast": "npm:^3.0.0" + unist-util-is: "npm:^5.0.0" + checksum: 10/c5b616d9b1eb76a6b351d195d94318494722525a12a89d9c8a3b091af7db3dd1fc55d294f9d29266d8159a8267b0df4a7a133bda8a3909d5331c383e1e1ff328 + languageName: node + linkType: hard + +"mdast-util-to-hast@npm:^12.1.0": + version: 12.3.0 + resolution: "mdast-util-to-hast@npm:12.3.0" + dependencies: + "@types/hast": "npm:^2.0.0" + "@types/mdast": "npm:^3.0.0" + mdast-util-definitions: "npm:^5.0.0" + micromark-util-sanitize-uri: "npm:^1.1.0" + trim-lines: "npm:^3.0.0" + unist-util-generated: "npm:^2.0.0" + unist-util-position: "npm:^4.0.0" + unist-util-visit: "npm:^4.0.0" + checksum: 10/82b72bf46863f0f5683dbf1c5917186ee2da2e06af1a5f5aaeca51b880f4cb2b3ae0463ebb4fa1a776f5d3c73f5fc6cd542920060cf5040f3d4431607ee73cce + languageName: node + linkType: hard + +"mdast-util-to-markdown@npm:^1.0.0, mdast-util-to-markdown@npm:^1.3.0": + version: 1.5.0 + resolution: "mdast-util-to-markdown@npm:1.5.0" + dependencies: + "@types/mdast": "npm:^3.0.0" + "@types/unist": "npm:^2.0.0" + longest-streak: "npm:^3.0.0" + mdast-util-phrasing: "npm:^3.0.0" + mdast-util-to-string: "npm:^3.0.0" + micromark-util-decode-string: "npm:^1.0.0" + unist-util-visit: "npm:^4.0.0" + zwitch: "npm:^2.0.0" + checksum: 10/713f674588a01969a2ce524a69985bd57e507377eea2c4ba69800fb305414468b30144ae9b837fbdde8c609877673140e4f56f6cabe9e0e2bc1487291e3c5144 + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": + version: 3.2.0 + resolution: "mdast-util-to-string@npm:3.2.0" + dependencies: + "@types/mdast": "npm:^3.0.0" + checksum: 10/fafe201c12a0d412a875fe8540bf70b4360f3775fb7f0d19403ba7b59e50f74f730e3b405c72ad940bc8a3ec1ba311f76dfca61c4ce585dce1ccda2168ec244f + languageName: node + linkType: hard + +"mdn-data@npm:2.0.14": + version: 2.0.14 + resolution: "mdn-data@npm:2.0.14" + checksum: 10/64c629fcf14807e30d6dc79f97cbcafa16db066f53a294299f3932b3beb0eb0d1386d3a7fe408fc67348c449a4e0999360c894ba4c81eb209d7be4e36503de0e + languageName: node + linkType: hard + +"mdurl@npm:^1.0.1": + version: 1.0.1 + resolution: "mdurl@npm:1.0.1" + checksum: 10/ada367d01c9e81d07328101f187d5bd8641b71f33eab075df4caed935a24fa679e625f07108801d8250a5e4a99e5cd4be7679957a11424a3aa3e740d2bb2d5cb + languageName: node + linkType: hard + +"mdurl@npm:^2.0.0": + version: 2.0.0 + resolution: "mdurl@npm:2.0.0" + checksum: 10/1720349d4a53e401aa993241368e35c0ad13d816ad0b28388928c58ca9faa0cf755fa45f18ccbf64f4ce54a845a50ddce5c84e4016897b513096a68dac4b0158 + languageName: node + linkType: hard + +"media-typer@npm:0.3.0": + version: 0.3.0 + resolution: "media-typer@npm:0.3.0" + checksum: 10/38e0984db39139604756903a01397e29e17dcb04207bb3e081412ce725ab17338ecc47220c1b186b6bbe79a658aad1b0d41142884f5a481f36290cdefbe6aa46 + languageName: node + linkType: hard + +"media-typer@npm:^1.1.0": + version: 1.1.0 + resolution: "media-typer@npm:1.1.0" + checksum: 10/a58dd60804df73c672942a7253ccc06815612326dc1c0827984b1a21704466d7cde351394f47649e56cf7415e6ee2e26e000e81b51b3eebb5a93540e8bf93cbd + languageName: node + linkType: hard + +"memfs@npm:^3.1.2, memfs@npm:^3.4.1": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: "npm:^1.0.4" + checksum: 10/7c9cdb453a6b06e87f11e2dbe6c518fd3c1c1581b370ffa24f42f3fd5b1db8c2203f596e43321a0032963f3e9b66400f2c3cf043904ac496d6ae33eafd0878fe + languageName: node + linkType: hard + +"memfs@npm:^4.6.0": + version: 4.17.0 + resolution: "memfs@npm:4.17.0" + dependencies: + "@jsonjoy.com/json-pack": "npm:^1.0.3" + "@jsonjoy.com/util": "npm:^1.3.0" + tree-dump: "npm:^1.0.1" + tslib: "npm:^2.0.0" + checksum: 10/346cfc8c7396a4716c362bb5c4eebf995c52927a5de4bb7b5bbc31a759b443f22b5a8087d8d71e93feebff33f10d735682f4fa53afb461607e832a4aa4c80eb9 + languageName: node + linkType: hard + +"memjs@npm:^1.3.2": + version: 1.3.2 + resolution: "memjs@npm:1.3.2" + checksum: 10/705bb9be88180685fa3bc71375dc8b3a188356ab8f5c6c5ea1761e5e0912a78520cb964d2afc24e65686d53b45d3a7d8b5e770b2f3cf071a6eaea7f8d0d6bbfd + languageName: node + linkType: hard + +"memoize-one@npm:>=3.1.1 <6, memoize-one@npm:^5.1.1": + version: 5.2.1 + resolution: "memoize-one@npm:5.2.1" + checksum: 10/b7141dc148b5c6fdd51e77ecf0421fd2581681eb8756e0b3dfbd4fe765b5e2b5a6bc90214bb6f19a96b6aed44de17eda3407142a7be9e24ccd0774bbd9874d1b + languageName: node + linkType: hard + +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 10/52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"meros@npm:^1.1.4, meros@npm:^1.2.1": + version: 1.3.0 + resolution: "meros@npm:1.3.0" + peerDependencies: + "@types/node": ">=13" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/1893d226866058a32161ab069294a1a16975c765416a2b05165dfafba07cd958ca12503e35c621ffe736c62d935ccb1ce60cb723e2a9e0b85e02bb3236722ef6 + languageName: node + linkType: hard + +"methods@npm:^1.0.0, methods@npm:~1.1.2": + version: 1.1.2 + resolution: "methods@npm:1.1.2" + checksum: 10/a385dd974faa34b5dd021b2bbf78c722881bf6f003bfe6d391d7da3ea1ed625d1ff10ddd13c57531f628b3e785be38d3eed10ad03cebd90b76932413df9a1820 + languageName: node + linkType: hard + +"micromark-core-commonmark@npm:^1.0.0, micromark-core-commonmark@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-core-commonmark@npm:1.1.0" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + micromark-factory-destination: "npm:^1.0.0" + micromark-factory-label: "npm:^1.0.0" + micromark-factory-space: "npm:^1.0.0" + micromark-factory-title: "npm:^1.0.0" + micromark-factory-whitespace: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-chunked: "npm:^1.0.0" + micromark-util-classify-character: "npm:^1.0.0" + micromark-util-html-tag-name: "npm:^1.0.0" + micromark-util-normalize-identifier: "npm:^1.0.0" + micromark-util-resolve-all: "npm:^1.0.0" + micromark-util-subtokenize: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.1" + uvu: "npm:^0.5.0" + checksum: 10/a73694d223ac8baad8ff00597a3c39d61f5b32bfd56fe4bcf295d75b2a4e8e67fb2edbfc7cc287b362b9d7f6d24fce08b6a7e8b5b155d79bcc1e4d9b2756ffb2 + languageName: node + linkType: hard + +"micromark-extension-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-autolink-literal@npm:1.0.5" + dependencies: + micromark-util-character: "npm:^1.0.0" + micromark-util-sanitize-uri: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/1e0ccc758baef3cd0478ba84ff86fa1ec2b389042421c7cade9485b775456c1a9c3bd797393002b2c6f6abd9bdf829cb114874557bbcb8e43d16d06a464811c0 + languageName: node + linkType: hard + +"micromark-extension-gfm-footnote@npm:^1.0.0": + version: 1.1.2 + resolution: "micromark-extension-gfm-footnote@npm:1.1.2" + dependencies: + micromark-core-commonmark: "npm:^1.0.0" + micromark-factory-space: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-normalize-identifier: "npm:^1.0.0" + micromark-util-sanitize-uri: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + uvu: "npm:^0.5.0" + checksum: 10/8777073fb76d2fd01f6b2405106af6c349c1e25660c4d37cadcc61c187d71c8444870f73cefaaa67f12884d5e45c78ee3c5583561a0b330bd91c6d997113584a + languageName: node + linkType: hard + +"micromark-extension-gfm-strikethrough@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-strikethrough@npm:1.0.7" + dependencies: + micromark-util-chunked: "npm:^1.0.0" + micromark-util-classify-character: "npm:^1.0.0" + micromark-util-resolve-all: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + uvu: "npm:^0.5.0" + checksum: 10/8411ef1aa5dc83f662e8b45b085f70ddff29deb3c4259269e8a1ff656397abb755d8ea841a14be23e8585a31d3c0a5de1bd2c05f3453b66670e499d4a0004f5e + languageName: node + linkType: hard + +"micromark-extension-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-table@npm:1.0.7" + dependencies: + micromark-factory-space: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + uvu: "npm:^0.5.0" + checksum: 10/f05d86a099c941a2a309d60bf4839d16a00a93cb880cda4ab8faeb831647763fff6e03197ec15b80e1f195002afcca6afe2b95c3622b049b82d7ff8ef1c1c776 + languageName: node + linkType: hard + +"micromark-extension-gfm-tagfilter@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-extension-gfm-tagfilter@npm:1.0.2" + dependencies: + micromark-util-types: "npm:^1.0.0" + checksum: 10/55c7d9019d6a39efaaed2c2e40b0aaa137d2c4f9c94cac82e93f509a806c3a775e4c815b5d8e986617450b68861a19776e4b886307e83db452b393f15a837b39 + languageName: node + linkType: hard + +"micromark-extension-gfm-task-list-item@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-task-list-item@npm:1.0.5" + dependencies: + micromark-factory-space: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + uvu: "npm:^0.5.0" + checksum: 10/46bb1baa10bfb785a2e3e2f975e5509260b9995d5c3aeddf77051957d218ce1af4ea737bcb6a56a930e62d42b05307b20632a400eff25cdb290789ff3170cad5 + languageName: node + linkType: hard + +"micromark-extension-gfm@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-extension-gfm@npm:2.0.3" + dependencies: + micromark-extension-gfm-autolink-literal: "npm:^1.0.0" + micromark-extension-gfm-footnote: "npm:^1.0.0" + micromark-extension-gfm-strikethrough: "npm:^1.0.0" + micromark-extension-gfm-table: "npm:^1.0.0" + micromark-extension-gfm-tagfilter: "npm:^1.0.0" + micromark-extension-gfm-task-list-item: "npm:^1.0.0" + micromark-util-combine-extensions: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/3ffd06ced4314abd0f0c72ec227f034f38dd47facbb62439ef3216d42f32433f3901d14675cf806e8d73689802a11849958b330bb5b55dd4fd5cdc64ebaf345c + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-destination@npm:1.1.0" + dependencies: + micromark-util-character: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/9e2b5fb5fedbf622b687e20d51eb3d56ae90c0e7ecc19b37bd5285ec392c1e56f6e21aa7cfcb3c01eda88df88fe528f3acb91a5f57d7f4cba310bc3cd7f824fa + languageName: node + linkType: hard + +"micromark-factory-label@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-label@npm:1.1.0" + dependencies: + micromark-util-character: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + uvu: "npm:^0.5.0" + checksum: 10/fcda48f1287d9b148c562c627418a2ab759cdeae9c8e017910a0cba94bb759a96611e1fc6df33182e97d28fbf191475237298983bb89ef07d5b02464b1ad28d5 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-space@npm:1.1.0" + dependencies: + micromark-util-character: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/b58435076b998a7e244259a4694eb83c78915581206b6e7fc07b34c6abd36a1726ade63df8972fbf6c8fa38eecb9074f4e17be8d53f942e3b3d23d1a0ecaa941 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-title@npm:1.1.0" + dependencies: + micromark-factory-space: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/4432d3dbc828c81f483c5901b0c6591a85d65a9e33f7d96ba7c3ae821617a0b3237ff5faf53a9152d00aaf9afb3a9f185b205590f40ed754f1d9232e0e9157b1 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-whitespace@npm:1.1.0" + dependencies: + micromark-factory-space: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/ef0fa682c7d593d85a514ee329809dee27d10bc2a2b65217d8ef81173e33b8e83c549049764b1ad851adfe0a204dec5450d9d20a4ca8598f6c94533a73f73fcd + languageName: node + linkType: hard + +"micromark-util-character@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-character@npm:1.2.0" + dependencies: + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/88cf80f9b4c95266f24814ef587fb4180454668dcc3be4ac829e1227188cf349c8981bfca29e3eab1682f324c2c47544c0b0b799a26fbf9df5f156c6a84c970c + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-chunked@npm:1.1.0" + dependencies: + micromark-util-symbol: "npm:^1.0.0" + checksum: 10/c435bde9110cb595e3c61b7f54c2dc28ee03e6a57fa0fc1e67e498ad8bac61ee5a7457a2b6a73022ddc585676ede4b912d28dcf57eb3bd6951e54015e14dc20b + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-classify-character@npm:1.1.0" + dependencies: + micromark-util-character: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/8499cb0bb1f7fb946f5896285fcca65cd742f66cd3e79ba7744792bd413ec46834f932a286de650349914d02e822946df3b55d03e6a8e1d245d1ddbd5102e5b0 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-combine-extensions@npm:1.1.0" + dependencies: + micromark-util-chunked: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + checksum: 10/ee78464f5d4b61ccb437850cd2d7da4d690b260bca4ca7a79c4bb70291b84f83988159e373b167181b6716cb197e309bc6e6c96a68cc3ba9d50c13652774aba9 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" + dependencies: + micromark-util-symbol: "npm:^1.0.0" + checksum: 10/4733fe75146e37611243f055fc6847137b66f0cde74d080e33bd26d0408c1d6f44cabc984063eee5968b133cb46855e729d555b9ff8d744652262b7b51feec73 + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-string@npm:1.1.0" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-decode-numeric-character-reference: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + checksum: 10/f1625155db452f15aa472918499689ba086b9c49d1322a08b22bfbcabe918c61b230a3002c8bc3ea9b1f52ca7a9bb1c3dd43ccb548c7f5f8b16c24a1ae77a813 + languageName: node + linkType: hard + +"micromark-util-encode@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-encode@npm:1.1.0" + checksum: 10/4ef29d02b12336918cea6782fa87c8c578c67463925221d4e42183a706bde07f4b8b5f9a5e1c7ce8c73bb5a98b261acd3238fecd152e6dd1cdfa2d1ae11b60a0 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-html-tag-name@npm:1.2.0" + checksum: 10/ccf0fa99b5c58676dc5192c74665a3bfd1b536fafaf94723bd7f31f96979d589992df6fcf2862eba290ef18e6a8efb30ec8e1e910d9f3fc74f208871e9f84750 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-normalize-identifier@npm:1.1.0" + dependencies: + micromark-util-symbol: "npm:^1.0.0" + checksum: 10/8655bea41ffa4333e03fc22462cb42d631bbef9c3c07b625fd852b7eb442a110f9d2e5902a42e65188d85498279569502bf92f3434a1180fc06f7c37edfbaee2 + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-resolve-all@npm:1.1.0" + dependencies: + micromark-util-types: "npm:^1.0.0" + checksum: 10/1ce6c0237cd3ca061e76fae6602cf95014e764a91be1b9f10d36cb0f21ca88f9a07de8d49ab8101efd0b140a4fbfda6a1efb72027ab3f4d5b54c9543271dc52c + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^1.0.0, micromark-util-sanitize-uri@npm:^1.1.0": + version: 1.2.0 + resolution: "micromark-util-sanitize-uri@npm:1.2.0" + dependencies: + micromark-util-character: "npm:^1.0.0" + micromark-util-encode: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + checksum: 10/0d024100d95ffb88bf75f3360e305b545c1eb745430959b8633f7aa93f37ec401fc7094c90c97298409a9e30d94d53b895bae224e1bb966bea114976cfa0fd48 + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-subtokenize@npm:1.1.0" + dependencies: + micromark-util-chunked: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.0" + uvu: "npm:^0.5.0" + checksum: 10/075a1db6ea586d65827d3eead33dbfc520c4e43659c93fcd8fd82f44a7b75cfe61dcde967a3dfcc2ffd999347440ba5aa6698e65a04f3fc627e13e9f12a1a910 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-symbol@npm:1.1.0" + checksum: 10/a26b6b1efd77a715a4d9bbe0a5338eaf3d04ea5e85733e34fee56dfeabf64495c0afc5438fe5220316884cd3a5eae1f17768e0ff4e117827ea4a653897466f86 + languageName: node + linkType: hard + +"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-util-types@npm:1.1.0" + checksum: 10/287ac5de4a3802bb6f6c3842197c294997a488db1c0486e03c7a8e674d9eb7720c17dda1bcb814814b8343b338c4826fcbc0555f3e75463712a60dcdb53a028e + languageName: node + linkType: hard + +"micromark@npm:^3.0.0": + version: 3.2.0 + resolution: "micromark@npm:3.2.0" + dependencies: + "@types/debug": "npm:^4.0.0" + debug: "npm:^4.0.0" + decode-named-character-reference: "npm:^1.0.0" + micromark-core-commonmark: "npm:^1.0.1" + micromark-factory-space: "npm:^1.0.0" + micromark-util-character: "npm:^1.0.0" + micromark-util-chunked: "npm:^1.0.0" + micromark-util-combine-extensions: "npm:^1.0.0" + micromark-util-decode-numeric-character-reference: "npm:^1.0.0" + micromark-util-encode: "npm:^1.0.0" + micromark-util-normalize-identifier: "npm:^1.0.0" + micromark-util-resolve-all: "npm:^1.0.0" + micromark-util-sanitize-uri: "npm:^1.0.0" + micromark-util-subtokenize: "npm:^1.0.0" + micromark-util-symbol: "npm:^1.0.0" + micromark-util-types: "npm:^1.0.1" + uvu: "npm:^0.5.0" + checksum: 10/560a4a501efc3859d622461aaa9345fb95b99a2f34d3d3f2a775ab04de1dd857cb0f642083a6b28ab01bd817f5f0741a1be9857fd702f45e04a3752927a66719 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58 + languageName: node + linkType: hard + +"miller-rabin@npm:^4.0.0": + version: 4.0.1 + resolution: "miller-rabin@npm:4.0.1" + dependencies: + bn.js: "npm:^4.0.0" + brorand: "npm:^1.0.1" + bin: + miller-rabin: bin/miller-rabin + checksum: 10/2a38ba9d1e878d94ee8a8ab3505b40e8d44fb9700a7716570fe4c8ca7e20d49b69aea579106580618c877cc6ff969eff71705042fafb47573736bf89404417bc + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7 + languageName: node + linkType: hard + +"mime-db@npm:>= 1.43.0 < 2": + version: 1.53.0 + resolution: "mime-db@npm:1.53.0" + checksum: 10/82409c568a20254cc67a763a25e581d2213e1ef5d070a0af805239634f8a655f5d8a15138200f5f81c5b06fc6623d27f6168c612d447642d59e37eb7f20f7412 + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.18, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10/89aa9651b67644035de2784a6e665fc685d79aba61857e02b9c8758da874a754aed4a9aced9265f5ed1171fd934331e5516b84a7f0218031b6fa0270eca1e51a + languageName: node + linkType: hard + +"mime@npm:1.6.0": + version: 1.6.0 + resolution: "mime@npm:1.6.0" + bin: + mime: cli.js + checksum: 10/b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170 + languageName: node + linkType: hard + +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 10/b2d31580deb58be89adaa1877cbbf152b7604b980fd7ef8f08b9e96bfedf7d605d9c23a8ba62aa12c8580b910cd7c1d27b7331d0f40f7a14e17d5a0bbec3b49f + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 10/7e719047612411fe071332a7498cf0448bbe43c485c0d780046c76633a771b223ff49bd00267be122cedebb897037fdb527df72335d0d0f74724604ca70b37ad + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: 10/bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 + languageName: node + linkType: hard + +"mini-css-extract-plugin@npm:^2.4.2": + version: 2.9.2 + resolution: "mini-css-extract-plugin@npm:2.9.2" + dependencies: + schema-utils: "npm:^4.0.0" + tapable: "npm:^2.2.1" + peerDependencies: + webpack: ^5.0.0 + checksum: 10/db6ddb8ba56affa1a295b57857d66bad435d36e48e1f95c75d16fadd6c70e3ba33e8c4141c3fb0e22b4d875315b41c4f58550c6ac73b50bdbe429f768297e3ff + languageName: node + linkType: hard + +"minim@npm:~0.23.8": + version: 0.23.8 + resolution: "minim@npm:0.23.8" + dependencies: + lodash: "npm:^4.15.0" + checksum: 10/8680398f52bb77127db25fab5c4406e3199e84d8f7ef6fa353c6d74fdebb0ba42b445400f017197a73feea2beb4fb5d19858f4d4ba7b3f0ef3e379367c2b313e + languageName: node + linkType: hard + +"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: 10/cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 + languageName: node + linkType: hard + +"minimalistic-crypto-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-crypto-utils@npm:1.0.1" + checksum: 10/6e8a0422b30039406efd4c440829ea8f988845db02a3299f372fceba56ffa94994a9c0f2fd70c17f9969eedfbd72f34b5070ead9656a34d3f71c0bd72583a0ed + languageName: node + linkType: hard + +"minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 + languageName: node + linkType: hard + +"minimatch@npm:9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/126b36485b821daf96d33b5c821dac600cc1ab36c87e7a532594f9b1652b1fa89a1eebcaad4dff17c764dce1a7ac1531327f190fed5f97d8f6e5f889c116c429 + languageName: node + linkType: hard + +"minimatch@npm:^7.4.3": + version: 7.4.6 + resolution: "minimatch@npm:7.4.6" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/0046ba1161ac6414bde1b07c440792ebcdb2ed93e6714c85c73974332b709b7e692801550bc9da22028a8613407b3f13861e17dd0dd44f4babdeacd44950430b + languageName: node + linkType: hard + +"minimatch@npm:^8.0.2": + version: 8.0.4 + resolution: "minimatch@npm:8.0.4" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/aef05598ee565e1013bc8a10f53410ac681561f901c1a084b8ecfd016c9ed919f58f4bbd5b63e05643189dfb26e8106a84f0e1ff12e4a263aa37e1cae7ce9828 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 + languageName: node + linkType: hard + +"minimatch@npm:~3.0.3": + version: 3.0.8 + resolution: "minimatch@npm:3.0.8" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10/6df5373cb1ea79020beb6887ff5576c58cfabcfd32c5a65c2cf58f326e4ee8eae84f129e5fa50b8a4347fa1d1e583f931285c9fb3040d984bdfb5109ef6607ec + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f + languageName: node + linkType: hard + +"minimisted@npm:^2.0.0": + version: 2.0.1 + resolution: "minimisted@npm:2.0.1" + dependencies: + minimist: "npm:^1.2.5" + checksum: 10/f8c81346b1f535c0be173f4937991586ec86e55b7c94790000d1cba436053ed6a536d290321194b45512a8fa0e30678fd10c759e82ce5388c2dbe4f990b4a9ec + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + +"minipass-fetch@npm:^4.0.0": + version: 4.0.0 + resolution: "minipass-fetch@npm:4.0.0" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^3.0.1" + dependenciesMeta: + encoding: + optional: true + checksum: 10/4b0772dbee77727b469dc5bfc371541d9aba1e243fbb46ddc1b9ff7efa4de4a4cf5ff3a359d6a3b3a460ca26df9ae67a9c93be26ab6417c225e49d63b52b2801 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10/a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0 + languageName: node + linkType: hard + +"minipass@npm:^4.2.4": + version: 4.2.8 + resolution: "minipass@npm:4.2.8" + checksum: 10/e148eb6dcb85c980234cad889139ef8ddf9d5bdac534f4f0268446c8792dd4c74f4502479be48de3c1cce2f6450f6da4d0d4a86405a8a12be04c1c36b339569a + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10/61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10/ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1 + languageName: node + linkType: hard + +"minizlib@npm:^3.0.1": + version: 3.0.1 + resolution: "minizlib@npm:3.0.1" + dependencies: + minipass: "npm:^7.0.4" + rimraf: "npm:^5.0.5" + checksum: 10/622cb85f51e5c206a080a62d20db0d7b4066f308cb6ce82a9644da112367c3416ae7062017e631eb7ac8588191cfa4a9a279b8651c399265202b298e98c4acef + languageName: node + linkType: hard + +"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": + version: 0.5.3 + resolution: "mkdirp-classic@npm:0.5.3" + checksum: 10/3f4e088208270bbcc148d53b73e9a5bd9eef05ad2cbf3b3d0ff8795278d50dd1d11a8ef1875ff5aea3fa888931f95bfcb2ad5b7c1061cfefd6284d199e6776ac + languageName: node + linkType: hard + +"mkdirp@npm:^0.5.4, mkdirp@npm:^0.5.6": + version: 0.5.6 + resolution: "mkdirp@npm:0.5.6" + dependencies: + minimist: "npm:^1.2.6" + bin: + mkdirp: bin/cmd.js + checksum: 10/0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10/d71b8dcd4b5af2fe13ecf3bd24070263489404fe216488c5ba7e38ece1f54daf219e72a833a3a2dc404331e870e9f44963a33399589490956bff003a3404d3b2 + languageName: node + linkType: hard + +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 10/16fd79c28645759505914561e249b9a1f5fe3362279ad95487a4501e4467abeb714fd35b95307326b8fd03f3c7719065ef11a6f97b7285d7888306d1bd2232ba + languageName: node + linkType: hard + +"mockttp@npm:^3.13.0": + version: 3.15.5 + resolution: "mockttp@npm:3.15.5" + dependencies: + "@graphql-tools/schema": "npm:^8.5.0" + "@graphql-tools/utils": "npm:^8.8.0" + "@httptoolkit/httpolyglot": "npm:^2.2.1" + "@httptoolkit/subscriptions-transport-ws": "npm:^0.11.2" + "@httptoolkit/websocket-stream": "npm:^6.0.1" + "@types/cors": "npm:^2.8.6" + "@types/node": "npm:*" + async-mutex: "npm:^0.5.0" + base64-arraybuffer: "npm:^0.1.5" + body-parser: "npm:^1.15.2" + cacheable-lookup: "npm:^6.0.0" + common-tags: "npm:^1.8.0" + connect: "npm:^3.7.0" + cors: "npm:^2.8.4" + cors-gate: "npm:^1.1.3" + cross-fetch: "npm:^3.1.5" + destroyable-server: "npm:^1.0.2" + express: "npm:^4.14.0" + fast-json-patch: "npm:^3.1.1" + graphql: "npm:^14.0.2 || ^15.5" + graphql-http: "npm:^1.22.0" + graphql-subscriptions: "npm:^1.1.0" + graphql-tag: "npm:^2.12.6" + http-encoding: "npm:^2.0.1" + http2-wrapper: "npm:^2.2.1" + https-proxy-agent: "npm:^5.0.1" + isomorphic-ws: "npm:^4.0.1" + lodash: "npm:^4.16.4" + lru-cache: "npm:^7.14.0" + native-duplexpair: "npm:^1.0.0" + node-forge: "npm:^1.2.1" + pac-proxy-agent: "npm:^7.0.0" + parse-multipart-data: "npm:^1.4.0" + performance-now: "npm:^2.1.0" + portfinder: "npm:^1.0.32" + read-tls-client-hello: "npm:^1.0.0" + semver: "npm:^7.5.3" + socks-proxy-agent: "npm:^7.0.0" + typed-error: "npm:^3.0.2" + urlpattern-polyfill: "npm:^8.0.0" + uuid: "npm:^8.3.2" + ws: "npm:^8.8.0" + bin: + mockttp: dist/admin/admin-bin.js + checksum: 10/93eca69baa35db11ae7f541d712bfd208edf0017db3091e874f59fc64a7c036179906b4e9b66936f054ad1c258645d085452dafab58a1c2df9fd6d67330f8328 + languageName: node + linkType: hard + +"moo@npm:^0.5.0": + version: 0.5.2 + resolution: "moo@npm:0.5.2" + checksum: 10/fee356cb13b52e259c925fe297d71b3f47b98b06444b696dd4870d20cad4711eb58d24131afeba9bf7a51d77c77a3cbe8479066497d12a88abb51865c1be7de7 + languageName: node + linkType: hard + +"morgan@npm:^1.10.0": + version: 1.10.0 + resolution: "morgan@npm:1.10.0" + dependencies: + basic-auth: "npm:~2.0.1" + debug: "npm:2.6.9" + depd: "npm:~2.0.0" + on-finished: "npm:~2.3.0" + on-headers: "npm:~1.0.2" + checksum: 10/4497ace00dac65318658595528c1924942c900aae88b7adc5e69e18dd78fb5d1fcccdc2048404ce7d88b5344dc088c492e3aa7cf8023f1e601c6b0f4ff806b93 + languageName: node + linkType: hard + +"mri@npm:1.1.4": + version: 1.1.4 + resolution: "mri@npm:1.1.4" + checksum: 10/f4b18415e6b25a40f6676296cac0cd57a8cb1444c88fd13df7898a76d5e64f52300c51bff18079620079e01b54cf7cad875c302236d03fa7ebe97b1987a995a2 + languageName: node + linkType: hard + +"mri@npm:^1.1.0, mri@npm:^1.2.0": + version: 1.2.0 + resolution: "mri@npm:1.2.0" + checksum: 10/6775a1d2228bb9d191ead4efc220bd6be64f943ad3afd4dcb3b3ac8fc7b87034443f666e38805df38e8d047b29f910c3cc7810da0109af83e42c82c73bd3f6bc + languageName: node + linkType: hard + +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10/673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"multer@npm:^1.4.5-lts.1": + version: 1.4.5-lts.1 + resolution: "multer@npm:1.4.5-lts.1" + dependencies: + append-field: "npm:^1.0.0" + busboy: "npm:^1.0.0" + concat-stream: "npm:^1.5.2" + mkdirp: "npm:^0.5.4" + object-assign: "npm:^4.1.1" + type-is: "npm:^1.6.4" + xtend: "npm:^4.0.0" + checksum: 10/957c09956f3b7f79d8586cac5e2a50e9a5c3011eb841667b5e4590c5f31d9464f5b46aecd399c83e183a15b88b019cccf0e4fa5620db40bf16b9e3af7fab3ac6 + languageName: node + linkType: hard + +"multicast-dns@npm:^7.2.5": + version: 7.2.5 + resolution: "multicast-dns@npm:7.2.5" + dependencies: + dns-packet: "npm:^5.2.2" + thunky: "npm:^1.0.2" + bin: + multicast-dns: cli.js + checksum: 10/e9add8035fb7049ccbc87b1b069f05bb3b31e04fe057bf7d0116739d81295165afc2568291a4a962bee01a5074e475996816eed0f50c8110d652af5abb74f95a + languageName: node + linkType: hard + +"mute-stream@npm:0.0.8": + version: 0.0.8 + resolution: "mute-stream@npm:0.0.8" + checksum: 10/a2d2e79dde87e3424ffc8c334472c7f3d17b072137734ca46e6f221131f1b014201cc593b69a38062e974fb2394d3d1cb4349f80f012bbf8b8ac1b28033e515f + languageName: node + linkType: hard + +"mysql2@npm:^3.0.0": + version: 3.12.0 + resolution: "mysql2@npm:3.12.0" + dependencies: + aws-ssl-profiles: "npm:^1.1.1" + denque: "npm:^2.1.0" + generate-function: "npm:^2.3.1" + iconv-lite: "npm:^0.6.3" + long: "npm:^5.2.1" + lru.min: "npm:^1.0.0" + named-placeholders: "npm:^1.1.3" + seq-queue: "npm:^0.0.5" + sqlstring: "npm:^2.3.2" + checksum: 10/55faaa32abc4ae706d8e3b9205ef3f05767bb35ee8049c95bfa594a2d54fec439118b66bbde23205491593f697501a060cba834288cc75fd70fdf4247ab15435 + languageName: node + linkType: hard + +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + languageName: node + linkType: hard + +"named-placeholders@npm:^1.1.3": + version: 1.1.3 + resolution: "named-placeholders@npm:1.1.3" + dependencies: + lru-cache: "npm:^7.14.1" + checksum: 10/7834adc91e92ae1b9c4413384e3ccd297de5168bb44017ff0536705ddc4db421723bd964607849265feb3f6ded390f84cf138e5925f22f7c13324f87a803dc73 + languageName: node + linkType: hard + +"nan@npm:^2.19.0, nan@npm:^2.20.0": + version: 2.22.0 + resolution: "nan@npm:2.22.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10/ab165ba910e549fcc21fd561a33f534d86e81ae36c97b1019dcfe506b09692ff867c97794a54b49c9a83b8b485f529f0f58d24966c3a11863c97dc70814f4d50 + languageName: node + linkType: hard + +"nano-css@npm:^5.6.2": + version: 5.6.2 + resolution: "nano-css@npm:5.6.2" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.4.15" + css-tree: "npm:^1.1.2" + csstype: "npm:^3.1.2" + fastest-stable-stringify: "npm:^2.0.2" + inline-style-prefixer: "npm:^7.0.1" + rtl-css-js: "npm:^1.16.1" + stacktrace-js: "npm:^2.0.2" + stylis: "npm:^4.3.0" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 10/6ed9f36957b19fc2dcf1644a853030cce70775bec3fed596cab9156063d522d5cb52cb1479117e4390acbe45b69321c9eb33915d96414aabaf09bff40497bb4a + languageName: node + linkType: hard + +"nanoid@npm:^3.3.7, nanoid@npm:^3.3.8": + version: 3.3.8 + resolution: "nanoid@npm:3.3.8" + bin: + nanoid: bin/nanoid.cjs + checksum: 10/2d1766606cf0d6f47b6f0fdab91761bb81609b2e3d367027aff45e6ee7006f660fb7e7781f4a34799fe6734f1268eeed2e37a5fdee809ade0c2d4eb11b0f9c40 + languageName: node + linkType: hard + +"napi-build-utils@npm:^2.0.0": + version: 2.0.0 + resolution: "napi-build-utils@npm:2.0.0" + checksum: 10/69adcdb828481737f1ec64440286013f6479d5b264e24d5439ba795f65293d0bb6d962035de07c65fae525ed7d2fcd0baab6891d8e3734ea792fec43918acf83 + languageName: node + linkType: hard + +"native-duplexpair@npm:^1.0.0": + version: 1.0.0 + resolution: "native-duplexpair@npm:1.0.0" + checksum: 10/0b57ecee0c4260ea7a48de2691cd9c77df7bbfbdbcc4b1966d45fd00d52f46af129924f36e7366538311cf1ff41632459843a248115eefaaacab30590287faf0 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10/23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"ndjson@npm:^2.0.0": + version: 2.0.0 + resolution: "ndjson@npm:2.0.0" + dependencies: + json-stringify-safe: "npm:^5.0.1" + minimist: "npm:^1.2.5" + readable-stream: "npm:^3.6.0" + split2: "npm:^3.0.0" + through2: "npm:^4.0.0" + bin: + ndjson: cli.js + checksum: 10/f847a51a2275b8a6a1bfdb24095183836b71c3085670161678c9922bc59644f04e53ced385e549a5565fdc44c28e206bd3f2199d12525028f843a86b680c4446 + languageName: node + linkType: hard + +"nearley@npm:^2.20.1": + version: 2.20.1 + resolution: "nearley@npm:2.20.1" + dependencies: + commander: "npm:^2.19.0" + moo: "npm:^0.5.0" + railroad-diagrams: "npm:^1.0.0" + randexp: "npm:0.4.6" + bin: + nearley-railroad: bin/nearley-railroad.js + nearley-test: bin/nearley-test.js + nearley-unparse: bin/nearley-unparse.js + nearleyc: bin/nearleyc.js + checksum: 10/b327a07d0fee967ec2b74205fee97c3ff13aeb6c91342443e5f0f00ed11e3fb8ce7e71e21de6a74f094206ebdb571e93c79a58f1fe5414714c97b0e55cd57cb2 + languageName: node + linkType: hard + +"negotiator@npm:0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 + languageName: node + linkType: hard + +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10/b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5 + languageName: node + linkType: hard + +"negotiator@npm:~0.6.4": + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10/d98c04a136583afd055746168f1067d58ce4bfe6e4c73ca1d339567f81ea1f7e665b5bd1e81f4771c67b6c2ea89b21cb2adaea2b16058c7dc31317778f931dab + languageName: node + linkType: hard + +"neo-async@npm:^2.6.2": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002 + languageName: node + linkType: hard + +"neotraverse@npm:=0.6.18": + version: 0.6.18 + resolution: "neotraverse@npm:0.6.18" + checksum: 10/a19649cdadb9a3ce3c54c2d6093a2eb1e12364ace384301a7515d40c752bfbac45d12c6eb9c4b004beba7bd4d1871323ebd46ad1446e0de5bc5143b0367647cb + languageName: node + linkType: hard + +"netmask@npm:^2.0.2": + version: 2.0.2 + resolution: "netmask@npm:2.0.2" + checksum: 10/375cabe898a5832816958664f26206f0a1e9f3605aa1816bfce803e060ff20f9d6ce56a2377e46f1470938358c31c27b3a8086f4a5e3ef678896147884d63ffa + languageName: node + linkType: hard + +"nimma@npm:0.2.3": + version: 0.2.3 + resolution: "nimma@npm:0.2.3" + dependencies: + "@jsep-plugin/regex": "npm:^1.0.1" + "@jsep-plugin/ternary": "npm:^1.0.2" + astring: "npm:^1.8.1" + jsep: "npm:^1.2.0" + jsonpath-plus: "npm:^6.0.1 || ^10.1.0" + lodash.topath: "npm:^4.5.2" + dependenciesMeta: + jsonpath-plus: + optional: true + lodash.topath: + optional: true + checksum: 10/4403a6583278673d792dae16a01d8a134bb23851b133416d1a54b496edc53a163305fb72c70720d4d719a9faacf3f97dc4adcee22ffe0f3434e9e5058a2a5688 + languageName: node + linkType: hard + +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: "npm:^2.0.2" + tslib: "npm:^2.0.3" + checksum: 10/0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c + languageName: node + linkType: hard + +"node-abi@npm:^3.3.0": + version: 3.73.0 + resolution: "node-abi@npm:3.73.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10/06c999329d8b3d13c794fca7510fb9e5ccc6cb79bfc642423531f479addbe2a25b07812ec0ad77ba66461f70f9abb257d756349e2040a8e97fdd513292297f5b + languageName: node + linkType: hard + +"node-abort-controller@npm:^3.0.1, node-abort-controller@npm:^3.1.1": + version: 3.1.1 + resolution: "node-abort-controller@npm:3.1.1" + checksum: 10/0a2cdb7ec0aeaf3cb31e1ca0e192f5add48f1c5c9c9ed822129f9dddbd9432f69b7425982f94ce803c56a2104884530aa67cd57696e5774b2e5b8ec2f58de042 + languageName: node + linkType: hard + +"node-addon-api@npm:^8.2.1, node-addon-api@npm:^8.2.2, node-addon-api@npm:^8.3.0": + version: 8.3.0 + resolution: "node-addon-api@npm:8.3.0" + dependencies: + node-gyp: "npm:latest" + checksum: 10/b1c2218e794c149011d8f14e5f14b2ffd5f260c08b2982d4163a0f881069dc390458de7703602b9940a1130c1ad87c3f9d35cd7bb116e2f2a134ac0a0c0036ca + languageName: node + linkType: hard + +"node-cache@npm:^5.1.2": + version: 5.1.2 + resolution: "node-cache@npm:5.1.2" + dependencies: + clone: "npm:2.x" + checksum: 10/6ac71a9e65fdd8940883c3c188de4888ff592f5bf52e4d42436c49e2a575d635e7327acea490c49fa7c01d5fa81f7b6e060fd35cf6f6ec401fbd5f77a3ebeecf + languageName: node + linkType: hard + +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: 10/e332522f242348c511640c25a6fc7da4f30e09e580c70c6b13cb0be83c78c3e71c8d4665af2527e869fc96848924a4316ae7ec9014c091e2156f41739d4fa233 + languageName: node + linkType: hard + +"node-fetch-commonjs@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch-commonjs@npm:3.3.2" + dependencies: + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10/30c8b55a604ce1d161560fc8024ef7e61bd6f34d4d05727783af0b0528bedcb137ffcbfbc326c1be1111455b9c4a0fcd12aff69a69cbc5de2e6308956a46539e + languageName: node + linkType: hard + +"node-fetch@npm:2.6.7": + version: 2.6.7 + resolution: "node-fetch@npm:2.6.7" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10/4bc9245383db92c35601a798c9a992fdf38d99920ceac11e0e6512ef3014d188b3807ccb060bc6c4bdb57a145030c73f5b5fd6730f665979f9264bc43ca3afea + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7, node-fetch@npm:^2.6.9, node-fetch@npm:^2.7.0": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10/b24f8a3dc937f388192e59bcf9d0857d7b6940a2496f328381641cb616efccc9866e89ec43f2ec956bbd6c3d3ee05524ce77fe7b29ccd34692b3a16f237d6676 + languageName: node + linkType: hard + +"node-fetch@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch@npm:3.3.2" + dependencies: + data-uri-to-buffer: "npm:^4.0.0" + fetch-blob: "npm:^3.1.4" + formdata-polyfill: "npm:^4.0.10" + checksum: 10/24207ca8c81231c7c59151840e3fded461d67a31cf3e3b3968e12201a42f89ce4a0b5fb7079b1fa0a4655957b1ca9257553200f03a9f668b45ebad265ca5593d + languageName: node + linkType: hard + +"node-forge@npm:^1, node-forge@npm:^1.2.1, node-forge@npm:^1.3.1": + version: 1.3.1 + resolution: "node-forge@npm:1.3.1" + checksum: 10/05bab6868633bf9ad4c3b1dd50ec501c22ffd69f556cdf169a00998ca1d03e8107a6032ba013852f202035372021b845603aeccd7dfcb58cdb7430013b3daa8d + languageName: node + linkType: hard + +"node-gyp-build@npm:^4.8.2, node-gyp-build@npm:^4.8.4": + version: 4.8.4 + resolution: "node-gyp-build@npm:4.8.4" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 10/6a7d62289d1afc419fc8fc9bd00aa4e554369e50ca0acbc215cb91446148b75ff7e2a3b53c2c5b2c09a39d416d69f3d3237937860373104b5fe429bf30ad9ac5 + languageName: node + linkType: hard + +"node-gyp@npm:^11.0.0, node-gyp@npm:latest": + version: 11.0.0 + resolution: "node-gyp@npm:11.0.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^14.0.3" + nopt: "npm:^8.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.4.3" + which: "npm:^5.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10/5d07430e887a906f85c7c6ed87e8facb7ecd4ce42d948a2438c471df2e24ae6af70f4def114ec1a03127988d164648dda8d75fe666f3c4b431e53856379fdf13 + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: 10/b7afc2b65e56f7035b1a2eec57ae0fbdee7d742b1cdcd0f4387562b6527a011ab1cbe9f64cc8b3cca61e3297c9637c8bf61cec2e6b8d3a711d4b5267dfafbe02 + languageName: node + linkType: hard + +"node-libs-browser@npm:^2.2.1": + version: 2.2.1 + resolution: "node-libs-browser@npm:2.2.1" + dependencies: + assert: "npm:^1.1.1" + browserify-zlib: "npm:^0.2.0" + buffer: "npm:^4.3.0" + console-browserify: "npm:^1.1.0" + constants-browserify: "npm:^1.0.0" + crypto-browserify: "npm:^3.11.0" + domain-browser: "npm:^1.1.1" + events: "npm:^3.0.0" + https-browserify: "npm:^1.0.0" + os-browserify: "npm:^0.3.0" + path-browserify: "npm:0.0.1" + process: "npm:^0.11.10" + punycode: "npm:^1.2.4" + querystring-es3: "npm:^0.2.0" + readable-stream: "npm:^2.3.3" + stream-browserify: "npm:^2.0.1" + stream-http: "npm:^2.7.2" + string_decoder: "npm:^1.0.0" + timers-browserify: "npm:^2.0.4" + tty-browserify: "npm:0.0.0" + url: "npm:^0.11.0" + util: "npm:^0.11.0" + vm-browserify: "npm:^1.0.1" + checksum: 10/41fa7927378edc0cb98a8cc784d3f4a47e43378d3b42ec57a23f81125baa7287c4b54d6d26d062072226160a3ce4d8b7a62e873d2fb637aceaddf71f5a26eca0 + languageName: node + linkType: hard + +"node-machine-id@npm:^1.1.12": + version: 1.1.12 + resolution: "node-machine-id@npm:1.1.12" + checksum: 10/46bf3d4fab8d0e63b24c42bcec2b6975c7ec5bc16e53d7a589d095668d0fdf0bfcbcdc28246dd1ef74cf95a37fbd774cd4b17b41f518d79dfad7fdc99f995903 + languageName: node + linkType: hard + +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 10/c2b33b4f0c40445aee56141f13ca692fa6805db88510e5bbb3baadb2da13e1293b738e638e15e4a8eb668bb9e97debb08e7a35409b477b5cc18f171d35a83045 + languageName: node + linkType: hard + +"node-sarif-builder@npm:^2.0.3": + version: 2.0.3 + resolution: "node-sarif-builder@npm:2.0.3" + dependencies: + "@types/sarif": "npm:^2.1.4" + fs-extra: "npm:^10.0.0" + checksum: 10/d06d01c4be51074c79d64b270b6022a19fbced203484f3078d779c4859c1b44e7eb276c5be0c3f29006e8211ed7dad77f8729fe379b3b576752545b8188389f6 + languageName: node + linkType: hard + +"node-schedule@npm:2.1.1": + version: 2.1.1 + resolution: "node-schedule@npm:2.1.1" + dependencies: + cron-parser: "npm:^4.2.0" + long-timeout: "npm:0.1.1" + sorted-array-functions: "npm:^1.3.0" + checksum: 10/0b0449f8a1f784cd599a8d79b1fa404ed9e3e4e2b1a48f027c97fd0632cd86e48ad762d366d6b6f9d48a940cad5b7afbdb1b833649ee870407591a6cf1297749 + languageName: node + linkType: hard + +"nopt@npm:^8.0.0": + version: 8.1.0 + resolution: "nopt@npm:8.1.0" + dependencies: + abbrev: "npm:^3.0.0" + bin: + nopt: bin/nopt.js + checksum: 10/26ab456c51a96f02a9e5aa8d1b80ef3219f2070f3f3528a040e32fb735b1e651e17bdf0f1476988d3a46d498f35c65ed662d122f340d38ce4a7e71dd7b20c4bc + languageName: node + linkType: hard + +"normalize-path@npm:^2.1.1": + version: 2.1.1 + resolution: "normalize-path@npm:2.1.1" + dependencies: + remove-trailing-separator: "npm:^1.0.1" + checksum: 10/7e9cbdcf7f5b8da7aa191fbfe33daf290cdcd8c038f422faf1b8a83c972bf7a6d94c5be34c4326cb00fb63bc0fd97d9fbcfaf2e5d6142332c2cd36d2e1b86cea + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"normalize-url@npm:^6.0.1": + version: 6.1.0 + resolution: "normalize-url@npm:6.1.0" + checksum: 10/5ae699402c9d5ffa330adc348fcd6fc6e6a155ab7c811b96e30b7ecab60ceef821d8f86443869671dda71bbc47f4b9625739c82ad247e883e9aefe875bfb8659 + languageName: node + linkType: hard + +"npm-bundled@npm:^2.0.0": + version: 2.0.1 + resolution: "npm-bundled@npm:2.0.1" + dependencies: + npm-normalize-package-bin: "npm:^2.0.0" + checksum: 10/adf5d727915cbd61603e2171ba67e39319efa343ceb72868348232a36ad774a8365d5af5e1aad29acc41c3caeda4ebd80e5b7a3da319985509aeedf79e352c0d + languageName: node + linkType: hard + +"npm-normalize-package-bin@npm:^2.0.0": + version: 2.0.0 + resolution: "npm-normalize-package-bin@npm:2.0.0" + checksum: 10/7c5379f9b188b564c4332c97bdd9a5d6b7b15f02b5823b00989d6a0e6fb31eb0280f02b0a924f930e1fcaf00e60fae333aec8923d2a4c7747613c7d629d8aa25 + languageName: node + linkType: hard + +"npm-packlist@npm:^5.0.0": + version: 5.1.3 + resolution: "npm-packlist@npm:5.1.3" + dependencies: + glob: "npm:^8.0.1" + ignore-walk: "npm:^5.0.1" + npm-bundled: "npm:^2.0.0" + npm-normalize-package-bin: "npm:^2.0.0" + bin: + npm-packlist: bin/index.js + checksum: 10/78aa1c69a349c40cf7ba556581bff2dd5cbc1455614a44bd673e076f7f402096ac7c01660c45ec17cbd51bf0db3a4df7e9bc3a0a8e8e497ebf6d53848f33dfad + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"nth-check@npm:^2.0.1": + version: 2.1.1 + resolution: "nth-check@npm:2.1.1" + dependencies: + boolbase: "npm:^1.0.0" + checksum: 10/5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3 + languageName: node + linkType: hard + +"nullthrows@npm:^1.0.0": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10/c7cf377a095535dc301d81cf7959d3784d090a609a2a4faa40b6121a0c1d7f70d3a3aa534a34ab852e8553b66848ec503c28f2c19efd617ed564dc07dfbb6d33 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.16, nwsapi@npm:^2.2.2": + version: 2.2.16 + resolution: "nwsapi@npm:2.2.16" + checksum: 10/1e5e086cdd4ca4a45f414d37f49bf0ca81d84ed31c6871ac68f531917d2910845db61f77c6d844430dc90fda202d43fce9603024e74038675de95229eb834dba + languageName: node + linkType: hard + +"oauth-sign@npm:~0.9.0": + version: 0.9.0 + resolution: "oauth-sign@npm:0.9.0" + checksum: 10/1809a366d258f41fdf4ab5310cff3d1e15f96b187503bc7333cef4351de7bd0f52cb269bc95800f1fae5fb04dd886287df1471985fd67e8484729fdbcf857119 + languageName: node + linkType: hard + +"oauth@npm:0.10.x": + version: 0.10.0 + resolution: "oauth@npm:0.10.0" + checksum: 10/356808979911583a50b0caab49ed4eee532405fe582f673e3b404348f7ce32a58d25b34b1d531f8c850fac488151252c262d018efc9ce973892a36baa42ac01d + languageName: node + linkType: hard + +"oauth@npm:0.9.x": + version: 0.9.15 + resolution: "oauth@npm:0.9.15" + checksum: 10/6b0b10be19a461da417a37ea2821a773ef74dd667563291e1e83b2024b88e6571b0323a0a6887f2390fbaf28cc6ce5bfe0484fc22162b975305b1e19b76f5597 + languageName: node + linkType: hard + +"object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-hash@npm:^2.2.0": + version: 2.2.0 + resolution: "object-hash@npm:2.2.0" + checksum: 10/dee06b6271bf5769ae5f1a7386fdd52c1f18aae9fcb0b8d4bb1232f2d743d06cb5b662be42378b60a1c11829f96f3f86834a16bbaa57a085763295fff8b93e27 + languageName: node + linkType: hard + +"object-hash@npm:^3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 10/f498d456a20512ba7be500cef4cf7b3c183cc72c65372a549c9a0e6dd78ce26f375e9b1315c07592d3fde8f10d5019986eba35970570d477ed9a2a702514432a + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.3": + version: 1.13.3 + resolution: "object-inspect@npm:1.13.3" + checksum: 10/14cb973d8381c69e14d7f1c8c75044eb4caf04c6dabcf40ca5c2ce42dc2073ae0bb2a9939eeca142b0c05215afaa1cd5534adb7c8879c32cba2576e045ed8368 + languageName: node + linkType: hard + +"object-is@npm:^1.1.5": + version: 1.1.6 + resolution: "object-is@npm:1.1.6" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + checksum: 10/4f6f544773a595da21c69a7531e0e1d6250670f4e09c55f47eb02c516035cfcb1b46ceb744edfd3ecb362309dbccb6d7f88e43bf42e4d4595ac10a329061053a + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde + languageName: node + linkType: hard + +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" + object-keys: "npm:^1.1.1" + checksum: 10/3fe28cdd779f2a728a9a66bd688679ba231a2b16646cd1e46b528fe7c947494387dda4bc189eff3417f3717ef4f0a8f2439347cf9a9aa3cef722fbfd9f615587 + languageName: node + linkType: hard + +"object.entries@npm:^1.1.8": + version: 1.1.8 + resolution: "object.entries@npm:1.1.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/2301918fbd1ee697cf6ff7cd94f060c738c0a7d92b22fd24c7c250e9b593642c9707ad2c44d339303c1439c5967d8964251cdfc855f7f6ec55db2dd79e8dc2a7 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.8": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 10/5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92 + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.3": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + checksum: 10/44cb86dd2c660434be65f7585c54b62f0425b0c96b5c948d2756be253ef06737da7e68d7106e35506ce4a44d16aa85a413d11c5034eb7ce5579ec28752eb42d0 + languageName: node + linkType: hard + +"object.values@npm:^1.1.6, object.values@npm:^1.2.0, object.values@npm:^1.2.1": + version: 1.2.1 + resolution: "object.values@npm:1.2.1" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/f5ec9eccdefeaaa834b089c525663436812a65ff13de7964a1c3a9110f32054f2d58aa476a645bb14f75a79f3fe1154fb3e7bfdae7ac1e80affe171b2ef74bce + languageName: node + linkType: hard + +"obuf@npm:^1.0.0, obuf@npm:^1.1.2": + version: 1.1.2 + resolution: "obuf@npm:1.1.2" + checksum: 10/53ff4ab3a13cc33ba6c856cf281f2965c0aec9720967af450e8fd06cfd50aceeefc791986a16bcefa14e7898b3ca9acdfcf15b9d9a1b9c7e1366581a8ad6e65e + languageName: node + linkType: hard + +"oidc-token-hash@npm:^5.0.3": + version: 5.0.3 + resolution: "oidc-token-hash@npm:5.0.3" + checksum: 10/35fa19aea9ff2c509029ec569d74b778c8a215b92bd5e6e9bc4ebbd7ab035f44304ff02430a6397c3fb7c1d15ebfa467807ca0bcd31d06ba610b47798287d303 + languageName: node + linkType: hard + +"on-finished@npm:2.4.1, on-finished@npm:^2.3.0, on-finished@npm:^2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea + languageName: node + linkType: hard + +"on-finished@npm:~2.3.0": + version: 2.3.0 + resolution: "on-finished@npm:2.3.0" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10/1db595bd963b0124d6fa261d18320422407b8f01dc65863840f3ddaaf7bcad5b28ff6847286703ca53f4ec19595bd67a2f1253db79fc4094911ec6aa8df1671b + languageName: node + linkType: hard + +"on-headers@npm:~1.0.2": + version: 1.0.2 + resolution: "on-headers@npm:1.0.2" + checksum: 10/870766c16345855e2012e9422ba1ab110c7e44ad5891a67790f84610bd70a72b67fdd71baf497295f1d1bf38dd4c92248f825d48729c53c0eae5262fb69fa171 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"one-time@npm:^1.0.0": + version: 1.0.0 + resolution: "one-time@npm:1.0.0" + dependencies: + fn.name: "npm:1.x.x" + checksum: 10/64d0160480eeae4e3b2a6fc0a02f452e05bb0cc8373a4ed56a4fc08c3939dcb91bc20075003ed499655bd16919feb63ca56f86eee7932c5251f7d629b55dfc90 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10/e9fd0695a01cf226652f0385bf16b7a24153dbbb2039f764c8ba6d2306a8506b0e4ce570de6ad99c7a6eb49520743afdb66edd95ee979c1a342554ed49a9aadd + languageName: node + linkType: hard + +"only@npm:~0.0.2": + version: 0.0.2 + resolution: "only@npm:0.0.2" + checksum: 10/e2ad03e486534dc6bfb983393be83125a4669052b4a19a353eb00475b46971fb238a18223f2b609fe0d1bcb61ff8373964ccac64d05cbf970865299f655ed0ba + languageName: node + linkType: hard + +"ono@npm:^7.1.3": + version: 7.1.3 + resolution: "ono@npm:7.1.3" + dependencies: + "@jsdevtools/ono": "npm:7.1.3" + checksum: 10/7c9246ce063b4f6d8af3be7affb1d905254f8481d4e874f91f299f33b959dbb3613f7216ff2bc8484852de7b51266173e25cadcb6cba741242b05e22ac51c99d + languageName: node + linkType: hard + +"open@npm:^10.0.3": + version: 10.1.0 + resolution: "open@npm:10.1.0" + dependencies: + default-browser: "npm:^5.2.1" + define-lazy-prop: "npm:^3.0.0" + is-inside-container: "npm:^1.0.0" + is-wsl: "npm:^3.1.0" + checksum: 10/a9c4105243a1b3c5312bf2aeb678f78d31f00618b5100088ee01eed2769963ea1f2dd464ac8d93cef51bba2d911e1a9c0c34a753ec7b91d6b22795903ea6647a + languageName: node + linkType: hard + +"open@npm:^8.0.0, open@npm:^8.4.0": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: "npm:^2.0.0" + is-docker: "npm:^2.1.1" + is-wsl: "npm:^2.2.0" + checksum: 10/acd81a1d19879c818acb3af2d2e8e9d81d17b5367561e623248133deb7dd3aefaed527531df2677d3e6aaf0199f84df57b6b2262babff8bf46ea0029aac536c9 + languageName: node + linkType: hard + +"openapi-merge@npm:^1.3.2": + version: 1.3.3 + resolution: "openapi-merge@npm:1.3.3" + dependencies: + atlassian-openapi: "npm:^1.0.8" + lodash: "npm:^4.17.15" + ts-is-present: "npm:^1.1.1" + checksum: 10/29af282bb9dfc577896f7e68105cb5d4d533ea92acaf3d46d599f2596b8d1b3ad38d5d10cfbb2cf1acec35d8da7b61d605c5bd8e3af94125c6052af3071437af + languageName: node + linkType: hard + +"openapi-path-templating@npm:^2.0.1": + version: 2.1.0 + resolution: "openapi-path-templating@npm:2.1.0" + dependencies: + apg-lite: "npm:^1.0.4" + checksum: 10/de3ba30a19cc4bed5ace5dad0314bea66e09689001bd3510224a441f7ced53d854655daea846f884ed024d90a8f2af2d4bd0f28256dbda0c49b337684a802da1 + languageName: node + linkType: hard + +"openapi-sampler@npm:^1.2.1": + version: 1.6.1 + resolution: "openapi-sampler@npm:1.6.1" + dependencies: + "@types/json-schema": "npm:^7.0.7" + fast-xml-parser: "npm:^4.5.0" + json-pointer: "npm:0.6.2" + checksum: 10/610e4b8cb9c89556ff85dc27fe8fb376298f98e26973884e4e3bd12dc744253bc81ce168382c36ef72db0ef7e9a4fd49a1526a5284a5f5c19a1a233cb883b038 + languageName: node + linkType: hard + +"openapi-server-url-templating@npm:^1.2.0": + version: 1.3.0 + resolution: "openapi-server-url-templating@npm:1.3.0" + dependencies: + apg-lite: "npm:^1.0.4" + checksum: 10/4a98f67cedc0958d3a30cc6db91f35970b0aeae113d0403639adbe3f5e123ff02abebc0468c10639bd0d6db165a9bb0f21c4e367836e984c2345a5a4213620a9 + languageName: node + linkType: hard + +"openapi-types@npm:^12.0.2": + version: 12.1.3 + resolution: "openapi-types@npm:12.1.3" + checksum: 10/9d1d7ed848622b63d0a4c3f881689161b99427133054e46b8e3241e137f1c78bb0031c5d80b420ee79ac2e91d2e727ffd6fc13c553d1b0488ddc8ad389dcbef8 + languageName: node + linkType: hard + +"openapi3-ts@npm:^3.1.2": + version: 3.2.0 + resolution: "openapi3-ts@npm:3.2.0" + dependencies: + yaml: "npm:^2.2.1" + checksum: 10/f3aee3ee2ce600bd945561cd8b69c5447f8c4b8f3e9c09bd1751ad8f20bbf601d5ccfca4cc0402693b74c5bd7b71a8e3890b32c37ab8cbafc98214265fcb362b + languageName: node + linkType: hard + +"openid-client@npm:^5.2.1, openid-client@npm:^5.3.0, openid-client@npm:^5.5.0": + version: 5.7.1 + resolution: "openid-client@npm:5.7.1" + dependencies: + jose: "npm:^4.15.9" + lru-cache: "npm:^6.0.0" + object-hash: "npm:^2.2.0" + oidc-token-hash: "npm:^5.0.3" + checksum: 10/188a875ab1824010bde85b6755f31401d4b0bcf6edffe5f149b1e67fc886c692658121c0c3cc04db84be33138c0e9e2e7d829e6997adf489f23a32ea7e745151 + languageName: node + linkType: hard + +"oppa@npm:^0.4.0": + version: 0.4.0 + resolution: "oppa@npm:0.4.0" + dependencies: + chalk: "npm:^4.1.1" + checksum: 10/218adfa750631bd28aabbcd3fb49f9ff8801c3f9386def7cb353f63e476f3ed295c82d02ccc49e36afae99e9151b3ec9764bc800c1550e33c3e65015c5c0034d + languageName: node + linkType: hard + +"optionator@npm:^0.8.1": + version: 0.8.3 + resolution: "optionator@npm:0.8.3" + dependencies: + deep-is: "npm:~0.1.3" + fast-levenshtein: "npm:~2.0.6" + levn: "npm:~0.3.0" + prelude-ls: "npm:~1.1.2" + type-check: "npm:~0.3.2" + word-wrap: "npm:~1.2.3" + checksum: 10/6fa3c841b520f10aec45563962922215180e8cfbc59fde3ecd4ba2644ad66ca96bd19ad0e853f22fefcb7fc10e7612a5215b412cc66c5588f9a3138b38f6b5ff + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" + dependencies: + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10/a8398559c60aef88d7f353a4f98dcdff6090a4e70f874c827302bf1213d9106a1c4d5fcb68dacb1feb3c30a04c4102f41047aa55d4c576b863d6fc876e001af6 + languageName: node + linkType: hard + +"ora@npm:^5.3.0, ora@npm:^5.4.1": + version: 5.4.1 + resolution: "ora@npm:5.4.1" + dependencies: + bl: "npm:^4.1.0" + chalk: "npm:^4.1.0" + cli-cursor: "npm:^3.1.0" + cli-spinners: "npm:^2.5.0" + is-interactive: "npm:^1.0.0" + is-unicode-supported: "npm:^0.1.0" + log-symbols: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + wcwidth: "npm:^1.0.1" + checksum: 10/8d071828f40090a8e1c6e8f350c6eb065808e9ab2b3e57fa37e0d5ae78cb46dac00117c8f12c3c8b8da2923454afbd8265e08c10b69881170c5b269f451e7fef + languageName: node + linkType: hard + +"os-browserify@npm:^0.3.0": + version: 0.3.0 + resolution: "os-browserify@npm:0.3.0" + checksum: 10/16e37ba3c0e6a4c63443c7b55799ce4066d59104143cb637ecb9fce586d5da319cdca786ba1c867abbe3890d2cbf37953f2d51eea85e20dd6c4570d6c54bfebf + languageName: node + linkType: hard + +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 10/5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + languageName: node + linkType: hard + +"outdent@npm:^0.5.0": + version: 0.5.0 + resolution: "outdent@npm:0.5.0" + checksum: 10/7d94a7d93883afa32c99d84f33248b221f4eeeedbb571921fe0e5cf0bee32e64746c587e9606d98ec22762870c782d21dd4bc3a0edf442d347cb54aa107b198d + languageName: node + linkType: hard + +"own-keys@npm:^1.0.1": + version: 1.0.1 + resolution: "own-keys@npm:1.0.1" + dependencies: + get-intrinsic: "npm:^1.2.6" + object-keys: "npm:^1.1.1" + safe-push-apply: "npm:^1.0.0" + checksum: 10/ab4bb3b8636908554fc19bf899e225444195092864cb61503a0d048fdaf662b04be2605b636a4ffeaf6e8811f6fcfa8cbb210ec964c0eb1a41eb853e1d5d2f41 + languageName: node + linkType: hard + +"p-defer@npm:^1.0.0": + version: 1.0.0 + resolution: "p-defer@npm:1.0.0" + checksum: 10/1d8fb7138a0ccebb65479160fd93f245303c06c977c976105d75838f7f504a9a6ef11b7e058f98b4c957a6a8df268c616da1ee339285d565f9e5ba00304e027b + languageName: node + linkType: hard + +"p-filter@npm:^2.1.0": + version: 2.1.0 + resolution: "p-filter@npm:2.1.0" + dependencies: + p-map: "npm:^2.0.0" + checksum: 10/76e552ca624ce2233448d68b19eec9de42b695208121998f7e011edce71d1079a83096ee6a2078fb2a59cfa8a5c999f046edf00ebf16a8e780022010b4693234 + languageName: node + linkType: hard + +"p-finally@npm:^1.0.0": + version: 1.0.0 + resolution: "p-finally@npm:1.0.0" + checksum: 10/93a654c53dc805dd5b5891bab16eb0ea46db8f66c4bfd99336ae929323b1af2b70a8b0654f8f1eae924b2b73d037031366d645f1fd18b3d30cbd15950cc4b1d4 + languageName: node + linkType: hard + +"p-limit@npm:3.1.0, p-limit@npm:^3.0.1, p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10/84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-locate@npm:^3.0.0": + version: 3.0.0 + resolution: "p-locate@npm:3.0.0" + dependencies: + p-limit: "npm:^2.0.0" + checksum: 10/83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10/513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10/1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-map@npm:^2.0.0": + version: 2.1.0 + resolution: "p-map@npm:2.1.0" + checksum: 10/9e3ad3c9f6d75a5b5661bcad78c91f3a63849189737cd75e4f1225bf9ac205194e5c44aac2ef6f09562b1facdb9bd1425584d7ac375bfaa17b3f1a142dab936d + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10/7ba4a2b1e24c05e1fc14bbaea0fc6d85cf005ae7e9c9425d4575550f37e2e584b1af97bcde78eacd7559208f20995988d52881334db16cf77bc1bcf68e48ed7c + languageName: node + linkType: hard + +"p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 10/2ef48ccfc6dd387253d71bf502604f7893ed62090b2c9d73387f10006c342606b05233da0e4f29388227b61eb5aeface6197e166520c465c234552eeab2fe633 + languageName: node + linkType: hard + +"p-queue@npm:^6.6.2": + version: 6.6.2 + resolution: "p-queue@npm:6.6.2" + dependencies: + eventemitter3: "npm:^4.0.4" + p-timeout: "npm:^3.2.0" + checksum: 10/60fe227ffce59fbc5b1b081305b61a2f283ff145005853702b7d4d3f99a0176bd21bb126c99a962e51fe1e01cb8aa10f0488b7bbe73b5dc2e84b5cc650b8ffd2 + languageName: node + linkType: hard + +"p-retry@npm:^6.2.0": + version: 6.2.1 + resolution: "p-retry@npm:6.2.1" + dependencies: + "@types/retry": "npm:0.12.2" + is-network-error: "npm:^1.0.0" + retry: "npm:^0.13.1" + checksum: 10/7104ef13703b155d70883b0d3654ecc03148407d2711a4516739cf93139e8bec383451e14925e25e3c1ae04dbace3ed53c26dc3853c1e9b9867fcbdde25f4cdc + languageName: node + linkType: hard + +"p-throttle@npm:^4.1.1": + version: 4.1.1 + resolution: "p-throttle@npm:4.1.1" + checksum: 10/fe8709f3c3b1da7c033479375c2c302e80c1a5d86449013afa7cd46d1dc210bc824a7e4a9d088e66d31987d00878c2b5491bb2fe76246d4d2fc9a1636f5f8298 + languageName: node + linkType: hard + +"p-timeout@npm:^3.2.0": + version: 3.2.0 + resolution: "p-timeout@npm:3.2.0" + dependencies: + p-finally: "npm:^1.0.0" + checksum: 10/3dd0eaa048780a6f23e5855df3dd45c7beacff1f820476c1d0d1bcd6648e3298752ba2c877aa1c92f6453c7dd23faaf13d9f5149fc14c0598a142e2c5e8d649c + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10/f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"pac-proxy-agent@npm:^7.0.0, pac-proxy-agent@npm:^7.0.1": + version: 7.1.0 + resolution: "pac-proxy-agent@npm:7.1.0" + dependencies: + "@tootallnate/quickjs-emscripten": "npm:^0.23.0" + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + get-uri: "npm:^6.0.1" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.6" + pac-resolver: "npm:^7.0.1" + socks-proxy-agent: "npm:^8.0.5" + checksum: 10/4c437ba7f037e6c11f612d9333d5a6c8e1b5d63180619684126013d16fc4b19e649f8d3f3c1aaa0ce5b3ddb9b4d2719510fbf3fb613d41bd6967929eb5ee515f + languageName: node + linkType: hard + +"pac-resolver@npm:^7.0.1": + version: 7.0.1 + resolution: "pac-resolver@npm:7.0.1" + dependencies: + degenerator: "npm:^5.0.0" + netmask: "npm:^2.0.2" + checksum: 10/839134328781b80d49f9684eae1f5c74f50a1d4482076d44c84fc2f3ca93da66fa11245a4725a057231e06b311c20c989fd0681e662a0792d17f644d8fe62a5e + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10/58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 + languageName: node + linkType: hard + +"package-manager-detector@npm:^0.2.0": + version: 0.2.8 + resolution: "package-manager-detector@npm:0.2.8" + checksum: 10/deb7c5abeed0ac88c9014230355ab79695d2a600e6361d91f55fcb67cc359e7106b04b23d22dee18af1388daed7385c3260229602a33617d0247ad86d8ab69ec + languageName: node + linkType: hard + +"pako@npm:^1.0.10, pako@npm:~1.0.2, pako@npm:~1.0.5": + version: 1.0.11 + resolution: "pako@npm:1.0.11" + checksum: 10/1ad07210e894472685564c4d39a08717e84c2a68a70d3c1d9e657d32394ef1670e22972a433cbfe48976cb98b154ba06855dcd3fcfba77f60f1777634bec48c0 + languageName: node + linkType: hard + +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10/b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10/6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.7": + version: 5.1.7 + resolution: "parse-asn1@npm:5.1.7" + dependencies: + asn1.js: "npm:^4.10.1" + browserify-aes: "npm:^1.2.0" + evp_bytestokey: "npm:^1.0.3" + hash-base: "npm:~3.0" + pbkdf2: "npm:^3.1.2" + safe-buffer: "npm:^5.2.1" + checksum: 10/f82c079f4d9a4d33159c7682f9c516680f4d659fde8060697a6b3c1be4795976e826d53a1e5751a81ddc800e9c6d6fa4629b59f6d1f3241ac8447a00c89a67d3 + languageName: node + linkType: hard + +"parse-entities@npm:^2.0.0": + version: 2.0.0 + resolution: "parse-entities@npm:2.0.0" + dependencies: + character-entities: "npm:^1.0.0" + character-entities-legacy: "npm:^1.0.0" + character-reference-invalid: "npm:^1.0.0" + is-alphanumerical: "npm:^1.0.0" + is-decimal: "npm:^1.0.0" + is-hexadecimal: "npm:^1.0.0" + checksum: 10/feb46b516722474797d72331421f3e62856750cfb4f70ba098b36447bf0b169e819cc4fdee53e022874d5f0c81b605d86e1912b9842a70e59a54de2fee81589d + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10/62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse-ms@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-ms@npm:4.0.0" + checksum: 10/673c801d9f957ff79962d71ed5a24850163f4181a90dd30c4e3666b3a804f53b77f1f0556792e8b2adbb5d58757907d1aa51d7d7dc75997c2a56d72937cbc8b7 + languageName: node + linkType: hard + +"parse-multipart-data@npm:^1.4.0": + version: 1.5.0 + resolution: "parse-multipart-data@npm:1.5.0" + checksum: 10/fb029f1446f086f2989fb24eaf549d28cfde7df1d323d069f343d5b0a62d8ee756c6a5a347874e148c9cf8c3fe523e295e6f2be3dd05ce73cb19e5e3cd5081ea + languageName: node + linkType: hard + +"parse-passwd@npm:^1.0.0": + version: 1.0.0 + resolution: "parse-passwd@npm:1.0.0" + checksum: 10/4e55e0231d58f828a41d0f1da2bf2ff7bcef8f4cb6146e69d16ce499190de58b06199e6bd9b17fbf0d4d8aef9052099cdf8c4f13a6294b1a522e8e958073066e + languageName: node + linkType: hard + +"parse-path@npm:^7.0.0": + version: 7.0.0 + resolution: "parse-path@npm:7.0.0" + dependencies: + protocols: "npm:^2.0.0" + checksum: 10/2e6eadae5aff97a8b6373c1c08440bfeed814f65452674a139dc606c7c410e8e48b7983fe451aedc59802a2814121b40415ca00675c1546ff75cb73ad0c1df5a + languageName: node + linkType: hard + +"parse-url@npm:^8.1.0": + version: 8.1.0 + resolution: "parse-url@npm:8.1.0" + dependencies: + parse-path: "npm:^7.0.0" + checksum: 10/ceb51dc474568092a50d6d936036dfe438a87aa45bcf20947c8fcdf1544ee9c50255608abae604644e718e91e0b83cfbea4675e8b2fd90bc197432f6d9be263c + languageName: node + linkType: hard + +"parse5@npm:^7.0.0, parse5@npm:^7.1.1, parse5@npm:^7.2.1": + version: 7.2.1 + resolution: "parse5@npm:7.2.1" + dependencies: + entities: "npm:^4.5.0" + checksum: 10/fd1a8ad1540d871e1ad6ca9bf5b67e30280886f1ce4a28052c0cb885723aa984d8cb1ec3da998349a6146960c8a84aa87b1a42600eb3b94495c7303476f2f88e + languageName: node + linkType: hard + +"parseurl@npm:^1.3.2, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 + languageName: node + linkType: hard + +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10/ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + +"passport-atlassian-oauth2@npm:^2.1.0": + version: 2.1.0 + resolution: "passport-atlassian-oauth2@npm:2.1.0" + dependencies: + passport-oauth2: "npm:^1.4.0" + checksum: 10/fc1d46951018d03a792a469a0c856d16f4c21df13d743aa5a0111f60253588c042881c560c737c77d85f4751e42b9ad3a485db7a5d5ea39e0f76160bc4010182 + languageName: node + linkType: hard + +"passport-auth0@npm:^1.4.3": + version: 1.4.4 + resolution: "passport-auth0@npm:1.4.4" + dependencies: + axios: "npm:^1.6.0" + passport-oauth: "npm:^1.0.0" + passport-oauth2: "npm:^1.6.0" + checksum: 10/307d2d8d687a29dbe2fc98fbee1cc948f76e936c6ae7ffeb28076c98b558a942be1cbc0eedb58d9003285bf4e816f6e971b0edb7a604d290272b1ba8e731006d + languageName: node + linkType: hard + +"passport-bitbucket-oauth2@npm:^0.1.2": + version: 0.1.2 + resolution: "passport-bitbucket-oauth2@npm:0.1.2" + dependencies: + passport-oauth2: "npm:^1.1.2" + pkginfo: "npm:0.2.x" + checksum: 10/a2143d4f3aa8da8cfaaa1f12dec3ef8492881a8c77974b067c658c0734a03b065840ca5b27966fcdb63aa5e1eee95f7314653fea5f3b7bdac39e5d26708b6be3 + languageName: node + linkType: hard + +"passport-github2@npm:^0.1.12": + version: 0.1.12 + resolution: "passport-github2@npm:0.1.12" + dependencies: + passport-oauth2: "npm:1.x.x" + checksum: 10/cf174d1738a2b1d398ec9f4ba2e1ca229214ef65cfd05f5754303f664d5cfd6e3bacbf49ece19fcd576be43bfcc1d3795541f50692148436b9e4ddbffbe625ac + languageName: node + linkType: hard + +"passport-gitlab2@npm:^5.0.0": + version: 5.0.0 + resolution: "passport-gitlab2@npm:5.0.0" + dependencies: + passport-oauth2: "npm:^1.4.0" + checksum: 10/ec09670f97a95b71cc0f1dfd02b214e147029dccc205ac35b8e5de19f0820459692a179dda47da5dfde8a9cd7cc85c7709635477b8e161a198daea0ee875ee9d + languageName: node + linkType: hard + +"passport-google-oauth20@npm:^2.0.0": + version: 2.0.0 + resolution: "passport-google-oauth20@npm:2.0.0" + dependencies: + passport-oauth2: "npm:1.x.x" + checksum: 10/bfd1316ec7cbef5c25f41daa752eade509dffd3016cc962bf2935d577b3dcfa379d8f0d177e28dd1af03b443cc04382108956a505c0134973f85c155adfd8101 + languageName: node + linkType: hard + +"passport-microsoft@npm:^1.0.0": + version: 1.1.0 + resolution: "passport-microsoft@npm:1.1.0" + dependencies: + passport-oauth2: "npm:1.8.0" + checksum: 10/4c18d4074308ca5da67b08b2b9eee97dae017e7c9e62dedb21875f25ced9fd959218977bd1c8cfd6067ce081e9764bbe2541696e09e6e1464e72c699165fc07f + languageName: node + linkType: hard + +"passport-oauth1@npm:1.x.x": + version: 1.3.0 + resolution: "passport-oauth1@npm:1.3.0" + dependencies: + oauth: "npm:0.9.x" + passport-strategy: "npm:1.x.x" + utils-merge: "npm:1.x.x" + checksum: 10/56f725cf3e3358ccb72212a6342e237ae9366172b94fdb9ac8ab380456da07dc1bb776bcdcddc9964e8e9056922fbf31c2f142d0421fd8a5b0140132d0cd9671 + languageName: node + linkType: hard + +"passport-oauth2@npm:1.8.0, passport-oauth2@npm:1.x.x, passport-oauth2@npm:^1.1.2, passport-oauth2@npm:^1.4.0, passport-oauth2@npm:^1.6.0, passport-oauth2@npm:^1.6.1, passport-oauth2@npm:^1.7.0": + version: 1.8.0 + resolution: "passport-oauth2@npm:1.8.0" + dependencies: + base64url: "npm:3.x.x" + oauth: "npm:0.10.x" + passport-strategy: "npm:1.x.x" + uid2: "npm:0.0.x" + utils-merge: "npm:1.x.x" + checksum: 10/31af6c59686bdc0460f3099a857ae4243952b44ad1afc5a12779524711ea97266491e97f83671120f84575b2c6202f3cf0bb8500fdc5a6414e10ff45617454ca + languageName: node + linkType: hard + +"passport-oauth@npm:1.0.0, passport-oauth@npm:^1.0.0": + version: 1.0.0 + resolution: "passport-oauth@npm:1.0.0" + dependencies: + passport-oauth1: "npm:1.x.x" + passport-oauth2: "npm:1.x.x" + checksum: 10/e6d908ac6c305db1f4040538360c29ca1427b27772c74abaa75db24647db7ee1ccd9c6ccc1bb74649bca090f31f3225540539219b4a97b31c0c1434f4a9ee7b3 + languageName: node + linkType: hard + +"passport-onelogin-oauth@npm:^0.0.1": + version: 0.0.1 + resolution: "passport-onelogin-oauth@npm:0.0.1" + dependencies: + passport-oauth: "npm:1.0.0" + pkginfo: "npm:0.2.x" + uid2: "npm:0.0.3" + checksum: 10/5664bbcca717e7499be5ec1336cc34ada3266fccdc92a026883d6113c2ab30ec215b7df810fb0abd3adb79afb728c6d7fa0782f8661afba25c4df198ed84470e + languageName: node + linkType: hard + +"passport-strategy@npm:1.x.x, passport-strategy@npm:^1.0.0": + version: 1.0.0 + resolution: "passport-strategy@npm:1.0.0" + checksum: 10/5086693f2508e538dffa55a338c89fe8192fb5f4478c71f80cd5890b8573419a098f4fec88b505374f60bbe9049f6f24b9f3992678612528a3370b4dc73354a2 + languageName: node + linkType: hard + +"passport@npm:^0.7.0": + version: 0.7.0 + resolution: "passport@npm:0.7.0" + dependencies: + passport-strategy: "npm:1.x.x" + pause: "npm:0.0.1" + utils-merge: "npm:^1.0.1" + checksum: 10/0ebd4de8e3cba6731b1fddd09b95b8332526f316afded9c9589ff68751e10001c9f1c007170a516e8c1909f9fafdc378c12feb82820241856775005924735b29 + languageName: node + linkType: hard + +"path-browserify@npm:0.0.1": + version: 0.0.1 + resolution: "path-browserify@npm:0.0.1" + checksum: 10/37ec7a0073eb8c5e96eb72f82dbdffd9b91e1c850cc618c9b5ebb5991fed5d4cd86ec730e7f4690ad68ee67a4cf9450baaf1ac84820c26624cfc2f20b3a75397 + languageName: node + linkType: hard + +"path-browserify@npm:^1.0.1": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: 10/7e7368a5207e7c6b9051ef045711d0dc3c2b6203e96057e408e6e74d09f383061010d2be95cb8593fe6258a767c3e9fc6b2bfc7ce8d48ae8c3d9f6994cca9ad8 + languageName: node + linkType: hard + +"path-equal@npm:^1.2.5": + version: 1.2.5 + resolution: "path-equal@npm:1.2.5" + checksum: 10/fa4ef398dea6bd7bf36c5fe62b5f5c2c14fe1f1340cf355eb8a40c86577318dfa0401df86464bb0cc33ed227f115b2afec10d1adaa64260dedbbc23d33f3abbb + languageName: node + linkType: hard + +"path-exists@npm:^3.0.0": + version: 3.0.0 + resolution: "path-exists@npm:3.0.0" + checksum: 10/96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1, path-scurry@npm:^1.6.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434 + languageName: node + linkType: hard + +"path-to-regexp@npm:0.1.12": + version: 0.1.12 + resolution: "path-to-regexp@npm:0.1.12" + checksum: 10/2e30f6a0144679c1f95c98e166b96e6acd1e72be9417830fefc8de7ac1992147eb9a4c7acaa59119fb1b3c34eec393b2129ef27e24b2054a3906fc4fb0d1398e + languageName: node + linkType: hard + +"path-to-regexp@npm:3.3.0": + version: 3.3.0 + resolution: "path-to-regexp@npm:3.3.0" + checksum: 10/8d256383af8db66233ee9027cfcbf8f5a68155efbb4f55e784279d3ab206dcaee554ddb72ff0dae97dd2882af9f7fa802634bb7cffa2e796927977e31b829259 + languageName: node + linkType: hard + +"path-to-regexp@npm:^8.0.0, path-to-regexp@npm:^8.2.0": + version: 8.2.0 + resolution: "path-to-regexp@npm:8.2.0" + checksum: 10/23378276a172b8ba5f5fb824475d1818ca5ccee7bbdb4674701616470f23a14e536c1db11da9c9e6d82b82c556a817bbf4eee6e41b9ed20090ef9427cbb38e13 + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"pause@npm:0.0.1": + version: 0.0.1 + resolution: "pause@npm:0.0.1" + checksum: 10/e96ee581b68085e6f2ba5adbcb4d4a41fe88e5b514061e76df2fe1905f0f65f4fe5a843b538e9551122c6b9184ff4be266c2ee0ea4614702f9a3d04466d9f462 + languageName: node + linkType: hard + +"pbkdf2@npm:^3.1.2": + version: 3.1.2 + resolution: "pbkdf2@npm:3.1.2" + dependencies: + create-hash: "npm:^1.1.2" + create-hmac: "npm:^1.1.4" + ripemd160: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 10/40bdf30df1c9bb1ae41ec50c11e480cf0d36484b7c7933bf55e4451d1d0e3f09589df70935c56e7fccc5702779a0d7b842d012be8c08a187b44eb24d55bb9460 + languageName: node + linkType: hard + +"pct-encode@npm:~1.0.0": + version: 1.0.3 + resolution: "pct-encode@npm:1.0.3" + checksum: 10/04344233107a40590dd2d6fff3463040288d68ec66b6026cbb90a6ab1b29afdb5f196ff35b6ab5f86d4799a0dfea6117ab19fe836e0d5ffb49695c6ba60d05d8 + languageName: node + linkType: hard + +"peek-readable@npm:^4.1.0": + version: 4.1.0 + resolution: "peek-readable@npm:4.1.0" + checksum: 10/97373215dcf382748645c3d22ac5e8dbd31759f7bd0c539d9fdbaaa7d22021838be3e55110ad0ed8f241c489342304b14a50dfee7ef3bcee2987d003b24ecc41 + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10/6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d + languageName: node + linkType: hard + +"performance-now@npm:^2.1.0": + version: 2.1.0 + resolution: "performance-now@npm:2.1.0" + checksum: 10/534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 + languageName: node + linkType: hard + +"pg-cloudflare@npm:^1.1.1": + version: 1.1.1 + resolution: "pg-cloudflare@npm:1.1.1" + checksum: 10/45ca0c7926967ec9e66a9efc73ca57e3e933671b541bc774631a02ce683e7f658d0a4e881119b3f61486f38e344ae1b008d3a20eb5e21701c5fa8ff8382c5538 + languageName: node + linkType: hard + +"pg-connection-string@npm:2.6.2": + version: 2.6.2 + resolution: "pg-connection-string@npm:2.6.2" + checksum: 10/22265882c3b6f2320785378d0760b051294a684989163d5a1cde4009e64e84448d7bf67d9a7b9e7f69440c3ee9e2212f9aa10dd17ad6773f6143c6020cebbcb5 + languageName: node + linkType: hard + +"pg-connection-string@npm:^2.3.0, pg-connection-string@npm:^2.7.0": + version: 2.7.0 + resolution: "pg-connection-string@npm:2.7.0" + checksum: 10/68015a8874b7ca5dad456445e4114af3d2602bac2fdb8069315ecad0ff9660ec93259b9af7186606529ac4f6f72a06831e6f20897a689b16cc7fda7ca0e247fd + languageName: node + linkType: hard + +"pg-format@npm:^1.0.4": + version: 1.0.4 + resolution: "pg-format@npm:1.0.4" + checksum: 10/49bca54d455c3bd2163414c5d527d615f878793f0bcab7c85b426c59f0b600667056efc82794dd52084c7f301fb5d5d7b0906f636715c0e4d0ce2ba8cb4dc1d2 + languageName: node + linkType: hard + +"pg-int8@npm:1.0.1": + version: 1.0.1 + resolution: "pg-int8@npm:1.0.1" + checksum: 10/a1e3a05a69005ddb73e5f324b6b4e689868a447c5fa280b44cd4d04e6916a344ac289e0b8d2695d66e8e89a7fba023affb9e0e94778770ada5df43f003d664c9 + languageName: node + linkType: hard + +"pg-pool@npm:^3.7.0": + version: 3.7.0 + resolution: "pg-pool@npm:3.7.0" + peerDependencies: + pg: ">=8.0" + checksum: 10/a07a4f9e26eec9d7ac3597dc7b3469c62983edff9a321dbb7acbe1bbc7f5e9b2d33438e277d4cf8145071f3d63c7ebdc287a539fd69dfb8cdddb15b33eefe1a2 + languageName: node + linkType: hard + +"pg-protocol@npm:^1.7.0": + version: 1.7.0 + resolution: "pg-protocol@npm:1.7.0" + checksum: 10/ffffdf74426c9357b57050f1c191e84447c0e8b2a701b3ab302ac7dd0eb27b862d92e5e3b2d38876a1051de83547eb9165d6a58b3a8e90bb050dae97f9993d54 + languageName: node + linkType: hard + +"pg-types@npm:^2.1.0": + version: 2.2.0 + resolution: "pg-types@npm:2.2.0" + dependencies: + pg-int8: "npm:1.0.1" + postgres-array: "npm:~2.0.0" + postgres-bytea: "npm:~1.0.0" + postgres-date: "npm:~1.0.4" + postgres-interval: "npm:^1.1.0" + checksum: 10/87a84d4baa91378d3a3da6076c69685eb905d1087bf73525ae1ba84b291b9dd8738c6716b333d8eac6cec91bf087237adc3e9281727365e9cbab0d9d072778b1 + languageName: node + linkType: hard + +"pg@npm:^8.11.3": + version: 8.13.1 + resolution: "pg@npm:8.13.1" + dependencies: + pg-cloudflare: "npm:^1.1.1" + pg-connection-string: "npm:^2.7.0" + pg-pool: "npm:^3.7.0" + pg-protocol: "npm:^1.7.0" + pg-types: "npm:^2.1.0" + pgpass: "npm:1.x" + peerDependencies: + pg-native: ">=3.0.1" + dependenciesMeta: + pg-cloudflare: + optional: true + peerDependenciesMeta: + pg-native: + optional: true + checksum: 10/542aa49fcb37657cf5f779b4a31fe6eb336e683445ecca38e267eeb0ca85d873ffe51f04794f9f9e184187e9f74bf7895e932a0fa9507132ac0dfc76c7c73451 + languageName: node + linkType: hard + +"pgpass@npm:1.x": + version: 1.0.5 + resolution: "pgpass@npm:1.0.5" + dependencies: + split2: "npm:^4.1.0" + checksum: 10/0a6f3bf76e36bdb3c20a7e8033140c732767bba7e81f845f7489fc3123a2bd6e3b8e704f08cba86b117435414b5d2422e20ba9d5f2efb6f0c75c9efca73e8e87 + languageName: node + linkType: hard + +"photoswipe@npm:^5.3.7": + version: 5.4.4 + resolution: "photoswipe@npm:5.4.4" + checksum: 10/89a2910f01668527875e1afdc4406194c71d634129ee498fe2c33959efd665abaaa144d44990c4506518a44f7bf0950f76c735b41404fef513ae644b4d4ebc9d + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc + languageName: node + linkType: hard + +"picomatch@npm:^4.0.1, picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: 10/ce617b8da36797d09c0baacb96ca8a44460452c89362d7cb8f70ca46b4158ba8bc3606912de7c818eb4a939f7f9015cef3c766ec8a0c6bfc725fdc078e39c717 + languageName: node + linkType: hard + +"pify@npm:^4.0.1": + version: 4.0.1 + resolution: "pify@npm:4.0.1" + checksum: 10/8b97cbf9dc6d4c1320cc238a2db0fc67547f9dc77011729ff353faf34f1936ea1a4d7f3c63b2f4980b253be77bcc72ea1e9e76ee3fd53cce2aafb6a8854d07ec + languageName: node + linkType: hard + +"pify@npm:^5.0.0": + version: 5.0.0 + resolution: "pify@npm:5.0.0" + checksum: 10/443e3e198ad6bfa8c0c533764cf75c9d5bc976387a163792fb553ffe6ce923887cf14eebf5aea9b7caa8eab930da8c33612990ae85bd8c2bc18bedb9eae94ecb + languageName: node + linkType: hard + +"pino-pretty@npm:^2.6.0": + version: 2.6.1 + resolution: "pino-pretty@npm:2.6.1" + dependencies: + args: "npm:^5.0.0" + chalk: "npm:^2.3.2" + dateformat: "npm:^3.0.3" + fast-json-parse: "npm:^1.0.3" + fast-safe-stringify: "npm:^2.0.6" + jmespath: "npm:^0.15.0" + pump: "npm:^3.0.0" + readable-stream: "npm:^3.0.6" + split2: "npm:^3.0.0" + bin: + pino-pretty: ./bin.js + checksum: 10/7a911fa5a536bd7e5db5da6dd1aba9e7bd222cf7fd7db0d748dbdd04c9d0a5193dee8d1b23caa35399f1fbbe8617086e26ec3968b0389644fcb8d3d01c642de6 + languageName: node + linkType: hard + +"pino-std-serializers@npm:^2.4.2": + version: 2.5.0 + resolution: "pino-std-serializers@npm:2.5.0" + checksum: 10/b6c4bf7035caaa55849fc3164558ce56cb2d23ef84a2a5f3a1610a740f3e538843fb7360822156ffd08f835dd5128152a05df6f1d653949f972d9c5d57ebccbf + languageName: node + linkType: hard + +"pino@npm:^5.12.2": + version: 5.17.0 + resolution: "pino@npm:5.17.0" + dependencies: + fast-redact: "npm:^2.0.0" + fast-safe-stringify: "npm:^2.0.7" + flatstr: "npm:^1.0.12" + pino-std-serializers: "npm:^2.4.2" + quick-format-unescaped: "npm:^3.0.3" + sonic-boom: "npm:^0.7.5" + bin: + pino: bin.js + checksum: 10/62b063eb37855247a0766e48f5ca35d11307cb48751a434f1cd5b8409a8d32705c5bfd0d42fd081d48312da2b2ca163a79feacc19cc7b8523bb42b6e318576fc + languageName: node + linkType: hard + +"pirates@npm:^4.0.1, pirates@npm:^4.0.4, pirates@npm:^4.0.6": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f + languageName: node + linkType: hard + +"pkg-dir@npm:^4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: "npm:^4.0.0" + checksum: 10/9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + languageName: node + linkType: hard + +"pkg-up@npm:^3.1.0": + version: 3.1.0 + resolution: "pkg-up@npm:3.1.0" + dependencies: + find-up: "npm:^3.0.0" + checksum: 10/5bac346b7c7c903613c057ae3ab722f320716199d753f4a7d053d38f2b5955460f3e6ab73b4762c62fd3e947f58e04f1343e92089e7bb6091c90877406fcd8c8 + languageName: node + linkType: hard + +"pkginfo@npm:0.2.x": + version: 0.2.3 + resolution: "pkginfo@npm:0.2.3" + checksum: 10/bdf89421e239831a8e2bfab0a67e191bbef6bf388b099f4de298cf1ee951297ee8b9ecd97c0e8f3df515dcb29792d8326327864f54795c3e6985d7f36d1a2fc2 + languageName: node + linkType: hard + +"pkginfo@npm:^0.4.1": + version: 0.4.1 + resolution: "pkginfo@npm:0.4.1" + checksum: 10/e354d6f78a940da07f36cdc503705e78bf53044f1562f29f46f18d2a21d271b203d30eb738468cf7c68b5739cc1d7383646cd5930bd42bfe9a81b03a5a8e860c + languageName: node + linkType: hard + +"playwright-core@npm:1.49.1": + version: 1.49.1 + resolution: "playwright-core@npm:1.49.1" + bin: + playwright-core: cli.js + checksum: 10/baa39a53024ec7744708410f2b952ac3aa2e1a6d311dabfa303523712848eba142fce5c20f1b2ed2a66fbd9a415d22ea8642b0f70423360aaebd4b41c47d364e + languageName: node + linkType: hard + +"playwright@npm:1.49.1": + version: 1.49.1 + resolution: "playwright@npm:1.49.1" + dependencies: + fsevents: "npm:2.3.2" + playwright-core: "npm:1.49.1" + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: 10/49fb063f4a107b8090f66d2d351ebd51fbb66843a8f95a161fa0c0e0b5156515961e75cc10f4249f61b9d2af51f762dda505c62b096d8f61cd47d1ff73ab39d2 + languageName: node + linkType: hard + +"pluralize@npm:^8.0.0": + version: 8.0.0 + resolution: "pluralize@npm:8.0.0" + checksum: 10/17877fdfdb7ddb3639ce257ad73a7c51a30a966091e40f56ea9f2f545b5727ce548d4928f8cb3ce38e7dc0c5150407d318af6a4ed0ea5265d378473b4c2c61ec + languageName: node + linkType: hard + +"pony-cause@npm:^1.1.1": + version: 1.1.1 + resolution: "pony-cause@npm:1.1.1" + checksum: 10/8464dfdc1d102def7368810c0ef6d1b011004b0f372f2f57cce9bb293d5fd4a1f0bc37ac3464869c51c88d996815dabbcab7c618ec400730e6f61493755591d6 + languageName: node + linkType: hard + +"popmotion@npm:11.0.3": + version: 11.0.3 + resolution: "popmotion@npm:11.0.3" + dependencies: + framesync: "npm:6.0.1" + hey-listen: "npm:^1.0.8" + style-value-types: "npm:5.0.0" + tslib: "npm:^2.1.0" + checksum: 10/d2b6f16536b093d6106ab4caff105b1b4a8bb260e1deb316ca4fe81997c2ca1fc9e2d7747cee08dc2ce34d23ef7be8fd096efa7bc7f6908479da9d16343e1f63 + languageName: node + linkType: hard + +"popper.js@npm:1.16.1-lts": + version: 1.16.1-lts + resolution: "popper.js@npm:1.16.1-lts" + checksum: 10/932c453fce30bd00720413a89e87733b5074359834bd5b3fdc85c8a2e14d44558419ddaa0bf8e32d67899c7a57ab37ee1251588b7eb3a402e77c56edc8c405c8 + languageName: node + linkType: hard + +"portfinder@npm:^1.0.32": + version: 1.0.32 + resolution: "portfinder@npm:1.0.32" + dependencies: + async: "npm:^2.6.4" + debug: "npm:^3.2.7" + mkdirp: "npm:^0.5.6" + checksum: 10/842058052fb3c3da829589f3f44b13369cf504b16f6ab72fedec78a9438ac3fc53047f5c88a771511b17d6a94f50f83a94cef5fa625027b675d8f7241f7f2185 + languageName: node + linkType: hard + +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: 10/8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af + languageName: node + linkType: hard + +"postcss-calc@npm:^8.2.3": + version: 8.2.4 + resolution: "postcss-calc@npm:8.2.4" + dependencies: + postcss-selector-parser: "npm:^6.0.9" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.2 + checksum: 10/f34d0cbc5d2b02071cf4de9bacbb93681c22b29048726b500b5f5327e37b590d2552ba4d8ed179e2378037fd09cc6bf5ee3e25cbd8a803c57205795fa79479a8 + languageName: node + linkType: hard + +"postcss-colormin@npm:^5.3.1": + version: 5.3.1 + resolution: "postcss-colormin@npm:5.3.1" + dependencies: + browserslist: "npm:^4.21.4" + caniuse-api: "npm:^3.0.0" + colord: "npm:^2.9.1" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/e5778baab30877cd1f51e7dc9d2242a162aeca6360a52956acd7f668c5bc235c2ccb7e4df0370a804d65ebe00c5642366f061db53aa823f9ed99972cebd16024 + languageName: node + linkType: hard + +"postcss-convert-values@npm:^5.1.3": + version: 5.1.3 + resolution: "postcss-convert-values@npm:5.1.3" + dependencies: + browserslist: "npm:^4.21.4" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/dacb41296a4d730c9e84c1b6ba8a13f6515b65811689b8b62ad6c7174bb462b5c0bfa21803cc06d1d3af16dbc8f4be1e225970844297fab0bedfe2fef8dc603e + languageName: node + linkType: hard + +"postcss-discard-comments@npm:^5.1.2": + version: 5.1.2 + resolution: "postcss-discard-comments@npm:5.1.2" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/abfd064ebc27aeaf5037643dd51ffaff74d1fa4db56b0523d073ace4248cbb64ffd9787bd6924b0983a9d0bd0e9bf9f10d73b120e50391dc236e0d26c812fa2a + languageName: node + linkType: hard + +"postcss-discard-duplicates@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-discard-duplicates@npm:5.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/88d6964201b1f4ed6bf7a32cefe68e86258bb6e42316ca01d9b32bdb18e7887d02594f89f4a2711d01b51ea6e3fcca8c54be18a59770fe5f4521c61d3eb6ca35 + languageName: node + linkType: hard + +"postcss-discard-empty@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-discard-empty@npm:5.1.1" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/970adb12fae5c214c0768236ad9a821552626e77dedbf24a8213d19cc2c4a531a757cd3b8cdd3fc22fb1742471b8692a1db5efe436a71236dec12b1318ee8ff4 + languageName: node + linkType: hard + +"postcss-discard-overridden@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-discard-overridden@npm:5.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/d64d4a545aa2c81b22542895cfcddc787d24119f294d35d29b0599a1c818b3cc51f4ee80b80f5a0a09db282453dd5ac49f104c2117cc09112d0ac9b40b499a41 + languageName: node + linkType: hard + +"postcss-load-config@npm:^3.0.0": + version: 3.1.4 + resolution: "postcss-load-config@npm:3.1.4" + dependencies: + lilconfig: "npm:^2.0.5" + yaml: "npm:^1.10.2" + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + checksum: 10/75fa409d77b96e6f53e99f680c550f25ca8922c1150d3d368ded1f6bd8e0d4d67a615fe1f1c5d409aefb6e66fb4b5e48e86856d581329913de84578def078b19 + languageName: node + linkType: hard + +"postcss-merge-longhand@npm:^5.1.7": + version: 5.1.7 + resolution: "postcss-merge-longhand@npm:5.1.7" + dependencies: + postcss-value-parser: "npm:^4.2.0" + stylehacks: "npm:^5.1.1" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/9002696bb245634c0542af9356b44082a4c1453261a1daac6ea2f85055a5d6e14ac3ae2ba603f5eae767ebfe0e1ef50c40447b099520b8f5fa14b557da8074ad + languageName: node + linkType: hard + +"postcss-merge-rules@npm:^5.1.4": + version: 5.1.4 + resolution: "postcss-merge-rules@npm:5.1.4" + dependencies: + browserslist: "npm:^4.21.4" + caniuse-api: "npm:^3.0.0" + cssnano-utils: "npm:^3.1.0" + postcss-selector-parser: "npm:^6.0.5" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/659c3eaff9d573f07c227a7e4811159898f49a89b02bbd3a65a0ed7aaa434264443ab539bcbc273bf08986e6a185bd62af0847c9836f9e2901c5f07937c14f3f + languageName: node + linkType: hard + +"postcss-minify-font-values@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-minify-font-values@npm:5.1.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/27e7023f06149e14db6cd30b75d233c92d34609233775d8542fe1dc70fe53170a13188ba80847d6d4f6e272beb98b9888e0f73097757a95a968a0d526e3dd495 + languageName: node + linkType: hard + +"postcss-minify-gradients@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-minify-gradients@npm:5.1.1" + dependencies: + colord: "npm:^2.9.1" + cssnano-utils: "npm:^3.1.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/8afc4c2240c0ddeb37b18f34e6d47d374c500376342c509b0fe577c56f9e94315a42db99a9573159efaf8853c7a1b9fee83b2f6f890a49273f3556b1ba9dbdde + languageName: node + linkType: hard + +"postcss-minify-params@npm:^5.1.4": + version: 5.1.4 + resolution: "postcss-minify-params@npm:5.1.4" + dependencies: + browserslist: "npm:^4.21.4" + cssnano-utils: "npm:^3.1.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/bd63e2cc89edcf357bb5c2a16035f6d02ef676b8cede4213b2bddd42626b3d428403849188f95576fc9f03e43ebd73a29bf61d33a581be9a510b13b7f7f100d5 + languageName: node + linkType: hard + +"postcss-minify-selectors@npm:^5.2.1": + version: 5.2.1 + resolution: "postcss-minify-selectors@npm:5.2.1" + dependencies: + postcss-selector-parser: "npm:^6.0.5" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/59eca33eb9ce45b688cca33cf7bb96b07c874f6d2b90f4a3363bc95067c514825c61dd8775c9aa73a161c922333474e6f249cc58677cd77b2be8cc04019e0810 + languageName: node + linkType: hard + +"postcss-modules-extract-imports@npm:^3.0.0, postcss-modules-extract-imports@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-extract-imports@npm:3.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10/00bfd3aff045fc13ded8e3bbfd8dfc73eff9a9708db1b2a132266aef6544c8d2aee7a5d7e021885f6f9bbd5565a9a9ab52990316e21ad9468a2534f87df8e849 + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.0, postcss-modules-local-by-default@npm:^4.0.5": + version: 4.2.0 + resolution: "postcss-modules-local-by-default@npm:4.2.0" + dependencies: + icss-utils: "npm:^5.0.0" + postcss-selector-parser: "npm:^7.0.0" + postcss-value-parser: "npm:^4.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10/552329aa39fbf229b8ac5a04f8aed0b1553e7a3c10b165ee700d1deb020c071875b3df7ab5e3591f6af33d461df66d330ec9c1256229e45fc618a47c60f41536 + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.0.0, postcss-modules-scope@npm:^3.2.0": + version: 3.2.1 + resolution: "postcss-modules-scope@npm:3.2.1" + dependencies: + postcss-selector-parser: "npm:^7.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10/51c747fa15cedf1b2856da472985ea7a7bb510a63daf30f95f250f34fce9e28ef69b802e6cc03f9c01f69043d171bc33279109a9235847c2d3a75c44eac67334 + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: "npm:^5.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 10/18021961a494e69e65da9e42b4436144c9ecee65845c9bfeff2b7a26ea73d60762f69e288be8bb645447965b8fd6b26a264771136810dc0172bd31b940aee4f2 + languageName: node + linkType: hard + +"postcss-modules@npm:^4.0.0": + version: 4.3.1 + resolution: "postcss-modules@npm:4.3.1" + dependencies: + generic-names: "npm:^4.0.0" + icss-replace-symbols: "npm:^1.1.0" + lodash.camelcase: "npm:^4.3.0" + postcss-modules-extract-imports: "npm:^3.0.0" + postcss-modules-local-by-default: "npm:^4.0.0" + postcss-modules-scope: "npm:^3.0.0" + postcss-modules-values: "npm:^4.0.0" + string-hash: "npm:^1.1.1" + peerDependencies: + postcss: ^8.0.0 + checksum: 10/014329db47cc6a283bd1e1ac3490170b28461e8772019fe3d53445c549efec8763cb9315fe60db25f046142947dace736dca92ad2dd5c98b9b6699d701d907fe + languageName: node + linkType: hard + +"postcss-normalize-charset@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-charset@npm:5.1.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/e79d92971fc05b8b3c9b72f3535a574e077d13c69bef68156a0965f397fdf157de670da72b797f57b0e3bac8f38155b5dd1735ecab143b9cc4032d72138193b4 + languageName: node + linkType: hard + +"postcss-normalize-display-values@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-display-values@npm:5.1.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/b6eb7b9b02c3bdd62bbc54e01e2b59733d73a1c156905d238e178762962efe0c6f5104544da39f32cade8a4fb40f10ff54b63a8ebfbdff51e8780afb9fbdcf86 + languageName: node + linkType: hard + +"postcss-normalize-positions@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-positions@npm:5.1.1" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/d9afc233729c496463c7b1cdd06732469f401deb387484c3a2422125b46ec10b4af794c101f8c023af56f01970b72b535e88373b9058ecccbbf88db81662b3c4 + languageName: node + linkType: hard + +"postcss-normalize-repeat-style@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-repeat-style@npm:5.1.1" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/2c6ad2b0ae10a1fda156b948c34f78c8f1e185513593de4d7e2480973586675520edfec427645fa168c337b0a6b3ceca26f92b96149741ca98a9806dad30d534 + languageName: node + linkType: hard + +"postcss-normalize-string@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-string@npm:5.1.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/227ddf520266d2f9847e799b9977aaa444636ba94e473137739539ef02e7cb6302826585ffda9897cfe2a9953e65632a08279cb1f572ca95e53d8b3dd6ba737f + languageName: node + linkType: hard + +"postcss-normalize-timing-functions@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-timing-functions@npm:5.1.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/da550f50e90b0b23e17b67449a7d1efd1aa68288e66d4aa7614ca6f5cc012896be1972b7168eee673d27da36504faccf7b9f835c0f7e81243f966a42c8c030aa + languageName: node + linkType: hard + +"postcss-normalize-unicode@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-unicode@npm:5.1.1" + dependencies: + browserslist: "npm:^4.21.4" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/4c24d26cc9f4b19a9397db4e71dd600dab690f1de8e14a3809e2aa1452dbc3791c208c38a6316bbc142f29e934fdf02858e68c94038c06174d78a4937e0f273c + languageName: node + linkType: hard + +"postcss-normalize-url@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-normalize-url@npm:5.1.0" + dependencies: + normalize-url: "npm:^6.0.1" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/3bd4b3246d6600230bc827d1760b24cb3101827ec97570e3016cbe04dc0dd28f4dbe763245d1b9d476e182c843008fbea80823061f1d2219b96f0d5c724a24c0 + languageName: node + linkType: hard + +"postcss-normalize-whitespace@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-normalize-whitespace@npm:5.1.1" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/12d8fb6d1c1cba208cc08c1830959b7d7ad447c3f5581873f7e185f99a9a4230c43d3af21ca12c818e4690a5085a95b01635b762ad4a7bef69d642609b4c0e19 + languageName: node + linkType: hard + +"postcss-ordered-values@npm:^5.1.3": + version: 5.1.3 + resolution: "postcss-ordered-values@npm:5.1.3" + dependencies: + cssnano-utils: "npm:^3.1.0" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/53dd26f480a18ffb0c008ae956d8a7e11e43c37629d0fb17a7716ff3b0cd8585f97e80deac12e7f3fe129681a980d83d356217b0b8fffb70ff83859993d6d82a + languageName: node + linkType: hard + +"postcss-reduce-initial@npm:^5.1.2": + version: 5.1.2 + resolution: "postcss-reduce-initial@npm:5.1.2" + dependencies: + browserslist: "npm:^4.21.4" + caniuse-api: "npm:^3.0.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/6234a85dab32cc3ece384f62c761c5c0dd646e2c6a419d93ee7cdb78b657e43381df39bd4620dfbdc2157e44b51305e4ebe852259d12c8b435f1aa534548db3e + languageName: node + linkType: hard + +"postcss-reduce-transforms@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-reduce-transforms@npm:5.1.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/49fffd474070a154764934b42d7d875ceadf54219f8346b4cadf931728ffba6a2dea7532ced3d267fd42d81c102211a5bf957af3b63b1ac428d454fa6ec2dbf4 + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10/190034c94d809c115cd2f32ee6aade84e933450a43ec3899c3e78e7d7b33efd3a2a975bb45d7700b6c5b196c06a7d9acf3f1ba6f1d87032d9675a29d8bca1dd3 + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-selector-parser@npm:7.0.0" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10/0e92be7281e2b440a8be8cf207de40a24ca7bc765577916499614d5a47827a3e658206728cc559db96803e554270516104aad919a04f91bfa8914ccef1ba14ca + languageName: node + linkType: hard + +"postcss-svgo@npm:^5.1.0": + version: 5.1.0 + resolution: "postcss-svgo@npm:5.1.0" + dependencies: + postcss-value-parser: "npm:^4.2.0" + svgo: "npm:^2.7.0" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/d86eb5213d9f700cf5efe3073799b485fb7cacae0c731db3d7749c9c2b1c9bc85e95e0baeca439d699ff32ea24815fc916c4071b08f67ed8219df229ce1129bd + languageName: node + linkType: hard + +"postcss-unique-selectors@npm:^5.1.1": + version: 5.1.1 + resolution: "postcss-unique-selectors@npm:5.1.1" + dependencies: + postcss-selector-parser: "npm:^6.0.5" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/637e7b786e8558265775c30400c54b6b3b24d4748923f4a39f16a65fd0e394f564ccc9f0a1d3c0e770618a7637a7502ea1d0d79f731d429cb202255253c23278 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 10/e4e4486f33b3163a606a6ed94f9c196ab49a37a7a7163abfcd469e5f113210120d70b8dd5e33d64636f41ad52316a3725655421eb9a1094f1bcab1db2f555c62 + languageName: node + linkType: hard + +"postcss@npm:^8.1.0, postcss@npm:^8.4.33": + version: 8.5.1 + resolution: "postcss@npm:8.5.1" + dependencies: + nanoid: "npm:^3.3.8" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10/1fbd28753143f7f03e4604813639918182b15343c7ad0f4e72f3875fc2cc0b8494c887f55dc05008fad5fbf1e1e908ce2edbbce364a91f84dcefb71edf7cd31d + languageName: node + linkType: hard + +"postgres-array@npm:~2.0.0": + version: 2.0.0 + resolution: "postgres-array@npm:2.0.0" + checksum: 10/aff99e79714d1271fe942fec4ffa2007b755e7e7dc3d2feecae3f1ceecb86fd3637c8138037fc3d9e7ec369231eeb136843c0b25927bf1ce295245a40ef849b4 + languageName: node + linkType: hard + +"postgres-bytea@npm:~1.0.0": + version: 1.0.0 + resolution: "postgres-bytea@npm:1.0.0" + checksum: 10/d844ae4ca7a941b70e45cac1261a73ee8ed39d72d3d74ab1d645248185a1b7f0ac91a3c63d6159441020f4e1f7fe64689ac56536a307b31cef361e5187335090 + languageName: node + linkType: hard + +"postgres-date@npm:~1.0.4": + version: 1.0.7 + resolution: "postgres-date@npm:1.0.7" + checksum: 10/571ef45bec4551bb5d608c31b79987d7a895141f7d6c7b82e936a52d23d97474c770c6143e5cf8936c1cdc8b0dfd95e79f8136bf56a90164182a60f242c19f2b + languageName: node + linkType: hard + +"postgres-interval@npm:^1.1.0": + version: 1.2.0 + resolution: "postgres-interval@npm:1.2.0" + dependencies: + xtend: "npm:^4.0.0" + checksum: 10/746b71f93805ae33b03528e429dc624706d1f9b20ee81bf743263efb6a0cd79ae02a642a8a480dbc0f09547b4315ab7df6ce5ec0be77ed700bac42730f5c76b2 + languageName: node + linkType: hard + +"prebuild-install@npm:^7.1.1": + version: 7.1.3 + resolution: "prebuild-install@npm:7.1.3" + dependencies: + detect-libc: "npm:^2.0.0" + expand-template: "npm:^2.0.3" + github-from-package: "npm:0.0.0" + minimist: "npm:^1.2.3" + mkdirp-classic: "npm:^0.5.3" + napi-build-utils: "npm:^2.0.0" + node-abi: "npm:^3.3.0" + pump: "npm:^3.0.0" + rc: "npm:^1.2.7" + simple-get: "npm:^4.0.0" + tar-fs: "npm:^2.0.0" + tunnel-agent: "npm:^0.6.0" + bin: + prebuild-install: bin.js + checksum: 10/1b7e4c00d2750b532a4fc2a83ffb0c5fefa1b6f2ad071896ead15eeadc3255f5babd816949991af083cf7429e375ae8c7d1c51f73658559da36f948a020a3a11 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 10/0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed + languageName: node + linkType: hard + +"prelude-ls@npm:~1.1.2": + version: 1.1.2 + resolution: "prelude-ls@npm:1.1.2" + checksum: 10/946a9f60d3477ca6b7d4c5e8e452ad1b98dc8aaa992cea939a6b926ac16cc4129d7217c79271dc808b5814b1537ad0af37f29a942e2eafbb92cfc5a1c87c38cb + languageName: node + linkType: hard + +"prettier@npm:^2.3.2, prettier@npm:^2.7.1": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: 10/00cdb6ab0281f98306cd1847425c24cbaaa48a5ff03633945ab4c701901b8e96ad558eb0777364ffc312f437af9b5a07d0f45346266e8245beaf6247b9c62b24 + languageName: node + linkType: hard + +"pretty-error@npm:^4.0.0": + version: 4.0.0 + resolution: "pretty-error@npm:4.0.0" + dependencies: + lodash: "npm:^4.17.20" + renderkid: "npm:^3.0.0" + checksum: 10/0212ad8742f8bb6f412f95b07d7f6874c55514ac4384f4f7de0defe77e767cca99f667c2316529f62a041fa654194a99c1ee7e321e1b7f794b5cc700777634d6 + languageName: node + linkType: hard + +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^17.0.1" + checksum: 10/248990cbef9e96fb36a3e1ae6b903c551ca4ddd733f8d0912b9cc5141d3d0b3f9f8dfb4d799fb1c6723382c9c2083ffbfa4ad43ff9a0e7535d32d41fd5f01da6 + languageName: node + linkType: hard + +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": "npm:^29.6.3" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^18.0.0" + checksum: 10/dea96bc83c83cd91b2bfc55757b6b2747edcaac45b568e46de29deee80742f17bc76fe8898135a70d904f4928eafd8bb693cd1da4896e8bdd3c5e82cadf1d2bb + languageName: node + linkType: hard + +"pretty-ms@npm:^9.0.0": + version: 9.2.0 + resolution: "pretty-ms@npm:9.2.0" + dependencies: + parse-ms: "npm:^4.0.0" + checksum: 10/a65a1d81560867f4f7128862fdbf0e1c2d3c5607bf75cae7758bf8111e2c4b744be46e084704125a38ba918bb43defa7a53aaff0f48c5c2d95367d3148c980d9 + languageName: node + linkType: hard + +"prismjs@npm:^1.27.0": + version: 1.29.0 + resolution: "prismjs@npm:1.29.0" + checksum: 10/2080db382c2dde0cfc7693769e89b501ef1bfc8ff4f8d25c07fd4c37ca31bc443f6133d5b7c145a73309dc396e829ddb7cc18560026d862a887ae08864ef6b07 + languageName: node + linkType: hard + +"prismjs@npm:~1.27.0": + version: 1.27.0 + resolution: "prismjs@npm:1.27.0" + checksum: 10/dc83e2e09170b53526182f5435fae056fc200b109cac39faa88eb48d992311c7f59b94990318962fa93299190a9b33a404920ed150e5b364ce48c897f2ba1e8e + languageName: node + linkType: hard + +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: 10/35610bdb0177d3ab5d35f8827a429fb1dc2518d9e639f2151ac9007f01a061c30e0c635a970c9b00c39102216160f6ec54b62377c92fac3b7bfc2ad4b98d195c + languageName: node + linkType: hard + +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 10/1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b + languageName: node + linkType: hard + +"prom-client@npm:^15.0.0": + version: 15.1.3 + resolution: "prom-client@npm:15.1.3" + dependencies: + "@opentelemetry/api": "npm:^1.4.0" + tdigest: "npm:^0.1.1" + checksum: 10/eba75e15ab896845d39359e3a4d6f7913ea05339b3122d8dde8c8c374669ad1a1d1ab2694ab2101c420bd98086a564e4f2a18aa29018fc14a4732e57c1c19aec + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10/96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4 + languageName: node + linkType: hard + +"promise.series@npm:^0.2.0": + version: 0.2.0 + resolution: "promise.series@npm:0.2.0" + checksum: 10/26b5956b5463d032b43d39fd8d34fdacf453ed3352462eed9626494a11d44beb385f86d6544dd12e51482a6ca8f303e0dfdee8653db4703213ba27dd2234754a + languageName: node + linkType: hard + +"prompts@npm:^2.0.1, prompts@npm:^2.4.2": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: "npm:^3.0.3" + sisteransi: "npm:^1.0.5" + checksum: 10/c52536521a4d21eff4f2f2aa4572446cad227464066365a7167e52ccf8d9839c099f9afec1aba0eed3d5a2514b3e79e0b3e7a1dc326b9acde6b75d27ed74b1a9 + languageName: node + linkType: hard + +"prop-types@npm:15.x, prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0 + languageName: node + linkType: hard + +"proper-lockfile@npm:^4.1.2": + version: 4.1.2 + resolution: "proper-lockfile@npm:4.1.2" + dependencies: + graceful-fs: "npm:^4.2.4" + retry: "npm:^0.12.0" + signal-exit: "npm:^3.0.2" + checksum: 10/000a4875f543f591872b36ca94531af8a6463ddb0174f41c0b004d19e231d7445268b422ff1ea595e43d238655c702250cd3d27f408e7b9d97b56f1533ba26bf + languageName: node + linkType: hard + +"properties-reader@npm:^2.3.0": + version: 2.3.0 + resolution: "properties-reader@npm:2.3.0" + dependencies: + mkdirp: "npm:^1.0.4" + checksum: 10/0b41eb4136dc278ae0d97968ccce8de2d48d321655b319192e31f2424f1c6e052182204671e65aa8967216360cb3e7cbd9129830062e058fe9d6a1d74964c29a + languageName: node + linkType: hard + +"property-expr@npm:^2.0.5": + version: 2.0.6 + resolution: "property-expr@npm:2.0.6" + checksum: 10/89977f4bb230736c1876f460dd7ca9328034502fd92e738deb40516d16564b850c0bbc4e052c3df88b5b8cd58e51c93b46a94bea049a3f23f4a022c038864cab + languageName: node + linkType: hard + +"property-information@npm:^5.0.0": + version: 5.6.0 + resolution: "property-information@npm:5.6.0" + dependencies: + xtend: "npm:^4.0.0" + checksum: 10/e4f45b100fec5968126b08102f9567f1b5fc3442aecbb5b4cdeca401f1f447672e7638a08c81c05dd3979c62d084e0cc6acbe2d8b053c05280ac5abaaf666a68 + languageName: node + linkType: hard + +"property-information@npm:^6.0.0": + version: 6.5.0 + resolution: "property-information@npm:6.5.0" + checksum: 10/fced94f3a09bf651ad1824d1bdc8980428e3e480e6d01e98df6babe2cc9d45a1c52eee9a7736d2006958f9b394eb5964dedd37e23038086ddc143fc2fd5e426c + languageName: node + linkType: hard + +"proto3-json-serializer@npm:^2.0.2": + version: 2.0.2 + resolution: "proto3-json-serializer@npm:2.0.2" + dependencies: + protobufjs: "npm:^7.2.5" + checksum: 10/d588337f9a24a94ac14a456261af48ea07e6d0a8a00faebb0b689e79e83925383b9d3ea713184d6336d0bb743dd803f188710e3e8fbfb316586cd1e3f7862a56 + languageName: node + linkType: hard + +"protobufjs@npm:^7.2.5, protobufjs@npm:^7.2.6, protobufjs@npm:^7.3.2, protobufjs@npm:^7.4.0": + version: 7.4.0 + resolution: "protobufjs@npm:7.4.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/node": "npm:>=13.7.0" + long: "npm:^5.0.0" + checksum: 10/408423506610f70858d7593632f4a6aa4f05796c90fd632be9b9252457c795acc71aa6d3b54bb7f48a890141728fee4ca3906723ccea6c202ad71f21b3879b8b + languageName: node + linkType: hard + +"protocols@npm:^2.0.0, protocols@npm:^2.0.1": + version: 2.0.1 + resolution: "protocols@npm:2.0.1" + checksum: 10/0cd08a55b9cb7cc96fed7a528255320428a7c86fd5f3f35965845285436433b7836178893168f80584efdf86391cd7c0a837b6f6bc5ddac3029c76be61118ba5 + languageName: node + linkType: hard + +"proxy-addr@npm:~2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: "npm:0.2.0" + ipaddr.js: "npm:1.9.1" + checksum: 10/f24a0c80af0e75d31e3451398670d73406ec642914da11a2965b80b1898ca6f66a0e3e091a11a4327079b2b268795f6fa06691923fef91887215c3d0e8ea3f68 + languageName: node + linkType: hard + +"proxy-agent@npm:6.4.0": + version: 6.4.0 + resolution: "proxy-agent@npm:6.4.0" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:^4.3.4" + http-proxy-agent: "npm:^7.0.1" + https-proxy-agent: "npm:^7.0.3" + lru-cache: "npm:^7.14.1" + pac-proxy-agent: "npm:^7.0.1" + proxy-from-env: "npm:^1.1.0" + socks-proxy-agent: "npm:^8.0.2" + checksum: 10/a22f202b74cc52f093efd9bfe52de8db08eda8bbc16b9d3d73acda2acc1b40223966e5521b1706788b06adf9265f093ed554d989b354e81b2d6ad482e5bd4d23 + languageName: node + linkType: hard + +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10/f0bb4a87cfd18f77bc2fba23ae49c3b378fb35143af16cc478171c623eebe181678f09439707ad80081d340d1593cd54a33a0113f3ccb3f4bc9451488780ee23 + languageName: node + linkType: hard + +"psl@npm:^1.1.28, psl@npm:^1.1.33": + version: 1.15.0 + resolution: "psl@npm:1.15.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10/5e7467eb5196eb7900d156783d12907d445c0122f76c73203ce96b148a6ccf8c5450cc805887ffada38ff92d634afcf33720c24053cb01d5b6598d1c913c5caf + languageName: node + linkType: hard + +"public-encrypt@npm:^4.0.3": + version: 4.0.3 + resolution: "public-encrypt@npm:4.0.3" + dependencies: + bn.js: "npm:^4.1.0" + browserify-rsa: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + parse-asn1: "npm:^5.0.0" + randombytes: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10/059d64da8ba9ea0733377d23b57b6cbe5be663c8eb187b9c051eec85f799ff95c4e194eb3a69db07cc1f73a2a63519e67716ae9b8630e13e7149840d0abe044d + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.2 + resolution: "pump@npm:3.0.2" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10/e0c4216874b96bd25ddf31a0b61a5613e26cc7afa32379217cf39d3915b0509def3565f5f6968fafdad2894c8bbdbd67d340e84f3634b2a29b950cffb6442d9f + languageName: node + linkType: hard + +"punycode.js@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode.js@npm:2.3.1" + checksum: 10/f0e946d1edf063f9e3d30a32ca86d8ff90ed13ca40dad9c75d37510a04473340cfc98db23a905cc1e517b1e9deb0f6021dce6f422ace235c60d3c9ac47c5a16a + languageName: node + linkType: hard + +"punycode@npm:^1.2.4, punycode@npm:^1.4.1": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: 10/af2700dde1a116791ff8301348ff344c47d6c224e875057237d1b5112035655fb07a6175cfdb8bf0e3a8cdfd2dc82b3a622e0aefd605566c0e949a6d0d1256a4 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059 + languageName: node + linkType: hard + +"pure-rand@npm:^6.0.0": + version: 6.1.0 + resolution: "pure-rand@npm:6.1.0" + checksum: 10/256aa4bcaf9297256f552914e03cbdb0039c8fe1db11fa1e6d3f80790e16e563eb0a859a1e61082a95e224fc0c608661839439f8ecc6a3db4e48d46d99216ee4 + languageName: node + linkType: hard + +"qs@npm:6.13.0": + version: 6.13.0 + resolution: "qs@npm:6.13.0" + dependencies: + side-channel: "npm:^1.0.6" + checksum: 10/f548b376e685553d12e461409f0d6e5c59ec7c7d76f308e2a888fd9db3e0c5e89902bedd0754db3a9038eda5f27da2331a6f019c8517dc5e0a16b3c9a6e9cef8 + languageName: node + linkType: hard + +"qs@npm:^6.10.1, qs@npm:^6.12.3, qs@npm:^6.9.4": + version: 6.14.0 + resolution: "qs@npm:6.14.0" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10/a60e49bbd51c935a8a4759e7505677b122e23bf392d6535b8fc31c1e447acba2c901235ecb192764013cd2781723dc1f61978b5fdd93cc31d7043d31cdc01974 + languageName: node + linkType: hard + +"qs@npm:~6.5.2": + version: 6.5.3 + resolution: "qs@npm:6.5.3" + checksum: 10/485c990fba7ad17671e16c92715fb064c1600337738f5d140024eb33a49fbc1ed31890d3db850117c760caeb9c9cc9f4ba22a15c20dd119968e41e3d3fe60b28 + languageName: node + linkType: hard + +"querystring-es3@npm:^0.2.0": + version: 0.2.1 + resolution: "querystring-es3@npm:0.2.1" + checksum: 10/c99fccfe1a9c4c25ea6194fa7a559fdb83d2628f118f898af6f0ac02c4ffcd7e0576997bb80e7dfa892d193988b60e23d4968122426351819f87051862af991c + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 10/46ab16f252fd892fc29d6af60966d338cdfeea68a231e9457631ffd22d67cec1e00141e0a5236a2eb16c0d7d74175d9ec1d6f963660c6f2b1c2fc85b194c5680 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b + languageName: node + linkType: hard + +"queue-tick@npm:^1.0.1": + version: 1.0.1 + resolution: "queue-tick@npm:1.0.1" + checksum: 10/f447926c513b64a857906f017a3b350f7d11277e3c8d2a21a42b7998fa1a613d7a829091e12d142bb668905c8f68d8103416c7197856efb0c72fa835b8e254b5 + languageName: node + linkType: hard + +"quick-format-unescaped@npm:^3.0.3": + version: 3.0.3 + resolution: "quick-format-unescaped@npm:3.0.3" + checksum: 10/173dcb1ddba217fc6514a73ef6338c3033c2c301cc1e3019767a9f16baa0963418747925671c792f40cd53cb37adc99f65c08e629c1c29e14110041f2b601842 + languageName: node + linkType: hard + +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: 10/a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + +"raf-schd@npm:^4.0.2": + version: 4.0.3 + resolution: "raf-schd@npm:4.0.3" + checksum: 10/45514041c5ad31fa96aef3bb3c572a843b92da2f2cd1cb4a47c9ad58e48761d3a4126e18daa32b2bfa0bc2551a42d8f324a0e40e536cb656969929602b4e8b58 + languageName: node + linkType: hard + +"raf@npm:^3.4.1": + version: 3.4.1 + resolution: "raf@npm:3.4.1" + dependencies: + performance-now: "npm:^2.1.0" + checksum: 10/4c4b4c826b09d2aec6ca809f1a3c3c12136e7ec8d13fbb91f495dd2c99cd43345240e003da3bfd16036a432e635049fc6d9f69f9187f5f22ea88bb146ec75881 + languageName: node + linkType: hard + +"railroad-diagrams@npm:^1.0.0": + version: 1.0.0 + resolution: "railroad-diagrams@npm:1.0.0" + checksum: 10/5349cf7a27f28c2cd152b525964624e0d0a795ab062d01682084381570fbb07ab877035771bcfb27cd5b6a7ee9f8371ecc34ccc8c3bde3443676230a59a7a85e + languageName: node + linkType: hard + +"rambda@npm:^9.1.0": + version: 9.4.2 + resolution: "rambda@npm:9.4.2" + checksum: 10/eecdca5aeea05dd766544396cba983523243896365bee8cffa55af12147c3f1b505e8395b562f53221c207cab6e0a866a446ae16de9320f13ecc39ca6b6059a7 + languageName: node + linkType: hard + +"ramda-adjunct@npm:^5.0.0": + version: 5.1.0 + resolution: "ramda-adjunct@npm:5.1.0" + peerDependencies: + ramda: ">= 0.30.0" + checksum: 10/71abdb121ba127f9306306a85d1f1c5854d6932139d90680300cdd7b6e912996e0b24460f7227c6b2be1f7d5f8204814bc62930a11a1421922ac03be51120e7a + languageName: node + linkType: hard + +"ramda@npm:^0.30.1, ramda@npm:~0.30.0": + version: 0.30.1 + resolution: "ramda@npm:0.30.1" + checksum: 10/f3e1a7bc11f3a113edb3bb4764c2c22088c5896594934c01cf1980184d00f1d5a7af82761a3389419e2d51542ad2121ff44e718f40792d167e2846bba79a4c6d + languageName: node + linkType: hard + +"randexp@npm:0.4.6": + version: 0.4.6 + resolution: "randexp@npm:0.4.6" + dependencies: + discontinuous-range: "npm:1.0.0" + ret: "npm:~0.1.10" + checksum: 10/ae6d213ec8018b2d22960d2b73ee7a4e25f85050a11dc485b6d3a06ace318ca567353b1d75d8d11f529b7ed6bdeb52644b789307ef42812bf5da2ade4f85e113 + languageName: node + linkType: hard + +"randexp@npm:^0.5.3": + version: 0.5.3 + resolution: "randexp@npm:0.5.3" + dependencies: + drange: "npm:^1.0.2" + ret: "npm:^0.2.0" + checksum: 10/e67238fe5b0a71b1bfe56b964f59fc10d37c0cb05bf686ec624696897b1c9b3cf7a371f8d3257b7c829a67a2a4a9c2c136c1decdad147bc3f62b2147f5cafb2b + languageName: node + linkType: hard + +"random-bytes@npm:~1.0.0": + version: 1.0.0 + resolution: "random-bytes@npm:1.0.0" + checksum: 10/09faa256394aa2ca9754aa57e92a27c452c3e97ffb266e98bebb517332e9df7168fea393159f88d884febce949ba8bec8ddb02f03342da6c6023ecc7b155e0ae + languageName: node + linkType: hard + +"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: "npm:^5.1.0" + checksum: 10/4efd1ad3d88db77c2d16588dc54c2b52fd2461e70fe5724611f38d283857094fe09040fa2c9776366803c3152cf133171b452ef717592b65631ce5dc3a2bdafc + languageName: node + linkType: hard + +"randomfill@npm:^1.0.4": + version: 1.0.4 + resolution: "randomfill@npm:1.0.4" + dependencies: + randombytes: "npm:^2.0.5" + safe-buffer: "npm:^5.1.0" + checksum: 10/33734bb578a868d29ee1b8555e21a36711db084065d94e019a6d03caa67debef8d6a1bfd06a2b597e32901ddc761ab483a85393f0d9a75838f1912461d4dbfc7 + languageName: node + linkType: hard + +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26 + languageName: node + linkType: hard + +"raw-body@npm:2.5.2, raw-body@npm:^2.4.1": + version: 2.5.2 + resolution: "raw-body@npm:2.5.2" + dependencies: + bytes: "npm:3.1.2" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + unpipe: "npm:1.0.0" + checksum: 10/863b5171e140546a4d99f349b720abac4410338e23df5e409cfcc3752538c9caf947ce382c89129ba976f71894bd38b5806c774edac35ebf168d02aa1ac11a95 + languageName: node + linkType: hard + +"raw-loader@npm:^4.0.2": + version: 4.0.2 + resolution: "raw-loader@npm:4.0.2" + dependencies: + loader-utils: "npm:^2.0.0" + schema-utils: "npm:^3.0.0" + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: 10/51cc1b0d0e8c37c4336b5318f3b2c9c51d6998ad6f56ea09612afcfefc9c1f596341309e934a744ae907177f28efc9f1654eacd62151e82853fcc6d37450e795 + languageName: node + linkType: hard + +"rc-progress@npm:3.5.1": + version: 3.5.1 + resolution: "rc-progress@npm:3.5.1" + dependencies: + "@babel/runtime": "npm:^7.10.1" + classnames: "npm:^2.2.6" + rc-util: "npm:^5.16.1" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10/e6e34acdec07443ef850ddd12e0678533ff706ea4f7d2fa3d500df76aeafdf08f5297353e902d891f354c464931a69b3d568f4e17204436d3a6d30b37a241bb8 + languageName: node + linkType: hard + +"rc-util@npm:^5.16.1": + version: 5.44.3 + resolution: "rc-util@npm:5.44.3" + dependencies: + "@babel/runtime": "npm:^7.18.3" + react-is: "npm:^18.2.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10/d254f339b10d7bb850cf3d792371a3ae569a4d768ceccbd5dc52779ac6edcd2aa2eb94859b10fce782f2baee4fdf5582a3d8a2293208a77edd07309c577e55f8 + languageName: node + linkType: hard + +"rc@npm:^1.2.7": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: "npm:^0.6.0" + ini: "npm:~1.3.0" + minimist: "npm:^1.2.0" + strip-json-comments: "npm:~2.0.1" + bin: + rc: ./cli.js + checksum: 10/5c4d72ae7eec44357171585938c85ce066da8ca79146b5635baf3d55d74584c92575fa4e2c9eac03efbed3b46a0b2e7c30634c012b4b4fa40d654353d3c163eb + languageName: node + linkType: hard + +"react-beautiful-dnd@npm:^13.0.0": + version: 13.1.1 + resolution: "react-beautiful-dnd@npm:13.1.1" + dependencies: + "@babel/runtime": "npm:^7.9.2" + css-box-model: "npm:^1.2.0" + memoize-one: "npm:^5.1.1" + raf-schd: "npm:^4.0.2" + react-redux: "npm:^7.2.0" + redux: "npm:^4.0.4" + use-memo-one: "npm:^1.1.1" + peerDependencies: + react: ^16.8.5 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0 + checksum: 10/2de8162a74f7fc78294e5a928b92d3fff02c579d137a25d53b1ab4313abeb108709bb7281512f7f94d18257de3122b8c85cb5a8375113cb8657088b1a9bda65b + languageName: node + linkType: hard + +"react-copy-to-clipboard@npm:5.1.0": + version: 5.1.0 + resolution: "react-copy-to-clipboard@npm:5.1.0" + dependencies: + copy-to-clipboard: "npm:^3.3.1" + prop-types: "npm:^15.8.1" + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + checksum: 10/56a8b11a268a19d4e4ec409327f1c17d68c4f13a54330b9c0e3271acb44bb6886b72e04d77399c9945968851e8532dd192bbccffd1b2f8b010f4bb47e5743b3b + languageName: node + linkType: hard + +"react-debounce-input@npm:=3.3.0": + version: 3.3.0 + resolution: "react-debounce-input@npm:3.3.0" + dependencies: + lodash.debounce: "npm:^4" + prop-types: "npm:^15.8.1" + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + checksum: 10/ada5846c6f2839da0847c94c6c7f6c1ba50e2fd883c9e9fbad473b8bb1995e0ec4ecacc2ea8e6e5ee569e06e45cb2e9a9c8f1c52aa79128fa32e4c2b3d66529a + languageName: node + linkType: hard + +"react-dev-utils@npm:^12.0.0-next.60": + version: 12.0.1 + resolution: "react-dev-utils@npm:12.0.1" + dependencies: + "@babel/code-frame": "npm:^7.16.0" + address: "npm:^1.1.2" + browserslist: "npm:^4.18.1" + chalk: "npm:^4.1.2" + cross-spawn: "npm:^7.0.3" + detect-port-alt: "npm:^1.1.6" + escape-string-regexp: "npm:^4.0.0" + filesize: "npm:^8.0.6" + find-up: "npm:^5.0.0" + fork-ts-checker-webpack-plugin: "npm:^6.5.0" + global-modules: "npm:^2.0.0" + globby: "npm:^11.0.4" + gzip-size: "npm:^6.0.0" + immer: "npm:^9.0.7" + is-root: "npm:^2.1.0" + loader-utils: "npm:^3.2.0" + open: "npm:^8.4.0" + pkg-up: "npm:^3.1.0" + prompts: "npm:^2.4.2" + react-error-overlay: "npm:^6.0.11" + recursive-readdir: "npm:^2.2.2" + shell-quote: "npm:^1.7.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + checksum: 10/4f6e04a3c4c6bc041bb85586646cff5e611049dd91f505e73cec47e284a854f28a25a4f50ff24b46e7df051b2a82c387870c8e08da232edbbbb36c01d4e94a2b + languageName: node + linkType: hard + +"react-dom@npm:^18.0.2": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 + languageName: node + linkType: hard + +"react-double-scrollbar@npm:0.0.15": + version: 0.0.15 + resolution: "react-double-scrollbar@npm:0.0.15" + peerDependencies: + react: ">= 0.14.7" + checksum: 10/c12f9b51795b6281ed191a1eeadf3e5ab4f109af70c25bee159e0169169b5f31c8bc5706420672c232fb0c0eb665e2e4f9bea8cb086415a7bd19ec98528d024c + languageName: node + linkType: hard + +"react-draggable@npm:^4.0.3": + version: 4.4.6 + resolution: "react-draggable@npm:4.4.6" + dependencies: + clsx: "npm:^1.1.1" + prop-types: "npm:^15.8.1" + peerDependencies: + react: ">= 16.3.0" + react-dom: ">= 16.3.0" + checksum: 10/51b9ac7f913797fc1cebc30ae383f346883033c45eb91e9b0b92e9ebd224bb1545b4ae2391825b649b798cc711a38351a5f41be24d949c64c6703ebc24eba661 + languageName: node + linkType: hard + +"react-error-boundary@npm:^4.1.2": + version: 4.1.2 + resolution: "react-error-boundary@npm:4.1.2" + dependencies: + "@babel/runtime": "npm:^7.12.5" + peerDependencies: + react: ">=16.13.1" + checksum: 10/a8b59e5ef891bb6c48874d12c72bbd1a9292a56751adeee5666e228bd3a4913084329a9c21f7baafa0df68dc6d25e18883edb25946ce5763981885cbb93786eb + languageName: node + linkType: hard + +"react-error-overlay@npm:^6.0.11": + version: 6.0.11 + resolution: "react-error-overlay@npm:6.0.11" + checksum: 10/b4ac746fc4fb50da733768aadbc638d34dd56d4e46ed4b2f2d1ac54dced0c5fa5fe47ebbbf90810ada44056ed0713bba5b9b930b69f4e45466e7f59fc806c44e + languageName: node + linkType: hard + +"react-fast-compare@npm:^3.1.1": + version: 3.2.2 + resolution: "react-fast-compare@npm:3.2.2" + checksum: 10/a6826180ba75cefba1c8d3ac539735f9b627ca05d3d307fe155487f5d0228d376dac6c9708d04a283a7b9f9aee599b637446635b79c8c8753d0b4eece56c125c + languageName: node + linkType: hard + +"react-helmet@npm:6.1.0": + version: 6.1.0 + resolution: "react-helmet@npm:6.1.0" + dependencies: + object-assign: "npm:^4.1.1" + prop-types: "npm:^15.7.2" + react-fast-compare: "npm:^3.1.1" + react-side-effect: "npm:^2.1.0" + peerDependencies: + react: ">=16.3.0" + checksum: 10/eff25231384bb0a229870a0552839953a59af17f0ff5e8bca1b8c8fdf19a329e4c00c7fa2fcedc8be5d73f5c7bebb30cf9a32ea58efc7c8f726a10dba51f48a2 + languageName: node + linkType: hard + +"react-hook-form@npm:^7.12.2": + version: 7.54.2 + resolution: "react-hook-form@npm:7.54.2" + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + checksum: 10/b156d15b6246c76d0275e5722d9056014693e014d0e3dec06e44bf2672ee549aaba4366de5144d18c4cab29e631f3b2b84269d4fd5727ca17aad9b970fde6960 + languageName: node + linkType: hard + +"react-idle-timer@npm:5.7.2": + version: 5.7.2 + resolution: "react-idle-timer@npm:5.7.2" + peerDependencies: + react: ">=16" + react-dom: ">=16" + checksum: 10/271c9320579da888ea61b3e0c2d44bbd9741ad823e0a0bb1256475a225f1b36f27bdfa6af8f5f089f6c2a5c96062bc268f68e06b206bd7ee832d29521f2e25a9 + languageName: node + linkType: hard + +"react-immutable-proptypes@npm:2.2.0": + version: 2.2.0 + resolution: "react-immutable-proptypes@npm:2.2.0" + dependencies: + invariant: "npm:^2.2.2" + peerDependencies: + immutable: ">=3.6.2" + checksum: 10/f7ec15a16f35f97edefe93655fd360ad9da58362c1e83553b19ac0796c3677a22923782894d5408edee9a1c1eaa5408ac69585d08041249d43a1a5fcc3b764d3 + languageName: node + linkType: hard + +"react-immutable-pure-component@npm:^2.2.0": + version: 2.2.2 + resolution: "react-immutable-pure-component@npm:2.2.2" + peerDependencies: + immutable: ">= 2 || >= 4.0.0-rc" + react: ">= 16.6" + react-dom: ">= 16.6" + checksum: 10/071b4b62fb8a045b5521b88fe0c70dabdba7ffe747efc1489734abf73e54bf176c5cb66db56fb7a81adf3aa8dfba281158c09cc01b15430f03010ea0833a5cd0 + languageName: node + linkType: hard + +"react-inspector@npm:^6.0.1": + version: 6.0.2 + resolution: "react-inspector@npm:6.0.2" + peerDependencies: + react: ^16.8.4 || ^17.0.0 || ^18.0.0 + checksum: 10/5d23ad0f6f920458abd4c01af1b3cbdbe8846c254762fd6cfff4df119c54e08dd98ce8e91acacafb8173c19f07de2066df5b8e6cb19425751c1929a2620cbe77 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf + languageName: node + linkType: hard + +"react-is@npm:^16.8.0 || ^17.0.0, react-is@npm:^17.0.1, react-is@npm:^17.0.2": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10/73b36281e58eeb27c9cc6031301b6ae19ecdc9f18ae2d518bdb39b0ac564e65c5779405d623f1df9abf378a13858b79442480244bd579968afc1faf9a2ce5e05 + languageName: node + linkType: hard + +"react-is@npm:^18.0.0, react-is@npm:^18.2.0": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 + languageName: node + linkType: hard + +"react-is@npm:^19.0.0": + version: 19.0.0 + resolution: "react-is@npm:19.0.0" + checksum: 10/6cd3695c462ec3f0d4db98583f0c1b9a439248d60214f6c42c2b0e2951a1066339d0eefa74707f03484042e043fca87750282a35b652492c035f5f3da0d6498a + languageName: node + linkType: hard + +"react-markdown@npm:^8.0.0": + version: 8.0.7 + resolution: "react-markdown@npm:8.0.7" + dependencies: + "@types/hast": "npm:^2.0.0" + "@types/prop-types": "npm:^15.0.0" + "@types/unist": "npm:^2.0.0" + comma-separated-tokens: "npm:^2.0.0" + hast-util-whitespace: "npm:^2.0.0" + prop-types: "npm:^15.0.0" + property-information: "npm:^6.0.0" + react-is: "npm:^18.0.0" + remark-parse: "npm:^10.0.0" + remark-rehype: "npm:^10.0.0" + space-separated-tokens: "npm:^2.0.0" + style-to-object: "npm:^0.4.0" + unified: "npm:^10.0.0" + unist-util-visit: "npm:^4.0.0" + vfile: "npm:^5.0.0" + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 10/5702a2ef0b8a8cb0a085bb5101810d7446e818f7b76291238eff73cce5aaea65b95ffa28f9b4127d1fc785b6cfe0790bba261b11c5a69655ff901399d8ea6896 + languageName: node + linkType: hard + +"react-redux@npm:^7.2.0": + version: 7.2.9 + resolution: "react-redux@npm:7.2.9" + dependencies: + "@babel/runtime": "npm:^7.15.4" + "@types/react-redux": "npm:^7.1.20" + hoist-non-react-statics: "npm:^3.3.2" + loose-envify: "npm:^1.4.0" + prop-types: "npm:^15.7.2" + react-is: "npm:^17.0.2" + peerDependencies: + react: ^16.8.3 || ^17 || ^18 + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 10/1c3018bd2601e6d18339281867910b583dcbb3d8856403086e08c00abf0dfe467a94c0d1356bafa8cdf107bf1e2c9899a28486e4778e85c8bc4dfed2076b116f + languageName: node + linkType: hard + +"react-redux@npm:^9.1.2": + version: 9.2.0 + resolution: "react-redux@npm:9.2.0" + dependencies: + "@types/use-sync-external-store": "npm:^0.0.6" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + "@types/react": ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + redux: + optional: true + checksum: 10/b3d2f89f469169475ab0a9f8914d54a336ac9bc6a31af6e8dcfe9901e6fe2cfd8c1a3f6ce7a2f7f3e0928a93fbab833b668804155715598b7f2ad89927d3ff50 + languageName: node + linkType: hard + +"react-refresh@npm:^0.14.0": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: 10/512abf97271ab8623486061be04b608c39d932e3709f9af1720b41573415fa4993d0009fa5138b6705b60a98f4102f744d4e26c952b14f41a0e455521c6be4cc + languageName: node + linkType: hard + +"react-remove-scroll-bar@npm:^2.3.7": + version: 2.3.8 + resolution: "react-remove-scroll-bar@npm:2.3.8" + dependencies: + react-style-singleton: "npm:^2.2.2" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/6c0f8cff98b9f49a4ee2263f1eedf12926dced5ce220fbe83bd93544460e2a7ec8ec39b35d1b2a75d2fced0b2d64afeb8e66f830431ca896e05a20585f9fc350 + languageName: node + linkType: hard + +"react-remove-scroll@npm:^2.6.2": + version: 2.6.3 + resolution: "react-remove-scroll@npm:2.6.3" + dependencies: + react-remove-scroll-bar: "npm:^2.3.7" + react-style-singleton: "npm:^2.2.3" + tslib: "npm:^2.1.0" + use-callback-ref: "npm:^1.3.3" + use-sidecar: "npm:^1.1.3" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/d4dfd38e4381fa6059c8b810568b2d3a31fe21168bb3e2f57d1b1885ee08736fbd5a3fd83936faef0d17031c9c4175a1af83885bfc6c4280611f025447b19a4c + languageName: node + linkType: hard + +"react-resizable@npm:^3.0.5": + version: 3.0.5 + resolution: "react-resizable@npm:3.0.5" + dependencies: + prop-types: "npm:15.x" + react-draggable: "npm:^4.0.3" + peerDependencies: + react: ">= 16.3" + checksum: 10/745fad6ac827857b3a80d1d648b8d6723aa72fc17d5410a01707073f3d37b4adf6e0354dfe3cc33dee34d6e546a3fbd5603ef73e385dfc5218a425a39bf96275 + languageName: node + linkType: hard + +"react-router-dom@npm:^6.3.0": + version: 6.28.2 + resolution: "react-router-dom@npm:6.28.2" + dependencies: + "@remix-run/router": "npm:1.21.1" + react-router: "npm:6.28.2" + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + checksum: 10/4775cb484c497be5833ef5e048378d685f970a72c75a595c8b74fce147eda9e705d885b71d888b1090a8f22e7630adb851766d34e771c3a649f73171f0fa4c2b + languageName: node + linkType: hard + +"react-router@npm:6.28.2, react-router@npm:^6.3.0": + version: 6.28.2 + resolution: "react-router@npm:6.28.2" + dependencies: + "@remix-run/router": "npm:1.21.1" + peerDependencies: + react: ">=16.8" + checksum: 10/4cf150e3762acff8a087d6b474861fdb73efdf829ce0619bc980f3d8fc5d9e45e67333ab7d62af5b775fba8efe8f8d342f089bec75f9b41f3162e139c0187efd + languageName: node + linkType: hard + +"react-side-effect@npm:^2.1.0": + version: 2.1.2 + resolution: "react-side-effect@npm:2.1.2" + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + checksum: 10/8c31aaec5b383d942ff1775b12c45022239d1250d1a00a238bac3c07e0fe266c71991e2814ae16a5d9b855bcd96ba95817d48ab3f34738f0bb32036ebb1abb1a + languageName: node + linkType: hard + +"react-sparklines@npm:^1.7.0": + version: 1.7.0 + resolution: "react-sparklines@npm:1.7.0" + dependencies: + prop-types: "npm:^15.5.10" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 10/a6e59d94eab4d33306c17c942df9d101bcbf07f95b685f8f23d7fd9546df5ded5b2170e2ea80a13c276460db1e1a56fd74190e28b523263ae82e945a5114e3b6 + languageName: node + linkType: hard + +"react-style-singleton@npm:^2.2.2, react-style-singleton@npm:^2.2.3": + version: 2.2.3 + resolution: "react-style-singleton@npm:2.2.3" + dependencies: + get-nonce: "npm:^1.0.0" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/62498094ff3877a37f351b29e6cad9e38b2eb1ac3c0cb27ebf80aee96554f80b35e17bdb552bcd7ac8b7cb9904fea93ea5668f2057c73d38f90b5d46bb9b27ab + languageName: node + linkType: hard + +"react-syntax-highlighter@npm:^15.4.5, react-syntax-highlighter@npm:^15.5.0": + version: 15.6.1 + resolution: "react-syntax-highlighter@npm:15.6.1" + dependencies: + "@babel/runtime": "npm:^7.3.1" + highlight.js: "npm:^10.4.1" + highlightjs-vue: "npm:^1.0.0" + lowlight: "npm:^1.17.0" + prismjs: "npm:^1.27.0" + refractor: "npm:^3.6.0" + peerDependencies: + react: ">= 0.14.0" + checksum: 10/9a89c81f7dcc109b038dc2a73189fa1ea916e6485d8a39856ab3d01d2c753449b5ae1c0df9c9ee0ed5c8c9808a68422b19af9a168ec091a274bddc7ad092eb86 + languageName: node + linkType: hard + +"react-transition-group@npm:^4.0.0, react-transition-group@npm:^4.4.0, react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" + dependencies: + "@babel/runtime": "npm:^7.5.5" + dom-helpers: "npm:^5.0.1" + loose-envify: "npm:^1.4.0" + prop-types: "npm:^15.6.2" + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: 10/ca32d3fd2168c976c5d90a317f25d5f5cd723608b415fb3b9006f9d793c8965c619562d0884503a3e44e4b06efbca4fdd1520f30e58ca3e00a0890e637d55419 + languageName: node + linkType: hard + +"react-universal-interface@npm:^0.6.2": + version: 0.6.2 + resolution: "react-universal-interface@npm:0.6.2" + peerDependencies: + react: "*" + tslib: "*" + checksum: 10/bded7a34f5e44223495a095b6c29fa3ea6c8338a166d0f307d21443c20c9fa54a95bdae11d05ab3e6f61a7fa1eaa027f6fbe7ca064a2fb2af46539653ebcb308 + languageName: node + linkType: hard + +"react-use@npm:^17.2.4, react-use@npm:^17.3.2, react-use@npm:^17.5.0": + version: 17.6.0 + resolution: "react-use@npm:17.6.0" + dependencies: + "@types/js-cookie": "npm:^2.2.6" + "@xobotyi/scrollbar-width": "npm:^1.9.5" + copy-to-clipboard: "npm:^3.3.1" + fast-deep-equal: "npm:^3.1.3" + fast-shallow-equal: "npm:^1.0.0" + js-cookie: "npm:^2.2.1" + nano-css: "npm:^5.6.2" + react-universal-interface: "npm:^0.6.2" + resize-observer-polyfill: "npm:^1.5.1" + screenfull: "npm:^5.1.0" + set-harmonic-interval: "npm:^1.0.1" + throttle-debounce: "npm:^3.0.1" + ts-easing: "npm:^0.2.0" + tslib: "npm:^2.1.0" + peerDependencies: + react: "*" + react-dom: "*" + checksum: 10/a817b74e82b481a39d3539bfe8d3b535c08d59d44a75ea91f65e56a7ccaedb0de185159e50b44ea4a635dda0c1c7159f07530e81a1d64b57130e0a715a107795 + languageName: node + linkType: hard + +"react-virtualized-auto-sizer@npm:^1.0.11": + version: 1.0.25 + resolution: "react-virtualized-auto-sizer@npm:1.0.25" + peerDependencies: + react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/43678a904019f0413a3c649b5b64ea51263283120c991b285077b5075cf2ea564571f6d48b3a396b588d500d45820d1c98989cb7091e2a009e73e4faa7da9d20 + languageName: node + linkType: hard + +"react-window@npm:^1.8.10, react-window@npm:^1.8.6": + version: 1.8.11 + resolution: "react-window@npm:1.8.11" + dependencies: + "@babel/runtime": "npm:^7.0.0" + memoize-one: "npm:>=3.1.1 <6" + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/bdbac2b664c5a799443b97a32b2f60a00cc13cc14ca8a8b1e81e2dc7dd00d8d54f05743113972fe1a641b57ada5d874b59c3cbe7e8a07a88c6713a0fb65d60f6 + languageName: node + linkType: hard + +"react@npm:^18.0.2": + version: 18.3.1 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf + languageName: node + linkType: hard + +"read-tls-client-hello@npm:^1.0.0": + version: 1.0.1 + resolution: "read-tls-client-hello@npm:1.0.1" + dependencies: + "@types/node": "npm:*" + checksum: 10/fefa63605eebb197b6046cb26d7efde16eb24c026edbbca789c30b7b5be7c0dd8e45fb4d32707513dfc4dd468b787b2a46ed8be846f29eac844d6d80710688c6 + languageName: node + linkType: hard + +"read-yaml-file@npm:^1.1.0": + version: 1.1.0 + resolution: "read-yaml-file@npm:1.1.0" + dependencies: + graceful-fs: "npm:^4.1.5" + js-yaml: "npm:^3.6.1" + pify: "npm:^4.0.1" + strip-bom: "npm:^3.0.0" + checksum: 10/41ee5f075507ef0403328dd54e225a61c3149f915675ce7fd0fd791ddcce2e6c30a9fe0f76ffa7a465c1c157b9b4ad8ded1dcf47dc3b396103eeb013490bbc2e + languageName: node + linkType: hard + +"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.5.0, readable-stream@npm:^3.6.0, readable-stream@npm:^3.6.2": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10/d9e3e53193adcdb79d8f10f2a1f6989bd4389f5936c6f8b870e77570853561c362bee69feca2bbb7b32368ce96a85504aa4cedf7cf80f36e6a9de30d64244048 + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:^2.3.8, readable-stream@npm:~2.3.6": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: "npm:~1.0.0" + inherits: "npm:~2.0.3" + isarray: "npm:~1.0.0" + process-nextick-args: "npm:~2.0.0" + safe-buffer: "npm:~5.1.1" + string_decoder: "npm:~1.1.1" + util-deprecate: "npm:~1.0.1" + checksum: 10/8500dd3a90e391d6c5d889256d50ec6026c059fadee98ae9aa9b86757d60ac46fff24fafb7a39fa41d54cb39d8be56cc77be202ebd4cd8ffcf4cb226cbaa40d4 + languageName: node + linkType: hard + +"readable-stream@npm:^4.0.0": + version: 4.7.0 + resolution: "readable-stream@npm:4.7.0" + dependencies: + abort-controller: "npm:^3.0.0" + buffer: "npm:^6.0.3" + events: "npm:^3.3.0" + process: "npm:^0.11.10" + string_decoder: "npm:^1.3.0" + checksum: 10/bdf096c8ff59452ce5d08f13da9597f9fcfe400b4facfaa88e74ec057e5ad1fdfa140ffe28e5ed806cf4d2055f0b812806e962bca91dce31bc4cef08e53be3a4 + languageName: node + linkType: hard + +"readable-web-to-node-stream@npm:^3.0.0": + version: 3.0.2 + resolution: "readable-web-to-node-stream@npm:3.0.2" + dependencies: + readable-stream: "npm:^3.6.0" + checksum: 10/d3a5bf9d707c01183d546a64864aa63df4d9cb835dfd2bf89ac8305e17389feef2170c4c14415a10d38f9b9bfddf829a57aaef7c53c8b40f11d499844bf8f1a4 + languageName: node + linkType: hard + +"readdir-glob@npm:^1.1.2": + version: 1.1.3 + resolution: "readdir-glob@npm:1.1.3" + dependencies: + minimatch: "npm:^5.1.0" + checksum: 10/ca3a20aa1e715d671302d4ec785a32bf08e59d6d0dd25d5fc03e9e5a39f8c612cdf809ab3e638a79973db7ad6868492edf38504701e313328e767693671447d6 + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10/196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7 + languageName: node + linkType: hard + +"rechoir@npm:^0.8.0": + version: 0.8.0 + resolution: "rechoir@npm:0.8.0" + dependencies: + resolve: "npm:^1.20.0" + checksum: 10/ad3caed8afdefbc33fbc30e6d22b86c35b3d51c2005546f4e79bcc03c074df804b3640ad18945e6bef9ed12caedc035655ec1082f64a5e94c849ff939dc0a788 + languageName: node + linkType: hard + +"recursive-readdir@npm:^2.2.2": + version: 2.2.3 + resolution: "recursive-readdir@npm:2.2.3" + dependencies: + minimatch: "npm:^3.0.5" + checksum: 10/19298852b0b87810aed5f2c81a73bfaaeb9ade7c9bf363f350fc1443f2cc3df66ecade5e102dfbb153fcd9df20342c301848e11e149e5f78759c1d55aa2c9c39 + languageName: node + linkType: hard + +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: "npm:^4.0.0" + strip-indent: "npm:^3.0.0" + checksum: 10/fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + +"redis-errors@npm:^1.0.0, redis-errors@npm:^1.2.0": + version: 1.2.0 + resolution: "redis-errors@npm:1.2.0" + checksum: 10/001c11f63ddd52d7c80eb4f4ede3a9433d29a458a7eea06b9154cb37c9802a218d93b7988247aa8c958d4b5d274b18354e8853c148f1096fda87c6e675cfd3ee + languageName: node + linkType: hard + +"redis-parser@npm:^3.0.0": + version: 3.0.0 + resolution: "redis-parser@npm:3.0.0" + dependencies: + redis-errors: "npm:^1.0.0" + checksum: 10/b10846844b4267f19ce1a6529465819c3d78c3e89db7eb0c3bb4eb19f83784797ec411274d15a77dbe08038b48f95f76014b83ca366dc955a016a3a0a0234650 + languageName: node + linkType: hard + +"redis@npm:^4.7.0": + version: 4.7.0 + resolution: "redis@npm:4.7.0" + dependencies: + "@redis/bloom": "npm:1.2.0" + "@redis/client": "npm:1.6.0" + "@redis/graph": "npm:1.1.1" + "@redis/json": "npm:1.0.7" + "@redis/search": "npm:1.2.0" + "@redis/time-series": "npm:1.1.0" + checksum: 10/d927a0b1516e2845b7eab67b1466b6f2d0d0695be7a3d4a0a1ffa2f2c60dace98fb9ad01ec0db07519fb9d4d078b99d95b6809508c2a72afe6f814fc8f693188 + languageName: node + linkType: hard + +"redux-immutable@npm:^4.0.0": + version: 4.0.0 + resolution: "redux-immutable@npm:4.0.0" + peerDependencies: + immutable: ^3.8.1 || ^4.0.0-rc.1 + checksum: 10/771d35c58a62768104344eabc56c801799f31cfc5a5713145d41b89230eef40235fc6617c9ea8a5a4e64bca3657535b73434782492aeaf7472204b09b224ad55 + languageName: node + linkType: hard + +"redux@npm:^4.0.0, redux@npm:^4.0.4": + version: 4.2.1 + resolution: "redux@npm:4.2.1" + dependencies: + "@babel/runtime": "npm:^7.9.2" + checksum: 10/371e4833b671193303a7dea7803c8fdc8e0d566740c78f580e0a3b77b4161da25037626900a2205a5d616117fa6ad09a4232e5a110bd437186b5c6355a041750 + languageName: node + linkType: hard + +"redux@npm:^5.0.1": + version: 5.0.1 + resolution: "redux@npm:5.0.1" + checksum: 10/a373f9ed65693ead58bea5ef61c1d6bef39da9f2706db3be6f84815f3a1283230ecd1184efb1b3daa7f807d8211b0181564ca8f336fc6ee0b1e2fa0ba06737c2 + languageName: node + linkType: hard + +"reflect-metadata@npm:0.1.13": + version: 0.1.13 + resolution: "reflect-metadata@npm:0.1.13" + checksum: 10/732570da35d2d96f8fdd5aac60fb263aa92f6512eaded5962b052bd9e90f22a9dec5aaf0d7ff4bfe97646c9530e8444e8435c2d80b24d0bdf938b5d47f6f5b83 + languageName: node + linkType: hard + +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.10 + resolution: "reflect.getprototypeof@npm:1.0.10" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.9" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.7" + get-proto: "npm:^1.0.1" + which-builtin-type: "npm:^1.2.1" + checksum: 10/80a4e2be716f4fe46a89a08ccad0863b47e8ce0f49616cab2d65dab0fbd53c6fdba0f52935fd41d37a2e4e22355c272004f920d63070de849f66eea7aeb4a081 + languageName: node + linkType: hard + +"refractor@npm:^3.6.0": + version: 3.6.0 + resolution: "refractor@npm:3.6.0" + dependencies: + hastscript: "npm:^6.0.0" + parse-entities: "npm:^2.0.0" + prismjs: "npm:~1.27.0" + checksum: 10/671bbcf5ae1b4e207f98b9a3dc2cbae215be30effe9f3bdcfd10f565f45fecfe97334cf38c8e4f52d6cc012ff2ec7fb627d3d5678efc388751c8b1e1f7ca2a6c + languageName: node + linkType: hard + +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" + dependencies: + regenerate: "npm:^1.4.2" + checksum: 10/9150eae6fe04a8c4f2ff06077396a86a98e224c8afad8344b1b656448e89e84edcd527e4b03aa5476774129eb6ad328ed684f9c1459794a935ec0cc17ce14329 + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 10/dc6c95ae4b3ba6adbd7687cafac260eee4640318c7a95239d5ce847d9b9263979758389e862fe9c93d633b5792ea4ada5708df75885dc5aa05a309fa18140a87 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.10.5": + version: 0.10.5 + resolution: "regenerator-runtime@npm:0.10.5" + checksum: 10/a10d9a2510ee0ec2603f2fc316bff0233b7f41702dc69a19b6a23442395a7be9247668f06e5b7a81577d0e3ef677a11c8c63b4edd7a16f1550e5b8fb22173346 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.11.0": + version: 0.11.1 + resolution: "regenerator-runtime@npm:0.11.1" + checksum: 10/64e62d78594c227e7d5269811bca9e4aa6451332adaae8c79a30cab0fa98733b1ad90bdb9d038095c340c6fad3b414a49a8d9e0b6b424ab7ff8f94f35704f8a2 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.13.7": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 10/d493e9e118abef5b099c78170834f18540c4933cedf9bfabc32d3af94abfb59a7907bd7950259cbab0a929ebca7db77301e8024e5121e6482a82f78283dfd20c + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 10/5db3161abb311eef8c45bcf6565f4f378f785900ed3945acf740a9888c792f75b98ecb77f0775f3bf95502ff423529d23e94f41d80c8256e8fa05ed4b07cf471 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": "npm:^7.8.4" + checksum: 10/c4fdcb46d11bbe32605b4b9ed76b21b8d3f241a45153e9dc6f5542fed4c7744fed459f42701f650d5d5956786bf7de57547329d1c05a9df2ed9e367b9d903302 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.3": + version: 1.5.4 + resolution: "regexp.prototype.flags@npm:1.5.4" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + set-function-name: "npm:^2.0.2" + checksum: 10/8ab897ca445968e0b96f6237641510f3243e59c180ee2ee8d83889c52ff735dd1bf3657fcd36db053e35e1d823dd53f2565d0b8021ea282c9fe62401c6c3bd6d + languageName: node + linkType: hard + +"regexpu-core@npm:^6.2.0": + version: 6.2.0 + resolution: "regexpu-core@npm:6.2.0" + dependencies: + regenerate: "npm:^1.4.2" + regenerate-unicode-properties: "npm:^10.2.0" + regjsgen: "npm:^0.8.0" + regjsparser: "npm:^0.12.0" + unicode-match-property-ecmascript: "npm:^2.0.0" + unicode-match-property-value-ecmascript: "npm:^2.1.0" + checksum: 10/4d054ffcd98ca4f6ca7bf0df6598ed5e4a124264602553308add41d4fa714a0c5bcfb5bc868ac91f7060a9c09889cc21d3180a3a14c5f9c5838442806129ced3 + languageName: node + linkType: hard + +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: 10/b930f03347e4123c917d7b40436b4f87f625b8dd3e705b447ddd44804e4616c3addb7453f0902d6e914ab0446c30e816e445089bb641a4714237fe8141a0ef9d + languageName: node + linkType: hard + +"regjsparser@npm:^0.12.0": + version: 0.12.0 + resolution: "regjsparser@npm:0.12.0" + dependencies: + jsesc: "npm:~3.0.2" + bin: + regjsparser: bin/parser + checksum: 10/c2d6506b3308679de5223a8916984198e0493649a67b477c66bdb875357e3785abbf3bedf7c5c2cf8967d3b3a7bdf08b7cbd39e65a70f9e1ffad584aecf5f06a + languageName: node + linkType: hard + +"relateurl@npm:^0.2.7": + version: 0.2.7 + resolution: "relateurl@npm:0.2.7" + checksum: 10/f5d6ba58f2a5d5076389090600c243a0ba7072bcf347490a09e4241e2427ccdb260b4e22cea7be4f1fcd3c2bf05908b1e0d0bc9605e3199d4ecf37af1d5681fa + languageName: node + linkType: hard + +"remark-gfm@npm:^3.0.1": + version: 3.0.1 + resolution: "remark-gfm@npm:3.0.1" + dependencies: + "@types/mdast": "npm:^3.0.0" + mdast-util-gfm: "npm:^2.0.0" + micromark-extension-gfm: "npm:^2.0.0" + unified: "npm:^10.0.0" + checksum: 10/8ec301f5fb1f52c548b5a6d7ca6a3422d55db73cd703f147c979d16dca003f065181f55404d6f3f49d33f1faca3fe56ae731ed7fe0acc00cd945a8e605f155f2 + languageName: node + linkType: hard + +"remark-parse@npm:^10.0.0": + version: 10.0.2 + resolution: "remark-parse@npm:10.0.2" + dependencies: + "@types/mdast": "npm:^3.0.0" + mdast-util-from-markdown: "npm:^1.0.0" + unified: "npm:^10.0.0" + checksum: 10/184f48956734a58a7e157d83233e532ea289697f5ecebd1fb082cce79e6d9f5b1d3da72462356b2b3b5843643cee890280ffe3d21c9d4ad2d7d5e20bb5de7f14 + languageName: node + linkType: hard + +"remark-rehype@npm:^10.0.0": + version: 10.1.0 + resolution: "remark-rehype@npm:10.1.0" + dependencies: + "@types/hast": "npm:^2.0.0" + "@types/mdast": "npm:^3.0.0" + mdast-util-to-hast: "npm:^12.1.0" + unified: "npm:^10.0.0" + checksum: 10/cf765b639d16872404b50d5945df0ba825d14f1150397dde804e7d9e2e856a7b7343c4dc3796c85e7c18ca84f3c989bd40e476bd194fc00a5a870e8a64ec30d9 + languageName: node + linkType: hard + +"remarkable@npm:^2.0.1": + version: 2.0.1 + resolution: "remarkable@npm:2.0.1" + dependencies: + argparse: "npm:^1.0.10" + autolinker: "npm:^3.11.0" + bin: + remarkable: bin/remarkable.js + checksum: 10/3734e9cd5105b9655a993e498890d99706a86707bccabf5d64b57f0f8ec9c5e66cdd7f06aae5fe07ca8633d93377edc803318626dd581e75f5f85aba69c350fb + languageName: node + linkType: hard + +"remove-trailing-separator@npm:^1.0.1": + version: 1.1.0 + resolution: "remove-trailing-separator@npm:1.1.0" + checksum: 10/d3c20b5a2d987db13e1cca9385d56ecfa1641bae143b620835ac02a6b70ab88f68f117a0021838db826c57b31373d609d52e4f31aca75fc490c862732d595419 + languageName: node + linkType: hard + +"renderkid@npm:^3.0.0": + version: 3.0.0 + resolution: "renderkid@npm:3.0.0" + dependencies: + css-select: "npm:^4.1.3" + dom-converter: "npm:^0.2.0" + htmlparser2: "npm:^6.1.0" + lodash: "npm:^4.17.21" + strip-ansi: "npm:^6.0.1" + checksum: 10/434bd56d9930dd344bcba3ef7683f3dd893396b6bc7e8caa551a4cacbe75a9466dc6cf3d75bc324a5979278a73ef968d7854f8f660dbf1a52c38a73f1fb59b20 + languageName: node + linkType: hard + +"repeat-string@npm:^1.5.2": + version: 1.6.1 + resolution: "repeat-string@npm:1.6.1" + checksum: 10/1b809fc6db97decdc68f5b12c4d1a671c8e3f65ec4a40c238bc5200e44e85bcc52a54f78268ab9c29fcf5fe4f1343e805420056d1f30fa9a9ee4c2d93e3cc6c0 + languageName: node + linkType: hard + +"replace-in-file@npm:^7.1.0": + version: 7.2.0 + resolution: "replace-in-file@npm:7.2.0" + dependencies: + chalk: "npm:^4.1.2" + glob: "npm:^8.1.0" + yargs: "npm:^17.7.2" + bin: + replace-in-file: bin/cli.js + checksum: 10/9d08fc6c65dc3a06cb386ce00d03ca1acdfade394ca79e349777d2cc4dc346827b589ad6749e42aba602725e462b84d2386a77e22120cd3b8b8d764684f1e8d7 + languageName: node + linkType: hard + +"request@npm:^2.88.0": + version: 2.88.2 + resolution: "request@npm:2.88.2" + dependencies: + aws-sign2: "npm:~0.7.0" + aws4: "npm:^1.8.0" + caseless: "npm:~0.12.0" + combined-stream: "npm:~1.0.6" + extend: "npm:~3.0.2" + forever-agent: "npm:~0.6.1" + form-data: "npm:~2.3.2" + har-validator: "npm:~5.1.3" + http-signature: "npm:~1.2.0" + is-typedarray: "npm:~1.0.0" + isstream: "npm:~0.1.2" + json-stringify-safe: "npm:~5.0.1" + mime-types: "npm:~2.1.19" + oauth-sign: "npm:~0.9.0" + performance-now: "npm:^2.1.0" + qs: "npm:~6.5.2" + safe-buffer: "npm:^5.1.2" + tough-cookie: "npm:~2.5.0" + tunnel-agent: "npm:^0.6.0" + uuid: "npm:^3.3.2" + checksum: 10/005b8b237b56f1571cfd4ecc09772adaa2e82dcb884fc14ea2bb25e23dbf7c2009f9929e0b6d3fd5802e33ed8ee705a3b594c8f9467c1458cd973872bf89db8e + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10/a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: 10/839a3a890102a658f4cb3e7b2aa13a1f80a3a976b512020c3d1efc418491c48a886b6e481ea56afc6c4cb5eef678f23b2a4e70575e7534eccadf5e30ed2e56eb + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: 10/878880ee78ccdce372784f62f52a272048e2d0827c29ae31e7f99da18b62a2b9463ea03a75f277352f4697c100183debb0532371ad515a2d49d4bfe596dd4c20 + languageName: node + linkType: hard + +"reselect@npm:^5.1.1": + version: 5.1.1 + resolution: "reselect@npm:5.1.1" + checksum: 10/1fdae11a39ed9c8d85a24df19517c8372ee24fefea9cce3fae9eaad8e9cefbba5a3d4940c6fe31296b6addf76e035588c55798f7e6e147e1b7c0855f119e7fa5 + languageName: node + linkType: hard + +"resize-observer-polyfill@npm:^1.5.1": + version: 1.5.1 + resolution: "resize-observer-polyfill@npm:1.5.1" + checksum: 10/e10ee50cd6cf558001de5c6fb03fee15debd011c2f694564b71f81742eef03fb30d6c2596d1d5bf946d9991cb692fcef529b7bd2e4057041377ecc9636c753ce + languageName: node + linkType: hard + +"resolve-alpn@npm:^1.2.0": + version: 1.2.1 + resolution: "resolve-alpn@npm:1.2.1" + checksum: 10/744e87888f0b6fa0b256ab454ca0b9c0b80808715e2ef1f3672773665c92a941f6181194e30ccae4a8cd0adbe0d955d3f133102636d2ee0cca0119fec0bc9aec + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: "npm:^5.0.0" + checksum: 10/546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 + languageName: node + linkType: hard + +"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": + version: 1.0.1 + resolution: "resolve-dir@npm:1.0.1" + dependencies: + expand-tilde: "npm:^2.0.0" + global-modules: "npm:^1.0.0" + checksum: 10/ef736b8ed60d6645c3b573da17d329bfb50ec4e1d6c5ffd6df49e3497acef9226f9810ea6823b8ece1560e01dcb13f77a9f6180d4f242d00cc9a8f4de909c65c + languageName: node + linkType: hard + +"resolve-from@npm:5.0.0, resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10/91eb76ce83621eea7bbdd9b55121a5c1c4a39e54a9ce04a9ad4517f102f8b5131c2cf07622c738a6683991bf54f2ce178f5a42803ecbd527ddc5105f362cc9e3 + languageName: node + linkType: hard + +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10/0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e + languageName: node + linkType: hard + +"resolve.exports@npm:^2.0.0": + version: 2.0.3 + resolution: "resolve.exports@npm:2.0.3" + checksum: 10/536efee0f30a10fac8604e6cdc7844dbc3f4313568d09f06db4f7ed8a5b8aeb8585966fe975083d1f2dfbc87cf5f8bc7ab65a5c23385c14acbb535ca79f8398a + languageName: node + linkType: hard + +"resolve@npm:1.22.8": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753 + languageName: node + linkType: hard + +"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:~1.22.1, resolve@npm:~1.22.2": + version: 1.22.10 + resolution: "resolve@npm:1.22.10" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/0a398b44da5c05e6e421d70108822c327675febb880eebe905587628de401854c61d5df02866ff34fc4cb1173a51c9f0e84a94702738df3611a62e2acdc68181 + languageName: node + linkType: hard + +"resolve@npm:^2.0.0-next.5": + version: 2.0.0-next.5 + resolution: "resolve@npm:2.0.0-next.5" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/2d6fd28699f901744368e6f2032b4268b4c7b9185fd8beb64f68c93ac6b22e52ae13560ceefc96241a665b985edf9ffd393ae26d2946a7d3a07b7007b7d51e79 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A1.22.8#optional!builtin<compat/resolve>": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin<compat/resolve>::version=1.22.8&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A~1.22.1#optional!builtin<compat/resolve>, resolve@patch:resolve@npm%3A~1.22.2#optional!builtin<compat/resolve>": + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin<compat/resolve>::version=1.22.10&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/d4d878bfe3702d215ea23e75e0e9caf99468e3db76f5ca100d27ebdc527366fee3877e54bce7d47cc72ca8952fc2782a070d238bfa79a550eeb0082384c3b81a + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin<compat/resolve>": + version: 2.0.0-next.5 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin<compat/resolve>::version=2.0.0-next.5&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/05fa778de9d0347c8b889eb7a18f1f06bf0f801b0eb4610b4871a4b2f22e220900cf0ad525e94f990bb8d8921c07754ab2122c0c225ab4cdcea98f36e64fa4c2 + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10/f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"ret@npm:^0.2.0": + version: 0.2.2 + resolution: "ret@npm:0.2.2" + checksum: 10/9f16517f77a3b508c529bc22187c132cd7907cd9270601d6794e1c8a58f6990872b4697b4edfdebb4f87017f9f0a285007b740a9ffb8236805b923fd1bc84eb1 + languageName: node + linkType: hard + +"ret@npm:~0.1.10": + version: 0.1.15 + resolution: "ret@npm:0.1.15" + checksum: 10/07c9e7619b4c86053fa57689bf7606b5a40fc1231fc87682424d0b3e296641cc19c218c3b8a8917305fbcca3bfc43038a5b6a63f54755c1bbca2f91857253b03 + languageName: node + linkType: hard + +"retry-request@npm:^7.0.0": + version: 7.0.2 + resolution: "retry-request@npm:7.0.2" + dependencies: + "@types/request": "npm:^2.48.8" + extend: "npm:^3.0.2" + teeny-request: "npm:^9.0.0" + checksum: 10/8f4c927d41dd575fc460aad7b762fb0a33542097201c3c1a31529ad17fa8af3ac0d2a45bf4a2024d079913e9c2dd431566070fe33321c667ac87ebb400de5917 + languageName: node + linkType: hard + +"retry@npm:0.13.1, retry@npm:^0.13.1": + version: 0.13.1 + resolution: "retry@npm:0.13.1" + checksum: 10/6125ec2e06d6e47e9201539c887defba4e47f63471db304c59e4b82fc63c8e89ca06a77e9d34939a9a42a76f00774b2f46c0d4a4cbb3e287268bd018ed69426d + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10/1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6 + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10/14222c9e1d3f9ae01480c50d96057228a8524706db79cdeb5a2ce5bb7070dd9f409a6f84a02cbef8cdc80d39aef86f2dd03d155188a1300c599b05437dcd2ffb + languageName: node + linkType: hard + +"rfc4648@npm:^1.3.0": + version: 1.5.4 + resolution: "rfc4648@npm:1.5.4" + checksum: 10/425ec5a732dad1eed69ebc0217d36e00bd6a3a03dd3da94721bb943d979bb85f4c96e75706437540e726c7cb92ff5c05987ad38b82a1ed9343bb9a6fbfb43224 + languageName: node + linkType: hard + +"rfdc@npm:^1.3.0": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10/2f3d11d3d8929b4bfeefc9acb03aae90f971401de0add5ae6c5e38fec14f0405e6a4aad8fdb76344bfdd20c5193110e3750cbbd28ba86d73729d222b6cf4a729 + languageName: node + linkType: hard + +"rgbcolor@npm:^1.0.1": + version: 1.0.1 + resolution: "rgbcolor@npm:1.0.1" + checksum: 10/afa76637181017e13dfc39debcc41f2f994a1b7c807cc863ba53bc03268ed7a28411094c1008185446b60a9d87131abae392acbe851c96f6dcf9994497019938 + languageName: node + linkType: hard + +"rifm@npm:^0.7.0": + version: 0.7.0 + resolution: "rifm@npm:0.7.0" + dependencies: + "@babel/runtime": "npm:^7.3.1" + peerDependencies: + react: ">=16.8" + checksum: 10/09dee6d18f1446e06b55576cc8b984b636f1351fe7af7b85bc1958fb5f1679128ce536308fd229a6e98bee77751afccd204015bd5c9e8adcc42a712e98c60aa6 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10/063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5 + languageName: node + linkType: hard + +"rimraf@npm:^5.0.5": + version: 5.0.10 + resolution: "rimraf@npm:5.0.10" + dependencies: + glob: "npm:^10.3.7" + bin: + rimraf: dist/esm/bin.mjs + checksum: 10/f3b8ce81eecbde4628b07bdf9e2fa8b684e0caea4999acb1e3b0402c695cd41f28cd075609a808e61ce2672f528ca079f675ab1d8e8d5f86d56643a03e0b8d2e + languageName: node + linkType: hard + +"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": + version: 2.0.2 + resolution: "ripemd160@npm:2.0.2" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + checksum: 10/006accc40578ee2beae382757c4ce2908a826b27e2b079efdcd2959ee544ddf210b7b5d7d5e80467807604244e7388427330f5c6d4cd61e6edaddc5773ccc393 + languageName: node + linkType: hard + +"roarr@npm:^2.15.3": + version: 2.15.4 + resolution: "roarr@npm:2.15.4" + dependencies: + boolean: "npm:^3.0.1" + detect-node: "npm:^2.0.4" + globalthis: "npm:^1.0.1" + json-stringify-safe: "npm:^5.0.1" + semver-compare: "npm:^1.0.0" + sprintf-js: "npm:^1.1.2" + checksum: 10/baaa5ad91468bf1b7f0263c4132a40865c8638a3d0916b44dd0d42980a77fb53085a3792e3edf16fc4eea9e31c719793c88bd45b1623b760763c4dc59df97619 + languageName: node + linkType: hard + +"rollup-plugin-dts@npm:^6.1.0": + version: 6.1.1 + resolution: "rollup-plugin-dts@npm:6.1.1" + dependencies: + "@babel/code-frame": "npm:^7.24.2" + magic-string: "npm:^0.30.10" + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependenciesMeta: + "@babel/code-frame": + optional: true + checksum: 10/8a66833a5af32f77d9bbc746339097d4af2382e5160f7629d85dcecb4efad12cbfebd37c79147fa688f073c333d71f53135e08a225a3fc3e9a3b3f92c46b2381 + languageName: node + linkType: hard + +"rollup-plugin-esbuild@npm:^6.1.1": + version: 6.1.1 + resolution: "rollup-plugin-esbuild@npm:6.1.1" + dependencies: + "@rollup/pluginutils": "npm:^5.0.5" + debug: "npm:^4.3.4" + es-module-lexer: "npm:^1.3.1" + get-tsconfig: "npm:^4.7.2" + peerDependencies: + esbuild: ">=0.18.0" + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + checksum: 10/bba2d1dfb92a193823ac9dd1cdd44a8fd8cd9f25868e9a22ca077e1b7445feb4eaaf6df051148e367fc902d7d59c9f50efab49086c24c367972f05c86f3a656d + languageName: node + linkType: hard + +"rollup-plugin-postcss@npm:^4.0.0": + version: 4.0.2 + resolution: "rollup-plugin-postcss@npm:4.0.2" + dependencies: + chalk: "npm:^4.1.0" + concat-with-sourcemaps: "npm:^1.1.0" + cssnano: "npm:^5.0.1" + import-cwd: "npm:^3.0.0" + p-queue: "npm:^6.6.2" + pify: "npm:^5.0.0" + postcss-load-config: "npm:^3.0.0" + postcss-modules: "npm:^4.0.0" + promise.series: "npm:^0.2.0" + resolve: "npm:^1.19.0" + rollup-pluginutils: "npm:^2.8.2" + safe-identifier: "npm:^0.4.2" + style-inject: "npm:^0.3.0" + peerDependencies: + postcss: 8.x + checksum: 10/ee9485265fe69fde54340d4a324c8de15185c730861176cfd947b34532dc63445da6788dc17f3c641708fa4a87fe832c534bfad678b413bb3b4e2b8bdd292850 + languageName: node + linkType: hard + +"rollup-pluginutils@npm:^2.8.2": + version: 2.8.2 + resolution: "rollup-pluginutils@npm:2.8.2" + dependencies: + estree-walker: "npm:^0.6.1" + checksum: 10/f3dc20a8731523aff43e07fa50ed84857e9dd3ab81e2cfb0351d517c46820e585bfbd1530a5dddec3ac14d61d41eb9bf50b38ded987e558292790331cc5b0628 + languageName: node + linkType: hard + +"rollup@npm:^4.27.3": + version: 4.31.0 + resolution: "rollup@npm:4.31.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.31.0" + "@rollup/rollup-android-arm64": "npm:4.31.0" + "@rollup/rollup-darwin-arm64": "npm:4.31.0" + "@rollup/rollup-darwin-x64": "npm:4.31.0" + "@rollup/rollup-freebsd-arm64": "npm:4.31.0" + "@rollup/rollup-freebsd-x64": "npm:4.31.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.31.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.31.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.31.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.31.0" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.31.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.31.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.31.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.31.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.31.0" + "@rollup/rollup-linux-x64-musl": "npm:4.31.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.31.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.31.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.31.0" + "@types/estree": "npm:1.0.6" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10/4f5fac0a0df7878ca810512c283df0e81b21d42fed262943b412c488a30beceb0149a4be36dbf2750b6c5cbfa4d4cf5097a134266f1425a9e213c2a2a09853fc + languageName: node + linkType: hard + +"rrweb-cssom@npm:^0.8.0": + version: 0.8.0 + resolution: "rrweb-cssom@npm:0.8.0" + checksum: 10/07521ee36fb6569c17906afad1ac7ff8f099d49ade9249e190693ac36cdf27f88d9acf0cc66978935d5d0a23fca105643d7e9125b9a9d91ed9db9e02d31d7d80 + languageName: node + linkType: hard + +"rtl-css-js@npm:^1.16.1": + version: 1.16.1 + resolution: "rtl-css-js@npm:1.16.1" + dependencies: + "@babel/runtime": "npm:^7.1.2" + checksum: 10/fa6a3e1f73e65bf5763b8a051942477a0852ee072d29ebad0999f02556a73715e72374d9a31ddec3fe023b09702b56f8be3a5a0404816e795ab86ea879183e02 + languageName: node + linkType: hard + +"run-applescript@npm:^7.0.0": + version: 7.0.0 + resolution: "run-applescript@npm:7.0.0" + checksum: 10/b02462454d8b182ad4117e5d4626e9e6782eb2072925c9fac582170b0627ae3c1ea92ee9b2df7daf84b5e9ffe14eb1cf5fb70bc44b15c8a0bfcdb47987e2410c + languageName: node + linkType: hard + +"run-async@npm:^2.4.0": + version: 2.4.1 + resolution: "run-async@npm:2.4.1" + checksum: 10/c79551224dafa26ecc281cb1efad3510c82c79116aaf681f8a931ce70fdf4ca880d58f97d3b930a38992c7aad7955a08e065b32ec194e1dd49d7790c874ece50 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9, run-parallel@npm:^1.2.0": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rxjs@npm:7.8.1, rxjs@npm:^7.5.5": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/b10cac1a5258f885e9dd1b70d23c34daeb21b61222ee735d2ec40a8685bdca40429000703a44f0e638c27a684ac139e1c37e835d2a0dc16f6fc061a138ae3abb + languageName: node + linkType: hard + +"rxjs@npm:^6.6.3": + version: 6.6.7 + resolution: "rxjs@npm:6.6.7" + dependencies: + tslib: "npm:^1.9.0" + checksum: 10/c8263ebb20da80dd7a91c452b9e96a178331f402344bbb40bc772b56340fcd48d13d1f545a1e3d8e464893008c5e306cc42a1552afe0d562b1a6d4e1e6262b03 + languageName: node + linkType: hard + +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: "npm:^1.1.0" + checksum: 10/1c67ba03c94083e0ae307ff5564ecb86c2104c0f558042fdaa40ea0054f91a63a9783f14069870f2f784336adabb70f90f22a84dc457b5a25e859aaadefe0910 + languageName: node + linkType: hard + +"safari-14-idb-fix@npm:^1.0.6": + version: 1.0.6 + resolution: "safari-14-idb-fix@npm:1.0.6" + checksum: 10/90ea958b47209d689f65852c378dbb0c27e5eaeae77284bcfc4edb636b74da56adecf0435e4827b552944510ac65021a4457ec0bb9fdf1e348248a5e00bfe65b + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + has-symbols: "npm:^1.1.0" + isarray: "npm:^2.0.5" + checksum: 10/fac4f40f20a3f7da024b54792fcc61059e814566dcbb04586bfefef4d3b942b2408933f25b7b3dd024affd3f2a6bbc916bef04807855e4f192413941369db864 + languageName: node + linkType: hard + +"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: 10/7eb5b48f2ed9a594a4795677d5a150faa7eb54483b2318b568dc0c4fc94092a6cce5be02c7288a0500a156282f5276d5688bce7259299568d1053b2150ef374a + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 + languageName: node + linkType: hard + +"safe-identifier@npm:^0.4.2": + version: 0.4.2 + resolution: "safe-identifier@npm:0.4.2" + checksum: 10/c2697c0d2fe128aa5f5faa7bd3ccf02d06ba937cdff9b2f65afb247e222a1505fc414a3b6a04d2a6a71bb5a84b8bc345edc408fabc8afc498f04e367ddc02366 + languageName: node + linkType: hard + +"safe-push-apply@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-push-apply@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + isarray: "npm:^2.0.5" + checksum: 10/2bd4e53b6694f7134b9cf93631480e7fafc8637165f0ee91d5a4af5e7f33d37de9562d1af5021178dd4217d0230cde8d6530fa28cfa1ebff9a431bf8fff124b4 + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.2.1" + checksum: 10/ebdb61f305bf4756a5b023ad86067df5a11b26898573afe9e52a548a63c3bd594825d9b0e2dde2eb3c94e57e0e04ac9929d4107c394f7b8e56a4613bed46c69a + languageName: node + linkType: hard + +"safe-stable-stringify@npm:^1.1": + version: 1.1.1 + resolution: "safe-stable-stringify@npm:1.1.1" + checksum: 10/bddfc2334dfa68a7f976c2b57c0ce83c087b032abdd150a24f3ca9fe19b43accfa9634d04587a7fb3d7636bc6c3d728dda1311ad43eb85bb95793a707fb127ac + languageName: node + linkType: hard + +"safe-stable-stringify@npm:^2.2.0, safe-stable-stringify@npm:^2.3.1": + version: 2.5.0 + resolution: "safe-stable-stringify@npm:2.5.0" + checksum: 10/2697fa186c17c38c3ca5309637b4ac6de2f1c3d282da27cd5e1e3c88eca0fb1f9aea568a6aabdf284111592c8782b94ee07176f17126031be72ab1313ed46c5c + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83 + languageName: node + linkType: hard + +"sax@npm:>=0.6.0": + version: 1.4.1 + resolution: "sax@npm:1.4.1" + checksum: 10/b1c784b545019187b53a0c28edb4f6314951c971e2963a69739c6ce222bfbc767e54d320e689352daba79b7d5e06d22b5d7113b99336219d6e93718e2f99d335 + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: "npm:^2.2.0" + checksum: 10/97b50daf6ca3a153e89842efa18a862e446248296622b7473c169c84c823ee8a16e4a43bac2f73f11fc8cb9168c73fbb0d73340f26552bac17970e9052367aa9 + languageName: node + linkType: hard + +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9 + languageName: node + linkType: hard + +"schema-utils@npm:2.7.0": + version: 2.7.0 + resolution: "schema-utils@npm:2.7.0" + dependencies: + "@types/json-schema": "npm:^7.0.4" + ajv: "npm:^6.12.2" + ajv-keywords: "npm:^3.4.1" + checksum: 10/e5afb6ecf8e9c63ce5f964cd8f2a2e7bdc8c3a63f6bc7dd5cfdc475aa90c1b9ade1555a749519c1673a0bfa203a12e04499e7d6d956163f8e7a77aaa3f12935c + languageName: node + linkType: hard + +"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": "npm:^7.0.8" + ajv: "npm:^6.12.5" + ajv-keywords: "npm:^3.5.2" + checksum: 10/2c7bbb1da967fdfd320e6cea538949006ec6e8c13ea560a4f94ff2c56809a8486fa5ec419e023452501a6befe1ca381e409c2798c24f4993c7c4094d97fdb258 + languageName: node + linkType: hard + +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0, schema-utils@npm:^4.3.0": + version: 4.3.0 + resolution: "schema-utils@npm:4.3.0" + dependencies: + "@types/json-schema": "npm:^7.0.9" + ajv: "npm:^8.9.0" + ajv-formats: "npm:^2.1.1" + ajv-keywords: "npm:^5.1.0" + checksum: 10/86c5a7c72a275c56f140bc3cdd832d56efb11428c88ad588127db12cb9b2c83ccaa9540e115d7baa9c6175b5e360094457e29c44e6fb76787c9498c2eb6df5d6 + languageName: node + linkType: hard + +"screenfull@npm:^5.1.0": + version: 5.2.0 + resolution: "screenfull@npm:5.2.0" + checksum: 10/b8b4b8010f48889341ad1981ca9e6e02db1f10dec686244d95bd2bfde47451059f5ba4c744449913b10f021f14f79d374987a873b6086eb488295962ba50381e + languageName: node + linkType: hard + +"select-hose@npm:^2.0.0": + version: 2.0.0 + resolution: "select-hose@npm:2.0.0" + checksum: 10/08cdd629a394d20e9005e7956f0624307c702cf950cc0458953e9b87ea961d3b1b72ac02266bdb93ac1eec4fcf42b41db9cabe93aa2b7683d71513d133c44fb5 + languageName: node + linkType: hard + +"selfsigned@npm:^2.0.0, selfsigned@npm:^2.4.1": + version: 2.4.1 + resolution: "selfsigned@npm:2.4.1" + dependencies: + "@types/node-forge": "npm:^1.3.0" + node-forge: "npm:^1" + checksum: 10/52536623f1cfdeb2f8b9198377f2ce7931c677ea69421238d1dc1ea2983bbe258e56c19e7d1af87035cad7270f19b7e996eaab1212e724d887722502f68e17f2 + languageName: node + linkType: hard + +"semver-compare@npm:^1.0.0": + version: 1.0.0 + resolution: "semver-compare@npm:1.0.0" + checksum: 10/75f9c7a7786d1756f64b1429017746721e07bd7691bdad6368f7643885d3a98a27586777e9699456564f4844b407e9f186cc1d588a3f9c0be71310e517e942c3 + languageName: node + linkType: hard + +"semver@npm:7.6.3, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10 + languageName: node + linkType: hard + +"semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e + languageName: node + linkType: hard + +"semver@npm:~7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: "npm:^6.0.0" + bin: + semver: bin/semver.js + checksum: 10/985dec0d372370229a262c737063860fabd4a1c730662c1ea3200a2f649117761a42184c96df62a0e885e76fbd5dace41087d6c1ac0351b13c0df5d6bcb1b5ac + languageName: node + linkType: hard + +"send@npm:0.19.0": + version: 0.19.0 + resolution: "send@npm:0.19.0" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10/1f6064dea0ae4cbe4878437aedc9270c33f2a6650a77b56a16b62d057527f2766d96ee282997dd53ec0339082f2aad935bc7d989b46b48c82fc610800dc3a1d0 + languageName: node + linkType: hard + +"seq-queue@npm:^0.0.5": + version: 0.0.5 + resolution: "seq-queue@npm:0.0.5" + checksum: 10/fa302e3b2aaece644532603ae42d675f9b8750e395a98740dd58dc5e02985ce6f0c2b78715b5984d6f6a807893735a14212a70d6ec591e6fba410397269588a0 + languageName: node + linkType: hard + +"serialize-error@npm:^7.0.1": + version: 7.0.1 + resolution: "serialize-error@npm:7.0.1" + dependencies: + type-fest: "npm:^0.13.1" + checksum: 10/e0aba4dca2fc9fe74ae1baf38dbd99190e1945445a241ba646290f2176cdb2032281a76443b02ccf0caf30da5657d510746506368889a593b9835a497fc0732e + languageName: node + linkType: hard + +"serialize-error@npm:^8.0.1, serialize-error@npm:^8.1.0": + version: 8.1.0 + resolution: "serialize-error@npm:8.1.0" + dependencies: + type-fest: "npm:^0.20.2" + checksum: 10/2eef236d50edd2d7926e602c14fb500dc3a125ee52e9f08f67033181b8e0be5d1122498bdf7c23c80683cddcad083a27974e9e7111ce23165f4d3bcdd6d65102 + languageName: node + linkType: hard + +"serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: "npm:^2.1.0" + checksum: 10/445a420a6fa2eaee4b70cbd884d538e259ab278200a2ededd73253ada17d5d48e91fb1f4cd224a236ab62ea7ba0a70c6af29fc93b4f3d3078bf7da1c031fde58 + languageName: node + linkType: hard + +"serve-index@npm:^1.9.1": + version: 1.9.1 + resolution: "serve-index@npm:1.9.1" + dependencies: + accepts: "npm:~1.3.4" + batch: "npm:0.6.1" + debug: "npm:2.6.9" + escape-html: "npm:~1.0.3" + http-errors: "npm:~1.6.2" + mime-types: "npm:~2.1.17" + parseurl: "npm:~1.3.2" + checksum: 10/2adce2878d7e30f197e66f30e39f4a404d9ae39295c0c13849bb25e7cf976b93e883204739efd1510559588bed56f8101e32191cbe75f374c6e1e803852194cb + languageName: node + linkType: hard + +"serve-static@npm:1.16.2": + version: 1.16.2 + resolution: "serve-static@npm:1.16.2" + dependencies: + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.3" + send: "npm:0.19.0" + checksum: 10/7fa9d9c68090f6289976b34fc13c50ac8cd7f16ae6bce08d16459300f7fc61fbc2d7ebfa02884c073ec9d6ab9e7e704c89561882bbe338e99fcacb2912fde737 + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.2": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 + languageName: node + linkType: hard + +"set-harmonic-interval@npm:^1.0.1": + version: 1.0.1 + resolution: "set-harmonic-interval@npm:1.0.1" + checksum: 10/14b9ce98625af9e0d80165a5c8ceb76ce1206df641197e020780e570f268f5427961138d3f47591962e2626b498a051a4488eaa646e5473373f843d7e9e468d4 + languageName: node + linkType: hard + +"set-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "set-proto@npm:1.0.0" + dependencies: + dunder-proto: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + checksum: 10/b87f8187bca595ddc3c0721ece4635015fd9d7cb294e6dd2e394ce5186a71bbfa4dc8a35010958c65e43ad83cde09642660e61a952883c24fd6b45ead15f045c + languageName: node + linkType: hard + +"set-value@npm:^4.1.0": + version: 4.1.0 + resolution: "set-value@npm:4.1.0" + dependencies: + is-plain-object: "npm:^2.0.4" + is-primitive: "npm:^3.0.1" + checksum: 10/67eebb0d78be89242478daf8ab5357c59a35add1d7bdccdb56236e6004128a79bdf298c952e286b60b63ed17b24dcdb399734fbdacc9b76e7fd2e3e01546a42e + languageName: node + linkType: hard + +"setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": + version: 1.0.5 + resolution: "setimmediate@npm:1.0.5" + checksum: 10/76e3f5d7f4b581b6100ff819761f04a984fa3f3990e72a6554b57188ded53efce2d3d6c0932c10f810b7c59414f85e2ab3c11521877d1dea1ce0b56dc906f485 + languageName: node + linkType: hard + +"setprototypeof@npm:1.1.0": + version: 1.1.0 + resolution: "setprototypeof@npm:1.1.0" + checksum: 10/02d2564e02a260551bab3ec95358dcfde775fe61272b1b7c488de3676a4bb79f280b5668a324aebe0ec73f0d8ba408bc2d816a609ee5d93b1a7936b9d4ba1208 + languageName: node + linkType: hard + +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e + languageName: node + linkType: hard + +"sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8, sha.js@npm:^2.4.9": + version: 2.4.11 + resolution: "sha.js@npm:2.4.11" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + bin: + sha.js: ./bin.js + checksum: 10/d833bfa3e0a67579a6ce6e1bc95571f05246e0a441dd8c76e3057972f2a3e098465687a4369b07e83a0375a88703577f71b5b2e966809e67ebc340dbedb478c7 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1": + version: 1.8.2 + resolution: "shell-quote@npm:1.8.2" + checksum: 10/3ae4804fd80a12ba07650d0262804ae3b479a62a6b6971a6dc5fa12995507aa63d3de3e6a8b7a8d18f4ce6eb118b7d75db7fcb2c0acbf016f210f746b10cfe02 + languageName: node + linkType: hard + +"short-unique-id@npm:^5.0.2": + version: 5.2.0 + resolution: "short-unique-id@npm:5.2.0" + bin: + short-unique-id: bin/short-unique-id + suid: bin/short-unique-id + checksum: 10/a5a99a69bcc1b1c6b2ac285480ef35c1861f4185488c975a6009809d684d65fb3b94e99a9ffef6a81a2adbe8be62d1aa1dd32853b85ed0a5dcd8f84232f2c11f + languageName: node + linkType: hard + +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 10/603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 10/5771861f77feefe44f6195ed077a9e4f389acc188f895f570d56445e251b861754b547ea9ef73ecee4e01fdada6568bfe9020d2ec2dfc5571e9fa1bbc4a10615 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: 10/a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6, side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10/7d53b9db292c6262f326b6ff3bc1611db84ece36c2c7dc0e937954c13c73185b0406c56589e2bb8d071d6fee468e14c39fb5d203ee39be66b7b8174f179afaba + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f + languageName: node + linkType: hard + +"simple-concat@npm:^1.0.0": + version: 1.0.1 + resolution: "simple-concat@npm:1.0.1" + checksum: 10/4d211042cc3d73a718c21ac6c4e7d7a0363e184be6a5ad25c8a1502e49df6d0a0253979e3d50dbdd3f60ef6c6c58d756b5d66ac1e05cda9cacd2e9fc59e3876a + languageName: node + linkType: hard + +"simple-eval@npm:1.0.1": + version: 1.0.1 + resolution: "simple-eval@npm:1.0.1" + dependencies: + jsep: "npm:^1.3.6" + checksum: 10/280207cfe4538c500f6b41e4d88576cf250337b0042bec8f9f5cf025b3a70e07974e522edd01e69d378767dd73068765d4f46ad55db5c94943c8f3585bff95af + languageName: node + linkType: hard + +"simple-get@npm:^4.0.0, simple-get@npm:^4.0.1": + version: 4.0.1 + resolution: "simple-get@npm:4.0.1" + dependencies: + decompress-response: "npm:^6.0.0" + once: "npm:^1.3.1" + simple-concat: "npm:^1.0.0" + checksum: 10/93f1b32319782f78f2f2234e9ce34891b7ab6b990d19d8afefaa44423f5235ce2676aae42d6743fecac6c8dfff4b808d4c24fe5265be813d04769917a9a44f36 + languageName: node + linkType: hard + +"simple-swizzle@npm:^0.2.2": + version: 0.2.2 + resolution: "simple-swizzle@npm:0.2.2" + dependencies: + is-arrayish: "npm:^0.3.1" + checksum: 10/c6dffff17aaa383dae7e5c056fbf10cf9855a9f79949f20ee225c04f06ddde56323600e0f3d6797e82d08d006e93761122527438ee9531620031c08c9e0d73cc + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: 10/aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10/927484aa0b1640fd9473cee3e0a0bcad6fce93fd7bbc18bac9ad0c33686f5d2e2c422fba24b5899c184524af01e11dd2bd051c2bf2b07e47aff8ca72cbfc60d2 + languageName: node + linkType: hard + +"smol-toml@npm:^1.3.1": + version: 1.3.1 + resolution: "smol-toml@npm:1.3.1" + checksum: 10/b999828ea46cf44ae90b6293884d6a139dfb4545ac6f86cbd1002568a943a43d8895ad82413855d095eec0c0bc21d23413c0a25a26c7fad6395c2ce42c2fdbd0 + languageName: node + linkType: hard + +"smtp-address-parser@npm:1.0.10": + version: 1.0.10 + resolution: "smtp-address-parser@npm:1.0.10" + dependencies: + nearley: "npm:^2.20.1" + checksum: 10/73d49712450ccd2b77ec3642e26f73fb7b3ed5b46c416d60714e2b9821e3378c3cf6b44767371d8be42286cfeae63e4c369384ef5bb3eeb42568264cbb330626 + languageName: node + linkType: hard + +"sockjs@npm:^0.3.24": + version: 0.3.24 + resolution: "sockjs@npm:0.3.24" + dependencies: + faye-websocket: "npm:^0.11.3" + uuid: "npm:^8.3.2" + websocket-driver: "npm:^0.7.4" + checksum: 10/36312ec9772a0e536b69b72e9d1c76bd3d6ecf885c5d8fd6e59811485c916b8ce75f46ec57532f436975815ee14aa9a0e22ae3d9e5c0b18ea37b56d0aaaf439c + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: "npm:^6.0.2" + debug: "npm:^4.3.3" + socks: "npm:^2.6.2" + checksum: 10/26c75d9c62a9ed3fd494df60e65e88da442f78e0d4bc19bfd85ac37bd2c67470d6d4bba5202e804561cda6674db52864c9e2a2266775f879bc8d89c1445a5f4c + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.2, socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.5": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10/ee99e1dacab0985b52cbe5a75640be6e604135e9489ebdc3048635d186012fbaecc20fbbe04b177dee434c319ba20f09b3e7dfefb7d932466c0d707744eac05c + languageName: node + linkType: hard + +"socks@npm:^2.6.2, socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10/ffcb622c22481dfcd7589aae71fbfd71ca34334064d181df64bf8b7feaeee19706aba4cffd1de35cc7bbaeeaa0af96be2d7f40fcbc7bc0ab69533a7ae9ffc4fb + languageName: node + linkType: hard + +"sonic-boom@npm:^0.7.5": + version: 0.7.7 + resolution: "sonic-boom@npm:0.7.7" + dependencies: + atomic-sleep: "npm:^1.0.0" + flatstr: "npm:^1.0.12" + checksum: 10/7d3e44cee6c311b9a0b944c90b171667183571a4391fba585930dbcf377248ada64aec70d8c9e6e355e89b54f5b5b96af4428beb6df8b612b9108814a41492b2 + languageName: node + linkType: hard + +"sorted-array-functions@npm:^1.3.0": + version: 1.3.0 + resolution: "sorted-array-functions@npm:1.3.0" + checksum: 10/673fd39ca3b6c92644d4483eac1700bb7d7555713a536822a7522a35af559bef3e72f10d89356b75042dc394cd7c2e2ab6f40024385218ec3c85bb7335032857 + languageName: node + linkType: hard + +"source-list-map@npm:^2.0.0": + version: 2.0.1 + resolution: "source-list-map@npm:2.0.1" + checksum: 10/3918ffba5fe8447bc816800026fe707aab233d9d05a3487225d880e23b7e37ed455b4e1b844e05644f6ecc7c9b837c0cc32da54dd37f77c993370ebcdb049246 + languageName: node + linkType: hard + +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3 + languageName: node + linkType: hard + +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10/d1514a922ac9c7e4786037eeff6c3322f461cd25da34bb9fefb15387b3490531774e6e31d95ab6d5b84a3e139af9c3a570ccaee6b47bd7ea262691ed3a8bc34e + languageName: node + linkType: hard + +"source-map-support@npm:~0.5.20": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207 + languageName: node + linkType: hard + +"source-map@npm:0.5.6": + version: 0.5.6 + resolution: "source-map@npm:0.5.6" + checksum: 10/c62fe98e106c762307eea3a982242c1a76a31bc762da10fe2dda12252d423c163e0cd45d313330c8bd040cc5121702511138252308f72b8a9273825e81e4db30 + languageName: node + linkType: hard + +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 10/9b4ac749ec5b5831cad1f8cc4c19c4298ebc7474b24a0acf293e2f040f03f8eeccb3d01f12aa0f90cf46d555c887e03912b83a042c627f419bda5152d89c5269 + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff + languageName: node + linkType: hard + +"source-map@npm:^0.7.3": + version: 0.7.4 + resolution: "source-map@npm:0.7.4" + checksum: 10/a0f7c9b797eda93139842fd28648e868a9a03ea0ad0d9fa6602a0c1f17b7fb6a7dcca00c144476cccaeaae5042e99a285723b1a201e844ad67221bf5d428f1dc + languageName: node + linkType: hard + +"space-separated-tokens@npm:^1.0.0": + version: 1.1.5 + resolution: "space-separated-tokens@npm:1.1.5" + checksum: 10/8ef68f1cfa8ccad316b7f8d0df0919d0f1f6d32101e8faeee34ea3a923ce8509c1ad562f57388585ee4951e92d27afa211ed0a077d3d5995b5ba9180331be708 + languageName: node + linkType: hard + +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 10/202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 + languageName: node + linkType: hard + +"spawn-command@npm:^0.0.2-1": + version: 0.0.2 + resolution: "spawn-command@npm:0.0.2" + checksum: 10/f13e8c3c63abd4a0b52fb567eba5f7940d480c5ed3ec61781d38a1850f179b1196c39e6efa2bbd301f82c1bf1cd7807abc8fbd8fc8e44bcaa3975a124c0d1657 + languageName: node + linkType: hard + +"spawndamnit@npm:^3.0.1": + version: 3.0.1 + resolution: "spawndamnit@npm:3.0.1" + dependencies: + cross-spawn: "npm:^7.0.5" + signal-exit: "npm:^4.0.1" + checksum: 10/47d88a7f1e5691e13e435eddc3d34123c2f7746e2853e91bfac5ea7c6e3bb4b1d1995223b25f7a8745871510d92f63ecd3c9fa02aa2896ac0c79fb618eb08bbe + languageName: node + linkType: hard + +"spdy-transport@npm:^3.0.0": + version: 3.0.0 + resolution: "spdy-transport@npm:3.0.0" + dependencies: + debug: "npm:^4.1.0" + detect-node: "npm:^2.0.4" + hpack.js: "npm:^2.1.6" + obuf: "npm:^1.1.2" + readable-stream: "npm:^3.0.6" + wbuf: "npm:^1.7.3" + checksum: 10/b93b606b209ca785456bd850b8925f21a76522ee5b46701235ecff3eba17686560c27575f91863842dc843a39772f6d2f5a8755df9eaff0924d20598df18828d + languageName: node + linkType: hard + +"spdy@npm:^4.0.2": + version: 4.0.2 + resolution: "spdy@npm:4.0.2" + dependencies: + debug: "npm:^4.1.0" + handle-thing: "npm:^2.0.0" + http-deceiver: "npm:^1.2.7" + select-hose: "npm:^2.0.0" + spdy-transport: "npm:^3.0.0" + checksum: 10/d29b89e48e7d762e505a2f83b1bc2c92268bd518f1b411864ab42a9e032e387d10467bbce0d8dbf8647bf4914a063aa1d303dff85e248f7a57f81a7b18ac34ef + languageName: node + linkType: hard + +"split-ca@npm:^1.0.1": + version: 1.0.1 + resolution: "split-ca@npm:1.0.1" + checksum: 10/1e7409938a95ee843fe2593156a5735e6ee63772748ee448ea8477a5a3e3abde193c3325b3696e56a5aff07c7dcf6b1f6a2f2a036895b4f3afe96abb366d893f + languageName: node + linkType: hard + +"split2@npm:^3.0.0": + version: 3.2.2 + resolution: "split2@npm:3.2.2" + dependencies: + readable-stream: "npm:^3.0.0" + checksum: 10/a426e1e6718e2f7e50f102d5ec3525063d885e3d9cec021a81175fd3497fdb8b867a89c99e70bef4daeef4f2f5e544f7b92df8c1a30b4254e10a9cfdcc3dae87 + languageName: node + linkType: hard + +"split2@npm:^4.1.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 10/09bbefc11bcf03f044584c9764cd31a252d8e52cea29130950b26161287c11f519807c5e54bd9e5804c713b79c02cefe6a98f4688630993386be353e03f534ab + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.2, sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10/e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 10/c34828732ab8509c2741e5fd1af6b767c3daf2c642f267788f933a65b1614943c282e74c4284f4fa749c264b18ee016a0d37a3e5b73aee446da46277d3a85daa + languageName: node + linkType: hard + +"sqlstring@npm:^2.3.2": + version: 2.3.3 + resolution: "sqlstring@npm:2.3.3" + checksum: 10/4e5a25af2d77a031fe00694034bf9fd822ddc3a483c9383124b120aa6b9ae9ab71e173cd29fba9c653998ebfef9e97be668957839960b9b3dc1afcb45f1ddb64 + languageName: node + linkType: hard + +"ssh-remote-port-forward@npm:^1.0.4": + version: 1.0.4 + resolution: "ssh-remote-port-forward@npm:1.0.4" + dependencies: + "@types/ssh2": "npm:^0.5.48" + ssh2: "npm:^1.4.0" + checksum: 10/c6c04c5ddfde7cb06e9a8655a152bd28fe6771c6fe62ff0bc08be229491546c410f30b153c968b8d6817a57d38678a270c228f30143ec0fe1be546efc4f6b65a + languageName: node + linkType: hard + +"ssh2@npm:^1.11.0, ssh2@npm:^1.15.0, ssh2@npm:^1.4.0": + version: 1.16.0 + resolution: "ssh2@npm:1.16.0" + dependencies: + asn1: "npm:^0.2.6" + bcrypt-pbkdf: "npm:^1.0.2" + cpu-features: "npm:~0.0.10" + nan: "npm:^2.20.0" + dependenciesMeta: + cpu-features: + optional: true + nan: + optional: true + checksum: 10/0951c22d9c5a0e3b89a8e5ae890ebcbce9f1f94dbed37d1490e4e48e26bc8b074fa81f202ee57b708e31b5f33033f4c870b92047f4f02b6bc26c32225b01d84c + languageName: node + linkType: hard + +"sshpk@npm:^1.7.0": + version: 1.18.0 + resolution: "sshpk@npm:1.18.0" + dependencies: + asn1: "npm:~0.2.3" + assert-plus: "npm:^1.0.0" + bcrypt-pbkdf: "npm:^1.0.0" + dashdash: "npm:^1.12.0" + ecc-jsbn: "npm:~0.1.1" + getpass: "npm:^0.1.1" + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.0.2" + tweetnacl: "npm:~0.14.0" + bin: + sshpk-conv: bin/sshpk-conv + sshpk-sign: bin/sshpk-sign + sshpk-verify: bin/sshpk-verify + checksum: 10/858339d43e3c6b6a848772a66f69442ce74f1a37655d9f35ba9d1f85329499ff0000af9f8ab83dbb39ad24c0c370edabe0be1e39863f70c6cded9924b8458c34 + languageName: node + linkType: hard + +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/7024c1a6e39b3f18aa8f1c8290e884fe91b0f9ca5a6c6d410544daad54de0ba664db879afe16412e187c6c292fd60b937f047ee44292e5c2af2dcc6d8e1a9b48 + languageName: node + linkType: hard + +"stable@npm:^0.1.8": + version: 0.1.8 + resolution: "stable@npm:0.1.8" + checksum: 10/2ff482bb100285d16dd75cd8f7c60ab652570e8952c0bfa91828a2b5f646a0ff533f14596ea4eabd48bb7f4aeea408dce8f8515812b975d958a4cc4fa6b9dfeb + languageName: node + linkType: hard + +"stack-generator@npm:^2.0.5": + version: 2.0.10 + resolution: "stack-generator@npm:2.0.10" + dependencies: + stackframe: "npm:^1.3.4" + checksum: 10/4fc3978a934424218a0aa9f398034e1f78153d5ff4f4ff9c62478c672debb47dd58de05b09fc3900530cbb526d72c93a6e6c9353bacc698e3b1c00ca3dda0c47 + languageName: node + linkType: hard + +"stack-trace@npm:0.0.x": + version: 0.0.10 + resolution: "stack-trace@npm:0.0.10" + checksum: 10/7bd633f0e9ac46e81a0b0fe6538482c1d77031959cf94478228731709db4672fbbed59176f5b9a9fd89fec656b5dae03d084ef2d1b0c4c2f5683e05f2dbb1405 + languageName: node + linkType: hard + +"stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: "npm:^2.0.0" + checksum: 10/cdc988acbc99075b4b036ac6014e5f1e9afa7e564482b687da6384eee6a1909d7eaffde85b0a17ffbe186c5247faf6c2b7544e802109f63b72c7be69b13151bb + languageName: node + linkType: hard + +"stackblur-canvas@npm:^2.0.0": + version: 2.7.0 + resolution: "stackblur-canvas@npm:2.7.0" + checksum: 10/ad20aa886f5141c69b682cb8dd88ee04822f7dfa9f566d0657cf8fa43f5dd69122fe42dbc7071d44f655da89784756d34705b12d03f1c1f928325a55c698ab51 + languageName: node + linkType: hard + +"stackframe@npm:^1.3.4": + version: 1.3.4 + resolution: "stackframe@npm:1.3.4" + checksum: 10/29ca71c1fd17974c1c178df0236b1407bc65f6ea389cc43dec000def6e42ff548d4453de9a85b76469e2ae2b2abdd802c6b6f3db947c05794efbd740d1cf4121 + languageName: node + linkType: hard + +"stacktrace-gps@npm:^3.0.4": + version: 3.1.2 + resolution: "stacktrace-gps@npm:3.1.2" + dependencies: + source-map: "npm:0.5.6" + stackframe: "npm:^1.3.4" + checksum: 10/21cb60ce0990f7a661e964cf4bdef1e70dda2286fb628fbd0fd1e69e8925138433d08ed84969de2d396b3b91515e15336a502f777c26587db89f3933d6f63f9b + languageName: node + linkType: hard + +"stacktrace-js@npm:^2.0.2": + version: 2.0.2 + resolution: "stacktrace-js@npm:2.0.2" + dependencies: + error-stack-parser: "npm:^2.0.6" + stack-generator: "npm:^2.0.5" + stacktrace-gps: "npm:^3.0.4" + checksum: 10/e5f60a09852687e4a9206927fe1078e24d63e00a71a2dcddd67940e9504a54931a3454439d5b4e3e0e62aeb979be810573e8d3332fbef0dbfa335a8781b4b57c + languageName: node + linkType: hard + +"standard-as-callback@npm:^2.1.0": + version: 2.1.0 + resolution: "standard-as-callback@npm:2.1.0" + checksum: 10/88bec83ee220687c72d94fd86a98d5272c91d37ec64b66d830dbc0d79b62bfa6e47f53b71646011835fc9ce7fae62739545d13124262b53be4fbb3e2ebad551c + languageName: node + linkType: hard + +"static-eval@npm:2.0.2": + version: 2.0.2 + resolution: "static-eval@npm:2.0.2" + dependencies: + escodegen: "npm:^1.8.1" + checksum: 10/2e2faf1b23bad5d9d5b2407b18945c7b97f8706b6d65f06bb3583a2d4fd1994cf5890c5779a1bfa2a02905dc860e077e4f045d7413d289d8993f605758f8992f + languageName: node + linkType: hard + +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 10/18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + languageName: node + linkType: hard + +"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0, statuses@npm:~1.5.0": + version: 1.5.0 + resolution: "statuses@npm:1.5.0" + checksum: 10/c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c + languageName: node + linkType: hard + +"stop-iteration-iterator@npm:^1.0.0": + version: 1.1.0 + resolution: "stop-iteration-iterator@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + internal-slot: "npm:^1.1.0" + checksum: 10/ff36c4db171ee76c936ccfe9541946b77017f12703d4c446652017356816862d3aa029a64e7d4c4ceb484e00ed4a81789333896390d808458638f3a216aa1f41 + languageName: node + linkType: hard + +"stoppable@npm:^1.1.0": + version: 1.1.0 + resolution: "stoppable@npm:1.1.0" + checksum: 10/63104fcbdece130bc4906fd982061e763d2ef48065ed1ab29895e5ad00552c625f8a4c50c9cd2e3bfa805c8a2c3bfdda0f07c5ae39694bd2d5cb0bee1618d1e9 + languageName: node + linkType: hard + +"stream-browserify@npm:3.0.0": + version: 3.0.0 + resolution: "stream-browserify@npm:3.0.0" + dependencies: + inherits: "npm:~2.0.4" + readable-stream: "npm:^3.5.0" + checksum: 10/05a3cd0a0ce2d568dbdeb69914557c26a1b0a9d871839666b692eae42b96189756a3ed685affc90dab64ff588a8524c8aec6d85072c07905a1f0d941ea68f956 + languageName: node + linkType: hard + +"stream-browserify@npm:^2.0.1": + version: 2.0.2 + resolution: "stream-browserify@npm:2.0.2" + dependencies: + inherits: "npm:~2.0.1" + readable-stream: "npm:^2.0.2" + checksum: 10/aeb28368310162210f011eb7c73fdf455c22f226de9f95d600bd0616afbeba7bca8e47524f404695765732a9431115585e16b61b3cfa9c8c5770d7baa2467be3 + languageName: node + linkType: hard + +"stream-buffers@npm:^3.0.2": + version: 3.0.3 + resolution: "stream-buffers@npm:3.0.3" + checksum: 10/8a1d5ea656fc8c3ed8daaf18e0f3755829683912c4a182f47360480f29c4757fe558518a9f5375075c71578fa1a3f18d72a0270f90fbf5288b6f119f347b156f + languageName: node + linkType: hard + +"stream-events@npm:^1.0.5": + version: 1.0.5 + resolution: "stream-events@npm:1.0.5" + dependencies: + stubs: "npm:^3.0.0" + checksum: 10/969ce82e34bfbef5734629cc06f9d7f3705a9ceb8fcd6a526332f9159f1f8bbfdb1a453f3ced0b728083454f7706adbbe8428bceb788a0287ca48ba2642dc3fc + languageName: node + linkType: hard + +"stream-http@npm:^2.7.2": + version: 2.8.3 + resolution: "stream-http@npm:2.8.3" + dependencies: + builtin-status-codes: "npm:^3.0.0" + inherits: "npm:^2.0.1" + readable-stream: "npm:^2.3.6" + to-arraybuffer: "npm:^1.0.0" + xtend: "npm:^4.0.0" + checksum: 10/b8ecb9c05f2fa7a6def0747ae5837d3290a5fa5c08c5f29def96cceda0b4a7e4d30faedbe287d272512fe6604268b571fdc883361dc01ad50fe31f58bb1770f4 + languageName: node + linkType: hard + +"stream-shift@npm:^1.0.0, stream-shift@npm:^1.0.2": + version: 1.0.3 + resolution: "stream-shift@npm:1.0.3" + checksum: 10/a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242 + languageName: node + linkType: hard + +"streamroller@npm:^3.1.5": + version: 3.1.5 + resolution: "streamroller@npm:3.1.5" + dependencies: + date-format: "npm:^4.0.14" + debug: "npm:^4.3.4" + fs-extra: "npm:^8.1.0" + checksum: 10/2e4fe61ab91d24e6a9add67418ca9b8e19bc49f4037e1f8b7ae2e480a1d7750423f470d111d138d921a538ae4777c4eb15b00f9cc2a0d4fd72829687889b0c63 + languageName: node + linkType: hard + +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 10/612c2b2a7dbcc859f74597112f80a42cbe4d448d03da790d5b7b39673c1197dd3789e91cd67210353e58857395d32c1e955a9041c4e6d5bae723436b3ed9ed14 + languageName: node + linkType: hard + +"streamx@npm:^2.15.0, streamx@npm:^2.21.0": + version: 2.21.1 + resolution: "streamx@npm:2.21.1" + dependencies: + bare-events: "npm:^2.2.0" + fast-fifo: "npm:^1.3.2" + queue-tick: "npm:^1.0.1" + text-decoder: "npm:^1.1.0" + dependenciesMeta: + bare-events: + optional: true + checksum: 10/d61ee82033f8b900226e2405aeb683de5f51a68ded1d40198d548cd9a7b2e47b7706442c9142bbc7fc59874f03063ee41ddf9e8667e63186b507b2e6b394ac28 + languageName: node + linkType: hard + +"string-argv@npm:~0.3.1": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 10/f9d3addf887026b4b5f997a271149e93bf71efc8692e7dc0816e8807f960b18bcb9787b45beedf0f97ff459575ee389af3f189d8b649834cac602f2e857e75af + languageName: node + linkType: hard + +"string-env-interpolation@npm:^1.0.1": + version: 1.0.1 + resolution: "string-env-interpolation@npm:1.0.1" + checksum: 10/d126329587f635bee65300e4451e7352b9b67e03daeb62f006ca84244cac12a1f6e45176b018653ba0c3ec3b5d980f9ca59d2eeed99cf799501cdaa7f871dc6f + languageName: node + linkType: hard + +"string-hash@npm:^1.1.1": + version: 1.1.3 + resolution: "string-hash@npm:1.1.3" + checksum: 10/104b8667a5e0dc71bfcd29fee09cb88c6102e27bfb07c55f95535d90587d016731d52299380052e514266f4028a7a5172e0d9ac58e2f8f5001be61dc77c0754d + languageName: node + linkType: hard + +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: "npm:^1.0.2" + strip-ansi: "npm:^6.0.0" + checksum: 10/ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10/7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string.prototype.includes@npm:^2.0.1": + version: 2.0.1 + resolution: "string.prototype.includes@npm:2.0.1" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + checksum: 10/939a5447e4a99a86f29cc97fa24f358e5071f79e34746de4c7eb2cd736ed626ad24870a1e356f33915b3b352bb87f7e4d1cebc15d1e1aaae0923777e21b1b28b + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.12": + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.6" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.6" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + regexp.prototype.flags: "npm:^1.5.3" + set-function-name: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10/e4ab34b9e7639211e6c5e9759adb063028c5c5c4fc32ad967838b2bd1e5ce83a66ae8ec755d24a79302849f090b59194571b2c33471e86e7821b21c0f56df316 + languageName: node + linkType: hard + +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: "npm:^1.1.3" + es-abstract: "npm:^1.17.5" + checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-data-property: "npm:^1.1.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-object-atoms: "npm:^1.0.0" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/47bb63cd2470a64bc5e2da1e570d369c016ccaa85c918c3a8bb4ab5965120f35e66d1f85ea544496fac84b9207a6b722adf007e6c548acd0813e5f8a82f9712a + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/140c73899b6747de9e499c7c2e7a83d549c47a26fa06045b69492be9cfb9e2a95187499a373983a08a115ecff8bc3bd7b0fb09b8ff72fb2172abe766849272ef + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674 + languageName: node + linkType: hard + +"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10/54d23f4a6acae0e93f999a585e673be9e561b65cd4cca37714af1e893ab8cd8dfa52a9e4f58f48f87b4a44918d3a9254326cb80ed194bf2e4c226e2b21767e56 + languageName: node + linkType: hard + +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: "npm:~5.1.0" + checksum: 10/7c41c17ed4dea105231f6df208002ebddd732e8e9e2d619d133cecd8e0087ddfd9587d2feb3c8caf3213cbd841ada6d057f5142cae68a4e62d3540778d9819b4 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:6.0, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10/ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2 + languageName: node + linkType: hard + +"strip-ansi@npm:5.2.0": + version: 5.2.0 + resolution: "strip-ansi@npm:5.2.0" + dependencies: + ansi-regex: "npm:^4.1.0" + checksum: 10/bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10/69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: "npm:^1.0.0" + checksum: 10/18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + +"strip-json-comments@npm:5.0.1": + version: 5.0.1 + resolution: "strip-json-comments@npm:5.0.1" + checksum: 10/b314af70c6666a71133e309a571bdb87687fc878d9fd8b38ebed393a77b89835b92f191aa6b0bc10dfd028ba99eed6b6365985001d64c5aef32a4a82456a156b + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 10/1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 + languageName: node + linkType: hard + +"strnum@npm:^1.0.5": + version: 1.0.5 + resolution: "strnum@npm:1.0.5" + checksum: 10/d3117975db8372d4d7b2c07601ed2f65bf21cc48d741f37a8617b76370d228f2ec26336e53791ebc3638264d23ca54e6c241f57f8c69bd4941c63c79440525ca + languageName: node + linkType: hard + +"strtok3@npm:^6.2.4": + version: 6.3.0 + resolution: "strtok3@npm:6.3.0" + dependencies: + "@tokenizer/token": "npm:^0.3.0" + peek-readable: "npm:^4.1.0" + checksum: 10/98fba564d3830202aa3a6bcd5ccaf2cbd849bd87ae79ece91d337e1913916705a8e633c9577138d030a984f8ec987dea51807e01252f995cf5e183fdea35eb2b + languageName: node + linkType: hard + +"stubs@npm:^3.0.0": + version: 3.0.0 + resolution: "stubs@npm:3.0.0" + checksum: 10/dec7b82186e3743317616235c59bfb53284acc312cb9f4c3e97e2205c67a5c158b0ca89db5927e52351582e90a2672822eeaec9db396e23e56893d2a8676e024 + languageName: node + linkType: hard + +"style-inject@npm:^0.3.0": + version: 0.3.0 + resolution: "style-inject@npm:0.3.0" + checksum: 10/fa5f5f6730c3eb4ccc5735347935703c7c02759d4ddb5983d037ed0efda3c50a80640c2fed4f4d4c5ea600c97cdfdb45f79f734630324fa21a3a86723c0472da + languageName: node + linkType: hard + +"style-loader@npm:^3.3.1": + version: 3.3.4 + resolution: "style-loader@npm:3.3.4" + peerDependencies: + webpack: ^5.0.0 + checksum: 10/2dd2a77d4fc689e1f73836ed7653830cb4e628af0b2979dcf6f31524c72bf44fca4bac8aebe62df95a5f9be19bea18f952a2cfcaaeff32c524c4402226d9c58f + languageName: node + linkType: hard + +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.2 + resolution: "style-mod@npm:4.1.2" + checksum: 10/9da37909d6dbc3c043ab6d18da5d997073a4698c91e86058293252493eb18aca4e44e3fb18f32fcee26dcee8785f393c6c95f3c96cc722a0dd6b8de622b5b293 + languageName: node + linkType: hard + +"style-to-object@npm:^0.4.0": + version: 0.4.4 + resolution: "style-to-object@npm:0.4.4" + dependencies: + inline-style-parser: "npm:0.1.1" + checksum: 10/3101c0de5325e8051c3665125468af73578eba4712b818458b9f7ed732d7800f3b34e088e5c16f60070644db25316fa5a5b8b69e7f3414c879401eb074a2211e + languageName: node + linkType: hard + +"style-value-types@npm:5.0.0": + version: 5.0.0 + resolution: "style-value-types@npm:5.0.0" + dependencies: + hey-listen: "npm:^1.0.8" + tslib: "npm:^2.1.0" + checksum: 10/a4043bcc8e9f73e393c48f3f3d26f0ed42ac518cf623b1966737a17dc07ef9a4bcefaa81bfb91037c38b160a7683e139132c87fe747aebe6527b785a04262dd8 + languageName: node + linkType: hard + +"stylehacks@npm:^5.1.1": + version: 5.1.1 + resolution: "stylehacks@npm:5.1.1" + dependencies: + browserslist: "npm:^4.21.4" + postcss-selector-parser: "npm:^6.0.4" + peerDependencies: + postcss: ^8.2.15 + checksum: 10/bddce1f5a8ba5a129995fc5585fa59fda6c8c580a8b39631955ee03810957eea62d13c7711a61f3a4f3bc2f9a4a9e019846f73b669c4aa0b5c52cd0198824b5c + languageName: node + linkType: hard + +"stylis@npm:4.2.0": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: 10/58359185275ef1f39c339ae94e598168aa6bb789f6cf0d52e726c1e7087a94e9c17f0385a28d34483dec1ffc2c75670ec714dc5603d99c3124ec83bc2b0a0f42 + languageName: node + linkType: hard + +"stylis@npm:^4.3.0": + version: 4.3.5 + resolution: "stylis@npm:4.3.5" + checksum: 10/4f5901cf7f0cd2cd5a284127a638c267325cf2cfd2a00c86bdc7aa85e370fa4029168ad453d77b67023f80f7e42e13ad6bc6c355391ed8109979ff194f6c8009 + languageName: node + linkType: hard + +"sucrase@npm:^3.20.2": + version: 3.35.0 + resolution: "sucrase@npm:3.35.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + glob: "npm:^10.3.10" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + ts-interface-checker: "npm:^0.1.9" + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe + languageName: node + linkType: hard + +"summary@npm:2.1.0": + version: 2.1.0 + resolution: "summary@npm:2.1.0" + checksum: 10/10ac12ce12c013b56ad44c37cfac206961f0993d98867b33b1b03a27b38a1cf8dd2db0b788883356c5335bbbb37d953772ef4a381d6fc8f408faf99f2bc54af5 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10/c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.0, supports-color@npm:~8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10/157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10/a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e + languageName: node + linkType: hard + +"svg-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "svg-parser@npm:2.0.4" + checksum: 10/ec196da6ea21481868ab26911970e35488361c39ead1c6cdd977ba16c885c21a91ddcbfd113bfb01f79a822e2a751ef85b2f7f95e2cb9245558ebce12c34af1f + languageName: node + linkType: hard + +"svg-pathdata@npm:^6.0.3": + version: 6.0.3 + resolution: "svg-pathdata@npm:6.0.3" + checksum: 10/ed20b3fd20fd2f9dfa519fee2a690ec6bff84be00882c04b1461d6e5a250da3e37236c1f3abe2dae9c8dae841cc33f2700396186f894e1953dc6c0149201ac21 + languageName: node + linkType: hard + +"svgo@npm:^2.7.0, svgo@npm:^2.8.0": + version: 2.8.0 + resolution: "svgo@npm:2.8.0" + dependencies: + "@trysound/sax": "npm:0.2.0" + commander: "npm:^7.2.0" + css-select: "npm:^4.1.3" + css-tree: "npm:^1.1.3" + csso: "npm:^4.2.0" + picocolors: "npm:^1.0.0" + stable: "npm:^0.1.8" + bin: + svgo: bin/svgo + checksum: 10/2b74544da1a9521852fe2784252d6083b336e32528d0e424ee54d1613f17312edc7020c29fa399086560e96cba42ede4a2205328a08edeefa26de84cd769a64a + languageName: node + linkType: hard + +"swagger-client@npm:^3.31.0": + version: 3.33.2 + resolution: "swagger-client@npm:3.33.2" + dependencies: + "@babel/runtime-corejs3": "npm:^7.22.15" + "@scarf/scarf": "npm:=1.4.0" + "@swagger-api/apidom-core": "npm:>=1.0.0-beta.6 <1.0.0-rc.0" + "@swagger-api/apidom-error": "npm:>=1.0.0-beta.6 <1.0.0-rc.0" + "@swagger-api/apidom-json-pointer": "npm:>=1.0.0-beta.6 <1.0.0-rc.0" + "@swagger-api/apidom-ns-openapi-3-1": "npm:>=1.0.0-beta.6 <1.0.0-rc.0" + "@swagger-api/apidom-reference": "npm:>=1.0.0-beta.6 <1.0.0-rc.0" + "@swaggerexpert/cookie": "npm:^1.4.1" + deepmerge: "npm:~4.3.0" + fast-json-patch: "npm:^3.0.0-1" + js-yaml: "npm:^4.1.0" + neotraverse: "npm:=0.6.18" + node-abort-controller: "npm:^3.1.1" + node-fetch-commonjs: "npm:^3.3.2" + openapi-path-templating: "npm:^2.0.1" + openapi-server-url-templating: "npm:^1.2.0" + ramda: "npm:^0.30.1" + ramda-adjunct: "npm:^5.0.0" + checksum: 10/6177a94032c52893b96c8755f31462f8637b60d37357f32718b3ee97b0203fad5c3f6ee4e7471858608e29e967757de282fd237d50a865ad0bbdab9b43aa2fa4 + languageName: node + linkType: hard + +"swagger-ui-react@npm:^5.0.0": + version: 5.18.2 + resolution: "swagger-ui-react@npm:5.18.2" + dependencies: + "@babel/runtime-corejs3": "npm:^7.24.7" + "@braintree/sanitize-url": "npm:=7.0.4" + "@scarf/scarf": "npm:=1.4.0" + base64-js: "npm:^1.5.1" + classnames: "npm:^2.5.1" + css.escape: "npm:1.5.1" + deep-extend: "npm:0.6.0" + dompurify: "npm:=3.1.6" + ieee754: "npm:^1.2.1" + immutable: "npm:^3.x.x" + js-file-download: "npm:^0.4.12" + js-yaml: "npm:=4.1.0" + lodash: "npm:^4.17.21" + prop-types: "npm:^15.8.1" + randexp: "npm:^0.5.3" + randombytes: "npm:^2.1.0" + react-copy-to-clipboard: "npm:5.1.0" + react-debounce-input: "npm:=3.3.0" + react-immutable-proptypes: "npm:2.2.0" + react-immutable-pure-component: "npm:^2.2.0" + react-inspector: "npm:^6.0.1" + react-redux: "npm:^9.1.2" + react-syntax-highlighter: "npm:^15.5.0" + redux: "npm:^5.0.1" + redux-immutable: "npm:^4.0.0" + remarkable: "npm:^2.0.1" + reselect: "npm:^5.1.1" + serialize-error: "npm:^8.1.0" + sha.js: "npm:^2.4.11" + swagger-client: "npm:^3.31.0" + url-parse: "npm:^1.5.10" + xml: "npm:=1.0.1" + xml-but-prettier: "npm:^1.0.1" + zenscroll: "npm:^4.0.2" + peerDependencies: + react: ">=16.8.0 <19" + react-dom: ">=16.8.0 <19" + checksum: 10/04d4bd8e67ac19472d7915ed779933108b660babd14740c74efa33c76a6bd17e94ebcabd4449e365da3527937f3c60f53c1c392c3e13e5ac5f2e984e6cdcee42 + languageName: node + linkType: hard + +"swc-loader@npm:^0.2.3": + version: 0.2.6 + resolution: "swc-loader@npm:0.2.6" + dependencies: + "@swc/counter": "npm:^0.1.3" + peerDependencies: + "@swc/core": ^1.2.147 + webpack: ">=2" + checksum: 10/fe90948c02a51bb8ffcff1ce3590e01dc12860b0bb7c9e22052b14fa846ed437781ae265614a5e14344bea22001108780f00a6e350e28c0b3499bc4cd11335fb + languageName: node + linkType: hard + +"swr@npm:^2.0.0": + version: 2.3.0 + resolution: "swr@npm:2.3.0" + dependencies: + dequal: "npm:^2.0.3" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/9f09a68a0dcd354915c7098b000197190aa5faa39c6caec7b91c3b9b682de79173abd5b733cd07cc3e79ee8a1eb294f7d2162716c515d1e4d7c1283d4342fda8 + languageName: node + linkType: hard + +"symbol-observable@npm:^1.0.4": + version: 1.2.0 + resolution: "symbol-observable@npm:1.2.0" + checksum: 10/4684327a2fef2453dcd4238b5bd8f69c460a4708fb8c024a824c6a707ca644b2b2a586e36e5197d0d1162ff48e288299a48844a8c46274ffcfd9260e03df7692 + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 10/c09a00aadf279d47d0c5c46ca3b6b2fbaeb45f0a184976d599637d412d3a70bbdc043ff33effe1206dea0e36e0ad226cb957112e7ce9a4bf2daedf7fa4f85c53 + languageName: node + linkType: hard + +"sync-fetch@npm:0.6.0-2": + version: 0.6.0-2 + resolution: "sync-fetch@npm:0.6.0-2" + dependencies: + node-fetch: "npm:^3.3.2" + timeout-signal: "npm:^2.0.0" + whatwg-mimetype: "npm:^4.0.0" + checksum: 10/21070c8dae074ed29418b8b6ecf6b458754c89397c7071723669492124f11895e3145b0662b859d3d0d91d3f092f916e0551093f421f8c0556f0828ae3b50943 + languageName: node + linkType: hard + +"tapable@npm:^1.0.0": + version: 1.1.3 + resolution: "tapable@npm:1.1.3" + checksum: 10/1cec71f00f9a6cb1d88961b5d4f2dead4e185508b18b1bf1e688c8135039a391dd3e12b0887232b682ef28f1ef6f0c5e9a48794f6f5ef68f35d05de7e7a0a578 + languageName: node + linkType: hard + +"tapable@npm:^2.0.0, tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": + version: 2.2.1 + resolution: "tapable@npm:2.2.1" + checksum: 10/1769336dd21481ae6347611ca5fca47add0962fd8e80466515032125eca0084a4f0ede11e65341b9c0018ef4e1cf1ad820adbb0fba7cc99865c6005734000b0a + languageName: node + linkType: hard + +"tar-fs@npm:^2.0.0": + version: 2.1.2 + resolution: "tar-fs@npm:2.1.2" + dependencies: + chownr: "npm:^1.1.1" + mkdirp-classic: "npm:^0.5.2" + pump: "npm:^3.0.0" + tar-stream: "npm:^2.1.4" + checksum: 10/623f7e8e58a43578ba7368002c3cc7e321f6d170053ac0691d95172dbc7daf5dcf4347eb061277627340870ce6cfda89f5a5d633cc274c41ae6d69f54a2374e7 + languageName: node + linkType: hard + +"tar-fs@npm:^3.0.6": + version: 3.0.8 + resolution: "tar-fs@npm:3.0.8" + dependencies: + bare-fs: "npm:^4.0.1" + bare-path: "npm:^3.0.0" + pump: "npm:^3.0.0" + tar-stream: "npm:^3.1.5" + dependenciesMeta: + bare-fs: + optional: true + bare-path: + optional: true + checksum: 10/fdcd1c66dc5e2cad5544ffe7eab9a470b419290b22300c344688df51bf06127963da07a1e3ae23cae80851cd9f60149e80b38e56485dd7a14aea701241ac2f81 + languageName: node + linkType: hard + +"tar-fs@npm:~2.0.1": + version: 2.0.1 + resolution: "tar-fs@npm:2.0.1" + dependencies: + chownr: "npm:^1.1.1" + mkdirp-classic: "npm:^0.5.2" + pump: "npm:^3.0.0" + tar-stream: "npm:^2.0.0" + checksum: 10/85ceac6fce0e9175b5b67c0eca8864b7d29a940cae8b7657c60b66e8a252319d701c3df12814162a6839e6120f9e1975757293bdeaf294ad5b15721d236c4d32 + languageName: node + linkType: hard + +"tar-stream@npm:^2.0.0, tar-stream@npm:^2.1.4": + version: 2.2.0 + resolution: "tar-stream@npm:2.2.0" + dependencies: + bl: "npm:^4.0.3" + end-of-stream: "npm:^1.4.1" + fs-constants: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.1.1" + checksum: 10/1a52a51d240c118cbcd30f7368ea5e5baef1eac3e6b793fb1a41e6cd7319296c79c0264ccc5859f5294aa80f8f00b9239d519e627b9aade80038de6f966fec6a + languageName: node + linkType: hard + +"tar-stream@npm:^3.0.0, tar-stream@npm:^3.1.5": + version: 3.1.7 + resolution: "tar-stream@npm:3.1.7" + dependencies: + b4a: "npm:^1.6.4" + fast-fifo: "npm:^1.2.0" + streamx: "npm:^2.15.0" + checksum: 10/b21a82705a72792544697c410451a4846af1f744176feb0ff11a7c3dd0896961552e3def5e1c9a6bbee4f0ae298b8252a1f4c9381e9f991553b9e4847976f05c + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.12": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0 + languageName: node + linkType: hard + +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.0.1" + mkdirp: "npm:^3.0.1" + yallist: "npm:^5.0.0" + checksum: 10/12a2a4fc6dee23e07cc47f1aeb3a14a1afd3f16397e1350036a8f4cdfee8dcac7ef5978337a4e7b2ac2c27a9a6d46388fc2088ea7c80cb6878c814b1425f8ecf + languageName: node + linkType: hard + +"tarn@npm:^3.0.2": + version: 3.0.2 + resolution: "tarn@npm:3.0.2" + checksum: 10/7476ca83a39e0e4b1d951725b6c42071f16fdd65c456936c305500af00731861de0a20e41e59b54cf410b979722816db43acd137a5a580c3c8e48a73f389b523 + languageName: node + linkType: hard + +"tdigest@npm:^0.1.1": + version: 0.1.2 + resolution: "tdigest@npm:0.1.2" + dependencies: + bintrees: "npm:1.0.2" + checksum: 10/45be99fa52dab74b8edafe150e473cdc45aa1352c75ed516a39905f350a08c3175f6555598111042c3677ba042d7e3cae6b5ce4c663fe609bc634f326aabc9d6 + languageName: node + linkType: hard + +"teeny-request@npm:^9.0.0": + version: 9.0.0 + resolution: "teeny-request@npm:9.0.0" + dependencies: + http-proxy-agent: "npm:^5.0.0" + https-proxy-agent: "npm:^5.0.0" + node-fetch: "npm:^2.6.9" + stream-events: "npm:^1.0.5" + uuid: "npm:^9.0.0" + checksum: 10/44daabb6c2e239c3daed0218ebdafb50c7141c16d7257a6cfef786dbff56d7853c2c02c97934f7ed57818ce5861ac16c5f52f3a16fa292bd4caf53483d386443 + languageName: node + linkType: hard + +"term-size@npm:^2.1.0": + version: 2.2.1 + resolution: "term-size@npm:2.2.1" + checksum: 10/f96aca2d4139c91e3359f5949ffb86f0a58f8c254ab7fe4a64b65126974939c782db6aaa91bf51a56d0344e505e22f9a0186f2f689e23ac9382b54606603c537 + languageName: node + linkType: hard + +"terser-webpack-plugin@npm:^5.1.3, terser-webpack-plugin@npm:^5.3.10": + version: 5.3.11 + resolution: "terser-webpack-plugin@npm:5.3.11" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.25" + jest-worker: "npm:^27.4.5" + schema-utils: "npm:^4.3.0" + serialize-javascript: "npm:^6.0.2" + terser: "npm:^5.31.1" + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: 10/a8f7c92c75aa42628adfa4d171d4695c366c1852ecb4a24e72dd6fec86e383e12ac24b627e798fedff4e213c21fe851cebc61be3ab5a2537e6e42bea46690aa3 + languageName: node + linkType: hard + +"terser@npm:^5.10.0, terser@npm:^5.31.1": + version: 5.37.0 + resolution: "terser@npm:5.37.0" + dependencies: + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.8.2" + commander: "npm:^2.20.0" + source-map-support: "npm:~0.5.20" + bin: + terser: bin/terser + checksum: 10/3afacf7c38c47a5a25dbe1ba2e7aafd61166474d4377ec0af490bd41ab3686ab12679818d5fe4a3e7f76efee26f639c92ac334940c378bbc31176520a38379c3 + languageName: node + linkType: hard + +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^7.1.4" + minimatch: "npm:^3.0.4" + checksum: 10/8fccb2cb6c8fcb6bb4115394feb833f8b6cf4b9503ec2485c2c90febf435cac62abe882a0c5c51a37b9bbe70640cdd05acf5f45e486ac4583389f4b0855f69e5 + languageName: node + linkType: hard + +"testcontainers@npm:^10.0.0": + version: 10.17.1 + resolution: "testcontainers@npm:10.17.1" + dependencies: + "@balena/dockerignore": "npm:^1.0.2" + "@types/dockerode": "npm:^3.3.29" + archiver: "npm:^7.0.1" + async-lock: "npm:^1.4.1" + byline: "npm:^5.0.0" + debug: "npm:^4.3.5" + docker-compose: "npm:^0.24.8" + dockerode: "npm:^3.3.5" + get-port: "npm:^5.1.1" + proper-lockfile: "npm:^4.1.2" + properties-reader: "npm:^2.3.0" + ssh-remote-port-forward: "npm:^1.0.4" + tar-fs: "npm:^3.0.6" + tmp: "npm:^0.2.3" + undici: "npm:^5.28.4" + checksum: 10/efcf41b2acfd448b177f6787adeefc4b8817b55182f90dc7fa11b70c71714493a9928fc17e193dec1f8823dc97a5e19f5f8438827406ebb3f9b6014cf79b1109 + languageName: node + linkType: hard + +"text-decoder@npm:^1.1.0": + version: 1.2.3 + resolution: "text-decoder@npm:1.2.3" + dependencies: + b4a: "npm:^1.6.4" + checksum: 10/bcdec33c0f070aeac38e46e4cafdcd567a58473ed308bdf75260bfbd8f7dc76acbc0b13226afaec4a169d0cb44cec2ab89c57b6395ccf02e941eaebbe19e124a + languageName: node + linkType: hard + +"text-hex@npm:1.0.x": + version: 1.0.0 + resolution: "text-hex@npm:1.0.0" + checksum: 10/1138f68adc97bf4381a302a24e2352f04992b7b1316c5003767e9b0d3367ffd0dc73d65001ea02b07cd0ecc2a9d186de0cf02f3c2d880b8a522d4ccb9342244a + languageName: node + linkType: hard + +"text-segmentation@npm:^1.0.3": + version: 1.0.3 + resolution: "text-segmentation@npm:1.0.3" + dependencies: + utrie: "npm:^1.0.2" + checksum: 10/86191de83f09b96f356628c3dbaf6d281eda46a4dd4c94c3827495428871b9dd44ead4ef4cdf06a188b08a3b83e3943c5911841422b55286b121ba9e04c846dd + languageName: node + linkType: hard + +"text-table@npm:0.2.0, text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: 10/4383b5baaeffa9bb4cda2ac33a4aa2e6d1f8aaf811848bf73513a9b88fd76372dc461f6fd6d2e9cb5100f48b473be32c6f95bd983509b7d92bb4d92c10747452 + languageName: node + linkType: hard + +"textextensions@npm:^5.16.0": + version: 5.16.0 + resolution: "textextensions@npm:5.16.0" + checksum: 10/d41e9265e9d74d192d4fb26fc89a2f4dbe7a6d85cc5c14f99f1df68d07bce5346f8abe0ed680a91ef805b91e9972e5787c7365a03f3a5489e16ca350d28a3879 + languageName: node + linkType: hard + +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d + languageName: node + linkType: hard + +"thingies@npm:^1.20.0": + version: 1.21.0 + resolution: "thingies@npm:1.21.0" + peerDependencies: + tslib: ^2 + checksum: 10/5c3954b67391d1432c252cb7089f29480e2164f06987a63d83c9747aa6999bfc313d6edfce71ed967316a3378dfcaf38f35ea77aaa5d423edaf776b8ff854f83 + languageName: node + linkType: hard + +"throttle-debounce@npm:^3.0.1": + version: 3.0.1 + resolution: "throttle-debounce@npm:3.0.1" + checksum: 10/c2b591bc881c595d44d5ee82cc607747569a84cd9652e7d9613d92759d84ffd61eab1ca56c6a294316b8c9978ff6d46c2c94ed95de5847f3de4b6c30342cb947 + languageName: node + linkType: hard + +"through2@npm:^4.0.0": + version: 4.0.2 + resolution: "through2@npm:4.0.2" + dependencies: + readable-stream: "npm:3" + checksum: 10/72c246233d9a989bbebeb6b698ef0b7b9064cb1c47930f79b25d87b6c867e075432811f69b7b2ac8da00ca308191c507bdab913944be8019ac43b036ce88f6ba + languageName: node + linkType: hard + +"through@npm:^2.3.6": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198 + languageName: node + linkType: hard + +"thunky@npm:^1.0.2": + version: 1.1.0 + resolution: "thunky@npm:1.1.0" + checksum: 10/825e3bd07ab3c9fd6f753c457a60957c628cacba5dd0656fd93b037c445e2828b43cf0805a9f2b16b0c5f5a10fd561206271acddb568df4f867f0aea0eb2772f + languageName: node + linkType: hard + +"tildify@npm:2.0.0": + version: 2.0.0 + resolution: "tildify@npm:2.0.0" + checksum: 10/0f5fee93624c4afdf75ee224c3b65aece4817ba5317fd70f49eaf084ea720d73556a6ef3f50079425a773ba3b93805b4524d14057841d4e4336516fdbe80635b + languageName: node + linkType: hard + +"timeout-signal@npm:^2.0.0": + version: 2.0.0 + resolution: "timeout-signal@npm:2.0.0" + checksum: 10/5f022c225bac6542716478edf7bb5fc871d985cfa398b4f2eaa3d13fa6fda1225ce77cc65c5a92ae23b58882e2c14b83532a7c6f2f7710d06c9605b48ece4fe2 + languageName: node + linkType: hard + +"timers-browserify@npm:^2.0.4": + version: 2.0.12 + resolution: "timers-browserify@npm:2.0.12" + dependencies: + setimmediate: "npm:^1.0.4" + checksum: 10/ec37ae299066bef6c464dcac29c7adafba1999e7227a9bdc4e105a459bee0f0b27234a46bfd7ab4041da79619e06a58433472867a913d01c26f8a203f87cee70 + languageName: node + linkType: hard + +"tiny-case@npm:^1.0.3": + version: 1.0.3 + resolution: "tiny-case@npm:1.0.3" + checksum: 10/3f7a30c39d5b0e1bc097b0b271bec14eb5b836093db034f35a0de26c14422380b50dc12bfd37498cf35b192f5df06f28a710712c87ead68872a9e37ad6f6049d + languageName: node + linkType: hard + +"tiny-invariant@npm:^1.0.6": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 10/5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe + languageName: node + linkType: hard + +"tiny-warning@npm:^1.0.2": + version: 1.0.3 + resolution: "tiny-warning@npm:1.0.3" + checksum: 10/da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.9": + version: 0.2.10 + resolution: "tinyglobby@npm:0.2.10" + dependencies: + fdir: "npm:^6.4.2" + picomatch: "npm:^4.0.2" + checksum: 10/10c976866d849702edc47fc3fef27d63f074c40f75ef17171ecc1452967900699fa1e62373681dd58e673ddff2e3f6094bcd0a2101e3e4b30f4c2b9da41397f2 + languageName: node + linkType: hard + +"tldts-core@npm:^6.1.74": + version: 6.1.74 + resolution: "tldts-core@npm:6.1.74" + checksum: 10/f2b8dd7cf66b25c8cc71557980cdc3573629223229f7738fb8ef942ed23fedd5371fa0d7a80e0515edf6d06bf694ffb6f989f8bd15c9d693412f39d3c122d52f + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.74 + resolution: "tldts@npm:6.1.74" + dependencies: + tldts-core: "npm:^6.1.74" + bin: + tldts: bin/cli.js + checksum: 10/5381c66841bfa8d0ecde64d9db57fc381816c833ce0e6db344c01b1257758cde48f1949634603b9595bdb14390c09f6346e66e03d2ca493eea2bcc4579024a18 + languageName: node + linkType: hard + +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: "npm:~1.0.2" + checksum: 10/09c0abfd165cff29b32be42bc35e80b8c64727d97dedde6550022e88fa9fd39a084660415ed8e3ebaa2aca1ee142f86df8b31d4196d4f81c774a3a20fd4b6abf + languageName: node + linkType: hard + +"tmp@npm:^0.2.3": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 10/7b13696787f159c9754793a83aa79a24f1522d47b87462ddb57c18ee93ff26c74cbb2b8d9138f571d2e0e765c728fb2739863a672b280528512c6d83d511c6fa + languageName: node + linkType: hard + +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: 10/cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 + languageName: node + linkType: hard + +"to-arraybuffer@npm:^1.0.0": + version: 1.0.1 + resolution: "to-arraybuffer@npm:1.0.1" + checksum: 10/31433c10b388722729f5da04c6b2a06f40dc84f797bb802a5a171ced1e599454099c6c5bc5118f4b9105e7d049d3ad9d0f71182b77650e4fdb04539695489941 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a + languageName: node + linkType: hard + +"toggle-selection@npm:^1.0.6": + version: 1.0.6 + resolution: "toggle-selection@npm:1.0.6" + checksum: 10/9a0ed0ecbaac72b4944888dacd79fe0a55eeea76120a4c7e46b3bb3d85b24f086e90560bb22f5a965654a25ab43d79ec47dfdb3f1850ba740b14c5a50abc7040 + languageName: node + linkType: hard + +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 + languageName: node + linkType: hard + +"token-types@npm:^4.1.1": + version: 4.2.1 + resolution: "token-types@npm:4.2.1" + dependencies: + "@tokenizer/token": "npm:^0.3.0" + ieee754: "npm:^1.2.1" + checksum: 10/2995257d246387e773758c3c92a3cc99d0c0bf13cbafe0de5d712e4c35ed298da6704e21545cb123fa1f1b42ad62936c35bbd0611018b735e78c30b8b22b42d9 + languageName: node + linkType: hard + +"toposort@npm:^2.0.2": + version: 2.0.2 + resolution: "toposort@npm:2.0.2" + checksum: 10/6f128353e4ed9739e49a28fb756b0a00f3752b29fc9b862ff781446598ee3b486cd229697feebc4eabd916eac5de219f3dae450c585bf13673f6b133a7226e06 + languageName: node + linkType: hard + +"tosource@npm:^2.0.0-alpha.3": + version: 2.0.0-alpha.3 + resolution: "tosource@npm:2.0.0-alpha.3" + checksum: 10/bc03a7571de8ed4306e6721283fa891f2adcab9dd80c46f6f177d4259b34bb192fe3a2cb3e1e2ce16f9db0bc7e534acfcb5478ab094b0ba255f98abfce6dab46 + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2": + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" + dependencies: + psl: "npm:^1.1.33" + punycode: "npm:^2.1.1" + universalify: "npm:^0.2.0" + url-parse: "npm:^1.5.3" + checksum: 10/75663f4e2cd085f16af0b217e4218772adf0617fb3227171102618a54ce0187a164e505d61f773ed7d65988f8ff8a8f935d381f87da981752c1171b076b4afac + languageName: node + linkType: hard + +"tough-cookie@npm:^5.0.0": + version: 5.1.0 + resolution: "tough-cookie@npm:5.1.0" + dependencies: + tldts: "npm:^6.1.32" + checksum: 10/01908de89d5268e424eb07c17230ef69110fed598f8036db366d2c992d5e8e52ccd3af600c87b7fb43479046eb4289f21baa4467a3032a2230a8d3878d3cb76d + languageName: node + linkType: hard + +"tough-cookie@npm:~2.5.0": + version: 2.5.0 + resolution: "tough-cookie@npm:2.5.0" + dependencies: + psl: "npm:^1.1.28" + punycode: "npm:^2.1.1" + checksum: 10/024cb13a4d1fe9af57f4323dff765dd9b217cc2a69be77e3b8a1ca45600aa33a097b6ad949f225d885e904f4bd3ceccef104741ef202d8378e6ca78e850ff82f + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: "npm:^2.1.1" + checksum: 10/b09a15886cbfaee419a3469081223489051ce9dca3374dd9500d2378adedbee84a3c73f83bfdd6bb13d53657753fc0d4e20a46bfcd3f1b9057ef528426ad7ce4 + languageName: node + linkType: hard + +"tr46@npm:^5.0.0": + version: 5.0.0 + resolution: "tr46@npm:5.0.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10/29155adb167d048d3c95d181f7cb5ac71948b4e8f3070ec455986e1f34634acae50ae02a3c8d448121c3afe35b76951cd46ed4c128fd80264280ca9502237a3e + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10/8f1f5aa6cb232f9e1bdc86f485f916b7aa38caee8a778b378ffec0b70d9307873f253f5cbadbe2955ece2ac5c83d0dc14a77513166ccd0a0c7fe197e21396695 + languageName: node + linkType: hard + +"tree-dump@npm:^1.0.1": + version: 1.0.2 + resolution: "tree-dump@npm:1.0.2" + peerDependencies: + tslib: 2 + checksum: 10/ddcde4da9ded8edc2fa77fc9153ef8d7fba9cd5f813db27c30c7039191b50e1512b7106f0f4fe7ccaa3aa69f85b4671eda7ed0b9f9d34781eb26ebe4593ad4eb + languageName: node + linkType: hard + +"tree-kill@npm:^1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10/49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7 + languageName: node + linkType: hard + +"tree-sitter-json@npm:=0.24.8": + version: 0.24.8 + resolution: "tree-sitter-json@npm:0.24.8" + dependencies: + node-addon-api: "npm:^8.2.2" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.8.2" + peerDependencies: + tree-sitter: ^0.21.1 + peerDependenciesMeta: + tree-sitter: + optional: true + checksum: 10/37c79ae938d9d8e1a3c3c81c17e466e3f3b6a538efd845c91458ef844bf0f4ce36e567832ad7d213f03570c576cccdbf5f30c5437a3c260658b3ecdbf718c468 + languageName: node + linkType: hard + +"tree-sitter@npm:=0.22.1": + version: 0.22.1 + resolution: "tree-sitter@npm:0.22.1" + dependencies: + node-addon-api: "npm:^8.2.1" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.8.2" + checksum: 10/fd3aac9bd375adc626a6990cdf538b00fffbb7a8c8f11351b012830ca8fa67fcb646659b88b6cbae01286333735f4881cf9007f326fc9613837d449fac4fccce + languageName: node + linkType: hard + +"trim-lines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-lines@npm:3.0.1" + checksum: 10/7a1325e4ce8ff7e9e52007600e9c9862a166d0db1f1cf0c9357e359e410acab1278fcd91cc279dfa5123fc37b69f080de02f471e91dbbc61b155b9ca92597929 + languageName: node + linkType: hard + +"triple-beam@npm:^1.3.0, triple-beam@npm:^1.4.1": + version: 1.4.1 + resolution: "triple-beam@npm:1.4.1" + checksum: 10/2e881a3e8e076b6f2b85b9ec9dd4a900d3f5016e6d21183ed98e78f9abcc0149e7d54d79a3f432b23afde46b0885bdcdcbff789f39bc75de796316961ec07f61 + languageName: node + linkType: hard + +"trough@npm:^2.0.0": + version: 2.2.0 + resolution: "trough@npm:2.2.0" + checksum: 10/999c1cb3db6ec63e1663f911146a90125065da37f66ba342b031d53edb22a62f56c1f934bbc61a55b2b29dd74207544cfd78875b414665c1ffadcd9a9a009eeb + languageName: node + linkType: hard + +"tryer@npm:^1.0.1": + version: 1.0.1 + resolution: "tryer@npm:1.0.1" + checksum: 10/4d869d187bd715136903b349f39d1cc3e5c19f742689a348190aff92408ee8dd3d7d9adc26dc9265c35d722731184c979ed316109b6c1239249a8707bb92cc49 + languageName: node + linkType: hard + +"ts-algebra@npm:^2.0.0": + version: 2.0.0 + resolution: "ts-algebra@npm:2.0.0" + checksum: 10/b970eef64ca9594a77337e03b9c1732c1b7a0d2c4d316638b654e921a47b40c4cc42f41821445e9e54408d5dfdf4ecca27ffa59554373033b9c92dee8b52066d + languageName: node + linkType: hard + +"ts-api-utils@npm:^1.3.0": + version: 1.4.3 + resolution: "ts-api-utils@npm:1.4.3" + peerDependencies: + typescript: ">=4.2.0" + checksum: 10/713c51e7392323305bd4867422ba130fbf70873ef6edbf80ea6d7e9c8f41eeeb13e40e8e7fe7cd321d74e4864777329797077268c9f570464303a1723f1eed39 + languageName: node + linkType: hard + +"ts-api-utils@npm:^2.0.0": + version: 2.0.0 + resolution: "ts-api-utils@npm:2.0.0" + peerDependencies: + typescript: ">=4.8.4" + checksum: 10/485bdf8bbba98d58712243d958f4fd44742bbe49e559cd77882fb426d866eec6dd05c67ef91935dc4f8a3c776f235859735e1f05be399e4dc9e7ffd580120974 + languageName: node + linkType: hard + +"ts-easing@npm:^0.2.0": + version: 0.2.0 + resolution: "ts-easing@npm:0.2.0" + checksum: 10/e67ee862acca3b2e2718e736f31999adcef862d0df76d76a0e138588728d8a87dfec9978556044640bd0e90203590ad88ac2fe8746d0e9959b8d399132315150 + languageName: node + linkType: hard + +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00 + languageName: node + linkType: hard + +"ts-invariant@npm:^0.9.3": + version: 0.9.4 + resolution: "ts-invariant@npm:0.9.4" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/2fd6f9320065c016607c369b5d3b57963664e9f20d48882f85d63bdd9de1b62dca43d1c1f09596a871dc2473e86468eec62626a5afc9cc114b614543e78b7822 + languageName: node + linkType: hard + +"ts-is-present@npm:^1.1.1": + version: 1.2.2 + resolution: "ts-is-present@npm:1.2.2" + checksum: 10/e21d1e9b1848ff9f6387cde0b725d7bd327fd2fa0bb20aff9a6d46d8d8715695819a74ae60a8b905fa409a37f941ae852898c228fe696b701ffbb25ee452c3f7 + languageName: node + linkType: hard + +"ts-mixer@npm:^6.0.3, ts-mixer@npm:^6.0.4": + version: 6.0.4 + resolution: "ts-mixer@npm:6.0.4" + checksum: 10/f20571a4a4ff7b5e1a2ff659208c1ea9d4180dda932b71d289edc99e25a2948c9048e2e676b930302ac0f8e88279e0da6022823183e67de3906a3f3a8b72ea80 + languageName: node + linkType: hard + +"ts-morph@npm:^24.0.0": + version: 24.0.0 + resolution: "ts-morph@npm:24.0.0" + dependencies: + "@ts-morph/common": "npm:~0.25.0" + code-block-writer: "npm:^13.0.3" + checksum: 10/560f64eac91429f852277af7588d116b83f91ace2e6ba89c71893b364a42c1e9a658fb40ad2c8d1b48af14d744ba1d4ee7a7efeae033d14ad7a6b5f50b83ccca + languageName: node + linkType: hard + +"ts-node@npm:^10.9.1": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 10/a91a15b3c9f76ac462f006fa88b6bfa528130dcfb849dd7ef7f9d640832ab681e235b8a2bc58ecde42f72851cc1d5d4e22c901b0c11aa51001ea1d395074b794 + languageName: node + linkType: hard + +"ts-toolbelt@npm:^9.6.0": + version: 9.6.0 + resolution: "ts-toolbelt@npm:9.6.0" + checksum: 10/2c2dea2631dbd7372a79cccc6d09a377a6ca2f319f767fd239d2e312cd1d9165a90f8c1777a047227bfdcda6aeba3addbadce88fdfc7f43caf4534d385a43c82 + languageName: node + linkType: hard + +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" + dependencies: + "@types/json5": "npm:^0.0.29" + json5: "npm:^1.0.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10/2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14 + languageName: node + linkType: hard + +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.6.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.8.0, tslib@npm:^2.8.1": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 + languageName: node + linkType: hard + +"tslib@npm:^1.14.1, tslib@npm:^1.9.0": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb + languageName: node + linkType: hard + +"tsscmp@npm:1.0.6": + version: 1.0.6 + resolution: "tsscmp@npm:1.0.6" + checksum: 10/850405080ea3ecb158e9e01bc4e87c9edb94a829d8ad8747f30ba103fcc41a287d7949ab84d7b27c36294036a2c9878f050db15b73a1a1961abfb7688b82ac53 + languageName: node + linkType: hard + +"tty-browserify@npm:0.0.0": + version: 0.0.0 + resolution: "tty-browserify@npm:0.0.0" + checksum: 10/a06f746acc419cb2527ba19b6f3bd97b4a208c03823bfb37b2982629d2effe30ebd17eaed0d7e2fc741f3c4f2a0c43455bd5fb4194354b378e78cfb7ca687f59 + languageName: node + linkType: hard + +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10/7f0d9ed5c22404072b2ae8edc45c071772affd2ed14a74f03b4e71b4dd1a14c3714d85aed64abcaaee5fec2efc79002ba81155c708f4df65821b444abb0cfade + languageName: node + linkType: hard + +"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": + version: 0.14.5 + resolution: "tweetnacl@npm:0.14.5" + checksum: 10/04ee27901cde46c1c0a64b9584e04c96c5fe45b38c0d74930710751ea991408b405747d01dfae72f80fc158137018aea94f9c38c651cb9c318f0861a310c3679 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: "npm:^1.2.1" + checksum: 10/14687776479d048e3c1dbfe58a2409e00367810d6960c0f619b33793271ff2a27f81b52461f14a162f1f89a9b1d8da1b237fc7c99b0e1fdcec28ec63a86b1fec + languageName: node + linkType: hard + +"type-check@npm:~0.3.2": + version: 0.3.2 + resolution: "type-check@npm:0.3.2" + dependencies: + prelude-ls: "npm:~1.1.2" + checksum: 10/11dec0b50d7c3fd2e630b4b074ba36918ed2b1efbc87dfbd40ba9429d49c58d12dad5c415ece69fcf358fa083f33466fc370f23ab91aa63295c45d38b3a60dda + languageName: node + linkType: hard + +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 10/5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d + languageName: node + linkType: hard + +"type-fest@npm:^0.13.1": + version: 0.13.1 + resolution: "type-fest@npm:0.13.1" + checksum: 10/11e9476dc85bf97a71f6844fb67ba8e64a4c7e445724c0f3bd37eb2ddf4bc97c1dc9337bd880b28bce158de1c0cb275c2d03259815a5bf64986727197126ab56 + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f + languageName: node + linkType: hard + +"type-fest@npm:^2.19.0": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: 10/7bf9e8fdf34f92c8bb364c0af14ca875fac7e0183f2985498b77be129dc1b3b1ad0a6b3281580f19e48c6105c037fb966ad9934520c69c6434d17fd0af4eed78 + languageName: node + linkType: hard + +"type-is@npm:^1.6.16, type-is@npm:^1.6.4, type-is@npm:~1.6.18": + version: 1.6.18 + resolution: "type-is@npm:1.6.18" + dependencies: + media-typer: "npm:0.3.0" + mime-types: "npm:~2.1.24" + checksum: 10/0bd9eeae5efd27d98fd63519f999908c009e148039d8e7179a074f105362d4fcc214c38b24f6cda79c87e563cbd12083a4691381ed28559220d4a10c2047bed4 + languageName: node + linkType: hard + +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.14" + checksum: 10/3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.8" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.14" + checksum: 10/269dad101dda73e3110117a9b84db86f0b5c07dad3a9418116fd38d580cab7fc628a4fc167e29b6d7c39da2f53374b78e7cb578b3c5ec7a556689d985d193519 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.15" + reflect.getprototypeof: "npm:^1.0.9" + checksum: 10/c2869aa584cdae24ecfd282f20a0f556b13a49a9d5bca1713370bb3c89dff0ccbc5ceb45cb5b784c98f4579e5e3e2a07e438c3a5b8294583e2bd4abbd5104fb5 + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + reflect.getprototypeof: "npm:^1.0.6" + checksum: 10/d6b2f0e81161682d2726eb92b1dc2b0890890f9930f33f9bcf6fc7272895ce66bc368066d273e6677776de167608adc53fcf81f1be39a146d64b630edbf2081c + languageName: node + linkType: hard + +"typed-error@npm:^3.0.2": + version: 3.2.2 + resolution: "typed-error@npm:3.2.2" + checksum: 10/e35ef8b16ae5681578d4d5201c6e02471b7d7cb21420ba60017982ddbc17c4f529e87ba119f82a259dfb3b3ba8acc40945897cff173cbefe018c5e2f1b66de5e + languageName: node + linkType: hard + +"typedarray@npm:^0.0.6": + version: 0.0.6 + resolution: "typedarray@npm:0.0.6" + checksum: 10/2cc1bcf7d8c1237f6a16c04efc06637b2c5f2d74e58e84665445cf87668b85a21ab18dd751fa49eee6ae024b70326635d7b79ad37b1c370ed2fec6aeeeb52714 + languageName: node + linkType: hard + +"types-ramda@npm:^0.30.1": + version: 0.30.1 + resolution: "types-ramda@npm:0.30.1" + dependencies: + ts-toolbelt: "npm:^9.6.0" + checksum: 10/b865c8f97df911b82b51b3cb4afa9b52b971d344dd79d203cd118e424a03761aebfea538c643f6283f700a3b4000d07d2168e353691b5caff076542bad78e420 + languageName: node + linkType: hard + +"typescript-json-schema@npm:^0.65.0": + version: 0.65.1 + resolution: "typescript-json-schema@npm:0.65.1" + dependencies: + "@types/json-schema": "npm:^7.0.9" + "@types/node": "npm:^18.11.9" + glob: "npm:^7.1.7" + path-equal: "npm:^1.2.5" + safe-stable-stringify: "npm:^2.2.0" + ts-node: "npm:^10.9.1" + typescript: "npm:~5.5.0" + yargs: "npm:^17.1.1" + bin: + typescript-json-schema: bin/typescript-json-schema + checksum: 10/50a1935378639d5d47e452702766a3fdab22e1d06192f26f81b79e0da504e71af987ff21cb13909479a202aad8d1216a654f16ebda2ee2056b5f859584b4c7d2 + languageName: node + linkType: hard + +"typescript@npm:5.7.2": + version: 5.7.2 + resolution: "typescript@npm:5.7.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/4caa3904df69db9d4a8bedc31bafc1e19ffb7b24fbde2997a1633ae1398d0de5bdbf8daf602ccf3b23faddf1aeeb9b795223a2ed9c9a4fdcaf07bfde114a401a + languageName: node + linkType: hard + +"typescript@npm:~5.3.0": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/6e4e6a14a50c222b3d14d4ea2f729e79f972fa536ac1522b91202a9a65af3605c2928c4a790a4a50aa13694d461c479ba92cedaeb1e7b190aadaa4e4b96b8e18 + languageName: node + linkType: hard + +"typescript@npm:~5.5.0": + version: 5.5.4 + resolution: "typescript@npm:5.5.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/1689ccafef894825481fc3d856b4834ba3cc185a9c2878f3c76a9a1ef81af04194849840f3c69e7961e2312771471bb3b460ca92561e1d87599b26c37d0ffb6f + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A5.7.2#optional!builtin<compat/typescript>": + version: 5.7.2 + resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin<compat/typescript>::version=5.7.2&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/d75ca10141afc64fd3474b41a8b082b640555bed388d237558aed64e5827ddadb48f90932c7f4205883f18f5bcab8b6a739a2cfac95855604b0dfeb34bc2f3eb + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A~5.3.0#optional!builtin<compat/typescript>": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>::version=5.3.3&hash=e012d7" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/c93786fcc9a70718ba1e3819bab56064ead5817004d1b8186f8ca66165f3a2d0100fee91fa64c840dcd45f994ca5d615d8e1f566d39a7470fc1e014dbb4cf15d + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A~5.5.0#optional!builtin<compat/typescript>": + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin<compat/typescript>::version=5.5.4&hash=379a07" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/746fdd0865c5ce4f15e494c57ede03a9e12ede59cfdb40da3a281807853fe63b00ef1c912d7222143499aa82f18b8b472baa1830df8804746d09b55f6cf5b1cc + languageName: node + linkType: hard + +"uc.micro@npm:^1.0.1, uc.micro@npm:^1.0.5": + version: 1.0.6 + resolution: "uc.micro@npm:1.0.6" + checksum: 10/6898bb556319a38e9cf175e3628689347bd26fec15fc6b29fa38e0045af63075ff3fea4cf1fdba9db46c9f0cbf07f2348cd8844889dd31ebd288c29fe0d27e7a + languageName: node + linkType: hard + +"uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": + version: 2.1.0 + resolution: "uc.micro@npm:2.1.0" + checksum: 10/37197358242eb9afe367502d4638ac8c5838b78792ab218eafe48287b0ed28aaca268ec0392cc5729f6c90266744de32c06ae938549aee041fc93b0f9672d6b2 + languageName: node + linkType: hard + +"uglify-js@npm:^3.1.4": + version: 3.19.3 + resolution: "uglify-js@npm:3.19.3" + bin: + uglifyjs: bin/uglifyjs + checksum: 10/6b9639c1985d24580b01bb0ab68e78de310d38eeba7db45bec7850ab4093d8ee464d80ccfaceda9c68d1c366efbee28573b52f95e69ac792354c145acd380b11 + languageName: node + linkType: hard + +"uid-safe@npm:~2.1.5": + version: 2.1.5 + resolution: "uid-safe@npm:2.1.5" + dependencies: + random-bytes: "npm:~1.0.0" + checksum: 10/07536043da9a026f4a2bc397543d0ace7587449afa1d9d2c4fd3ce76af8a5263a678788bcc429dff499ef29d45843cd5ee9d05434450fcfc19cc661229f703d1 + languageName: node + linkType: hard + +"uid2@npm:0.0.3": + version: 0.0.3 + resolution: "uid2@npm:0.0.3" + checksum: 10/c8f64acfa94aa42d90c1a61ba9df0162f0db0d28c211e21cf5792b3d70b7ad9fd75d19c7cadcce81896ea111335e57e65891a3b6d0a1343a9adf45abf3d4c47d + languageName: node + linkType: hard + +"uid2@npm:0.0.x": + version: 0.0.4 + resolution: "uid2@npm:0.0.4" + checksum: 10/e92325ce2e3b7be504b19e835dbb5a8b0495031f364b08ca46745468ed0ae0f202a4fdaf99a1a2715844156efc3ab410456ae24a0f7c0ae4b0a2e9f2784edfd9 + languageName: node + linkType: hard + +"uid2@npm:^1.0.0": + version: 1.0.0 + resolution: "uid2@npm:1.0.0" + checksum: 10/7efad0da3839ef2bebc6fae4bd29905702cd64233b3907e3300aa2d7ea1a00c1ae8c41a5e16ca34ac2db2d25c5607d5989673e1df51a2a076fefbeed51605ec3 + languageName: node + linkType: hard + +"uid@npm:2.0.2": + version: 2.0.2 + resolution: "uid@npm:2.0.2" + dependencies: + "@lukeed/csprng": "npm:^1.0.0" + checksum: 10/18f6da43d8e1b8643077e8123f877b4506759d9accc15337140a1bf7c99f299a66e88b27ab4c640e66e6a10f19e3a85afa45fdf830dd4bab7570d07a3d51e073 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + has-bigints: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + which-boxed-primitive: "npm:^1.1.1" + checksum: 10/fadb347020f66b2c8aeacf8b9a79826fa34cc5e5457af4eb0bbc4e79bd87fed0fa795949825df534320f7c13f199259516ad30abc55a6e7b91d8d996ca069e50 + languageName: node + linkType: hard + +"underscore@npm:1.12.1": + version: 1.12.1 + resolution: "underscore@npm:1.12.1" + checksum: 10/c3bb50c61ef7dea4b9add6d48f98316f65de1075801dc8cd01ecd82122b99eb17ce0f068f00f6cc10245d5cf75c443ce96f8efc5458d7773b44af9bd7c2ccc56 + languageName: node + linkType: hard + +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd + languageName: node + linkType: hard + +"undici@npm:^5.28.4": + version: 5.28.5 + resolution: "undici@npm:5.28.5" + dependencies: + "@fastify/busboy": "npm:^2.0.0" + checksum: 10/459cd84ab75fe90d696fa2634a8b5b23f9e1080b27236c6809bd74e51862be85df6d95b4a8fed3ee42554495008cb3c05f1bc9d4a1807478f433cca567003d70 + languageName: node + linkType: hard + +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.1 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.1" + checksum: 10/3c3dabdb1d22aef4904399f9e810d0b71c0b12b3815169d96fac97e56d5642840c6071cf709adcace2252bc6bb80242396c2ec74b37224eb015c5f7aca40bad7 + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: "npm:^2.0.0" + unicode-property-aliases-ecmascript: "npm:^2.0.0" + checksum: 10/1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.2.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.2.0" + checksum: 10/9fd53c657aefe5d3cb8208931b4c34fbdb30bb5aa9a6c6bf744e2f3036f00b8889eeaf30cb55a873b76b6ee8b5801ea770e1c49b3352141309f58f0ebb3011d8 + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 10/243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + +"unified@npm:^10.0.0": + version: 10.1.2 + resolution: "unified@npm:10.1.2" + dependencies: + "@types/unist": "npm:^2.0.0" + bail: "npm:^2.0.0" + extend: "npm:^3.0.0" + is-buffer: "npm:^2.0.0" + is-plain-obj: "npm:^4.0.0" + trough: "npm:^2.0.0" + vfile: "npm:^5.0.0" + checksum: 10/6cffebcefc3290be26d25a58ba714cda943142782baf320fddf374ca3a319bdaabb006f96df4be17b8b367f5e6f6e113b1027c52ef66154846a7a110550f6688 + languageName: node + linkType: hard + +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" + dependencies: + unique-slug: "npm:^5.0.0" + checksum: 10/6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df + languageName: node + linkType: hard + +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10/beafdf3d6f44990e0a5ce560f8f881b4ee811be70b6ba0db25298c31c8cf525ed963572b48cd03be1c1349084f9e339be4241666d7cf1ebdad20598d3c652b27 + languageName: node + linkType: hard + +"unist-util-generated@npm:^2.0.0": + version: 2.0.1 + resolution: "unist-util-generated@npm:2.0.1" + checksum: 10/0528642918683f1518ab7a50cf8c900df10d8717b58bd2fb05aab29393b1c4050fd2740792f18d477b52f942bfb0e6e00023e985c0a7bd63859d3d836b56e4ce + languageName: node + linkType: hard + +"unist-util-is@npm:^5.0.0": + version: 5.2.1 + resolution: "unist-util-is@npm:5.2.1" + dependencies: + "@types/unist": "npm:^2.0.0" + checksum: 10/c10f6c07aad4f4830ffa8ea82b42a2c8d5cd36c7555e27889e5fee953040af321e4e6f4e52c4edb606604de75d7230a5f4bc7b71b8ac3e874a26ab595c2057e4 + languageName: node + linkType: hard + +"unist-util-position@npm:^4.0.0": + version: 4.0.4 + resolution: "unist-util-position@npm:4.0.4" + dependencies: + "@types/unist": "npm:^2.0.0" + checksum: 10/aedbc5d112cdab85b752a7dacd8f04233655f00e08948a42f6e49682467c6fc0c531c91acc71188da5ac8acfea9e67d72bc054127d1c4b76b31792cfb5132423 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^3.0.0": + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" + dependencies: + "@types/unist": "npm:^2.0.0" + checksum: 10/07913e4fd77fe57d95f8b2f771354f97a29082229c1ad14ceedce6bbc77b2d784ca8296563335471cdca97915e548204bd6f098ea5b808b822b4b54087662cfb + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^5.0.0, unist-util-visit-parents@npm:^5.1.1": + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" + dependencies: + "@types/unist": "npm:^2.0.0" + unist-util-is: "npm:^5.0.0" + checksum: 10/5381fc57a129d478d983b988d86b72a1266d6f91fc608562b00bfa76596128d6e4d1c2b26ced64d96e55eb5d27d620081b4ee9703979bab63e1210789e781372 + languageName: node + linkType: hard + +"unist-util-visit@npm:^4.0.0": + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" + dependencies: + "@types/unist": "npm:^2.0.0" + unist-util-is: "npm:^5.0.0" + unist-util-visit-parents: "npm:^5.1.1" + checksum: 10/e3b20c6b1f5ae1b7b40bbf9be49103a342d98fad98bdf958110c20d72e5923bd3f12966b6702459bc61ab832facb5af418a79af87cefa7a8a41b892369678b13 + languageName: node + linkType: hard + +"universal-github-app-jwt@npm:^1.1.1": + version: 1.2.0 + resolution: "universal-github-app-jwt@npm:1.2.0" + dependencies: + "@types/jsonwebtoken": "npm:^9.0.0" + jsonwebtoken: "npm:^9.0.2" + checksum: 10/4375f84e95150c84f4e943eab2d28d7d34c16e8870e98960f513eea23babe74c17a1350dc5206e51c1ede9ac8ea7d8e6441b538fdcd68e94064547084a374cd5 + languageName: node + linkType: hard + +"universal-user-agent@npm:^6.0.0": + version: 6.0.1 + resolution: "universal-user-agent@npm:6.0.1" + checksum: 10/fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c + languageName: node + linkType: hard + +"universalify@npm:^0.1.0": + version: 0.1.2 + resolution: "universalify@npm:0.1.2" + checksum: 10/40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: 10/e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10/ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 + languageName: node + linkType: hard + +"unixify@npm:^1.0.0": + version: 1.0.0 + resolution: "unixify@npm:1.0.0" + dependencies: + normalize-path: "npm:^2.1.1" + checksum: 10/3be30e48579fc6c7390bd59b4ab9e745fede0c164dfb7351cf710bd1dbef8484b1441186205af6bcb13b731c0c88caf9b33459f7bf8c89e79c046e656ae433f0 + languageName: node + linkType: hard + +"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 + languageName: node + linkType: hard + +"unraw@npm:^3.0.0": + version: 3.0.0 + resolution: "unraw@npm:3.0.0" + checksum: 10/bc344357abfa2c870f96c6121f479c6252a318404a9401ef0d84ee73e47a7bdc508a38305e7fae78634aed9ec716eb8a7da968ede705e91019b0de28a0fa64f3 + languageName: node + linkType: hard + +"upath@npm:2.0.1": + version: 2.0.1 + resolution: "upath@npm:2.0.1" + checksum: 10/7b98a83559a295d59f87f7a8d615c7549d19e4aec4dd9d52be2bf1ba93e1d6ee7d8f2188cdecbf303a22cea3768abff4268b960350152a0264125f577d9ed79e + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.1.1": + version: 1.1.2 + resolution: "update-browserslist-db@npm:1.1.2" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10/e7bf8221dfb21eba4a770cd803df94625bb04f65a706aa94c567de9600fe4eb6133fda016ec471dad43b9e7959c1bffb6580b5e20a87808d2e8a13e3892699a9 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10/b271ca7e3d46b7160222e3afa3e531505161c9a4e097febae9664e4b59912f4cbe94861361a4175edac3a03fee99d91e44b6a58c17a634bc5a664b19fc76fbcb + languageName: node + linkType: hard + +"uri-template@npm:^2.0.0": + version: 2.0.0 + resolution: "uri-template@npm:2.0.0" + dependencies: + pct-encode: "npm:~1.0.0" + checksum: 10/99d520cd116171fb83f742508aa68e78559fc87ece5c3da1455a38e6105e9463c1f52c9f5b62c68659c85c98f66a68abaa61dc7290b0e54e7e893ffe12dbb3d1 + languageName: node + linkType: hard + +"urijs@npm:^1.19.10, urijs@npm:^1.19.11": + version: 1.19.11 + resolution: "urijs@npm:1.19.11" + checksum: 10/2aa5547b53c37ebee03a8ad70feae1638a37cc4c7e543abbffb14fc86b17f84f303d08e45c501441410c025bab22aa84673c97604b7b2619967f1dd49f69931f + languageName: node + linkType: hard + +"url-join@npm:^4.0.1": + version: 4.0.1 + resolution: "url-join@npm:4.0.1" + checksum: 10/b53b256a9a36ed6b0f6768101e78ca97f32d7b935283fd29ce19d0bbfb6f88aa80aa6c03fd87f2f8978ab463a6539f597a63051e7086f3379685319a7495f709 + languageName: node + linkType: hard + +"url-parse@npm:^1.5.10, url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: "npm:^2.1.1" + requires-port: "npm:^1.0.0" + checksum: 10/c9e96bc8c5b34e9f05ddfeffc12f6aadecbb0d971b3cc26015b58d5b44676a99f50d5aeb1e5c9e61fa4d49961ae3ab1ae997369ed44da51b2f5ac010d188e6ad + languageName: node + linkType: hard + +"url@npm:^0.11.0": + version: 0.11.4 + resolution: "url@npm:0.11.4" + dependencies: + punycode: "npm:^1.4.1" + qs: "npm:^6.12.3" + checksum: 10/e787d070f0756518b982a4653ef6cdf4d9030d8691eee2d483344faf2b530b71d302287fa63b292299455fea5075c502a5ad5f920cb790e95605847f957a65e4 + languageName: node + linkType: hard + +"urlpattern-polyfill@npm:^10.0.0": + version: 10.0.0 + resolution: "urlpattern-polyfill@npm:10.0.0" + checksum: 10/346819dbe718e929988298d02a988b8ddfa601d08daaa7e69b1148eab699c86c0f0f933d68d8c8cf913166fe64156ed28904e673200d18ef7e9ed6b58cea3fc7 + languageName: node + linkType: hard + +"urlpattern-polyfill@npm:^8.0.0": + version: 8.0.2 + resolution: "urlpattern-polyfill@npm:8.0.2" + checksum: 10/fd86b5c55473f3abbf9ed317b953c9cbb4fa6b3f75f681a1d982fe9c17bbc8d9bcf988f4cf3bda35e2e5875984086c97e177f97f076bb80dfa2beb85d1dd7b23 + languageName: node + linkType: hard + +"use-callback-ref@npm:^1.3.3": + version: 1.3.3 + resolution: "use-callback-ref@npm:1.3.3" + dependencies: + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/adf06a7b6a27d3651c325ac9b66d2b82ccacaed7450b85b211d123e91d9a23cb5a587fcc6db5b4fd07ac7233e5abf024d30cf02ddc2ec46bca712151c0836151 + languageName: node + linkType: hard + +"use-immer@npm:^0.10.0": + version: 0.10.0 + resolution: "use-immer@npm:0.10.0" + peerDependencies: + immer: ">=8.0.0" + react: ^16.8.0 || ^17.0.1 || ^18.0.0 + checksum: 10/372b0eea0a05e9435f5dc57a877ec619ea9a479fc82423f502b4a498d5697f8b06b85d089058db5a056bc8bbdb8e6f9ea8c9850b51a6b05d5c63ab0c8eeb2b7e + languageName: node + linkType: hard + +"use-memo-one@npm:^1.1.1": + version: 1.1.3 + resolution: "use-memo-one@npm:1.1.3" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 10/8f08eba26d69406b61bb4b8dacdd5a92bd6aef5b53d346dfe87954f7330ee10ecabc937cc7854635155d46053828e85c10b5a5aff7a04720e6a97b9f42999bac + languageName: node + linkType: hard + +"use-resize-observer@npm:^9.1.0": + version: 9.1.0 + resolution: "use-resize-observer@npm:9.1.0" + dependencies: + "@juggle/resize-observer": "npm:^3.3.1" + peerDependencies: + react: 16.8.0 - 18 + react-dom: 16.8.0 - 18 + checksum: 10/821d3f783090e36c694ef0ae3e366b364a691a8254d04337700ea79757e01e2d79f307ee517487c9246db7e8bc9625b474dd6ac7dad18d777004dee817826080 + languageName: node + linkType: hard + +"use-sidecar@npm:^1.1.3": + version: 1.1.3 + resolution: "use-sidecar@npm:1.1.3" + dependencies: + detect-node-es: "npm:^1.1.0" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10/2fec05eb851cdfc4a4657b1dfb434e686f346c3265ffc9db8a974bb58f8128bd4a708a3cc00e8f51655fccf81822ed4419ebed42f41610589e3aab0cf2492edb + languageName: node + linkType: hard + +"use-sync-external-store@npm:^1.4.0": + version: 1.4.0 + resolution: "use-sync-external-store@npm:1.4.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10/08bf581a8a2effaefc355e9d18ed025d436230f4cc973db2f593166df357cf63e47b9097b6e5089b594758bde322e1737754ad64905e030d70f8ff7ee671fd01 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"util@npm:^0.10.4": + version: 0.10.4 + resolution: "util@npm:0.10.4" + dependencies: + inherits: "npm:2.0.3" + checksum: 10/1200a1ca2b474758342b3a0c5261c56f14ef09ad7eeaec3e6f449f5776ecdfce09a153cad62652b823e74647cdcfd2918552eadd2434783dfb58dabc5061803a + languageName: node + linkType: hard + +"util@npm:^0.11.0": + version: 0.11.1 + resolution: "util@npm:0.11.1" + dependencies: + inherits: "npm:2.0.3" + checksum: 10/03c26d737705c6173ace351e9b429cb9a2839dee38016ffb49eac88fb629322e300c85ff381ff31034745f56c755b5f81b752f93738d54510484d0f72bfe7a57 + languageName: node + linkType: hard + +"util@npm:^0.12.3": + version: 0.12.5 + resolution: "util@npm:0.12.5" + dependencies: + inherits: "npm:^2.0.3" + is-arguments: "npm:^1.0.4" + is-generator-function: "npm:^1.0.7" + is-typed-array: "npm:^1.1.3" + which-typed-array: "npm:^1.1.2" + checksum: 10/61a10de7753353dd4d744c917f74cdd7d21b8b46379c1e48e1c4fd8e83f8190e6bd9978fc4e5102ab6a10ebda6019d1b36572fa4a325e175ec8b789a121f6147 + languageName: node + linkType: hard + +"utila@npm:~0.4": + version: 0.4.0 + resolution: "utila@npm:0.4.0" + checksum: 10/b068d8cb140588da0d0c80ee3c14c6b75d3f68760d8a1c6c3908d0270e9e4056454ff16189586481b7382926c44674f6929d08e06eaf9ec8f62736cd900169c5 + languageName: node + linkType: hard + +"utility-types@npm:^3.10.0": + version: 3.11.0 + resolution: "utility-types@npm:3.11.0" + checksum: 10/a3c51463fc807ed04ccc8b5d0fa6e31f3dcd7a4cbd30ab4bc6d760ce5319dd493d95bf04244693daf316f97e9ab2a37741edfed8748ad38572a595398ad0fdaf + languageName: node + linkType: hard + +"utils-merge@npm:1.0.1, utils-merge@npm:1.x.x, utils-merge@npm:^1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798 + languageName: node + linkType: hard + +"utrie@npm:^1.0.2": + version: 1.0.2 + resolution: "utrie@npm:1.0.2" + dependencies: + base64-arraybuffer: "npm:^1.0.2" + checksum: 10/0c9458380bf3113f425a268e3d605aef163bfbaea62bf24de517b62b6e6744394d8ef1cdd9b07423359aec5ed402baab4bb2c5beec64f674ec635dc2f8dbd4bf + languageName: node + linkType: hard + +"uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "uuid@npm:10.0.0" + bin: + uuid: dist/bin/uuid + checksum: 10/35aa60614811a201ff90f8ca5e9ecb7076a75c3821e17f0f5ff72d44e36c2d35fcbc2ceee9c4ac7317f4cc41895da30e74f3885e30313bee48fda6338f250538 + languageName: node + linkType: hard + +"uuid@npm:^11.0.0, uuid@npm:^11.0.2": + version: 11.0.5 + resolution: "uuid@npm:11.0.5" + bin: + uuid: dist/esm/bin/uuid + checksum: 10/0594ecdff3051e15d4a2c614b4c72e73af373bde0a5d156512353c01156975295d024ae8d7151846d7bd4d22ccd251b16ed51b4318fa71505fb20ad984102dc1 + languageName: node + linkType: hard + +"uuid@npm:^3.3.2, uuid@npm:^3.4.0": + version: 3.4.0 + resolution: "uuid@npm:3.4.0" + bin: + uuid: ./bin/uuid + checksum: 10/4f2b86432b04cc7c73a0dd1bcf11f1fc18349d65d2e4e32dd0fc658909329a1e0cc9244aa93f34c0cccfdd5ae1af60a149251a5f420ec3ac4223a3dab198fb2e + languageName: node + linkType: hard + +"uuid@npm:^8.0.0, uuid@npm:^8.3.0, uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 + languageName: node + linkType: hard + +"uuid@npm:^9.0.0, uuid@npm:^9.0.1": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 10/9d0b6adb72b736e36f2b1b53da0d559125ba3e39d913b6072f6f033e0c87835b414f0836b45bcfaf2bdf698f92297fea1c3cc19b0b258bc182c9c43cc0fab9f2 + languageName: node + linkType: hard + +"uvu@npm:^0.5.0": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: "npm:^2.0.0" + diff: "npm:^5.0.0" + kleur: "npm:^4.0.3" + sade: "npm:^1.7.3" + bin: + uvu: bin.js + checksum: 10/66ba25afc6732249877f9f4f8b6146f3aaa97538c51cf498f55825d602c33dbb903e02c7e1547cbca6bdfbb609e07eb7ea758b5156002ac2dd5072f00606f8d9 + languageName: node + linkType: hard + +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 10/88d3423a52b6aaf1836be779cab12f7016d47ad8430dffba6edf766695e6d90ad4adaa3d8eeb512cc05924f3e246c4a4ca51e089dccf4402caa536b5e5be8961 + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^9.0.1": + version: 9.3.0 + resolution: "v8-to-istanbul@npm:9.3.0" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.12" + "@types/istanbul-lib-coverage": "npm:^2.0.1" + convert-source-map: "npm:^2.0.0" + checksum: 10/fb1d70f1176cb9dc46cabbb3fd5c52c8f3e8738b61877b6e7266029aed0870b04140e3f9f4550ac32aebcfe1d0f38b0bac57e1e8fb97d68fec82f2b416148166 + languageName: node + linkType: hard + +"valid-url@npm:^1.0.9": + version: 1.0.9 + resolution: "valid-url@npm:1.0.9" + checksum: 10/343dfaf85eb3691dc8eb93f7bc007be1ee6091e6c6d1a68bf633cb85e4bf2930e34ca9214fb2c3330de5b652510b257a8ee1ff0a0a37df0925e9dabf93ee512d + languageName: node + linkType: hard + +"validate.io-array@npm:^1.0.3": + version: 1.0.6 + resolution: "validate.io-array@npm:1.0.6" + checksum: 10/54eca83ebc702e3e46499f9d9e77287a95ae25c4e727cd2fafee29c7333b3a36cca0c5d8f090b9406262786de80750fba85e7e7ef41e20bf8cc67d5570de449b + languageName: node + linkType: hard + +"validate.io-function@npm:^1.0.2": + version: 1.0.2 + resolution: "validate.io-function@npm:1.0.2" + checksum: 10/e4cce2479a20cb7c42e8630c777fb107059c27bc32925f769e3a73ca5fd62b4892d897b3c80227e14d5fcd1c5b7d05544e0579d63e59f14034c0052cda7f7c44 + languageName: node + linkType: hard + +"validate.io-integer-array@npm:^1.0.0": + version: 1.0.0 + resolution: "validate.io-integer-array@npm:1.0.0" + dependencies: + validate.io-array: "npm:^1.0.3" + validate.io-integer: "npm:^1.0.4" + checksum: 10/5f6d7fab8df7d2bf546a05e830201768464605539c75a2c2417b632b4411a00df84b462f81eac75e1be95303e7e0ac92f244c137424739f4e15cd21c2eb52c7f + languageName: node + linkType: hard + +"validate.io-integer@npm:^1.0.4": + version: 1.0.5 + resolution: "validate.io-integer@npm:1.0.5" + dependencies: + validate.io-number: "npm:^1.0.3" + checksum: 10/88b3f8bb5a5277a95305d64abbfc437079220ce4f57a148cc6113e7ccec03dd86b10a69d413982602aa90a62b8d516148a78716f550dcd3aff863ac1c2a7a5e6 + languageName: node + linkType: hard + +"validate.io-number@npm:^1.0.3": + version: 1.0.3 + resolution: "validate.io-number@npm:1.0.3" + checksum: 10/42418aeb6c969efa745475154fe576809b02eccd0961aad0421b090d6e7a12d23a3e28b0d5dddd2c6347c1a6bdccb82bba5048c716131cd20207244d50e07282 + languageName: node + linkType: hard + +"value-or-promise@npm:1.0.11": + version: 1.0.11 + resolution: "value-or-promise@npm:1.0.11" + checksum: 10/9bd1cf82be5b59ec4a7ee9fa17ca7b3f16165c3ea33ebabe514f7a20e4f88dd11f912900f0279760618eb7fbd5e3bb2a4cf4b351b5fd8e8da69aa2719725e54a + languageName: node + linkType: hard + +"value-or-promise@npm:^1.0.11, value-or-promise@npm:^1.0.12": + version: 1.0.12 + resolution: "value-or-promise@npm:1.0.12" + checksum: 10/a4cc31fc9c3826b8a216ef2037b676904324c00c4acd903aaec2fe0c08516a189345261dd3cc822ec108532b2ea36b7c99bbdee1c3ddcb7f4b3d57d7e61b2064 + languageName: node + linkType: hard + +"vary@npm:^1, vary@npm:^1.1.2, vary@npm:~1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242 + languageName: node + linkType: hard + +"verror@npm:1.10.0": + version: 1.10.0 + resolution: "verror@npm:1.10.0" + dependencies: + assert-plus: "npm:^1.0.0" + core-util-is: "npm:1.0.2" + extsprintf: "npm:^1.2.0" + checksum: 10/da548149dd9c130a8a2587c9ee71ea30128d1526925707e2d01ed9c5c45c9e9f86733c66a328247cdd5f7c1516fb25b0f959ba754bfbe15072aa99ff96468a29 + languageName: node + linkType: hard + +"vfile-message@npm:^3.0.0": + version: 3.1.4 + resolution: "vfile-message@npm:3.1.4" + dependencies: + "@types/unist": "npm:^2.0.0" + unist-util-stringify-position: "npm:^3.0.0" + checksum: 10/423ca87f4427a403e4688d7ec663a2e6add694eefac47c945746463377428c7553bc613058841f1da83e18b68af886d3dd11cb96d582b5cc3c98e11efb7e55e9 + languageName: node + linkType: hard + +"vfile@npm:^5.0.0": + version: 5.3.7 + resolution: "vfile@npm:5.3.7" + dependencies: + "@types/unist": "npm:^2.0.0" + is-buffer: "npm:^2.0.0" + unist-util-stringify-position: "npm:^3.0.0" + vfile-message: "npm:^3.0.0" + checksum: 10/d8f59b419d4c83b3ed24f500cf02393149b728f8803f88519c18fe0733f62544fa9ab0d8425a8bc7835181d848b9ce29c014168dc45af72f416074bbe475f643 + languageName: node + linkType: hard + +"vm-browserify@npm:^1.0.1": + version: 1.1.2 + resolution: "vm-browserify@npm:1.1.2" + checksum: 10/ad5b17c9f7a9d9f1ed0e24c897782ab7a587c1fd40f370152482e1af154c7cf0b0bacc45c5ae76a44289881e083ae4ae127808fdff864aa9b562192aae8b5c3b + languageName: node + linkType: hard + +"vscode-languageserver-types@npm:^3.17.1": + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 10/900d0b81df5bef8d90933e75be089142f6989cc70fdb2d5a3a5f11fa20feb396aaea23ccffc8fbcc83a2f0e1b13c6ee48ff8151f236cbd6e61a4f856efac1a58 + languageName: node + linkType: hard + +"w3c-keyname@npm:^2.2.4": + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 10/95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: "npm:^4.0.0" + checksum: 10/9a00c412b5496f4f040842c9520bc0aaec6e0c015d06412a91a723cd7d84ea605ab903965f546b4ecdb3eae267f5145ba08565222b1d6cb443ee488cda9a0aee + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^5.0.0": + version: 5.0.0 + resolution: "w3c-xmlserializer@npm:5.0.0" + dependencies: + xml-name-validator: "npm:^5.0.0" + checksum: 10/d78f59e6b4f924aa53b6dfc56949959229cae7fe05ea9374eb38d11edcec01398b7f5d7a12576bd5acc57ff446abb5c9115cd83b9d882555015437cf858d42f0 + languageName: node + linkType: hard + +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: "npm:1.0.12" + checksum: 10/ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c + languageName: node + linkType: hard + +"watchpack@npm:^2.4.1": + version: 2.4.2 + resolution: "watchpack@npm:2.4.2" + dependencies: + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.1.2" + checksum: 10/6bd4c051d9af189a6c781c3158dcb3069f432a0c144159eeb0a44117412105c61b2b683a5c9eebc4324625e0e9b76536387d0ba354594fa6cbbdf1ef60bee4c3 + languageName: node + linkType: hard + +"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": + version: 1.7.3 + resolution: "wbuf@npm:1.7.3" + dependencies: + minimalistic-assert: "npm:^1.0.0" + checksum: 10/c18b51c4e1fb19705c94b93c0cf093ba014606abceee949399d56074ef1863bf4897a8d884be24e8d224d18c9ce411cf6924006d0a5430492729af51256e067a + languageName: node + linkType: hard + +"wcwidth@npm:>=1.0.1, wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: "npm:^1.0.3" + checksum: 10/182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817 + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 10/8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9 + languageName: node + linkType: hard + +"web-tree-sitter@npm:=0.24.5": + version: 0.24.5 + resolution: "web-tree-sitter@npm:0.24.5" + checksum: 10/31bceb4ba9f56570e1037ba87c0c064b3e4699aade25180ec488a6de67b605206c4e4695ce360ca6394e653b08ca74524f8149da905be8d522d45bab2fef2223 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10/b65b9f8d6854572a84a5c69615152b63371395f0c5dcd6729c45789052296df54314db2bc3e977df41705eacb8bc79c247cee139a63fa695192f95816ed528ad + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: 10/4c4f65472c010eddbe648c11b977d048dd96956a625f7f8b9d64e1b30c3c1f23ea1acfd654648426ce5c743c2108a5a757c0592f02902cf7367adb7d14e67721 + languageName: node + linkType: hard + +"webpack-dev-middleware@npm:^7.4.2": + version: 7.4.2 + resolution: "webpack-dev-middleware@npm:7.4.2" + dependencies: + colorette: "npm:^2.0.10" + memfs: "npm:^4.6.0" + mime-types: "npm:^2.1.31" + on-finished: "npm:^2.4.1" + range-parser: "npm:^1.2.1" + schema-utils: "npm:^4.0.0" + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 10/608d101b82081a5bc6c0237f9945e14a8eefce1664c10877f3feb0042710f6c8b4288b07986505f791302d81b3c51180f679b97c91c3cdabd3fd0687a464ca1c + languageName: node + linkType: hard + +"webpack-dev-server@npm:^5.0.0": + version: 5.2.0 + resolution: "webpack-dev-server@npm:5.2.0" + dependencies: + "@types/bonjour": "npm:^3.5.13" + "@types/connect-history-api-fallback": "npm:^1.5.4" + "@types/express": "npm:^4.17.21" + "@types/serve-index": "npm:^1.9.4" + "@types/serve-static": "npm:^1.15.5" + "@types/sockjs": "npm:^0.3.36" + "@types/ws": "npm:^8.5.10" + ansi-html-community: "npm:^0.0.8" + bonjour-service: "npm:^1.2.1" + chokidar: "npm:^3.6.0" + colorette: "npm:^2.0.10" + compression: "npm:^1.7.4" + connect-history-api-fallback: "npm:^2.0.0" + express: "npm:^4.21.2" + graceful-fs: "npm:^4.2.6" + http-proxy-middleware: "npm:^2.0.7" + ipaddr.js: "npm:^2.1.0" + launch-editor: "npm:^2.6.1" + open: "npm:^10.0.3" + p-retry: "npm:^6.2.0" + schema-utils: "npm:^4.2.0" + selfsigned: "npm:^2.4.1" + serve-index: "npm:^1.9.1" + sockjs: "npm:^0.3.24" + spdy: "npm:^4.0.2" + webpack-dev-middleware: "npm:^7.4.2" + ws: "npm:^8.18.0" + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + bin: + webpack-dev-server: bin/webpack-dev-server.js + checksum: 10/f93ca46b037e547a9db157db72ef98ab177659ad13a6e63302d87bd77b32e524dd7133f1ad18f5a51ec68712911c59be8d4e06aa7bcbe6f56a9e9ce3774cf7f6 + languageName: node + linkType: hard + +"webpack-sources@npm:^1.4.3": + version: 1.4.3 + resolution: "webpack-sources@npm:1.4.3" + dependencies: + source-list-map: "npm:^2.0.0" + source-map: "npm:~0.6.1" + checksum: 10/6237c5d1ba639a5d67bd1135c9bba487eadbd04c5e75a2849508013f13cb4b57387e689e0991c19a14a87085be7cc0b8dd1515422ae351f6e3f813ed100ccbb8 + languageName: node + linkType: hard + +"webpack-sources@npm:^3.2.3": + version: 3.2.3 + resolution: "webpack-sources@npm:3.2.3" + checksum: 10/a661f41795d678b7526ae8a88cd1b3d8ce71a7d19b6503da8149b2e667fc7a12f9b899041c1665d39e38245ed3a59ab68de648ea31040c3829aa695a5a45211d + languageName: node + linkType: hard + +"webpack@npm:^5.94.0": + version: 5.97.1 + resolution: "webpack@npm:5.97.1" + dependencies: + "@types/eslint-scope": "npm:^3.7.7" + "@types/estree": "npm:^1.0.6" + "@webassemblyjs/ast": "npm:^1.14.1" + "@webassemblyjs/wasm-edit": "npm:^1.14.1" + "@webassemblyjs/wasm-parser": "npm:^1.14.1" + acorn: "npm:^8.14.0" + browserslist: "npm:^4.24.0" + chrome-trace-event: "npm:^1.0.2" + enhanced-resolve: "npm:^5.17.1" + es-module-lexer: "npm:^1.2.1" + eslint-scope: "npm:5.1.1" + events: "npm:^3.2.0" + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.2.11" + json-parse-even-better-errors: "npm:^2.3.1" + loader-runner: "npm:^4.2.0" + mime-types: "npm:^2.1.27" + neo-async: "npm:^2.6.2" + schema-utils: "npm:^3.2.0" + tapable: "npm:^2.1.1" + terser-webpack-plugin: "npm:^5.3.10" + watchpack: "npm:^2.4.1" + webpack-sources: "npm:^3.2.3" + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 10/665bd3b8c84b20f0b1f250159865e4d3e9b76c682030313d49124d5f8e96357ccdcc799dd9fe0ebf010fdb33dbc59d9863d79676a308e868e360ac98f7c09987 + languageName: node + linkType: hard + +"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": + version: 0.7.4 + resolution: "websocket-driver@npm:0.7.4" + dependencies: + http-parser-js: "npm:>=0.5.1" + safe-buffer: "npm:>=5.1.0" + websocket-extensions: "npm:>=0.1.1" + checksum: 10/17197d265d5812b96c728e70fd6fe7d067471e121669768fe0c7100c939d997ddfc807d371a728556e24fc7238aa9d58e630ea4ff5fd4cfbb40f3d0a240ef32d + languageName: node + linkType: hard + +"websocket-extensions@npm:>=0.1.1": + version: 0.1.4 + resolution: "websocket-extensions@npm:0.1.4" + checksum: 10/b5399b487d277c78cdd2aef63764b67764aa9899431e3a2fa272c6ad7236a0fb4549b411d89afa76d5afd664c39d62fc19118582dc937e5bb17deb694f42a0d1 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10/162d712d88fd134a4fe587e53302da812eb4215a1baa4c394dfd86eff31d0a079ff932c05233857997de07481093358d6e7587997358f49b8a580a777be22089 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^3.1.1": + version: 3.1.1 + resolution: "whatwg-encoding@npm:3.1.1" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10/bbef815eb67f91487c7f2ef96329743f5fd8357d7d62b1119237d25d41c7e452dff8197235b2d3c031365a17f61d3bb73ca49d0ed1582475aa4a670815e79534 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: 10/96f9f628c663c2ae05412c185ca81b3df54bcb921ab52fe9ebc0081c1720f25d770665401eb2338ab7f48c71568133845638e18a81ed52ab5d4dcef7d22b40ef + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^4.0.0": + version: 4.0.0 + resolution: "whatwg-mimetype@npm:4.0.0" + checksum: 10/894a618e2d90bf444b6f309f3ceb6e58cf21b2beaa00c8b333696958c4076f0c7b30b9d33413c9ffff7c5832a0a0c8569e5bb347ef44beded72aeefd0acd62e8 + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: "npm:^3.0.0" + webidl-conversions: "npm:^7.0.0" + checksum: 10/dfcd51c6f4bfb54685528fb10927f3fd3d7c809b5671beef4a8cdd7b1408a7abf3343a35bc71dab83a1424f1c1e92cc2700d7930d95d231df0fac361de0c7648 + languageName: node + linkType: hard + +"whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.0": + version: 14.1.0 + resolution: "whatwg-url@npm:14.1.0" + dependencies: + tr46: "npm:^5.0.0" + webidl-conversions: "npm:^7.0.0" + checksum: 10/3afd325de6cf3a367820ce7c3566a1f78eb1409c4f27b1867c74c76dab096d26acedf49a8b9b71db53df7d806ec2e9ae9ed96990b2f7d1abe6ecf1fe753af6eb + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10/f95adbc1e80820828b45cc671d97da7cd5e4ef9deb426c31bcd5ab00dc7103042291613b3ef3caec0a2335ed09e0d5ed026c940755dbb6d404e2b27f940fdf07 + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.0.2, which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" + dependencies: + is-bigint: "npm:^1.1.0" + is-boolean-object: "npm:^1.2.1" + is-number-object: "npm:^1.1.1" + is-string: "npm:^1.1.1" + is-symbol: "npm:^1.1.1" + checksum: 10/a877c0667bc089518c83ad4d845cf8296b03efe3565c1de1940c646e00a2a1ae9ed8a185bcfa27cbf352de7906f0616d83b9d2f19ca500ee02a551fb5cf40740 + languageName: node + linkType: hard + +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + function.prototype.name: "npm:^1.1.6" + has-tostringtag: "npm:^1.0.2" + is-async-function: "npm:^2.0.0" + is-date-object: "npm:^1.1.0" + is-finalizationregistry: "npm:^1.1.0" + is-generator-function: "npm:^1.0.10" + is-regex: "npm:^1.2.1" + is-weakref: "npm:^1.0.2" + isarray: "npm:^2.0.5" + which-boxed-primitive: "npm:^1.1.0" + which-collection: "npm:^1.0.2" + which-typed-array: "npm:^1.1.16" + checksum: 10/22c81c5cb7a896c5171742cd30c90d992ff13fb1ea7693e6cf80af077791613fb3f89aa9b4b7f890bd47b6ce09c6322c409932359580a2a2a54057f7b52d1cbe + languageName: node + linkType: hard + +"which-collection@npm:^1.0.1, which-collection@npm:^1.0.2": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" + dependencies: + is-map: "npm:^2.0.3" + is-set: "npm:^2.0.3" + is-weakmap: "npm:^2.0.2" + is-weakset: "npm:^2.0.3" + checksum: 10/674bf659b9bcfe4055f08634b48a8588e879161b9fefed57e9ec4ff5601e4d50a05ccd76cf10f698ef5873784e5df3223336d56c7ce88e13bcf52ebe582fc8d7 + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18, which-typed-array@npm:^1.1.2": + version: 1.1.18 + resolution: "which-typed-array@npm:1.1.18" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + checksum: 10/11eed801b2bd08cdbaecb17aff381e0fb03526532f61acc06e6c7b9370e08062c33763a51f27825f13fdf34aabd0df6104007f4e8f96e6eaef7db0ce17a26d6e + languageName: node + linkType: hard + +"which@npm:^1.2.14, which@npm:^1.3.1": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: "npm:^2.0.0" + bin: + which: ./bin/which + checksum: 10/549dcf1752f3ee7fbb64f5af2eead4b9a2f482108b7de3e85c781d6c26d8cf6a52d37cfbe0642a155fa6470483fe892661a859c03157f24c669cf115f3bbab5e + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f + languageName: node + linkType: hard + +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10/6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 + languageName: node + linkType: hard + +"winston-transport@npm:^4.5.0, winston-transport@npm:^4.9.0": + version: 4.9.0 + resolution: "winston-transport@npm:4.9.0" + dependencies: + logform: "npm:^2.7.0" + readable-stream: "npm:^3.6.2" + triple-beam: "npm:^1.3.0" + checksum: 10/5946918720baadd7447823929e94cf0935f92c4cff6d9451c6fcb009bd9d20a3b3df9ad606109e79d1e9f4d2ff678477bf09f81cfefce2025baaf27a617129bb + languageName: node + linkType: hard + +"winston@npm:^3.2.1": + version: 3.17.0 + resolution: "winston@npm:3.17.0" + dependencies: + "@colors/colors": "npm:^1.6.0" + "@dabh/diagnostics": "npm:^2.0.2" + async: "npm:^3.2.3" + is-stream: "npm:^2.0.0" + logform: "npm:^2.7.0" + one-time: "npm:^1.0.0" + readable-stream: "npm:^3.4.0" + safe-stable-stringify: "npm:^2.3.1" + stack-trace: "npm:0.0.x" + triple-beam: "npm:^1.3.0" + winston-transport: "npm:^4.9.0" + checksum: 10/220309a0ead36c1171158ab28cb9133f8597fba19c8c1c190df9329555530565b58f3af0037c1b80e0c49f7f9b6b3b01791d0c56536eb0be38678d36e316c2a3 + languageName: node + linkType: hard + +"word-wrap@npm:^1.2.5, word-wrap@npm:~1.2.3": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854 + languageName: node + linkType: hard + +"wordwrap@npm:^1.0.0": + version: 1.0.0 + resolution: "wordwrap@npm:1.0.0" + checksum: 10/497d40beb2bdb08e6d38754faa17ce20b0bf1306327f80cb777927edb23f461ee1f6bc659b3c3c93f26b08e1cf4b46acc5bae8fda1f0be3b5ab9a1a0211034cd + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540 + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.0.1": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187 + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10/7b1e4b35e9bb2312d2ee9ee7dc95b8cb5f8b4b5a89f7dde5543fe66c1e3715663094defa50d75454ac900bd210f702d575f15f3f17fa9ec0291806d2578d1ddf + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^3.0.7" + checksum: 10/3be1f5508a46c190619d5386b1ac8f3af3dbe951ed0f7b0b4a0961eed6fc626bd84b50cf4be768dabc0a05b672f5d0c5ee7f42daa557b14415d18c3a13c7d246 + languageName: node + linkType: hard + +"ws@npm:*, ws@npm:8.18.0, ws@npm:^8.11.0, ws@npm:^8.17.1, ws@npm:^8.18.0, ws@npm:^8.8.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10/70dfe53f23ff4368d46e4c0b1d4ca734db2c4149c6f68bc62cb16fc21f753c47b35fcc6e582f3bdfba0eaeb1c488cddab3c2255755a5c3eecb251431e42b3ff6 + languageName: node + linkType: hard + +"xml-but-prettier@npm:^1.0.1": + version: 1.0.1 + resolution: "xml-but-prettier@npm:1.0.1" + dependencies: + repeat-string: "npm:^1.5.2" + checksum: 10/dcb4e52dfcb7a696f6f3832e6caf3bce21ce939ae90c2acb85dc1fa4ee16bff697ca41e87a31945e83bf4393baa209ba2751dbda9d8b1191f9280e1ee141afd8 + languageName: node + linkType: hard + +"xml-crypto@npm:^6.0.0": + version: 6.0.0 + resolution: "xml-crypto@npm:6.0.0" + dependencies: + "@xmldom/is-dom-node": "npm:^1.0.1" + "@xmldom/xmldom": "npm:^0.8.10" + xpath: "npm:^0.0.33" + checksum: 10/bc8f634618e8c30844546cf7a19d3c80634f8134118a2d2b9b76f0bb094b745c53ad94214cd3577fba93327d5d992c7570903e4463ce078d9699e45008246400 + languageName: node + linkType: hard + +"xml-encryption@npm:^3.0.2": + version: 3.1.0 + resolution: "xml-encryption@npm:3.1.0" + dependencies: + "@xmldom/xmldom": "npm:^0.8.5" + escape-html: "npm:^1.0.3" + xpath: "npm:0.0.32" + checksum: 10/c84c1e11692181c24a1c30123fed4fa31015c58994bbdcf091f07fa79f0fb809774b1533d191c4739bf76bb0fb95f223d393e84cc48417480a1896b2b689373b + languageName: node + linkType: hard + +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: 10/f9582a3f281f790344a471c207516e29e293c6041b2c20d84dd6e58832cd7c19796c47e108fd4fd4b164a5e72ad94f2268f8ace8231cde4a2c6428d6aa220f92 + languageName: node + linkType: hard + +"xml-name-validator@npm:^5.0.0": + version: 5.0.0 + resolution: "xml-name-validator@npm:5.0.0" + checksum: 10/43f30f3f6786e406dd665acf08cd742d5f8a46486bd72517edb04b27d1bcd1599664c2a4a99fc3f1e56a3194bff588b12f178b7972bc45c8047bdc4c3ac8d4a1 + languageName: node + linkType: hard + +"xml2js@npm:^0.6.2": + version: 0.6.2 + resolution: "xml2js@npm:0.6.2" + dependencies: + sax: "npm:>=0.6.0" + xmlbuilder: "npm:~11.0.0" + checksum: 10/df29de8eeedb762c367d87945c39bcf54db19a2c522607491c266ed6184b5a749e37ff29cfaed0ac149da9ba332ac3dcf8e5ff2bd0a206be3343eca95faa941d + languageName: node + linkType: hard + +"xml@npm:=1.0.1": + version: 1.0.1 + resolution: "xml@npm:1.0.1" + checksum: 10/6c4c31a1308e45732e5ac6b50edbca0e8f7abe5cb5de10215d8e3c688819fe7c7706e056f6fb59b1a23fdf1000c2d7a8bba0a89e94aa1796cd2376d9a5ba401e + languageName: node + linkType: hard + +"xmlbuilder@npm:^15.1.1": + version: 15.1.1 + resolution: "xmlbuilder@npm:15.1.1" + checksum: 10/e6f4bab2504afdd5f80491bda948894d2146756532521dbe7db33ae0931cd3000e3b4da19b3f5b3f51bedbd9ee06582144d28136d68bd1df96579ecf4d4404a2 + languageName: node + linkType: hard + +"xmlbuilder@npm:~11.0.0": + version: 11.0.1 + resolution: "xmlbuilder@npm:11.0.1" + checksum: 10/c8c3d208783718db5b285101a736cd8e6b69a5c265199a0739abaa93d1a1b7de5489fd16df4e776e18b2c98cb91f421a7349e99fd8c1ebeb44ecfed72a25091a + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 10/4ad5924974efd004a47cce6acf5c0269aee0e62f9a805a426db3337af7bcbd331099df174b024ace4fb18971b8a56de386d2e73a1c4b020e3abd63a4a9b917f1 + languageName: node + linkType: hard + +"xpath@npm:0.0.32": + version: 0.0.32 + resolution: "xpath@npm:0.0.32" + checksum: 10/9d8be7adde4500e9ee96db963838269021f89ef1ad222fdfd41b7266336e851a38416b4a710c194dcf9eb35cf58ad11e023e5951e919151b76ffcd6eb3b2cbf4 + languageName: node + linkType: hard + +"xpath@npm:^0.0.33": + version: 0.0.33 + resolution: "xpath@npm:0.0.33" + checksum: 10/09c539661cafc0d75bb48d13fee7ce6e7593d88f4387c401a3b15d46d543e81f46680be5c6ecf868c11f6090ee67ea78e0c327c4e0ffceb2969308a2d1e238bb + languageName: node + linkType: hard + +"xpath@npm:^0.0.34": + version: 0.0.34 + resolution: "xpath@npm:0.0.34" + checksum: 10/77ce03c4494dab97b70fa443761c35a6bd484538a449714b981387a532a6eb22e245b29164f5d8a4a82f4f3cfd71d27ba71d09ed2b6fe933654585c6e46c0a25 + languageName: node + linkType: hard + +"xtend@npm:^4.0.0": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10/ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10/5f1b5f95e3775de4514edbb142398a2c37849ccfaf04a015be5d75521e9629d3be29bd4432d23c57f37e5b61ade592fb0197022e9993f81a06a5afbdcda9346d + languageName: node + linkType: hard + +"yallist@npm:4.0.0, yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10/4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10/9af0a4329c3c6b779ac4736c69fae4190ac03029fa27c1aef4e6bcc92119b73dea6fe5db5fe881fb0ce2a0e9539a42cdf60c7c21eda04d1a0b8c082e38509efb + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10/1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a + languageName: node + linkType: hard + +"yaml-ast-parser@npm:^0.0.43": + version: 0.0.43 + resolution: "yaml-ast-parser@npm:0.0.43" + checksum: 10/a54d00c8e0716a392c6e76eee965b3b4bba434494196490946e416fc47f20a1d89820461afacd9431edbb8209e28fce33bcff1fb42dd83f90e51fc31e80251c9 + languageName: node + linkType: hard + +"yaml-diff-patch@npm:^2.0.0": + version: 2.0.0 + resolution: "yaml-diff-patch@npm:2.0.0" + dependencies: + fast-json-patch: "npm:^3.1.0" + oppa: "npm:^0.4.0" + yaml: "npm:^2.0.0-10" + bin: + yaml-diff-patch: dist/bin/yaml-patch.js + yaml-overwrite: dist/bin/yaml-patch.js + yaml-patch: dist/bin/yaml-patch.js + checksum: 10/8563022369295a974a838070365fd827f05fcb3341e004c43b8c7883d222fcb93144ac875e31ae0b033bd6e377b1d6cab96abb47d3e5135bebe7c73620d0f674 + languageName: node + linkType: hard + +"yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: 10/e088b37b4d4885b70b50c9fa1b7e54bd2e27f5c87205f9deaffd1fb293ab263d9c964feadb9817a7b129a5bf30a06582cb08750f810568ecc14f3cdbabb79cb3 + languageName: node + linkType: hard + +"yaml@npm:^2.0.0, yaml@npm:^2.0.0-10, yaml@npm:^2.2.1, yaml@npm:^2.2.2": + version: 2.7.0 + resolution: "yaml@npm:2.7.0" + bin: + yaml: bin.mjs + checksum: 10/c8c314c62fbd49244a6a51b06482f6d495b37ab10fa685fcafa1bbaae7841b7233ee7d12cab087bcca5a0b28adc92868b6e437322276430c28d00f1c1732eeec + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.2": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 10/0188f430a0f496551d09df6719a9132a3469e47fe2747208b1dd0ab2bb0c512a95d0b081628bbca5400fb20dbf2fabe63d22badb346cecadffdd948b049f3fcc + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10/9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e + languageName: node + linkType: hard + +"yargs@npm:^16.2.0": + version: 16.2.0 + resolution: "yargs@npm:16.2.0" + dependencies: + cliui: "npm:^7.0.2" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^20.2.2" + checksum: 10/807fa21211d2117135d557f95fcd3c3d390530cda2eca0c840f1d95f0f40209dcfeb5ec18c785a1f3425896e623e3b2681e8bb7b6600060eda1c3f4804e7957e + languageName: node + linkType: hard + +"yargs@npm:^17.1.1, yargs@npm:^17.3.1, yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10/abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576 + languageName: node + linkType: hard + +"yauzl@npm:^3.0.0": + version: 3.2.0 + resolution: "yauzl@npm:3.2.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + pend: "npm:~1.2.0" + checksum: 10/a3cd2bfcf7590673bb35750f2a4e5107e3cc939d32d98a072c0673fe42329e390f471b4a53dbbd72512229099b18aa3b79e6ddb87a73b3a17446080c903a2c4b + languageName: node + linkType: hard + +"ylru@npm:^1.2.0": + version: 1.4.0 + resolution: "ylru@npm:1.4.0" + checksum: 10/5437f8eb2fb5dd515845c657dde3cecaa9f6bd4c6386d2a5212d3fafe02189c7d8ebfdfc84940a7811607cb3524eb362ce95d3180d355cd5deb610aa8c82c9bc + languageName: node + linkType: hard + +"yml-loader@npm:^2.1.0": + version: 2.1.0 + resolution: "yml-loader@npm:2.1.0" + dependencies: + js-yaml: "npm:^3.8.3" + loader-utils: "npm:^1.1.0" + checksum: 10/7afc624b3c9d3520698d275069b891a826ecb1ecf3c37e8312737067b23427f1e0d5c4b05cb08bea85d675c0a4f883831bcc82fda34f79158c0659a2d09de920 + languageName: node + linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 10/2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + languageName: node + linkType: hard + +"yn@npm:^4.0.0": + version: 4.0.0 + resolution: "yn@npm:4.0.0" + checksum: 10/2d60113b6f43f7c29a0a97719d8da4f626b755f5bb2fd19b00d1fe732db1900ad3f1785811a86d941cbe2800f02773af00d0ed99201333eeb3618db8502f7e96 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard + +"yup@npm:^1.0.0": + version: 1.6.1 + resolution: "yup@npm:1.6.1" + dependencies: + property-expr: "npm:^2.0.5" + tiny-case: "npm:^1.0.3" + toposort: "npm:^2.0.2" + type-fest: "npm:^2.19.0" + checksum: 10/19dba13403160a8739a9e57c8b816254842f3a9e01672846a980d8230cee8763783c089ded88662b30158d1479cf6bce0b51dce7f19ae7d0477be0c981024bc0 + languageName: node + linkType: hard + +"zen-observable@npm:^0.10.0": + version: 0.10.0 + resolution: "zen-observable@npm:0.10.0" + checksum: 10/dc960a8e1f4e1277f1eaf79adcbd01e35b9be9fa0abb0595aab3485b0c2d8e57ace79fd08b8cddd83aeb0779ec7d9c0cfca696ac344bfd8f35ac69f3e75faaff + languageName: node + linkType: hard + +"zenscroll@npm:^4.0.2": + version: 4.0.2 + resolution: "zenscroll@npm:4.0.2" + checksum: 10/9fb86c384133514fa1cecfa98c6b202f150ba476def8965d14adf4c12149644964ca586cd65c02f676b4f2d6085f6ca3826ce7c764a12bb53179a826f8f36e77 + languageName: node + linkType: hard + +"zip-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "zip-stream@npm:6.0.1" + dependencies: + archiver-utils: "npm:^5.0.0" + compress-commons: "npm:^6.0.2" + readable-stream: "npm:^4.0.0" + checksum: 10/aa5abd6a89590eadeba040afbc375f53337f12637e5e98330012a12d9886cde7a3ccc28bd91aafab50576035bbb1de39a9a316eecf2411c8b9009c9f94f0db27 + languageName: node + linkType: hard + +"zod-to-json-schema@npm:^3.20.4, zod-to-json-schema@npm:^3.21.4": + version: 3.24.1 + resolution: "zod-to-json-schema@npm:3.24.1" + peerDependencies: + zod: ^3.24.1 + checksum: 10/d31fd05b67b428d8e0d5ecad2c3e80a1c2fc370e4c22f9111ffd11cbe05cfcab00f3228f84295830952649d15ea4494ef42c2ee1cbe723c865b13f4cf2b80c09 + languageName: node + linkType: hard + +"zod-validation-error@npm:^3.0.3, zod-validation-error@npm:^3.4.0": + version: 3.4.0 + resolution: "zod-validation-error@npm:3.4.0" + peerDependencies: + zod: ^3.18.0 + checksum: 10/b98b1bbba14a3bb31649a1566c8c5a5213ec70dcaa2cbb1e89db00d56648a446225b35a8f6768471730d7013f4f141cd70c2b9740d69e6433ebfa148aecdac2f + languageName: node + linkType: hard + +"zod@npm:^3.22.4": + version: 3.24.1 + resolution: "zod@npm:3.24.1" + checksum: 10/54e25956495dec22acb9399c168c6ba657ff279801a7fcd0530c414d867f1dcca279335e160af9b138dd70c332e17d548be4bc4d2f7eaf627dead50d914fec27 + languageName: node + linkType: hard + +"zstd-codec@npm:^0.1.5": + version: 0.1.5 + resolution: "zstd-codec@npm:0.1.5" + checksum: 10/deee384c29129e3ed86b4f2ac4dc415fd8dad8b62b12ad07cc092c89481bee362477478c6179f2beb252bec67b57120fad8fd84f0a7f7b5914a77e24b3608094 + languageName: node + linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: 10/f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 + languageName: node + linkType: hard