@verdaccio/ui-components 5.0.0-next-9.19 → 5.0.0-next-9.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/api/use-data-mutation.js +1 -4
- package/build/api/use-data-mutation.js.map +1 -1
- package/build/api/use-data-mutation.mjs +1 -4
- package/build/api/use-data-mutation.mjs.map +1 -1
- package/build/api/use-data.d.ts +1 -0
- package/build/api/use-data.js +3 -2
- package/build/api/use-data.js.map +1 -1
- package/build/api/use-data.mjs +3 -3
- package/build/api/use-data.mjs.map +1 -1
- package/build/components/ActionBar/ActionBar.js +4 -2
- package/build/components/ActionBar/ActionBar.js.map +1 -1
- package/build/components/ActionBar/ActionBar.mjs +4 -2
- package/build/components/ActionBar/ActionBar.mjs.map +1 -1
- package/build/components/ActionBar/ActionBarAction.js +1 -1
- package/build/components/ActionBar/ActionBarAction.mjs +1 -1
- package/build/components/AppRoute/AppRoute.js +13 -0
- package/build/components/AppRoute/AppRoute.js.map +1 -1
- package/build/components/AppRoute/AppRoute.mjs +13 -0
- package/build/components/AppRoute/AppRoute.mjs.map +1 -1
- package/build/components/Author/Author.js +1 -1
- package/build/components/Author/Author.mjs +1 -1
- package/build/components/CopyClipboard/CopyToClipBoard.js +5 -0
- package/build/components/CopyClipboard/CopyToClipBoard.js.map +1 -1
- package/build/components/CopyClipboard/CopyToClipBoard.mjs +5 -0
- package/build/components/CopyClipboard/CopyToClipBoard.mjs.map +1 -1
- package/build/components/CopyClipboard/utils.js +14 -1
- package/build/components/CopyClipboard/utils.js.map +1 -1
- package/build/components/CopyClipboard/utils.mjs +14 -1
- package/build/components/CopyClipboard/utils.mjs.map +1 -1
- package/build/components/Dependencies/Dependencies.js +2 -1
- package/build/components/Dependencies/Dependencies.js.map +1 -1
- package/build/components/Dependencies/Dependencies.mjs +2 -1
- package/build/components/Dependencies/Dependencies.mjs.map +1 -1
- package/build/components/Dependencies/DependencyBlock.js +1 -1
- package/build/components/Dependencies/DependencyBlock.mjs +1 -1
- package/build/components/Developers/Title.js +1 -1
- package/build/components/Developers/Title.mjs +1 -1
- package/build/components/Developers/get-unique-developer-values.js +2 -1
- package/build/components/Developers/get-unique-developer-values.js.map +1 -1
- package/build/components/Developers/get-unique-developer-values.mjs +2 -1
- package/build/components/Developers/get-unique-developer-values.mjs.map +1 -1
- package/build/components/Distribution/Dist.js +3 -3
- package/build/components/Distribution/Dist.js.map +1 -1
- package/build/components/Distribution/Dist.mjs +3 -3
- package/build/components/Distribution/Dist.mjs.map +1 -1
- package/build/components/Engines/Engines.js +1 -1
- package/build/components/Engines/Engines.mjs +1 -1
- package/build/components/Forbidden/Forbidden.js +1 -1
- package/build/components/Forbidden/Forbidden.mjs +1 -1
- package/build/components/FundButton/FundButton.js +4 -3
- package/build/components/FundButton/FundButton.js.map +1 -1
- package/build/components/FundButton/FundButton.mjs +4 -3
- package/build/components/FundButton/FundButton.mjs.map +1 -1
- package/build/components/GenericError/GenericError.d.ts +3 -0
- package/build/components/GenericError/GenericError.js +60 -0
- package/build/components/GenericError/GenericError.js.map +1 -0
- package/build/components/GenericError/GenericError.mjs +54 -0
- package/build/components/GenericError/GenericError.mjs.map +1 -0
- package/build/components/GenericError/index.d.ts +1 -0
- package/build/components/GenericError/index.js +2 -0
- package/build/components/GenericError/index.mjs +2 -0
- package/build/components/Help/Help.js +1 -1
- package/build/components/Help/Help.mjs +1 -1
- package/build/components/Install/Install.js +1 -1
- package/build/components/Install/Install.mjs +1 -1
- package/build/components/Install/InstallListItem.js +2 -2
- package/build/components/Install/InstallListItem.js.map +1 -1
- package/build/components/Install/InstallListItem.mjs +2 -2
- package/build/components/Install/InstallListItem.mjs.map +1 -1
- package/build/components/Keywords/KeywordListItems.js +1 -1
- package/build/components/Keywords/KeywordListItems.js.map +1 -1
- package/build/components/Keywords/KeywordListItems.mjs +1 -1
- package/build/components/Keywords/KeywordListItems.mjs.map +1 -1
- package/build/components/Keywords/Keywords.js +2 -2
- package/build/components/Keywords/Keywords.js.map +1 -1
- package/build/components/Keywords/Keywords.mjs +2 -2
- package/build/components/Keywords/Keywords.mjs.map +1 -1
- package/build/components/LoginDialog/LoginDialogCloseButton.js +1 -1
- package/build/components/LoginDialog/LoginDialogCloseButton.mjs +1 -1
- package/build/components/LoginDialog/LoginDialogForm.js +2 -1
- package/build/components/LoginDialog/LoginDialogForm.js.map +1 -1
- package/build/components/LoginDialog/LoginDialogForm.mjs +2 -1
- package/build/components/LoginDialog/LoginDialogForm.mjs.map +1 -1
- package/build/components/LoginForm/Login.d.ts +1 -0
- package/build/components/LoginForm/Login.js +6 -4
- package/build/components/LoginForm/Login.js.map +1 -1
- package/build/components/LoginForm/Login.mjs +9 -7
- package/build/components/LoginForm/Login.mjs.map +1 -1
- package/build/components/LoginForm/PasswordField.js +4 -6
- package/build/components/LoginForm/PasswordField.js.map +1 -1
- package/build/components/LoginForm/PasswordField.mjs +4 -6
- package/build/components/LoginForm/PasswordField.mjs.map +1 -1
- package/build/components/LoginForm/UsernameField.js +4 -6
- package/build/components/LoginForm/UsernameField.js.map +1 -1
- package/build/components/LoginForm/UsernameField.mjs +4 -6
- package/build/components/LoginForm/UsernameField.mjs.map +1 -1
- package/build/components/LoginForm/styles.js +1 -1
- package/build/components/LoginForm/styles.mjs +1 -1
- package/build/components/LoginForm/useLoginForm.js +13 -3
- package/build/components/LoginForm/useLoginForm.js.map +1 -1
- package/build/components/LoginForm/useLoginForm.mjs +14 -4
- package/build/components/LoginForm/useLoginForm.mjs.map +1 -1
- package/build/components/NoItems/NoItems.js +2 -2
- package/build/components/NoItems/NoItems.mjs +1 -1
- package/build/components/NotFound/NotFound.js +1 -1
- package/build/components/NotFound/NotFound.mjs +1 -1
- package/build/components/Package/Package.d.ts +1 -1
- package/build/components/Package/Package.js +28 -29
- package/build/components/Package/Package.js.map +1 -1
- package/build/components/Package/Package.mjs +29 -30
- package/build/components/Package/Package.mjs.map +1 -1
- package/build/components/Person/Person.js +1 -1
- package/build/components/Person/Person.js.map +1 -1
- package/build/components/Person/Person.mjs +1 -1
- package/build/components/Person/Person.mjs.map +1 -1
- package/build/components/RawViewer/RawViewer.js +1 -1
- package/build/components/RawViewer/RawViewer.mjs +1 -1
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.js +1 -1
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.mjs +1 -1
- package/build/components/Repository/Repository.js +5 -8
- package/build/components/Repository/Repository.js.map +1 -1
- package/build/components/Repository/Repository.mjs +5 -8
- package/build/components/Repository/Repository.mjs.map +1 -1
- package/build/components/Search/AutoComplete/AutoComplete.d.ts +1 -0
- package/build/components/Search/AutoComplete/AutoComplete.js +4 -4
- package/build/components/Search/AutoComplete/AutoComplete.js.map +1 -1
- package/build/components/Search/AutoComplete/AutoComplete.mjs +4 -4
- package/build/components/Search/AutoComplete/AutoComplete.mjs.map +1 -1
- package/build/components/Search/Search.js +12 -4
- package/build/components/Search/Search.js.map +1 -1
- package/build/components/Search/Search.mjs +13 -5
- package/build/components/Search/Search.mjs.map +1 -1
- package/build/components/Search/SearchItem.js +1 -1
- package/build/components/Search/SearchItem.mjs +1 -1
- package/build/components/SettingsMenu/SettingsMenu.js +1 -1
- package/build/components/SettingsMenu/SettingsMenu.mjs +1 -1
- package/build/components/SideBarTitle/SideBarTitle.js +2 -2
- package/build/components/SideBarTitle/SideBarTitle.js.map +1 -1
- package/build/components/SideBarTitle/SideBarTitle.mjs +2 -2
- package/build/components/SideBarTitle/SideBarTitle.mjs.map +1 -1
- package/build/components/UpLinks/UpLinks.js +1 -1
- package/build/components/UpLinks/UpLinks.mjs +1 -1
- package/build/components/Versions/HistoryList.js +2 -2
- package/build/components/Versions/HistoryList.js.map +1 -1
- package/build/components/Versions/HistoryList.mjs +2 -2
- package/build/components/Versions/HistoryList.mjs.map +1 -1
- package/build/components/Versions/Versions.js +22 -21
- package/build/components/Versions/Versions.js.map +1 -1
- package/build/components/Versions/Versions.mjs +22 -21
- package/build/components/Versions/Versions.mjs.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.js +4 -0
- package/build/index.mjs +4 -2
- package/build/pages/Stage/StageDetail.d.ts +2 -0
- package/build/pages/Stage/StageDetail.js +8 -0
- package/build/pages/Stage/StageDetail.js.map +1 -0
- package/build/pages/Stage/StageDetail.mjs +8 -0
- package/build/pages/Stage/StageDetail.mjs.map +1 -0
- package/build/pages/Stage/StageList.d.ts +2 -0
- package/build/pages/Stage/StageList.js +8 -0
- package/build/pages/Stage/StageList.js.map +1 -0
- package/build/pages/Stage/StageList.mjs +8 -0
- package/build/pages/Stage/StageList.mjs.map +1 -0
- package/build/pages/Stage/index.d.ts +2 -0
- package/build/pages/Version/Version.js +4 -1
- package/build/pages/Version/Version.js.map +1 -1
- package/build/pages/Version/Version.mjs +4 -1
- package/build/pages/Version/Version.mjs.map +1 -1
- package/build/providers/AuthProvider/AuthProvider.js +9 -7
- package/build/providers/AuthProvider/AuthProvider.js.map +1 -1
- package/build/providers/AuthProvider/AuthProvider.mjs +10 -8
- package/build/providers/AuthProvider/AuthProvider.mjs.map +1 -1
- package/build/providers/AuthProvider/utils.d.ts +12 -0
- package/build/providers/AuthProvider/utils.js +22 -0
- package/build/providers/AuthProvider/utils.js.map +1 -1
- package/build/providers/AuthProvider/utils.mjs +21 -2
- package/build/providers/AuthProvider/utils.mjs.map +1 -1
- package/build/providers/DownloadProvider/DownloadProvider.d.ts +1 -0
- package/build/providers/DownloadProvider/DownloadProvider.js +27 -4
- package/build/providers/DownloadProvider/DownloadProvider.js.map +1 -1
- package/build/providers/DownloadProvider/DownloadProvider.mjs +27 -6
- package/build/providers/DownloadProvider/DownloadProvider.mjs.map +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.js +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.js.map +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.mjs +1 -1
- package/build/providers/ManifestsProvider/ManifestsProvider.mjs.map +1 -1
- package/build/providers/SearchProvider/SearchProvider.d.ts +1 -0
- package/build/providers/SearchProvider/SearchProvider.js +8 -6
- package/build/providers/SearchProvider/SearchProvider.js.map +1 -1
- package/build/providers/SearchProvider/SearchProvider.mjs +8 -6
- package/build/providers/SearchProvider/SearchProvider.mjs.map +1 -1
- package/build/providers/TranslatorProvider/TranslatorProvider.js +5 -3
- package/build/providers/TranslatorProvider/TranslatorProvider.js.map +1 -1
- package/build/providers/TranslatorProvider/TranslatorProvider.mjs +5 -3
- package/build/providers/TranslatorProvider/TranslatorProvider.mjs.map +1 -1
- package/build/providers/VersionProvider/VersionProvider.js +3 -3
- package/build/providers/VersionProvider/VersionProvider.js.map +1 -1
- package/build/providers/VersionProvider/VersionProvider.mjs +3 -3
- package/build/providers/VersionProvider/VersionProvider.mjs.map +1 -1
- package/build/sections/Detail/Tabs.js +1 -1
- package/build/sections/Detail/Tabs.mjs +1 -1
- package/build/sections/Footer/Footer.js +1 -1
- package/build/sections/Footer/Footer.mjs +1 -1
- package/build/sections/Header/Header.d.ts +0 -1
- package/build/sections/Header/Header.js +16 -14
- package/build/sections/Header/Header.js.map +1 -1
- package/build/sections/Header/Header.mjs +17 -15
- package/build/sections/Header/Header.mjs.map +1 -1
- package/build/sections/Header/HeaderGreetings.js +1 -1
- package/build/sections/Header/HeaderGreetings.mjs +1 -1
- package/build/sections/Header/HeaderMenu.js +26 -7
- package/build/sections/Header/HeaderMenu.js.map +1 -1
- package/build/sections/Header/HeaderMenu.mjs +26 -7
- package/build/sections/Header/HeaderMenu.mjs.map +1 -1
- package/build/sections/Header/HeaderRight.js +1 -1
- package/build/sections/Header/HeaderRight.mjs +1 -1
- package/build/sections/Header/HeaderSettingsDialog.js +1 -1
- package/build/sections/Header/HeaderSettingsDialog.mjs +1 -1
- package/build/sections/Header/LanguageSwitch.js +1 -1
- package/build/sections/Header/LanguageSwitch.mjs +1 -1
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js +1 -1
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs +1 -1
- package/build/sections/Home/Home.js +4 -3
- package/build/sections/Home/Home.js.map +1 -1
- package/build/sections/Home/Home.mjs +5 -4
- package/build/sections/Home/Home.mjs.map +1 -1
- package/build/sections/Security/AddUser.js +33 -18
- package/build/sections/Security/AddUser.js.map +1 -1
- package/build/sections/Security/AddUser.mjs +37 -22
- package/build/sections/Security/AddUser.mjs.map +1 -1
- package/build/sections/Security/ChangePassword.js +17 -15
- package/build/sections/Security/ChangePassword.js.map +1 -1
- package/build/sections/Security/ChangePassword.mjs +19 -17
- package/build/sections/Security/ChangePassword.mjs.map +1 -1
- package/build/sections/Security/Login.js +51 -35
- package/build/sections/Security/Login.js.map +1 -1
- package/build/sections/Security/Login.mjs +54 -38
- package/build/sections/Security/Login.mjs.map +1 -1
- package/build/sections/Security/Success.js +28 -24
- package/build/sections/Security/Success.js.map +1 -1
- package/build/sections/Security/Success.mjs +29 -25
- package/build/sections/Security/Success.mjs.map +1 -1
- package/build/sections/Stage/StageActions.d.ts +15 -0
- package/build/sections/Stage/StageActions.js +101 -0
- package/build/sections/Stage/StageActions.js.map +1 -0
- package/build/sections/Stage/StageActions.mjs +99 -0
- package/build/sections/Stage/StageActions.mjs.map +1 -0
- package/build/sections/Stage/StageDetail.d.ts +3 -0
- package/build/sections/Stage/StageDetail.js +110 -0
- package/build/sections/Stage/StageDetail.js.map +1 -0
- package/build/sections/Stage/StageDetail.mjs +108 -0
- package/build/sections/Stage/StageDetail.mjs.map +1 -0
- package/build/sections/Stage/StageList.d.ts +3 -0
- package/build/sections/Stage/StageList.js +153 -0
- package/build/sections/Stage/StageList.js.map +1 -0
- package/build/sections/Stage/StageList.mjs +151 -0
- package/build/sections/Stage/StageList.mjs.map +1 -0
- package/build/sections/Stage/index.d.ts +6 -0
- package/build/sections/Stage/index.js +13 -0
- package/build/sections/Stage/index.mjs +6 -0
- package/build/sections/Stage/types.d.ts +22 -0
- package/build/sections/Stage/useRequireSession.d.ts +14 -0
- package/build/sections/Stage/useRequireSession.js +33 -0
- package/build/sections/Stage/useRequireSession.js.map +1 -0
- package/build/sections/Stage/useRequireSession.mjs +33 -0
- package/build/sections/Stage/useRequireSession.mjs.map +1 -0
- package/build/sections/Stage/useStage.d.ts +34 -0
- package/build/sections/Stage/useStage.js +71 -0
- package/build/sections/Stage/useStage.js.map +1 -0
- package/build/sections/Stage/useStage.mjs +65 -0
- package/build/sections/Stage/useStage.mjs.map +1 -0
- package/build/store/api.js +7 -4
- package/build/store/api.js.map +1 -1
- package/build/store/api.mjs +7 -4
- package/build/store/api.mjs.map +1 -1
- package/build/types/packageMeta.d.ts +3 -2
- package/build/utils/cli-utils.js +2 -2
- package/build/utils/cli-utils.js.map +1 -1
- package/build/utils/cli-utils.mjs +2 -2
- package/build/utils/cli-utils.mjs.map +1 -1
- package/build/utils/index.js +1 -0
- package/build/utils/index.mjs +2 -2
- package/build/utils/routes.d.ts +5 -1
- package/build/utils/routes.js +4 -0
- package/build/utils/routes.js.map +1 -1
- package/build/utils/routes.mjs +4 -0
- package/build/utils/routes.mjs.map +1 -1
- package/build/utils/schemas.d.ts +1 -0
- package/build/utils/schemas.js +4 -4
- package/build/utils/schemas.js.map +1 -1
- package/build/utils/schemas.mjs +4 -4
- package/build/utils/schemas.mjs.map +1 -1
- package/build/utils/session-id.d.ts +8 -0
- package/build/utils/session-id.js +26 -0
- package/build/utils/session-id.js.map +1 -0
- package/build/utils/session-id.mjs +26 -0
- package/build/utils/session-id.mjs.map +1 -0
- package/build/utils/token.d.ts +1 -0
- package/build/utils/token.js +12 -8
- package/build/utils/token.js.map +1 -1
- package/build/utils/token.mjs +12 -9
- package/build/utils/token.mjs.map +1 -1
- package/build/utils/url.js +1 -1
- package/build/utils/url.js.map +1 -1
- package/build/utils/url.mjs +1 -1
- package/build/utils/url.mjs.map +1 -1
- package/build/utils/utils.d.ts +10 -0
- package/build/utils/utils.js +26 -0
- package/build/utils/utils.js.map +1 -1
- package/build/utils/utils.mjs +25 -1
- package/build/utils/utils.mjs.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryList.js","names":[],"sources":["../../../src/components/Versions/HistoryList.tsx"],"sourcesContent":["import Chip from '@mui/material/Chip';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useConfig } from '../../providers';\nimport type { Time, Versions } from '../../types/packageMeta';\nimport { Route, utils } from '../../utils';\nimport Link from '../Link';\nimport { ListItemText, Spacer } from './styles';\n\ninterface Props {\n versions: Versions;\n packageName: string;\n time: Time;\n}\n\nexport function filterDeprecated(versions: Versions) {\n const versionsIds = Object.keys(versions);\n return versionsIds.reduce((prev, current) => {\n if (!versions[current].deprecated) {\n prev[current] = versions[current];\n }\n\n return prev;\n }, {});\n}\n\nconst VersionsHistoryList: React.FC<Props> = ({ versions, packageName, time }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;\n const listVersions = hideDeprecatedVersions ? filterDeprecated(versions) : versions;\n\n return (\n <List dense={true}>\n {Object.keys(listVersions)\n .sort((a, b) => {\n const timeA = time[a] ? new Date(time[a]).getTime() : 0;\n const timeB = time[b] ? new Date(time[b]).getTime() : 0;\n return timeB - timeA;\n })\n .map((version) => (\n <ListItem\n className=\"version-item\"\n data-testid={`version-${version}`}\n key={version}\n sx={{ pr: 0 }}\n >\n <Link to={`${Route.DETAIL}${packageName}/v/${version}`} variant=\"outline\">\n <ListItemText\n data-testid={`version-list-link`}\n disableTypography={false}\n primary={version}\n sx={\n typeof versions[version]?.deprecated === 'string'\n ? { textDecoration: 'line-through' }\n : undefined\n }\n />\n </Link>\n {typeof versions[version]?.deprecated === 'string' ? (\n <Chip\n color=\"warning\"\n data-testid=\"deprecated-badge\"\n label={t('versions.deprecated')}\n size=\"small\"\n sx={{ marginLeft: 1 }}\n variant=\"outlined\"\n />\n ) : null}\n <Spacer />\n <ListItemText\n data-testid={`version-list-text`}\n primary={\n time[version]\n ? utils.formatDateDistance(time[version])\n : t('versions.not-available')\n }\n slotProps={{
|
|
1
|
+
{"version":3,"file":"HistoryList.js","names":[],"sources":["../../../src/components/Versions/HistoryList.tsx"],"sourcesContent":["import Chip from '@mui/material/Chip';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useConfig } from '../../providers';\nimport type { Time, Versions } from '../../types/packageMeta';\nimport { Route, utils } from '../../utils';\nimport Link from '../Link';\nimport { ListItemText, Spacer } from './styles';\n\ninterface Props {\n versions: Versions;\n packageName: string;\n time: Time;\n}\n\nexport function filterDeprecated(versions: Versions) {\n const versionsIds = Object.keys(versions);\n return versionsIds.reduce((prev, current) => {\n if (!versions[current].deprecated) {\n prev[current] = versions[current];\n }\n\n return prev;\n }, {});\n}\n\nconst VersionsHistoryList: React.FC<Props> = ({ versions, packageName, time }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;\n const listVersions = hideDeprecatedVersions ? filterDeprecated(versions) : versions;\n\n return (\n <List dense={true}>\n {Object.keys(listVersions)\n .sort((a, b) => {\n const timeA = time[a] ? new Date(time[a]).getTime() : 0;\n const timeB = time[b] ? new Date(time[b]).getTime() : 0;\n return timeB - timeA;\n })\n .map((version) => (\n <ListItem\n className=\"version-item\"\n data-testid={`version-${version}`}\n key={version}\n sx={{ pr: 0 }}\n >\n <Link to={`${Route.DETAIL}${packageName}/v/${version}`} variant=\"outline\">\n <ListItemText\n data-testid={`version-list-link`}\n disableTypography={false}\n primary={version}\n sx={\n typeof versions[version]?.deprecated === 'string'\n ? { textDecoration: 'line-through' }\n : undefined\n }\n />\n </Link>\n {typeof versions[version]?.deprecated === 'string' ? (\n <Chip\n color=\"warning\"\n data-testid=\"deprecated-badge\"\n label={t('versions.deprecated')}\n size=\"small\"\n sx={{ marginLeft: 1 }}\n variant=\"outlined\"\n />\n ) : null}\n <Spacer />\n <ListItemText\n data-testid={`version-list-text`}\n primary={\n time[version]\n ? utils.formatDateDistance(time[version])\n : t('versions.not-available')\n }\n slotProps={{\n primary: { title: time[version] ? utils.formatDate(time[version]) : undefined },\n }}\n />\n </ListItem>\n ))}\n </List>\n );\n};\n\nexport default VersionsHistoryList;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkBA,SAAgB,iBAAiB,UAAoB;CAEnD,OADoB,OAAO,KAAK,QACzB,CAAA,CAAY,QAAQ,MAAM,YAAY;EAC3C,IAAI,CAAC,SAAS,QAAQ,CAAC,YACrB,KAAK,WAAW,SAAS;EAG3B,OAAO;CACT,GAAG,CAAC,CAAC;AACP;AAEA,IAAM,uBAAwC,EAAE,UAAU,aAAa,WAAW;CAChF,MAAM,EAAE,OAAA,GAAM,cAAA,eAAA,CAAe;CAC7B,MAAM,EAAE,kBAAkB,iCAAA,UAAU;CAEpC,MAAM,eADyB,cAAc,yBACC,iBAAiB,QAAQ,IAAI;CAE3E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAA,SAAD;EAAM,OAAO;EACV,UAAA,OAAO,KAAK,YAAY,CAAC,CACvB,MAAM,GAAG,MAAM;GACd,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI;GAEtD,QADc,KAAK,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI,KACvC;EACjB,CAAC,CAAC,CACD,KAAK,YACJ,iBAAA,GAAA,kBAAA,KAAA,CAAC,uBAAA,SAAD;GACE,WAAU;GACV,eAAa,WAAW;GAExB,IAAI,EAAE,IAAI,EAAE;GAJd,UAAA;IAME,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,SAAD;KAAM,IAAI,GAAG,eAAA,MAAM,SAAS,YAAY,KAAK;KAAW,SAAQ;KAC9D,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,cAAD;MACE,eAAa;MACb,mBAAmB;MACnB,SAAS;MACT,IACE,OAAO,SAAS,QAAQ,EAAE,eAAe,WACrC,EAAE,gBAAgB,eAAe,IACjC,KAAA;KAEP,CAAA;IACG,CAAA;IACL,OAAO,SAAS,QAAQ,EAAE,eAAe,WACxC,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAA,SAAD;KACE,OAAM;KACN,eAAY;KACZ,OAAO,EAAE,qBAAqB;KAC9B,MAAK;KACL,IAAI,EAAE,YAAY,EAAE;KACpB,SAAQ;IACT,CAAA,IACC;IACJ,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,QAAD,CAAS,CAAA;IACT,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,cAAD;KACE,eAAa;KACb,SACE,KAAK,WAAA,cAAA,mBACwB,KAAK,QAAQ,IACtC,EAAE,wBAAwB;KAEhC,WAAW,EACT,SAAS,EAAE,OAAO,KAAK,WAAA,cAAA,WAA4B,KAAK,QAAQ,IAAI,KAAA,EAAU,EAChF;IACD,CAAA;GACO;EArCH,GAAA,OAqCG,CACX;CACC,CAAA;AAEV"}
|
|
@@ -7,8 +7,8 @@ import Link from "../Link/Link.mjs";
|
|
|
7
7
|
import "../Link/index.mjs";
|
|
8
8
|
import { ListItemText, Spacer } from "./styles.mjs";
|
|
9
9
|
import "react";
|
|
10
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
10
|
import { useTranslation } from "react-i18next";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import List from "@mui/material/List";
|
|
13
13
|
import ListItem from "@mui/material/ListItem";
|
|
14
14
|
import Chip from "@mui/material/Chip";
|
|
@@ -55,7 +55,7 @@ var VersionsHistoryList = ({ versions, packageName, time }) => {
|
|
|
55
55
|
/* @__PURE__ */ jsx(ListItemText, {
|
|
56
56
|
"data-testid": `version-list-text`,
|
|
57
57
|
primary: time[version] ? formatDateDistance(time[version]) : t("versions.not-available"),
|
|
58
|
-
slotProps: { primary: { title: formatDate(time[version]) } }
|
|
58
|
+
slotProps: { primary: { title: time[version] ? formatDate(time[version]) : void 0 } }
|
|
59
59
|
})
|
|
60
60
|
]
|
|
61
61
|
}, version))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryList.mjs","names":[],"sources":["../../../src/components/Versions/HistoryList.tsx"],"sourcesContent":["import Chip from '@mui/material/Chip';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useConfig } from '../../providers';\nimport type { Time, Versions } from '../../types/packageMeta';\nimport { Route, utils } from '../../utils';\nimport Link from '../Link';\nimport { ListItemText, Spacer } from './styles';\n\ninterface Props {\n versions: Versions;\n packageName: string;\n time: Time;\n}\n\nexport function filterDeprecated(versions: Versions) {\n const versionsIds = Object.keys(versions);\n return versionsIds.reduce((prev, current) => {\n if (!versions[current].deprecated) {\n prev[current] = versions[current];\n }\n\n return prev;\n }, {});\n}\n\nconst VersionsHistoryList: React.FC<Props> = ({ versions, packageName, time }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;\n const listVersions = hideDeprecatedVersions ? filterDeprecated(versions) : versions;\n\n return (\n <List dense={true}>\n {Object.keys(listVersions)\n .sort((a, b) => {\n const timeA = time[a] ? new Date(time[a]).getTime() : 0;\n const timeB = time[b] ? new Date(time[b]).getTime() : 0;\n return timeB - timeA;\n })\n .map((version) => (\n <ListItem\n className=\"version-item\"\n data-testid={`version-${version}`}\n key={version}\n sx={{ pr: 0 }}\n >\n <Link to={`${Route.DETAIL}${packageName}/v/${version}`} variant=\"outline\">\n <ListItemText\n data-testid={`version-list-link`}\n disableTypography={false}\n primary={version}\n sx={\n typeof versions[version]?.deprecated === 'string'\n ? { textDecoration: 'line-through' }\n : undefined\n }\n />\n </Link>\n {typeof versions[version]?.deprecated === 'string' ? (\n <Chip\n color=\"warning\"\n data-testid=\"deprecated-badge\"\n label={t('versions.deprecated')}\n size=\"small\"\n sx={{ marginLeft: 1 }}\n variant=\"outlined\"\n />\n ) : null}\n <Spacer />\n <ListItemText\n data-testid={`version-list-text`}\n primary={\n time[version]\n ? utils.formatDateDistance(time[version])\n : t('versions.not-available')\n }\n slotProps={{
|
|
1
|
+
{"version":3,"file":"HistoryList.mjs","names":[],"sources":["../../../src/components/Versions/HistoryList.tsx"],"sourcesContent":["import Chip from '@mui/material/Chip';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useConfig } from '../../providers';\nimport type { Time, Versions } from '../../types/packageMeta';\nimport { Route, utils } from '../../utils';\nimport Link from '../Link';\nimport { ListItemText, Spacer } from './styles';\n\ninterface Props {\n versions: Versions;\n packageName: string;\n time: Time;\n}\n\nexport function filterDeprecated(versions: Versions) {\n const versionsIds = Object.keys(versions);\n return versionsIds.reduce((prev, current) => {\n if (!versions[current].deprecated) {\n prev[current] = versions[current];\n }\n\n return prev;\n }, {});\n}\n\nconst VersionsHistoryList: React.FC<Props> = ({ versions, packageName, time }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;\n const listVersions = hideDeprecatedVersions ? filterDeprecated(versions) : versions;\n\n return (\n <List dense={true}>\n {Object.keys(listVersions)\n .sort((a, b) => {\n const timeA = time[a] ? new Date(time[a]).getTime() : 0;\n const timeB = time[b] ? new Date(time[b]).getTime() : 0;\n return timeB - timeA;\n })\n .map((version) => (\n <ListItem\n className=\"version-item\"\n data-testid={`version-${version}`}\n key={version}\n sx={{ pr: 0 }}\n >\n <Link to={`${Route.DETAIL}${packageName}/v/${version}`} variant=\"outline\">\n <ListItemText\n data-testid={`version-list-link`}\n disableTypography={false}\n primary={version}\n sx={\n typeof versions[version]?.deprecated === 'string'\n ? { textDecoration: 'line-through' }\n : undefined\n }\n />\n </Link>\n {typeof versions[version]?.deprecated === 'string' ? (\n <Chip\n color=\"warning\"\n data-testid=\"deprecated-badge\"\n label={t('versions.deprecated')}\n size=\"small\"\n sx={{ marginLeft: 1 }}\n variant=\"outlined\"\n />\n ) : null}\n <Spacer />\n <ListItemText\n data-testid={`version-list-text`}\n primary={\n time[version]\n ? utils.formatDateDistance(time[version])\n : t('versions.not-available')\n }\n slotProps={{\n primary: { title: time[version] ? utils.formatDate(time[version]) : undefined },\n }}\n />\n </ListItem>\n ))}\n </List>\n );\n};\n\nexport default VersionsHistoryList;\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,SAAgB,iBAAiB,UAAoB;CAEnD,OADoB,OAAO,KAAK,QACzB,CAAA,CAAY,QAAQ,MAAM,YAAY;EAC3C,IAAI,CAAC,SAAS,QAAQ,CAAC,YACrB,KAAK,WAAW,SAAS;EAG3B,OAAO;CACT,GAAG,CAAC,CAAC;AACP;AAEA,IAAM,uBAAwC,EAAE,UAAU,aAAa,WAAW;CAChF,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CAEpC,MAAM,eADyB,cAAc,yBACC,iBAAiB,QAAQ,IAAI;CAE3E,OACE,oBAAC,MAAD;EAAM,OAAO;EACV,UAAA,OAAO,KAAK,YAAY,CAAC,CACvB,MAAM,GAAG,MAAM;GACd,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI;GAEtD,QADc,KAAK,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI,KACvC;EACjB,CAAC,CAAC,CACD,KAAK,YACJ,qBAAC,UAAD;GACE,WAAU;GACV,eAAa,WAAW;GAExB,IAAI,EAAE,IAAI,EAAE;GAJd,UAAA;IAME,oBAAC,MAAD;KAAM,IAAI,GAAG,MAAM,SAAS,YAAY,KAAK;KAAW,SAAQ;KAC9D,UAAA,oBAAC,cAAD;MACE,eAAa;MACb,mBAAmB;MACnB,SAAS;MACT,IACE,OAAO,SAAS,QAAQ,EAAE,eAAe,WACrC,EAAE,gBAAgB,eAAe,IACjC,KAAA;KAEP,CAAA;IACG,CAAA;IACL,OAAO,SAAS,QAAQ,EAAE,eAAe,WACxC,oBAAC,MAAD;KACE,OAAM;KACN,eAAY;KACZ,OAAO,EAAE,qBAAqB;KAC9B,MAAK;KACL,IAAI,EAAE,YAAY,EAAE;KACpB,SAAQ;IACT,CAAA,IACC;IACJ,oBAAC,QAAD,CAAS,CAAA;IACT,oBAAC,cAAD;KACE,eAAa;KACb,SACE,KAAK,WACD,mBAAyB,KAAK,QAAQ,IACtC,EAAE,wBAAwB;KAEhC,WAAW,EACT,SAAS,EAAE,OAAO,KAAK,WAAW,WAAiB,KAAK,QAAQ,IAAI,KAAA,EAAU,EAChF;IACD,CAAA;GACO;EArCH,GAAA,OAqCG,CACX;CACC,CAAA;AAEV"}
|
|
@@ -7,19 +7,19 @@ let _emotion_styled = require("@emotion/styled");
|
|
|
7
7
|
_emotion_styled = require_runtime.__toESM(_emotion_styled);
|
|
8
8
|
let react = require("react");
|
|
9
9
|
react = require_runtime.__toESM(react);
|
|
10
|
+
let react_i18next = require("react-i18next");
|
|
10
11
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
11
12
|
let _mui_material_Box = require("@mui/material/Box");
|
|
12
13
|
_mui_material_Box = require_runtime.__toESM(_mui_material_Box);
|
|
13
14
|
let lodash_es = require("lodash-es");
|
|
14
|
-
let
|
|
15
|
+
let _mui_material_Alert = require("@mui/material/Alert");
|
|
16
|
+
_mui_material_Alert = require_runtime.__toESM(_mui_material_Alert);
|
|
15
17
|
let _mui_material_Typography = require("@mui/material/Typography");
|
|
16
18
|
_mui_material_Typography = require_runtime.__toESM(_mui_material_Typography);
|
|
17
19
|
let _mui_material_Card = require("@mui/material/Card");
|
|
18
20
|
_mui_material_Card = require_runtime.__toESM(_mui_material_Card);
|
|
19
21
|
let _mui_material_CardContent = require("@mui/material/CardContent");
|
|
20
22
|
_mui_material_CardContent = require_runtime.__toESM(_mui_material_CardContent);
|
|
21
|
-
let _mui_material_Alert = require("@mui/material/Alert");
|
|
22
|
-
_mui_material_Alert = require_runtime.__toESM(_mui_material_Alert);
|
|
23
23
|
let _mui_material_TextField = require("@mui/material/TextField");
|
|
24
24
|
_mui_material_TextField = require_runtime.__toESM(_mui_material_TextField);
|
|
25
25
|
let semver = require("semver");
|
|
@@ -32,26 +32,27 @@ var StyledText = (0, _emotion_styled.default)(_mui_material_Typography.default)(
|
|
|
32
32
|
var Versions = ({ packageMeta, packageName }) => {
|
|
33
33
|
const { t } = (0, react_i18next.useTranslation)();
|
|
34
34
|
const { configOptions } = require_AppConfigurationProvider.useConfig();
|
|
35
|
-
const { versions = {}, time = {}, ["dist-tags"]: distTags = {} } = packageMeta;
|
|
36
|
-
const [
|
|
35
|
+
const { versions = {}, time = {}, ["dist-tags"]: distTags = {} } = packageMeta ?? {};
|
|
36
|
+
const [textSearch, setTextSearch] = (0, react.useState)("");
|
|
37
|
+
(0, react.useEffect)(() => {
|
|
38
|
+
setTextSearch("");
|
|
39
|
+
}, [packageName]);
|
|
40
|
+
const packageVersions = (0, react.useMemo)(() => {
|
|
41
|
+
if (textSearch === "") return versions;
|
|
42
|
+
return Object.keys(versions).reduce((acc, version) => {
|
|
43
|
+
if (typeof versions[version] !== "undefined") {
|
|
44
|
+
if (semver.default.satisfies(version, textSearch, {
|
|
45
|
+
includePrerelease: true,
|
|
46
|
+
loose: true
|
|
47
|
+
})) acc[version] = versions[version];
|
|
48
|
+
}
|
|
49
|
+
return acc;
|
|
50
|
+
}, {});
|
|
51
|
+
}, [versions, textSearch]);
|
|
37
52
|
if (!packageMeta || Object.keys(packageMeta).length === 0) return null;
|
|
38
53
|
const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;
|
|
39
54
|
const hasDistTags = distTags && Object.keys(distTags).length > 0 && packageName;
|
|
40
55
|
const hasVersionHistory = packageVersions && Object.keys(packageVersions).length > 0 && packageName;
|
|
41
|
-
const filterVersions = (textSearch) => {
|
|
42
|
-
const filteredVersions = Object.keys(versions).reduce((acc, version) => {
|
|
43
|
-
if (textSearch !== "") {
|
|
44
|
-
if (typeof versions[version] !== "undefined") {
|
|
45
|
-
if (semver.default.satisfies(version, textSearch, {
|
|
46
|
-
includePrerelease: true,
|
|
47
|
-
loose: true
|
|
48
|
-
})) acc[version] = versions[version];
|
|
49
|
-
}
|
|
50
|
-
} else acc[version] = versions[version];
|
|
51
|
-
return acc;
|
|
52
|
-
}, {});
|
|
53
|
-
setPackageVersions(filteredVersions);
|
|
54
|
-
};
|
|
55
56
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Card.default, {
|
|
56
57
|
sx: { mb: 2 },
|
|
57
58
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_CardContent.default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_Box.default, {
|
|
@@ -72,12 +73,12 @@ var Versions = ({ packageMeta, packageName }) => {
|
|
|
72
73
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_TextField.default, {
|
|
73
74
|
helperText: t("versions.search.placeholder"),
|
|
74
75
|
onChange: (0, lodash_es.debounce)((e) => {
|
|
75
|
-
|
|
76
|
+
setTextSearch(e.target.value);
|
|
76
77
|
}, 200),
|
|
77
78
|
size: "small",
|
|
78
79
|
variant: "standard",
|
|
79
80
|
sx: { width: "50%" }
|
|
80
|
-
})] }),
|
|
81
|
+
}, packageName)] }),
|
|
81
82
|
hasVersionHistory ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [hideDeprecatedVersions === true && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Alert.default, {
|
|
82
83
|
severity: "info",
|
|
83
84
|
sx: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Versions.js","names":[],"sources":["../../../src/components/Versions/Versions.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Box from '@mui/material/Box';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { debounce } from 'lodash-es';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport semver from 'semver';\n\nimport type { Theme } from '../../Theme';\nimport { useConfig } from '../../providers';\nimport VersionsHistoryList from './HistoryList';\nimport VersionsTagList from './TagList';\n\nexport type Props = { packageMeta: any; packageName: string };\n\nexport const StyledText = styled(Typography)<{ theme?: Theme }>((props) => ({\n fontWeight: props.theme && props.theme.fontWeight.bold,\n textTransform: 'capitalize',\n}));\n\nconst Versions: React.FC<Props> = ({ packageMeta, packageName }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const { versions = {}, time = {}, ['dist-tags']: distTags = {} } = packageMeta;\n\n const [
|
|
1
|
+
{"version":3,"file":"Versions.js","names":[],"sources":["../../../src/components/Versions/Versions.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Box from '@mui/material/Box';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { debounce } from 'lodash-es';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport semver from 'semver';\n\nimport type { Theme } from '../../Theme';\nimport { useConfig } from '../../providers';\nimport VersionsHistoryList from './HistoryList';\nimport VersionsTagList from './TagList';\n\nexport type Props = { packageMeta: any; packageName: string };\n\nexport const StyledText = styled(Typography)<{ theme?: Theme }>((props) => ({\n fontWeight: props.theme && props.theme.fontWeight.bold,\n textTransform: 'capitalize',\n}));\n\nconst Versions: React.FC<Props> = ({ packageMeta, packageName }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const { versions = {}, time = {}, ['dist-tags']: distTags = {} } = packageMeta ?? {};\n\n const [textSearch, setTextSearch] = useState('');\n // the detail routes reuse this mounted component across packages: reset the\n // filter so the previous package's text does not apply to the next one\n useEffect(() => {\n setTextSearch('');\n }, [packageName]);\n const packageVersions = useMemo(() => {\n if (textSearch === '') {\n return versions;\n }\n return Object.keys(versions).reduce((acc, version) => {\n if (typeof versions[version] !== 'undefined') {\n if (semver.satisfies(version, textSearch, { includePrerelease: true, loose: true })) {\n acc[version] = versions[version];\n }\n }\n return acc;\n }, {});\n }, [versions, textSearch]);\n\n if (!packageMeta || Object.keys(packageMeta).length === 0) {\n return null;\n }\n const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;\n const hasDistTags = distTags && Object.keys(distTags).length > 0 && packageName;\n const hasVersionHistory =\n packageVersions && Object.keys(packageVersions).length > 0 && packageName;\n\n return (\n <Card sx={{ mb: 2 }}>\n <CardContent>\n <Box data-testid=\"versions\" sx={{ m: 2 }}>\n {hasDistTags ? (\n <>\n <StyledText variant=\"subtitle1\">\n {t('versions.current-tags')}\n <span>{` (${Object.keys(distTags).length})`}</span>\n </StyledText>\n <VersionsTagList packageName={packageName} tags={distTags} time={time} />\n </>\n ) : null}\n <>\n <StyledText variant=\"subtitle1\">\n {t('versions.version-history')}\n <span>{` (${Object.keys(packageVersions).length})`}</span>\n </StyledText>\n <TextField\n // uncontrolled input: remount on navigation to clear its text\n key={packageName}\n helperText={t('versions.search.placeholder')}\n onChange={debounce((e) => {\n setTextSearch(e.target.value);\n }, 200)}\n size=\"small\"\n variant=\"standard\"\n sx={{ width: '50%' }}\n />\n </>\n {hasVersionHistory ? (\n <>\n {hideDeprecatedVersions === true && (\n // @ts-ignore - Alert does accept children despite the type error\n <Alert severity=\"info\" sx={{ marginTop: 1, marginBottom: 1 }}>\n {t('versions.hide-deprecated')}\n </Alert>\n )}\n <VersionsHistoryList\n packageName={packageName}\n time={time}\n versions={packageVersions}\n />\n </>\n ) : null}\n </Box>\n </CardContent>\n </Card>\n );\n};\n\nexport default Versions;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAa,cAAA,GAAa,gBAAA,QAAA,CAAO,yBAAA,OAAU,CAAC,EAAqB,WAAW;CAC1E,YAAY,MAAM,SAAS,MAAM,MAAM,WAAW;CAClD,eAAe;AACjB,EAAE;AAEF,IAAM,YAA6B,EAAE,aAAa,kBAAkB;CAClE,MAAM,EAAE,OAAA,GAAM,cAAA,eAAA,CAAe;CAC7B,MAAM,EAAE,kBAAkB,iCAAA,UAAU;CACpC,MAAM,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,cAAc,WAAW,CAAC,MAAM,eAAe,CAAC;CAEnF,MAAM,CAAC,YAAY,kBAAA,GAAiB,MAAA,SAAA,CAAS,EAAE;CAG/C,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,cAAc,EAAE;CAClB,GAAG,CAAC,WAAW,CAAC;CAChB,MAAM,mBAAA,GAAkB,MAAA,QAAA,OAAc;EACpC,IAAI,eAAe,IACjB,OAAO;EAET,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,QAAQ,KAAK,YAAY;GACpD,IAAI,OAAO,SAAS,aAAa,aAC3B;QAAA,OAAA,QAAO,UAAU,SAAS,YAAY;KAAE,mBAAmB;KAAM,OAAO;IAAK,CAAC,GAChF,IAAI,WAAW,SAAS;GAAA;GAG5B,OAAO;EACT,GAAG,CAAC,CAAC;CACP,GAAG,CAAC,UAAU,UAAU,CAAC;CAEzB,IAAI,CAAC,eAAe,OAAO,KAAK,WAAW,CAAC,CAAC,WAAW,GACtD,OAAO;CAET,MAAM,yBAAyB,cAAc;CAC7C,MAAM,cAAc,YAAY,OAAO,KAAK,QAAQ,CAAC,CAAC,SAAS,KAAK;CACpE,MAAM,oBACJ,mBAAmB,OAAO,KAAK,eAAe,CAAC,CAAC,SAAS,KAAK;CAEhE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,mBAAA,SAAD;EAAM,IAAI,EAAE,IAAI,EAAE;EAChB,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,0BAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,kBAAA,SAAD;GAAK,eAAY;GAAW,IAAI,EAAE,GAAG,EAAE;GAAvC,UAAA;IACG,cACC,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,YAAD;KAAY,SAAQ;KAApB,UAAA,CACG,EAAE,uBAAuB,GAC1B,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAO,KAAK,OAAO,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAS,CAAA,CACxC;IACZ,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAA,SAAD;KAA8B;KAAa,MAAM;KAAgB;IAAO,CAAA,CACxE,EAAA,CAAA,IACA;IACJ,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,YAAD;KAAY,SAAQ;KAApB,UAAA,CACG,EAAE,0BAA0B,GAC7B,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAO,KAAK,OAAO,KAAK,eAAe,CAAC,CAAC,OAAO,GAAS,CAAA,CAC/C;IACZ,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,wBAAA,SAAD;KAGE,YAAY,EAAE,6BAA6B;KAC3C,WAAA,GAAU,UAAA,SAAA,EAAU,MAAM;MACxB,cAAc,EAAE,OAAO,KAAK;KAC9B,GAAG,GAAG;KACN,MAAK;KACL,SAAQ;KACR,IAAI,EAAE,OAAO,MAAM;IACpB,GARM,WAQN,CACD,EAAA,CAAA;IACD,oBACC,iBAAA,GAAA,kBAAA,KAAA,CAAA,kBAAA,UAAA,EAAA,UAAA,CACG,2BAA2B,QAE1B,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAA,SAAD;KAAO,UAAS;KAAO,IAAI;MAAE,WAAW;MAAG,cAAc;KAAE;KACxD,UAAA,EAAE,0BAA0B;IACxB,CAAA,GAET,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAA,SAAD;KACe;KACP;KACN,UAAU;IACX,CAAA,CACD,EAAA,CAAA,IACA;GACD;EACM,CAAA,EAAA,CAAA;CACT,CAAA;AAEV"}
|
|
@@ -3,15 +3,15 @@ import "../../providers/index.mjs";
|
|
|
3
3
|
import VersionsHistoryList from "./HistoryList.mjs";
|
|
4
4
|
import VersionsTagList from "./TagList.mjs";
|
|
5
5
|
import styled from "@emotion/styled";
|
|
6
|
-
import { useState } from "react";
|
|
6
|
+
import { useEffect, useMemo, useState } from "react";
|
|
7
|
+
import { useTranslation } from "react-i18next";
|
|
7
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
9
|
import Box from "@mui/material/Box";
|
|
9
10
|
import { debounce } from "lodash-es";
|
|
10
|
-
import
|
|
11
|
+
import Alert from "@mui/material/Alert";
|
|
11
12
|
import Typography from "@mui/material/Typography";
|
|
12
13
|
import Card from "@mui/material/Card";
|
|
13
14
|
import CardContent from "@mui/material/CardContent";
|
|
14
|
-
import Alert from "@mui/material/Alert";
|
|
15
15
|
import TextField from "@mui/material/TextField";
|
|
16
16
|
import semver from "semver";
|
|
17
17
|
//#region src/components/Versions/Versions.tsx
|
|
@@ -22,26 +22,27 @@ var StyledText = styled(Typography)((props) => ({
|
|
|
22
22
|
var Versions = ({ packageMeta, packageName }) => {
|
|
23
23
|
const { t } = useTranslation();
|
|
24
24
|
const { configOptions } = useConfig();
|
|
25
|
-
const { versions = {}, time = {}, ["dist-tags"]: distTags = {} } = packageMeta;
|
|
26
|
-
const [
|
|
25
|
+
const { versions = {}, time = {}, ["dist-tags"]: distTags = {} } = packageMeta ?? {};
|
|
26
|
+
const [textSearch, setTextSearch] = useState("");
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
setTextSearch("");
|
|
29
|
+
}, [packageName]);
|
|
30
|
+
const packageVersions = useMemo(() => {
|
|
31
|
+
if (textSearch === "") return versions;
|
|
32
|
+
return Object.keys(versions).reduce((acc, version) => {
|
|
33
|
+
if (typeof versions[version] !== "undefined") {
|
|
34
|
+
if (semver.satisfies(version, textSearch, {
|
|
35
|
+
includePrerelease: true,
|
|
36
|
+
loose: true
|
|
37
|
+
})) acc[version] = versions[version];
|
|
38
|
+
}
|
|
39
|
+
return acc;
|
|
40
|
+
}, {});
|
|
41
|
+
}, [versions, textSearch]);
|
|
27
42
|
if (!packageMeta || Object.keys(packageMeta).length === 0) return null;
|
|
28
43
|
const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;
|
|
29
44
|
const hasDistTags = distTags && Object.keys(distTags).length > 0 && packageName;
|
|
30
45
|
const hasVersionHistory = packageVersions && Object.keys(packageVersions).length > 0 && packageName;
|
|
31
|
-
const filterVersions = (textSearch) => {
|
|
32
|
-
const filteredVersions = Object.keys(versions).reduce((acc, version) => {
|
|
33
|
-
if (textSearch !== "") {
|
|
34
|
-
if (typeof versions[version] !== "undefined") {
|
|
35
|
-
if (semver.satisfies(version, textSearch, {
|
|
36
|
-
includePrerelease: true,
|
|
37
|
-
loose: true
|
|
38
|
-
})) acc[version] = versions[version];
|
|
39
|
-
}
|
|
40
|
-
} else acc[version] = versions[version];
|
|
41
|
-
return acc;
|
|
42
|
-
}, {});
|
|
43
|
-
setPackageVersions(filteredVersions);
|
|
44
|
-
};
|
|
45
46
|
return /* @__PURE__ */ jsx(Card, {
|
|
46
47
|
sx: { mb: 2 },
|
|
47
48
|
children: /* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsxs(Box, {
|
|
@@ -62,12 +63,12 @@ var Versions = ({ packageMeta, packageName }) => {
|
|
|
62
63
|
}), /* @__PURE__ */ jsx(TextField, {
|
|
63
64
|
helperText: t("versions.search.placeholder"),
|
|
64
65
|
onChange: debounce((e) => {
|
|
65
|
-
|
|
66
|
+
setTextSearch(e.target.value);
|
|
66
67
|
}, 200),
|
|
67
68
|
size: "small",
|
|
68
69
|
variant: "standard",
|
|
69
70
|
sx: { width: "50%" }
|
|
70
|
-
})] }),
|
|
71
|
+
}, packageName)] }),
|
|
71
72
|
hasVersionHistory ? /* @__PURE__ */ jsxs(Fragment$1, { children: [hideDeprecatedVersions === true && /* @__PURE__ */ jsx(Alert, {
|
|
72
73
|
severity: "info",
|
|
73
74
|
sx: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Versions.mjs","names":[],"sources":["../../../src/components/Versions/Versions.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Box from '@mui/material/Box';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { debounce } from 'lodash-es';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport semver from 'semver';\n\nimport type { Theme } from '../../Theme';\nimport { useConfig } from '../../providers';\nimport VersionsHistoryList from './HistoryList';\nimport VersionsTagList from './TagList';\n\nexport type Props = { packageMeta: any; packageName: string };\n\nexport const StyledText = styled(Typography)<{ theme?: Theme }>((props) => ({\n fontWeight: props.theme && props.theme.fontWeight.bold,\n textTransform: 'capitalize',\n}));\n\nconst Versions: React.FC<Props> = ({ packageMeta, packageName }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const { versions = {}, time = {}, ['dist-tags']: distTags = {} } = packageMeta;\n\n const [
|
|
1
|
+
{"version":3,"file":"Versions.mjs","names":[],"sources":["../../../src/components/Versions/Versions.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Box from '@mui/material/Box';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport TextField from '@mui/material/TextField';\nimport Typography from '@mui/material/Typography';\nimport { debounce } from 'lodash-es';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport semver from 'semver';\n\nimport type { Theme } from '../../Theme';\nimport { useConfig } from '../../providers';\nimport VersionsHistoryList from './HistoryList';\nimport VersionsTagList from './TagList';\n\nexport type Props = { packageMeta: any; packageName: string };\n\nexport const StyledText = styled(Typography)<{ theme?: Theme }>((props) => ({\n fontWeight: props.theme && props.theme.fontWeight.bold,\n textTransform: 'capitalize',\n}));\n\nconst Versions: React.FC<Props> = ({ packageMeta, packageName }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const { versions = {}, time = {}, ['dist-tags']: distTags = {} } = packageMeta ?? {};\n\n const [textSearch, setTextSearch] = useState('');\n // the detail routes reuse this mounted component across packages: reset the\n // filter so the previous package's text does not apply to the next one\n useEffect(() => {\n setTextSearch('');\n }, [packageName]);\n const packageVersions = useMemo(() => {\n if (textSearch === '') {\n return versions;\n }\n return Object.keys(versions).reduce((acc, version) => {\n if (typeof versions[version] !== 'undefined') {\n if (semver.satisfies(version, textSearch, { includePrerelease: true, loose: true })) {\n acc[version] = versions[version];\n }\n }\n return acc;\n }, {});\n }, [versions, textSearch]);\n\n if (!packageMeta || Object.keys(packageMeta).length === 0) {\n return null;\n }\n const hideDeprecatedVersions = configOptions.hideDeprecatedVersions;\n const hasDistTags = distTags && Object.keys(distTags).length > 0 && packageName;\n const hasVersionHistory =\n packageVersions && Object.keys(packageVersions).length > 0 && packageName;\n\n return (\n <Card sx={{ mb: 2 }}>\n <CardContent>\n <Box data-testid=\"versions\" sx={{ m: 2 }}>\n {hasDistTags ? (\n <>\n <StyledText variant=\"subtitle1\">\n {t('versions.current-tags')}\n <span>{` (${Object.keys(distTags).length})`}</span>\n </StyledText>\n <VersionsTagList packageName={packageName} tags={distTags} time={time} />\n </>\n ) : null}\n <>\n <StyledText variant=\"subtitle1\">\n {t('versions.version-history')}\n <span>{` (${Object.keys(packageVersions).length})`}</span>\n </StyledText>\n <TextField\n // uncontrolled input: remount on navigation to clear its text\n key={packageName}\n helperText={t('versions.search.placeholder')}\n onChange={debounce((e) => {\n setTextSearch(e.target.value);\n }, 200)}\n size=\"small\"\n variant=\"standard\"\n sx={{ width: '50%' }}\n />\n </>\n {hasVersionHistory ? (\n <>\n {hideDeprecatedVersions === true && (\n // @ts-ignore - Alert does accept children despite the type error\n <Alert severity=\"info\" sx={{ marginTop: 1, marginBottom: 1 }}>\n {t('versions.hide-deprecated')}\n </Alert>\n )}\n <VersionsHistoryList\n packageName={packageName}\n time={time}\n versions={packageVersions}\n />\n </>\n ) : null}\n </Box>\n </CardContent>\n </Card>\n );\n};\n\nexport default Versions;\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,IAAa,aAAa,OAAO,UAAU,CAAC,EAAqB,WAAW;CAC1E,YAAY,MAAM,SAAS,MAAM,MAAM,WAAW;CAClD,eAAe;AACjB,EAAE;AAEF,IAAM,YAA6B,EAAE,aAAa,kBAAkB;CAClE,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,cAAc,WAAW,CAAC,MAAM,eAAe,CAAC;CAEnF,MAAM,CAAC,YAAY,iBAAiB,SAAS,EAAE;CAG/C,gBAAgB;EACd,cAAc,EAAE;CAClB,GAAG,CAAC,WAAW,CAAC;CAChB,MAAM,kBAAkB,cAAc;EACpC,IAAI,eAAe,IACjB,OAAO;EAET,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,QAAQ,KAAK,YAAY;GACpD,IAAI,OAAO,SAAS,aAAa,aAC3B;QAAA,OAAO,UAAU,SAAS,YAAY;KAAE,mBAAmB;KAAM,OAAO;IAAK,CAAC,GAChF,IAAI,WAAW,SAAS;GAAA;GAG5B,OAAO;EACT,GAAG,CAAC,CAAC;CACP,GAAG,CAAC,UAAU,UAAU,CAAC;CAEzB,IAAI,CAAC,eAAe,OAAO,KAAK,WAAW,CAAC,CAAC,WAAW,GACtD,OAAO;CAET,MAAM,yBAAyB,cAAc;CAC7C,MAAM,cAAc,YAAY,OAAO,KAAK,QAAQ,CAAC,CAAC,SAAS,KAAK;CACpE,MAAM,oBACJ,mBAAmB,OAAO,KAAK,eAAe,CAAC,CAAC,SAAS,KAAK;CAEhE,OACE,oBAAC,MAAD;EAAM,IAAI,EAAE,IAAI,EAAE;EAChB,UAAA,oBAAC,aAAD,EAAA,UACE,qBAAC,KAAD;GAAK,eAAY;GAAW,IAAI,EAAE,GAAG,EAAE;GAAvC,UAAA;IACG,cACC,qBAAA,YAAA,EAAA,UAAA,CACE,qBAAC,YAAD;KAAY,SAAQ;KAApB,UAAA,CACG,EAAE,uBAAuB,GAC1B,oBAAC,QAAD,EAAA,UAAO,KAAK,OAAO,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAS,CAAA,CACxC;IACZ,CAAA,GAAA,oBAAC,iBAAD;KAA8B;KAAa,MAAM;KAAgB;IAAO,CAAA,CACxE,EAAA,CAAA,IACA;IACJ,qBAAA,YAAA,EAAA,UAAA,CACE,qBAAC,YAAD;KAAY,SAAQ;KAApB,UAAA,CACG,EAAE,0BAA0B,GAC7B,oBAAC,QAAD,EAAA,UAAO,KAAK,OAAO,KAAK,eAAe,CAAC,CAAC,OAAO,GAAS,CAAA,CAC/C;IACZ,CAAA,GAAA,oBAAC,WAAD;KAGE,YAAY,EAAE,6BAA6B;KAC3C,UAAU,UAAU,MAAM;MACxB,cAAc,EAAE,OAAO,KAAK;KAC9B,GAAG,GAAG;KACN,MAAK;KACL,SAAQ;KACR,IAAI,EAAE,OAAO,MAAM;IACpB,GARM,WAQN,CACD,EAAA,CAAA;IACD,oBACC,qBAAA,YAAA,EAAA,UAAA,CACG,2BAA2B,QAE1B,oBAAC,OAAD;KAAO,UAAS;KAAO,IAAI;MAAE,WAAW;MAAG,cAAc;KAAE;KACxD,UAAA,EAAE,0BAA0B;IACxB,CAAA,GAET,oBAAC,qBAAD;KACe;KACP;KACN,UAAU;IACX,CAAA,CACD,EAAA,CAAA,IACA;GACD;EACM,CAAA,EAAA,CAAA;CACT,CAAA;AAEV"}
|
package/build/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export { default as Label } from './components/Label';
|
|
|
24
24
|
export { default as Logo } from './components/Logo';
|
|
25
25
|
export { default as MenuItem } from './components/MenuItem';
|
|
26
26
|
export { default as NotFound } from './components/NotFound';
|
|
27
|
+
export { default as GenericError } from './components/GenericError';
|
|
27
28
|
export { default as Forbidden } from './components/Forbidden';
|
|
28
29
|
export { default as LoginDialog } from './components/LoginDialog';
|
|
29
30
|
export { default as Search } from './components/Search';
|
package/build/index.js
CHANGED
|
@@ -72,6 +72,8 @@ const require_MenuItem = require("./components/MenuItem/MenuItem.js");
|
|
|
72
72
|
require("./components/MenuItem/index.js");
|
|
73
73
|
const require_NotFound = require("./components/NotFound/NotFound.js");
|
|
74
74
|
require("./components/NotFound/index.js");
|
|
75
|
+
const require_GenericError = require("./components/GenericError/GenericError.js");
|
|
76
|
+
require("./components/GenericError/index.js");
|
|
75
77
|
const require_Forbidden = require("./components/Forbidden/Forbidden.js");
|
|
76
78
|
require("./components/Forbidden/index.js");
|
|
77
79
|
const require_LoginDialog = require("./components/LoginDialog/LoginDialog.js");
|
|
@@ -135,6 +137,7 @@ exports.ErrorBoundary = require_ErrorBoundary.default;
|
|
|
135
137
|
exports.Footer = require_Footer.default;
|
|
136
138
|
exports.Forbidden = require_Forbidden.Forbidden;
|
|
137
139
|
exports.FundButton = require_FundButton.default;
|
|
140
|
+
exports.GenericError = require_GenericError.default;
|
|
138
141
|
exports.Header = require_Header.default;
|
|
139
142
|
exports.HeaderInfoDialog = require_HeaderInfoDialog.default;
|
|
140
143
|
exports.Heading = require_Heading.default;
|
|
@@ -197,6 +200,7 @@ exports.getCLISetRegistry = require_cli_utils.getCLISetRegistry;
|
|
|
197
200
|
exports.getTheme = require_theme.getTheme;
|
|
198
201
|
exports.isTokenExpire = require_token.isTokenExpire;
|
|
199
202
|
exports.loadable = require_loadable.default;
|
|
203
|
+
exports.tokenExpireInMs = require_token.tokenExpireInMs;
|
|
200
204
|
Object.defineProperty(exports, "url", {
|
|
201
205
|
enumerable: true,
|
|
202
206
|
get: function() {
|
package/build/index.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import { utils_exports } from "./utils/utils.mjs";
|
|
|
7
7
|
import { getCLIChangePassword, getCLISBerryYamlRegistry, getCLISetConfigRegistry, getCLISetRegistry } from "./utils/cli-utils.mjs";
|
|
8
8
|
import loadable_default from "./utils/loadable.mjs";
|
|
9
9
|
import { Route } from "./utils/routes.mjs";
|
|
10
|
-
import { isTokenExpire } from "./utils/token.mjs";
|
|
10
|
+
import { isTokenExpire, tokenExpireInMs } from "./utils/token.mjs";
|
|
11
11
|
import "./utils/index.mjs";
|
|
12
12
|
import RawViewer from "./components/RawViewer/RawViewer.mjs";
|
|
13
13
|
import "./components/RawViewer/index.mjs";
|
|
@@ -68,6 +68,8 @@ import MenuItem from "./components/MenuItem/MenuItem.mjs";
|
|
|
68
68
|
import "./components/MenuItem/index.mjs";
|
|
69
69
|
import NotFound from "./components/NotFound/NotFound.mjs";
|
|
70
70
|
import "./components/NotFound/index.mjs";
|
|
71
|
+
import GenericError from "./components/GenericError/GenericError.mjs";
|
|
72
|
+
import "./components/GenericError/index.mjs";
|
|
71
73
|
import { Forbidden } from "./components/Forbidden/Forbidden.mjs";
|
|
72
74
|
import "./components/Forbidden/index.mjs";
|
|
73
75
|
import LoginDialog from "./components/LoginDialog/LoginDialog.mjs";
|
|
@@ -111,4 +113,4 @@ import { ThemeProvider, useCustomTheme } from "./Theme/ThemeProvider.mjs";
|
|
|
111
113
|
import StyleBaseline from "./Theme/StyleBaseline.mjs";
|
|
112
114
|
import "./Theme/index.mjs";
|
|
113
115
|
import "./store/index.mjs";
|
|
114
|
-
export { ActionBar, AddUser, AppConfigurationProvider, AppRoute, AuthContext, AuthProvider, Author, ChangePassword, CopyToClipBoard as CopyClipboard, Dependencies, Deprecated, DetailContainer as Detail, Developers, Dist as Distribution, DownloadProvider, Engine as Engines, ErrorBoundary, Footer, Forbidden, FundButton, Header, HeaderInfoDialog, Heading, Help, Home, Icons_exports as Icons, Install, Keywords, Label, Link, LinkExternal, Loading, Login, LoginDialog, Logo, ManifestsProvider, MenuItem, NotFound, Package, PackageList, PersistenceSettingProvider, Person, RawViewer, Readme, Route, Search, SearchContext, SearchProvider, DetailSidebar as SideBar, DetailSidebarTitle as SideBarTitle, StyleBaseline, Success, ThemeProvider, TranslatorProvider, UpLinks, VersionLayout, VersionProvider, Versions, api_default as api, breakPoints, colors_exports as colors, copyToClipBoardUtility, customizedTheme, fontSize, fontWeight, getCLIChangePassword, getCLISBerryYamlRegistry, getCLISetConfigRegistry, getCLISetRegistry, getTheme, isTokenExpire, loadable_default as loadable, url_exports as url, useAuth, useConfig, useCustomTheme, useDownload, useLanguage, useLocalStorage, useManifests, useOnClickOutside, useSearch, useSettings, useVersion, utils_exports as utils };
|
|
116
|
+
export { ActionBar, AddUser, AppConfigurationProvider, AppRoute, AuthContext, AuthProvider, Author, ChangePassword, CopyToClipBoard as CopyClipboard, Dependencies, Deprecated, DetailContainer as Detail, Developers, Dist as Distribution, DownloadProvider, Engine as Engines, ErrorBoundary, Footer, Forbidden, FundButton, GenericError, Header, HeaderInfoDialog, Heading, Help, Home, Icons_exports as Icons, Install, Keywords, Label, Link, LinkExternal, Loading, Login, LoginDialog, Logo, ManifestsProvider, MenuItem, NotFound, Package, PackageList, PersistenceSettingProvider, Person, RawViewer, Readme, Route, Search, SearchContext, SearchProvider, DetailSidebar as SideBar, DetailSidebarTitle as SideBarTitle, StyleBaseline, Success, ThemeProvider, TranslatorProvider, UpLinks, VersionLayout, VersionProvider, Versions, api_default as api, breakPoints, colors_exports as colors, copyToClipBoardUtility, customizedTheme, fontSize, fontWeight, getCLIChangePassword, getCLISBerryYamlRegistry, getCLISetConfigRegistry, getCLISetRegistry, getTheme, isTokenExpire, loadable_default as loadable, tokenExpireInMs, url_exports as url, useAuth, useConfig, useCustomTheme, useDownload, useLanguage, useLocalStorage, useManifests, useOnClickOutside, useSearch, useSettings, useVersion, utils_exports as utils };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const require_StageDetail = require("../../sections/Stage/StageDetail.js");
|
|
2
|
+
require("../../sections/Stage/index.js");
|
|
3
|
+
//#region src/pages/Stage/StageDetail.tsx
|
|
4
|
+
var StageDetail_default = require_StageDetail.default;
|
|
5
|
+
//#endregion
|
|
6
|
+
exports.default = StageDetail_default;
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=StageDetail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StageDetail.js","names":[],"sources":["../../../src/pages/Stage/StageDetail.tsx"],"sourcesContent":["import { StageDetail } from '../../sections/Stage';\n\nexport default StageDetail;\n"],"mappings":";;;AAEA,IAAA,sBAAe,oBAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import StageDetail from "../../sections/Stage/StageDetail.mjs";
|
|
2
|
+
import "../../sections/Stage/index.mjs";
|
|
3
|
+
//#region src/pages/Stage/StageDetail.tsx
|
|
4
|
+
var StageDetail_default = StageDetail;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { StageDetail_default as default };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=StageDetail.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StageDetail.mjs","names":[],"sources":["../../../src/pages/Stage/StageDetail.tsx"],"sourcesContent":["import { StageDetail } from '../../sections/Stage';\n\nexport default StageDetail;\n"],"mappings":";;;AAEA,IAAA,sBAAe"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const require_StageList = require("../../sections/Stage/StageList.js");
|
|
2
|
+
require("../../sections/Stage/index.js");
|
|
3
|
+
//#region src/pages/Stage/StageList.tsx
|
|
4
|
+
var StageList_default = require_StageList.default;
|
|
5
|
+
//#endregion
|
|
6
|
+
exports.default = StageList_default;
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=StageList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StageList.js","names":[],"sources":["../../../src/pages/Stage/StageList.tsx"],"sourcesContent":["import { StageList } from '../../sections/Stage';\n\nexport default StageList;\n"],"mappings":";;;AAEA,IAAA,oBAAe,kBAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import StageList from "../../sections/Stage/StageList.mjs";
|
|
2
|
+
import "../../sections/Stage/index.mjs";
|
|
3
|
+
//#region src/pages/Stage/StageList.tsx
|
|
4
|
+
var StageList_default = StageList;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { StageList_default as default };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=StageList.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StageList.mjs","names":[],"sources":["../../../src/pages/Stage/StageList.tsx"],"sourcesContent":["import { StageList } from '../../sections/Stage';\n\nexport default StageList;\n"],"mappings":";;;AAEA,IAAA,oBAAe"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
2
2
|
const require_VersionProvider = require("../../providers/VersionProvider/VersionProvider.js");
|
|
3
3
|
const require_NotFound = require("../../components/NotFound/NotFound.js");
|
|
4
|
+
const require_GenericError = require("../../components/GenericError/GenericError.js");
|
|
5
|
+
require("../../components/GenericError/index.js");
|
|
4
6
|
const require_Forbidden = require("../../components/Forbidden/Forbidden.js");
|
|
5
7
|
require("../../components/Forbidden/index.js");
|
|
6
8
|
const require_Loading = require("../../components/Loading/Loading.js");
|
|
@@ -11,11 +13,12 @@ react = require_runtime.__toESM(react);
|
|
|
11
13
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
14
|
//#region src/pages/Version/Version.tsx
|
|
13
15
|
var Version = () => {
|
|
14
|
-
const { hasNotBeenFound, isForbidden, isUnAuthorized, isLoading } = require_VersionProvider.useVersion();
|
|
16
|
+
const { hasNotBeenFound, isForbidden, isUnAuthorized, isError, isLoading, packageMeta } = require_VersionProvider.useVersion();
|
|
15
17
|
if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Loading.default, {});
|
|
16
18
|
if (isUnAuthorized) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Forbidden.Forbidden, {});
|
|
17
19
|
if (isForbidden) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Forbidden.Forbidden, {});
|
|
18
20
|
if (hasNotBeenFound) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_NotFound.default, {});
|
|
21
|
+
if (isError || !packageMeta) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_GenericError.default, {});
|
|
19
22
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Version.default, {});
|
|
20
23
|
};
|
|
21
24
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Version.js","names":[],"sources":["../../../src/pages/Version/Version.tsx"],"sourcesContent":["import React from 'react';\n\nimport Forbidden from '../../components/Forbidden';\nimport { Loading, NotFound, VersionLayout, useVersion } from '../../index';\n\nconst Version: React.FC = () => {\n const { hasNotBeenFound, isForbidden, isUnAuthorized, isLoading }
|
|
1
|
+
{"version":3,"file":"Version.js","names":[],"sources":["../../../src/pages/Version/Version.tsx"],"sourcesContent":["import React from 'react';\n\nimport Forbidden from '../../components/Forbidden';\nimport GenericError from '../../components/GenericError';\nimport { Loading, NotFound, VersionLayout, useVersion } from '../../index';\n\nconst Version: React.FC = () => {\n const { hasNotBeenFound, isForbidden, isUnAuthorized, isError, isLoading, packageMeta } =\n useVersion();\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (isUnAuthorized) {\n return <Forbidden />;\n }\n\n if (isForbidden) {\n return <Forbidden />;\n }\n\n if (hasNotBeenFound) {\n return <NotFound />;\n }\n\n // 5xx, network failures or a manifest that never arrived: rendering the\n // layout without packageMeta crashes the tab components\n if (isError || !packageMeta) {\n return <GenericError />;\n }\n\n return <VersionLayout />;\n};\n\nexport default Version;\n"],"mappings":";;;;;;;;;;;;;;AAMA,IAAM,gBAA0B;CAC9B,MAAM,EAAE,iBAAiB,aAAa,gBAAgB,SAAS,WAAW,gBACxE,wBAAA,WAAW;CAEb,IAAI,WACF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAA,SAAD,CAAU,CAAA;CAGnB,IAAI,gBACF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAA,WAAD,CAAY,CAAA;CAGrB,IAAI,aACF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAA,WAAD,CAAY,CAAA;CAGrB,IAAI,iBACF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,SAAD,CAAW,CAAA;CAKpB,IAAI,WAAW,CAAC,aACd,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,SAAD,CAAe,CAAA;CAGxB,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAA,SAAD,CAAgB,CAAA;AACzB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { useVersion } from "../../providers/VersionProvider/VersionProvider.mjs";
|
|
2
2
|
import NotFound from "../../components/NotFound/NotFound.mjs";
|
|
3
|
+
import GenericError from "../../components/GenericError/GenericError.mjs";
|
|
4
|
+
import "../../components/GenericError/index.mjs";
|
|
3
5
|
import { Forbidden } from "../../components/Forbidden/Forbidden.mjs";
|
|
4
6
|
import "../../components/Forbidden/index.mjs";
|
|
5
7
|
import Loading from "../../components/Loading/Loading.mjs";
|
|
@@ -9,11 +11,12 @@ import "react";
|
|
|
9
11
|
import { jsx } from "react/jsx-runtime";
|
|
10
12
|
//#region src/pages/Version/Version.tsx
|
|
11
13
|
var Version = () => {
|
|
12
|
-
const { hasNotBeenFound, isForbidden, isUnAuthorized, isLoading } = useVersion();
|
|
14
|
+
const { hasNotBeenFound, isForbidden, isUnAuthorized, isError, isLoading, packageMeta } = useVersion();
|
|
13
15
|
if (isLoading) return /* @__PURE__ */ jsx(Loading, {});
|
|
14
16
|
if (isUnAuthorized) return /* @__PURE__ */ jsx(Forbidden, {});
|
|
15
17
|
if (isForbidden) return /* @__PURE__ */ jsx(Forbidden, {});
|
|
16
18
|
if (hasNotBeenFound) return /* @__PURE__ */ jsx(NotFound, {});
|
|
19
|
+
if (isError || !packageMeta) return /* @__PURE__ */ jsx(GenericError, {});
|
|
17
20
|
return /* @__PURE__ */ jsx(VersionLayout, {});
|
|
18
21
|
};
|
|
19
22
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Version.mjs","names":[],"sources":["../../../src/pages/Version/Version.tsx"],"sourcesContent":["import React from 'react';\n\nimport Forbidden from '../../components/Forbidden';\nimport { Loading, NotFound, VersionLayout, useVersion } from '../../index';\n\nconst Version: React.FC = () => {\n const { hasNotBeenFound, isForbidden, isUnAuthorized, isLoading }
|
|
1
|
+
{"version":3,"file":"Version.mjs","names":[],"sources":["../../../src/pages/Version/Version.tsx"],"sourcesContent":["import React from 'react';\n\nimport Forbidden from '../../components/Forbidden';\nimport GenericError from '../../components/GenericError';\nimport { Loading, NotFound, VersionLayout, useVersion } from '../../index';\n\nconst Version: React.FC = () => {\n const { hasNotBeenFound, isForbidden, isUnAuthorized, isError, isLoading, packageMeta } =\n useVersion();\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (isUnAuthorized) {\n return <Forbidden />;\n }\n\n if (isForbidden) {\n return <Forbidden />;\n }\n\n if (hasNotBeenFound) {\n return <NotFound />;\n }\n\n // 5xx, network failures or a manifest that never arrived: rendering the\n // layout without packageMeta crashes the tab components\n if (isError || !packageMeta) {\n return <GenericError />;\n }\n\n return <VersionLayout />;\n};\n\nexport default Version;\n"],"mappings":";;;;;;;;;;;;AAMA,IAAM,gBAA0B;CAC9B,MAAM,EAAE,iBAAiB,aAAa,gBAAgB,SAAS,WAAW,gBACxE,WAAW;CAEb,IAAI,WACF,OAAO,oBAAC,SAAD,CAAU,CAAA;CAGnB,IAAI,gBACF,OAAO,oBAAC,WAAD,CAAY,CAAA;CAGrB,IAAI,aACF,OAAO,oBAAC,WAAD,CAAY,CAAA;CAGrB,IAAI,iBACF,OAAO,oBAAC,UAAD,CAAW,CAAA;CAKpB,IAAI,WAAW,CAAC,aACd,OAAO,oBAAC,cAAD,CAAe,CAAA;CAGxB,OAAO,oBAAC,eAAD,CAAgB,CAAA;AACzB"}
|
|
@@ -22,20 +22,22 @@ var AuthContext = (0, react.createContext)({
|
|
|
22
22
|
var configuration = require_configuration.getConfiguration();
|
|
23
23
|
var basePath = require_utils.stripTrailingSlash(configuration.base);
|
|
24
24
|
var AuthProvider = ({ children }) => {
|
|
25
|
-
const [userState, setUserState] = react.default.useState(require_utils$1.getDefaultUserState
|
|
25
|
+
const [userState, setUserState] = react.default.useState(require_utils$1.getDefaultUserState);
|
|
26
|
+
react.default.useEffect(() => {
|
|
27
|
+
require_utils$1.clearExpiredAuth();
|
|
28
|
+
}, []);
|
|
26
29
|
const { trigger } = require_use_data_mutation.useDataMutation(basePath, require_routes.APIRoute.LOGIN, "POST");
|
|
27
30
|
const { mutate } = (0, swr.useSWRConfig)();
|
|
28
31
|
const handleLogin = async (body) => {
|
|
29
32
|
const result = await trigger(body);
|
|
30
|
-
if (result
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
33
|
+
if (!result || !result.username || !result.token) throw new Error("login response is missing the token");
|
|
34
|
+
require_storage.saveAuth(result.username, result.token);
|
|
35
|
+
setUserState(result);
|
|
36
|
+
mutate(`${basePath}${require_routes.APIRoute.PACKAGES}`);
|
|
35
37
|
};
|
|
36
38
|
const logOutUser = () => {
|
|
37
|
-
setUserState(require_utils$1.getDefaultUserState());
|
|
38
39
|
require_storage.clearAuth();
|
|
40
|
+
setUserState(require_utils$1.getDefaultUserState());
|
|
39
41
|
window.location?.reload();
|
|
40
42
|
};
|
|
41
43
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AuthContext, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.js","names":[],"sources":["../../../src/providers/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React, { createContext, use } from 'react';\nimport { useSWRConfig } from 'swr';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport { getConfiguration } from '../../configuration';\nimport { APIRoute } from '../../store/routes';\nimport { clearAuth, saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport type { LoginBody } from './types';\nimport { getDefaultUserState } from './utils';\n\ninterface AuthContextProps {\n handleLogin: (body: { username: string; password: string }) => Promise<any>;\n setUserState: React.Dispatch<React.SetStateAction<LoginBody>>;\n logOutUser: () => void;\n userState: LoginBody;\n}\n\nexport const AuthContext = createContext<Partial<AuthContextProps>>({\n userState: { token: null, username: null },\n setUserState: () => {},\n handleLogin: async () => {},\n logOutUser: () => {},\n});\n\nconst configuration = getConfiguration();\nconst basePath = stripTrailingSlash(configuration.base);\n\nconst AuthProvider: React.FC<{ children: ReactElement }> = ({ children }) => {\n const [userState, setUserState] = React.useState<LoginBody>(getDefaultUserState());\n const { trigger } = useDataMutation<LoginBody>(basePath, APIRoute.LOGIN, 'POST');\n const { mutate } = useSWRConfig();\n\n const handleLogin = async (body: { username: string; password: string }) => {\n const result = await trigger(body);\n if (result
|
|
1
|
+
{"version":3,"file":"AuthProvider.js","names":[],"sources":["../../../src/providers/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport React, { createContext, use } from 'react';\nimport { useSWRConfig } from 'swr';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport { getConfiguration } from '../../configuration';\nimport { APIRoute } from '../../store/routes';\nimport { clearAuth, saveAuth } from '../../store/storage';\nimport { stripTrailingSlash } from '../../store/utils';\nimport type { LoginBody } from './types';\nimport { clearExpiredAuth, getDefaultUserState } from './utils';\n\ninterface AuthContextProps {\n handleLogin: (body: { username: string; password: string }) => Promise<any>;\n setUserState: React.Dispatch<React.SetStateAction<LoginBody>>;\n logOutUser: () => void;\n userState: LoginBody;\n}\n\nexport const AuthContext = createContext<Partial<AuthContextProps>>({\n userState: { token: null, username: null },\n setUserState: () => {},\n handleLogin: async () => {},\n logOutUser: () => {},\n});\n\nconst configuration = getConfiguration();\nconst basePath = stripTrailingSlash(configuration.base);\n\nconst AuthProvider: React.FC<{ children: ReactElement }> = ({ children }) => {\n // lazy initializer: reading storage and decoding the JWT on every render is wasted work\n const [userState, setUserState] = React.useState<LoginBody>(getDefaultUserState);\n\n React.useEffect(() => {\n clearExpiredAuth();\n }, []);\n const { trigger } = useDataMutation<LoginBody>(basePath, APIRoute.LOGIN, 'POST');\n const { mutate } = useSWRConfig();\n\n const handleLogin = async (body: { username: string; password: string }) => {\n const result = await trigger(body);\n if (!result || !result.username || !result.token) {\n // a 2xx with an unexpected body (proxy or auth plugin returning html)\n // must not pass as a successful login\n throw new Error('login response is missing the token');\n }\n saveAuth(result.username, result.token);\n setUserState(result as LoginBody);\n // Revalidate the packages list so it reflects authenticated access\n mutate(`${basePath}${APIRoute.PACKAGES}`);\n };\n\n const logOutUser = () => {\n // clear storage first: getDefaultUserState reads it, and the token is\n // still valid at this point, so the old order re-hydrated the session\n clearAuth();\n setUserState(getDefaultUserState());\n window.location?.reload();\n };\n\n return (\n <AuthContext\n value={{\n handleLogin,\n userState,\n logOutUser,\n setUserState,\n }}\n >\n {children}\n </AuthContext>\n );\n};\n\nexport { AuthProvider };\n\nexport const useAuth = () => use(AuthContext);\n"],"mappings":";;;;;;;;;;;;AAmBA,IAAa,eAAA,GAAc,MAAA,cAAA,CAAyC;CAClE,WAAW;EAAE,OAAO;EAAM,UAAU;CAAK;CACzC,oBAAoB,CAAC;CACrB,aAAa,YAAY,CAAC;CAC1B,kBAAkB,CAAC;AACrB,CAAC;AAED,IAAM,gBAAgB,sBAAA,iBAAiB;AACvC,IAAM,WAAW,cAAA,mBAAmB,cAAc,IAAI;AAEtD,IAAM,gBAAsD,EAAE,eAAe;CAE3E,MAAM,CAAC,WAAW,gBAAgB,MAAA,QAAM,SAAoB,gBAAA,mBAAmB;CAE/E,MAAA,QAAM,gBAAgB;EACpB,gBAAA,iBAAiB;CACnB,GAAG,CAAC,CAAC;CACL,MAAM,EAAE,YAAY,0BAAA,gBAA2B,UAAU,eAAA,SAAS,OAAO,MAAM;CAC/E,MAAM,EAAE,YAAA,GAAW,IAAA,aAAA,CAAa;CAEhC,MAAM,cAAc,OAAO,SAAiD;EAC1E,MAAM,SAAS,MAAM,QAAQ,IAAI;EACjC,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,OAAO,OAGzC,MAAM,IAAI,MAAM,qCAAqC;EAEvD,gBAAA,SAAS,OAAO,UAAU,OAAO,KAAK;EACtC,aAAa,MAAmB;EAEhC,OAAO,GAAG,WAAW,eAAA,SAAS,UAAU;CAC1C;CAEA,MAAM,mBAAmB;EAGvB,gBAAA,UAAU;EACV,aAAa,gBAAA,oBAAoB,CAAC;EAClC,OAAO,UAAU,OAAO;CAC1B;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAD;EACE,OAAO;GACL;GACA;GACA;GACA;EACF;EAEC;CACU,CAAA;AAEjB;AAIA,IAAa,iBAAA,GAAgB,MAAA,IAAA,CAAI,WAAW"}
|
|
@@ -3,7 +3,7 @@ import { getConfiguration } from "../../configuration.mjs";
|
|
|
3
3
|
import { APIRoute } from "../../store/routes.mjs";
|
|
4
4
|
import { stripTrailingSlash } from "../../store/utils.mjs";
|
|
5
5
|
import { useDataMutation } from "../../api/use-data-mutation.mjs";
|
|
6
|
-
import { getDefaultUserState } from "./utils.mjs";
|
|
6
|
+
import { clearExpiredAuth, getDefaultUserState } from "./utils.mjs";
|
|
7
7
|
import React, { createContext, use } from "react";
|
|
8
8
|
import { jsx } from "react/jsx-runtime";
|
|
9
9
|
import { useSWRConfig } from "swr";
|
|
@@ -20,20 +20,22 @@ var AuthContext = createContext({
|
|
|
20
20
|
var configuration = getConfiguration();
|
|
21
21
|
var basePath = stripTrailingSlash(configuration.base);
|
|
22
22
|
var AuthProvider = ({ children }) => {
|
|
23
|
-
const [userState, setUserState] = React.useState(getDefaultUserState
|
|
23
|
+
const [userState, setUserState] = React.useState(getDefaultUserState);
|
|
24
|
+
React.useEffect(() => {
|
|
25
|
+
clearExpiredAuth();
|
|
26
|
+
}, []);
|
|
24
27
|
const { trigger } = useDataMutation(basePath, APIRoute.LOGIN, "POST");
|
|
25
28
|
const { mutate } = useSWRConfig();
|
|
26
29
|
const handleLogin = async (body) => {
|
|
27
30
|
const result = await trigger(body);
|
|
28
|
-
if (result
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
31
|
+
if (!result || !result.username || !result.token) throw new Error("login response is missing the token");
|
|
32
|
+
saveAuth(result.username, result.token);
|
|
33
|
+
setUserState(result);
|
|
34
|
+
mutate(`${basePath}${APIRoute.PACKAGES}`);
|
|
33
35
|
};
|
|
34
36
|
const logOutUser = () => {
|
|
35
|
-
setUserState(getDefaultUserState());
|
|
36
37
|
clearAuth();
|
|
38
|
+
setUserState(getDefaultUserState());
|
|
37
39
|
window.location?.reload();
|
|
38
40
|
};
|
|
39
41
|
return /* @__PURE__ */ jsx(AuthContext, {
|