@verdaccio/ui-components 4.0.0-next-8.7 → 4.0.0-next-8.9
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/README.md +1 -1
- package/build/AppTest/AppRoute.js +17 -1
- package/build/AppTest/AppRoute.js.map +1 -0
- package/build/AppTest/pages/Front/Home.js.map +1 -0
- package/build/AppTest/pages/Front/index.js.map +1 -0
- package/build/AppTest/pages/Security/AddUser.d.ts +2 -0
- package/build/AppTest/pages/Security/AddUser.js +3 -0
- package/build/AppTest/pages/Security/AddUser.js.map +1 -0
- package/build/AppTest/pages/Security/ChangePassword.d.ts +2 -0
- package/build/AppTest/pages/Security/ChangePassword.js +3 -0
- package/build/AppTest/pages/Security/ChangePassword.js.map +1 -0
- package/build/AppTest/pages/Security/Login.d.ts +2 -0
- package/build/AppTest/pages/Security/Login.js +3 -0
- package/build/AppTest/pages/Security/Login.js.map +1 -0
- package/build/AppTest/pages/Security/Success.d.ts +2 -0
- package/build/AppTest/pages/Security/Success.js +3 -0
- package/build/AppTest/pages/Security/Success.js.map +1 -0
- package/build/AppTest/pages/Security/index.d.ts +4 -0
- package/build/AppTest/pages/Security/index.js +5 -0
- package/build/AppTest/pages/Security/index.js.map +1 -0
- package/build/AppTest/pages/Version/Version.js.map +1 -0
- package/build/AppTest/pages/Version/index.js.map +1 -0
- package/build/Theme/ResetStyles.js.map +1 -0
- package/build/Theme/StyleBaseline.js.map +1 -0
- package/build/Theme/ThemeProvider.js.map +1 -0
- package/build/Theme/colors.js.map +1 -0
- package/build/Theme/index.js.map +1 -0
- package/build/Theme/theme.d.ts +1 -1
- package/build/Theme/theme.js +1 -1
- package/build/Theme/theme.js.map +1 -0
- package/build/components/ActionBar/ActionBar.js.map +1 -0
- package/build/components/ActionBar/ActionBarAction.js +2 -6
- package/build/components/ActionBar/ActionBarAction.js.map +1 -0
- package/build/components/ActionBar/index.js.map +1 -0
- package/build/components/Author/Author.js.map +1 -0
- package/build/components/Author/index.js.map +1 -0
- package/build/components/Author/styles.js.map +1 -0
- package/build/components/CopyClipboard/CopyToClipBoard.js.map +1 -0
- package/build/components/CopyClipboard/index.js.map +1 -0
- package/build/components/CopyClipboard/utils.js.map +1 -0
- package/build/components/Dependencies/Dependencies.js.map +1 -0
- package/build/components/Dependencies/DependencyBlock.js.map +1 -0
- package/build/components/Dependencies/index.js.map +1 -0
- package/build/components/Dependencies/types.js.map +1 -0
- package/build/components/Dependencies/utits.js.map +1 -0
- package/build/components/Deprecated/Deprecated.js +11 -7
- package/build/components/Deprecated/Deprecated.js.map +1 -0
- package/build/components/Deprecated/index.js.map +1 -0
- package/build/components/Developers/DeveloperType.js.map +1 -0
- package/build/components/Developers/Developers.js.map +1 -0
- package/build/components/Developers/Title.js.map +1 -0
- package/build/components/Developers/get-unique-developer-values.js.map +1 -0
- package/build/components/Developers/index.js.map +1 -0
- package/build/components/Distribution/Dist.js.map +1 -0
- package/build/components/Distribution/index.js.map +1 -0
- package/build/components/Distribution/styles.js.map +1 -0
- package/build/components/Engines/Engines.js.map +1 -0
- package/build/components/Engines/index.js.map +1 -0
- package/build/components/Engines/styles.js.map +1 -0
- package/build/components/ErrorBoundary/ErrorBoundary.js.map +1 -0
- package/build/components/ErrorBoundary/index.js.map +1 -0
- package/build/components/Forbidden/Forbidden.js.map +1 -0
- package/build/components/Forbidden/index.js.map +1 -0
- package/build/components/FundButton/FundButton.js.map +1 -0
- package/build/components/FundButton/index.js.map +1 -0
- package/build/components/HeaderInfoDialog/HeaderInfoDialog.js.map +1 -0
- package/build/components/HeaderInfoDialog/index.js.map +1 -0
- package/build/components/Heading/Heading.js.map +1 -0
- package/build/components/Heading/index.js.map +1 -0
- package/build/components/Help/Help.js.map +1 -0
- package/build/components/Help/index.js.map +1 -0
- package/build/components/Help/styles.js.map +1 -0
- package/build/components/Icons/DevsIcons/CommonJS.js.map +1 -0
- package/build/components/Icons/DevsIcons/ES6Module.js.map +1 -0
- package/build/components/Icons/DevsIcons/Git.js.map +1 -0
- package/build/components/Icons/DevsIcons/NodeJS.js.map +1 -0
- package/build/components/Icons/DevsIcons/TypeScript.js.map +1 -0
- package/build/components/Icons/DevsIcons/index.js.map +1 -0
- package/build/components/Icons/Earth.js.map +1 -0
- package/build/components/Icons/FileBinary.js.map +1 -0
- package/build/components/Icons/Law.js.map +1 -0
- package/build/components/Icons/Managers/Npm.js.map +1 -0
- package/build/components/Icons/Managers/Pnpm.js.map +1 -0
- package/build/components/Icons/Managers/Yarn.js.map +1 -0
- package/build/components/Icons/Managers/index.js.map +1 -0
- package/build/components/Icons/SvgIcon.js.map +1 -0
- package/build/components/Icons/Time.js.map +1 -0
- package/build/components/Icons/Version.js.map +1 -0
- package/build/components/Icons/index.js.map +1 -0
- package/build/components/Install/Install.js.map +1 -0
- package/build/components/Install/InstallListItem.js.map +1 -0
- package/build/components/Install/index.js.map +1 -0
- package/build/components/Keywords/KeywordListItems.js.map +1 -0
- package/build/components/Keywords/Keywords.js.map +1 -0
- package/build/components/Keywords/index.js.map +1 -0
- package/build/components/Label/Label.js.map +1 -0
- package/build/components/Label/index.js.map +1 -0
- package/build/components/Link/Link.js.map +1 -0
- package/build/components/Link/index.js.map +1 -0
- package/build/components/LinkExternal/LinkExternal.js.map +1 -0
- package/build/components/LinkExternal/index.js.map +1 -0
- package/build/components/Loading/Loading.js.map +1 -0
- package/build/components/Loading/Spinner/Spinner.js.map +1 -0
- package/build/components/Loading/Spinner/index.js.map +1 -0
- package/build/components/Loading/index.js.map +1 -0
- package/build/components/Loading/styles.js.map +1 -0
- package/build/components/LoginDialog/LoginDialog.js +0 -1
- package/build/components/LoginDialog/LoginDialog.js.map +1 -0
- package/build/components/LoginDialog/LoginDialogCloseButton.js.map +1 -0
- package/build/components/LoginDialog/LoginDialogForm.js.map +1 -0
- package/build/components/LoginDialog/LoginDialogFormError.js.map +1 -0
- package/build/components/LoginDialog/LoginDialogHeader.js.map +1 -0
- package/build/components/LoginDialog/index.js.map +1 -0
- package/build/components/Logo/Logo.js.map +1 -0
- package/build/components/Logo/index.js.map +1 -0
- package/build/components/MenuItem/MenuItem.js.map +1 -0
- package/build/components/MenuItem/index.js.map +1 -0
- package/build/components/NoItems/NoItems.js +7 -3
- package/build/components/NoItems/NoItems.js.map +1 -0
- package/build/components/NoItems/index.js.map +1 -0
- package/build/components/NotFound/NotFound.js.map +1 -0
- package/build/components/NotFound/index.js.map +1 -0
- package/build/components/Package/Package.js +6 -6
- package/build/components/Package/Package.js.map +1 -0
- package/build/components/Package/index.js.map +1 -0
- package/build/components/Package/styles.js.map +1 -0
- package/build/components/PackageList/PackageList.js.map +1 -0
- package/build/components/PackageList/index.js.map +1 -0
- package/build/components/Person/Person.js.map +1 -0
- package/build/components/Person/PersonTooltip.js.map +1 -0
- package/build/components/Person/index.js.map +1 -0
- package/build/components/Person/utils.js.map +1 -0
- package/build/components/RawViewer/RawViewer.js.map +1 -0
- package/build/components/RawViewer/index.js.map +1 -0
- package/build/components/Readme/index.js.map +1 -0
- package/build/components/Readme/types.js.map +1 -0
- package/build/components/Readme/utils.js.map +1 -0
- package/build/components/RegistryInfoDialog/RegistryInfoDialog.js.map +1 -0
- package/build/components/RegistryInfoDialog/index.js.map +1 -0
- package/build/components/RegistryInfoDialog/styles.js.map +1 -0
- package/build/components/RegistryInfoDialog/types.js.map +1 -0
- package/build/components/Repository/Repository.js.map +1 -0
- package/build/components/Repository/index.js.map +1 -0
- package/build/components/Search/AutoComplete/AutoComplete.js.map +1 -0
- package/build/components/Search/AutoComplete/index.js.map +1 -0
- package/build/components/Search/AutoComplete/styles.js.map +1 -0
- package/build/components/Search/Search.js.map +1 -0
- package/build/components/Search/SearchItem.js +10 -6
- package/build/components/Search/SearchItem.js.map +1 -0
- package/build/components/Search/index.js.map +1 -0
- package/build/components/Search/styles.js.map +1 -0
- package/build/components/Search/utils.js.map +1 -0
- package/build/components/SettingsMenu/SettingsMenu.js.map +1 -0
- package/build/components/SettingsMenu/index.js.map +1 -0
- package/build/components/SideBarTitle/SideBarTitle.js.map +1 -0
- package/build/components/SideBarTitle/index.js.map +1 -0
- package/build/components/SideBarTitle/utils.js.map +1 -0
- package/build/components/TextField/TextField.js.map +1 -0
- package/build/components/TextField/index.js.map +1 -0
- package/build/components/UpLinks/UpLinks.js.map +1 -0
- package/build/components/UpLinks/UplinkLink.js.map +1 -0
- package/build/components/UpLinks/index.js.map +1 -0
- package/build/components/UpLinks/styles.js.map +1 -0
- package/build/components/Versions/HistoryList.js.map +1 -0
- package/build/components/Versions/TagList.js.map +1 -0
- package/build/components/Versions/Versions.js +5 -2
- package/build/components/Versions/Versions.js.map +1 -0
- package/build/components/Versions/index.js.map +1 -0
- package/build/components/Versions/styles.js.map +1 -0
- package/build/components/Versions/types.js.map +1 -0
- package/build/hooks/index.js.map +1 -0
- package/build/hooks/useLocalStorage.js.map +1 -0
- package/build/hooks/useOnClickOutside.js.map +1 -0
- package/build/index.d.ts +7 -0
- package/build/index.js +4 -0
- package/build/index.js.map +1 -0
- package/build/layouts/Security/Dialog.d.ts +6 -0
- package/build/layouts/Security/Dialog.js +22 -0
- package/build/layouts/Security/Dialog.js.map +1 -0
- package/build/layouts/Version/Version.js.map +1 -0
- package/build/layouts/Version/index.js.map +1 -0
- package/build/providers/AppConfigurationProvider/AppConfigurationProvider.js.map +1 -0
- package/build/providers/AppConfigurationProvider/index.js.map +1 -0
- package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.js.map +1 -0
- package/build/providers/PersistenceSettingProvider/index.js.map +1 -0
- package/build/providers/TranslatorProvider/TranslatorProvider.js.map +1 -0
- package/build/providers/TranslatorProvider/index.js.map +1 -0
- package/build/providers/VersionProvider/VersionProvider.js.map +1 -0
- package/build/providers/VersionProvider/index.js.map +1 -0
- package/build/providers/index.js.map +1 -0
- package/build/sections/Detail/ContainerContent.js.map +1 -0
- package/build/sections/Detail/Detail.js.map +1 -0
- package/build/sections/Detail/ReadmeSection.js.map +1 -0
- package/build/sections/Detail/Tabs.js.map +1 -0
- package/build/sections/Detail/index.js.map +1 -0
- package/build/sections/Footer/Footer.js.map +1 -0
- package/build/sections/Footer/index.js.map +1 -0
- package/build/sections/Footer/styles.js.map +1 -0
- package/build/sections/Header/Header.d.ts +3 -1
- package/build/sections/Header/Header.js +44 -3
- package/build/sections/Header/Header.js.map +1 -0
- package/build/sections/Header/HeaderGreetings.js.map +1 -0
- package/build/sections/Header/HeaderLeft.js.map +1 -0
- package/build/sections/Header/HeaderMenu.js.map +1 -0
- package/build/sections/Header/HeaderRight.js.map +1 -0
- package/build/sections/Header/HeaderSettingsDialog.js.map +1 -0
- package/build/sections/Header/HeaderToolTip.js.map +1 -0
- package/build/sections/Header/HeaderToolTipIcon.js.map +1 -0
- package/build/sections/Header/LanguageSwitch.js.map +1 -0
- package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js.map +1 -0
- package/build/sections/Header/RegistryInfoContent/index.js.map +1 -0
- package/build/sections/Header/RegistryInfoContent/styles.js.map +1 -0
- package/build/sections/Header/index.js.map +1 -0
- package/build/sections/Header/styles.js.map +1 -0
- package/build/sections/Home/Home.js.map +1 -0
- package/build/sections/Home/index.js.map +1 -0
- package/build/sections/Security/AddUser.d.ts +3 -0
- package/build/sections/Security/AddUser.js +120 -0
- package/build/sections/Security/AddUser.js.map +1 -0
- package/build/sections/Security/ChangePassword.d.ts +3 -0
- package/build/sections/Security/ChangePassword.js +116 -0
- package/build/sections/Security/ChangePassword.js.map +1 -0
- package/build/sections/Security/Login.d.ts +3 -0
- package/build/sections/Security/Login.js +105 -0
- package/build/sections/Security/Login.js.map +1 -0
- package/build/sections/Security/LoginError.d.ts +7 -0
- package/build/sections/Security/LoginError.js +38 -0
- package/build/sections/Security/LoginError.js.map +1 -0
- package/build/sections/Security/Success.d.ts +9 -0
- package/build/sections/Security/Success.js +46 -0
- package/build/sections/Security/Success.js.map +1 -0
- package/build/sections/Security/index.d.ts +5 -0
- package/build/sections/Security/index.js +5 -0
- package/build/sections/Security/index.js.map +1 -0
- package/build/sections/Security/styles.d.ts +3 -0
- package/build/sections/Security/styles.js +40 -0
- package/build/sections/Security/styles.js.map +1 -0
- package/build/sections/Security/utils.d.ts +6 -0
- package/build/sections/Security/utils.js +52 -0
- package/build/sections/Security/utils.js.map +1 -0
- package/build/sections/SideBar/Sidebar.js.map +1 -0
- package/build/sections/SideBar/index.js.map +1 -0
- package/build/sections/index.js.map +1 -0
- package/build/store/api.js.map +1 -0
- package/build/store/index.d.ts +3 -0
- package/build/store/index.js.map +1 -0
- package/build/store/models/add-user.d.ts +45 -0
- package/build/store/models/add-user.js +95 -0
- package/build/store/models/add-user.js.map +1 -0
- package/build/store/models/change-password.d.ts +44 -0
- package/build/store/models/change-password.js +110 -0
- package/build/store/models/change-password.js.map +1 -0
- package/build/store/models/configuration.js.map +1 -0
- package/build/store/models/download.js.map +1 -0
- package/build/store/models/index.d.ts +6 -0
- package/build/store/models/index.js +7 -1
- package/build/store/models/index.js.map +1 -0
- package/build/store/models/login-v1.d.ts +44 -0
- package/build/store/models/login-v1.js +103 -0
- package/build/store/models/login-v1.js.map +1 -0
- package/build/store/models/login.js.map +1 -0
- package/build/store/models/manifest.js.map +1 -0
- package/build/store/models/packages.js.map +1 -0
- package/build/store/models/routes.js.map +1 -0
- package/build/store/models/search.js.map +1 -0
- package/build/store/models/utils.d.ts +3 -0
- package/build/store/models/utils.js +3 -0
- package/build/store/models/utils.js.map +1 -0
- package/build/store/storage.js.map +1 -0
- package/build/store/store.js.map +1 -0
- package/build/test/i18n-config.js.map +1 -0
- package/build/test/test-react-testing-library.js.map +1 -0
- package/build/types/index.js.map +1 -0
- package/build/types/packageMeta.js.map +1 -0
- package/build/utils/cli-utils.js.map +1 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/loadable.js.map +1 -0
- package/build/utils/routes.d.ts +8 -1
- package/build/utils/routes.js +7 -0
- package/build/utils/routes.js.map +1 -0
- package/build/utils/token-generate.js.map +1 -0
- package/build/utils/token.js.map +1 -0
- package/build/utils/url.js.map +1 -0
- package/build/utils/utils.js.map +1 -0
- package/package.json +7 -7
- package/.babelrc +0 -16
- package/.eslintrc +0 -100
- package/CHANGELOG.md +0 -48
- package/src/AppTest/App.stories.tsx +0 -89
- package/src/AppTest/AppRoute.test.tsx +0 -70
- package/src/AppTest/AppRoute.tsx +0 -42
- package/src/AppTest/pages/Front/Home.ts +0 -3
- package/src/AppTest/pages/Front/index.ts +0 -1
- package/src/AppTest/pages/Version/Version.tsx +0 -28
- package/src/AppTest/pages/Version/index.ts +0 -1
- package/src/Theme/ResetStyles.tsx +0 -44
- package/src/Theme/StyleBaseline.tsx +0 -14
- package/src/Theme/ThemeProvider.test.tsx +0 -27
- package/src/Theme/ThemeProvider.tsx +0 -44
- package/src/Theme/colors.ts +0 -1
- package/src/Theme/index.ts +0 -5
- package/src/Theme/theme.ts +0 -179
- package/src/components/ActionBar/ActionBar.stories.tsx +0 -64
- package/src/components/ActionBar/ActionBar.test.tsx +0 -152
- package/src/components/ActionBar/ActionBar.tsx +0 -63
- package/src/components/ActionBar/ActionBarAction.tsx +0 -92
- package/src/components/ActionBar/index.ts +0 -1
- package/src/components/Author/Author.stories.tsx +0 -53
- package/src/components/Author/Author.test.tsx +0 -76
- package/src/components/Author/Author.tsx +0 -30
- package/src/components/Author/index.ts +0 -1
- package/src/components/Author/styles.ts +0 -16
- package/src/components/CopyClipboard/CopyToClipBoard.stories.tsx +0 -20
- package/src/components/CopyClipboard/CopyToClipBoard.test.tsx +0 -24
- package/src/components/CopyClipboard/CopyToClipBoard.tsx +0 -51
- package/src/components/CopyClipboard/index.ts +0 -2
- package/src/components/CopyClipboard/utils.ts +0 -10
- package/src/components/Dependencies/Dependencies.stories.tsx +0 -158
- package/src/components/Dependencies/Dependencies.test.tsx +0 -76
- package/src/components/Dependencies/Dependencies.tsx +0 -72
- package/src/components/Dependencies/DependencyBlock.test.tsx +0 -47
- package/src/components/Dependencies/DependencyBlock.tsx +0 -83
- package/src/components/Dependencies/index.ts +0 -1
- package/src/components/Dependencies/types.ts +0 -7
- package/src/components/Dependencies/utits.ts +0 -3
- package/src/components/Deprecated/Deprecated.stories.tsx +0 -9
- package/src/components/Deprecated/Deprecated.test.tsx +0 -26
- package/src/components/Deprecated/Deprecated.tsx +0 -20
- package/src/components/Deprecated/index.ts +0 -1
- package/src/components/Developers/DeveloperType.tsx +0 -4
- package/src/components/Developers/Developers.stories.tsx +0 -60
- package/src/components/Developers/Developers.test.tsx +0 -129
- package/src/components/Developers/Developers.tsx +0 -82
- package/src/components/Developers/Title.tsx +0 -28
- package/src/components/Developers/get-unique-developer-values.ts +0 -16
- package/src/components/Developers/index.ts +0 -2
- package/src/components/Distribution/Dist.stories.tsx +0 -67
- package/src/components/Distribution/Dist.test.tsx +0 -99
- package/src/components/Distribution/Dist.tsx +0 -56
- package/src/components/Distribution/index.ts +0 -1
- package/src/components/Distribution/styles.ts +0 -23
- package/src/components/Engines/Engines.stories.tsx +0 -71
- package/src/components/Engines/Engines.test.tsx +0 -57
- package/src/components/Engines/Engines.tsx +0 -99
- package/src/components/Engines/index.ts +0 -1
- package/src/components/Engines/styles.ts +0 -14
- package/src/components/ErrorBoundary/ErrorBoundary.test.tsx +0 -40
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +0 -38
- package/src/components/ErrorBoundary/index.ts +0 -1
- package/src/components/Forbidden/Forbidden.test.tsx +0 -39
- package/src/components/Forbidden/Forbidden.tsx +0 -56
- package/src/components/Forbidden/index.ts +0 -1
- package/src/components/FundButton/FundButton.stories.tsx +0 -56
- package/src/components/FundButton/FundButton.test.tsx +0 -84
- package/src/components/FundButton/FundButton.tsx +0 -48
- package/src/components/FundButton/index.ts +0 -1
- package/src/components/HeaderInfoDialog/HeaderInfoDialog.test.tsx +0 -52
- package/src/components/HeaderInfoDialog/HeaderInfoDialog.tsx +0 -82
- package/src/components/HeaderInfoDialog/index.ts +0 -1
- package/src/components/Heading/Heading.test.tsx +0 -20
- package/src/components/Heading/Heading.tsx +0 -16
- package/src/components/Heading/index.ts +0 -1
- package/src/components/Help/Help.stories.tsx +0 -9
- package/src/components/Help/Help.test.tsx +0 -18
- package/src/components/Help/Help.tsx +0 -54
- package/src/components/Help/index.ts +0 -1
- package/src/components/Help/styles.ts +0 -7
- package/src/components/Icons/.eslintrc +0 -5
- package/src/components/Icons/DevsIcons/CommonJS.tsx +0 -7
- package/src/components/Icons/DevsIcons/ES6Module.tsx +0 -7
- package/src/components/Icons/DevsIcons/Git.tsx +0 -7
- package/src/components/Icons/DevsIcons/NodeJS.tsx +0 -7
- package/src/components/Icons/DevsIcons/TypeScript.tsx +0 -7
- package/src/components/Icons/DevsIcons/commonjs.svg +0 -4
- package/src/components/Icons/DevsIcons/es6module.svg +0 -4
- package/src/components/Icons/DevsIcons/git.svg +0 -4
- package/src/components/Icons/DevsIcons/index.ts +0 -5
- package/src/components/Icons/DevsIcons/nodejs.svg +0 -6
- package/src/components/Icons/DevsIcons/typescript.svg +0 -4
- package/src/components/Icons/Earth.tsx +0 -36
- package/src/components/Icons/FileBinary.tsx +0 -21
- package/src/components/Icons/Icons.stories.tsx +0 -53
- package/src/components/Icons/Icons.test.tsx +0 -70
- package/src/components/Icons/Law.tsx +0 -21
- package/src/components/Icons/License.tsx +0 -18
- package/src/components/Icons/Managers/Npm.tsx +0 -7
- package/src/components/Icons/Managers/Pnpm.tsx +0 -7
- package/src/components/Icons/Managers/Yarn.tsx +0 -7
- package/src/components/Icons/Managers/index.ts +0 -3
- package/src/components/Icons/Managers/npm.svg +0 -15
- package/src/components/Icons/Managers/pnpm.svg +0 -1
- package/src/components/Icons/Managers/yarn.svg +0 -1
- package/src/components/Icons/SvgIcon.tsx +0 -39
- package/src/components/Icons/Time.tsx +0 -19
- package/src/components/Icons/Version.tsx +0 -20
- package/src/components/Icons/index.ts +0 -8
- package/src/components/Install/Install.stories.tsx +0 -87
- package/src/components/Install/Install.test.tsx +0 -117
- package/src/components/Install/Install.tsx +0 -79
- package/src/components/Install/InstallListItem.tsx +0 -137
- package/src/components/Install/index.ts +0 -1
- package/src/components/Keywords/KeywordListItems.tsx +0 -22
- package/src/components/Keywords/Keywords.stories.tsx +0 -19
- package/src/components/Keywords/Keywords.test.tsx +0 -57
- package/src/components/Keywords/Keywords.tsx +0 -36
- package/src/components/Keywords/index.ts +0 -1
- package/src/components/Label/Label.test.tsx +0 -14
- package/src/components/Label/Label.tsx +0 -36
- package/src/components/Label/index.ts +0 -1
- package/src/components/Link/Link.test.tsx +0 -25
- package/src/components/Link/Link.tsx +0 -25
- package/src/components/Link/index.ts +0 -1
- package/src/components/LinkExternal/LinkExternal.test.tsx +0 -18
- package/src/components/LinkExternal/LinkExternal.tsx +0 -22
- package/src/components/LinkExternal/index.ts +0 -1
- package/src/components/Loading/Loading.stories.tsx +0 -14
- package/src/components/Loading/Loading.test.tsx +0 -15
- package/src/components/Loading/Loading.tsx +0 -16
- package/src/components/Loading/Spinner/Spinner.test.tsx +0 -13
- package/src/components/Loading/Spinner/Spinner.tsx +0 -34
- package/src/components/Loading/Spinner/index.tsx +0 -1
- package/src/components/Loading/index.ts +0 -1
- package/src/components/Loading/styles.ts +0 -18
- package/src/components/LoginDialog/LoginDialog.stories.tsx +0 -20
- package/src/components/LoginDialog/LoginDialog.test.tsx +0 -109
- package/src/components/LoginDialog/LoginDialog.tsx +0 -88
- package/src/components/LoginDialog/LoginDialogCloseButton.tsx +0 -33
- package/src/components/LoginDialog/LoginDialogForm.tsx +0 -94
- package/src/components/LoginDialog/LoginDialogFormError.tsx +0 -42
- package/src/components/LoginDialog/LoginDialogHeader.tsx +0 -48
- package/src/components/LoginDialog/index.ts +0 -1
- package/src/components/Logo/Logo.stories.tsx +0 -16
- package/src/components/Logo/Logo.test.tsx +0 -18
- package/src/components/Logo/Logo.tsx +0 -71
- package/src/components/Logo/img/logo-black-and-white.svg +0 -1
- package/src/components/Logo/img/logo.svg +0 -1
- package/src/components/Logo/index.ts +0 -1
- package/src/components/MenuItem/MenuItem.tsx +0 -25
- package/src/components/MenuItem/index.ts +0 -1
- package/src/components/NoItems/NoItems.stories.tsx +0 -11
- package/src/components/NoItems/NoItems.tsx +0 -15
- package/src/components/NoItems/Noitems.test.tsx +0 -15
- package/src/components/NoItems/index.ts +0 -1
- package/src/components/NotFound/NotFound.tsx +0 -53
- package/src/components/NotFound/Notfound.test.tsx +0 -40
- package/src/components/NotFound/img/package.svg +0 -1
- package/src/components/NotFound/index.ts +0 -1
- package/src/components/Package/Package.test.tsx +0 -96
- package/src/components/Package/Package.tsx +0 -266
- package/src/components/Package/index.ts +0 -2
- package/src/components/Package/styles.ts +0 -93
- package/src/components/PackageList/PackageList.tsx +0 -81
- package/src/components/PackageList/Packagelist.test.tsx +0 -60
- package/src/components/PackageList/index.ts +0 -1
- package/src/components/Person/Person.test.tsx +0 -50
- package/src/components/Person/Person.tsx +0 -45
- package/src/components/Person/PersonTooltip.tsx +0 -26
- package/src/components/Person/index.ts +0 -1
- package/src/components/Person/utils.ts +0 -20
- package/src/components/RawViewer/RawViewer.tsx +0 -73
- package/src/components/RawViewer/index.ts +0 -1
- package/src/components/Readme/Readme.test.tsx +0 -35
- package/src/components/Readme/Readme.tsx +0 -46
- package/src/components/Readme/github-markdown.css +0 -1198
- package/src/components/Readme/index.ts +0 -1
- package/src/components/Readme/types.ts +0 -3
- package/src/components/Readme/utils.ts +0 -26
- package/src/components/RegistryInfoDialog/RegistryInfoDialog.tsx +0 -31
- package/src/components/RegistryInfoDialog/index.ts +0 -1
- package/src/components/RegistryInfoDialog/styles.ts +0 -22
- package/src/components/RegistryInfoDialog/types.ts +0 -8
- package/src/components/Repository/Repository.stories.tsx +0 -70
- package/src/components/Repository/Repository.test.tsx +0 -43
- package/src/components/Repository/Repository.tsx +0 -81
- package/src/components/Repository/index.ts +0 -1
- package/src/components/Search/AutoComplete/AutoComplete.tsx +0 -83
- package/src/components/Search/AutoComplete/index.ts +0 -1
- package/src/components/Search/AutoComplete/styles.ts +0 -7
- package/src/components/Search/Search.stories.tsx +0 -52
- package/src/components/Search/Search.test.tsx +0 -181
- package/src/components/Search/Search.tsx +0 -168
- package/src/components/Search/SearchItem.tsx +0 -125
- package/src/components/Search/index.ts +0 -1
- package/src/components/Search/styles.ts +0 -41
- package/src/components/Search/utils.ts +0 -17
- package/src/components/SettingsMenu/SettingsMenu.test.tsx +0 -41
- package/src/components/SettingsMenu/SettingsMenu.tsx +0 -124
- package/src/components/SettingsMenu/index.ts +0 -1
- package/src/components/SideBarTitle/SideBarTitle.stories.tsx +0 -81
- package/src/components/SideBarTitle/SideBarTitle.tsx +0 -100
- package/src/components/SideBarTitle/index.ts +0 -1
- package/src/components/SideBarTitle/utils.ts +0 -12
- package/src/components/TextField/TextField.test.tsx +0 -15
- package/src/components/TextField/TextField.tsx +0 -24
- package/src/components/TextField/index.ts +0 -1
- package/src/components/UpLinks/UpLinks.test.tsx +0 -54
- package/src/components/UpLinks/UpLinks.tsx +0 -64
- package/src/components/UpLinks/UplinkLink.tsx +0 -20
- package/src/components/UpLinks/Uplinks.stories.tsx +0 -47
- package/src/components/UpLinks/index.ts +0 -1
- package/src/components/UpLinks/styles.ts +0 -25
- package/src/components/Versions/HistoryList.tsx +0 -83
- package/src/components/Versions/TagList.tsx +0 -34
- package/src/components/Versions/Versions.test.tsx +0 -83
- package/src/components/Versions/Versions.tsx +0 -109
- package/src/components/Versions/index.ts +0 -1
- package/src/components/Versions/styles.ts +0 -20
- package/src/components/Versions/types.ts +0 -17
- package/src/hooks/index.ts +0 -2
- package/src/hooks/useLocalStorage.ts +0 -49
- package/src/hooks/useOnClickOutside.ts +0 -33
- package/src/index.ts +0 -66
- package/src/layouts/Version/Version.stories.tsx +0 -70
- package/src/layouts/Version/Version.tsx +0 -19
- package/src/layouts/Version/index.ts +0 -1
- package/src/providers/AppConfigurationProvider/AppConfigurationProvider.tsx +0 -75
- package/src/providers/AppConfigurationProvider/index.ts +0 -1
- package/src/providers/PersistenceSettingProvider/PersistenceSettingProvider.tsx +0 -61
- package/src/providers/PersistenceSettingProvider/index.ts +0 -1
- package/src/providers/TranslatorProvider/TranslatorProvider.test.tsx +0 -53
- package/src/providers/TranslatorProvider/TranslatorProvider.tsx +0 -54
- package/src/providers/TranslatorProvider/index.ts +0 -2
- package/src/providers/VersionProvider/README.md +0 -22
- package/src/providers/VersionProvider/VersionProvider.test.tsx +0 -49
- package/src/providers/VersionProvider/VersionProvider.tsx +0 -95
- package/src/providers/VersionProvider/index.ts +0 -1
- package/src/providers/index.ts +0 -3
- package/src/sections/Detail/ContainerContent.tsx +0 -46
- package/src/sections/Detail/Detail.stories.tsx +0 -70
- package/src/sections/Detail/Detail.test.tsx +0 -19
- package/src/sections/Detail/Detail.tsx +0 -41
- package/src/sections/Detail/ReadmeSection.tsx +0 -17
- package/src/sections/Detail/Tabs.tsx +0 -33
- package/src/sections/Detail/index.ts +0 -1
- package/src/sections/Footer/Footer.test.tsx +0 -20
- package/src/sections/Footer/Footer.tsx +0 -126
- package/src/sections/Footer/index.ts +0 -1
- package/src/sections/Footer/styles.ts +0 -48
- package/src/sections/Header/Header.stories.tsx +0 -59
- package/src/sections/Header/Header.test.tsx +0 -280
- package/src/sections/Header/Header.tsx +0 -79
- package/src/sections/Header/HeaderGreetings.tsx +0 -21
- package/src/sections/Header/HeaderLeft.tsx +0 -37
- package/src/sections/Header/HeaderMenu.tsx +0 -63
- package/src/sections/Header/HeaderRight.tsx +0 -142
- package/src/sections/Header/HeaderSettingsDialog.tsx +0 -80
- package/src/sections/Header/HeaderToolTip.tsx +0 -15
- package/src/sections/Header/HeaderToolTipIcon.tsx +0 -87
- package/src/sections/Header/LanguageSwitch.tsx +0 -99
- package/src/sections/Header/RegistryInfoContent/RegistryInfoContent.test.tsx +0 -26
- package/src/sections/Header/RegistryInfoContent/RegistryInfoContent.tsx +0 -191
- package/src/sections/Header/RegistryInfoContent/index.ts +0 -1
- package/src/sections/Header/RegistryInfoContent/styles.ts +0 -13
- package/src/sections/Header/index.ts +0 -1
- package/src/sections/Header/styles.ts +0 -88
- package/src/sections/Home/Home.stories.tsx +0 -33
- package/src/sections/Home/Home.test.tsx +0 -41
- package/src/sections/Home/Home.tsx +0 -21
- package/src/sections/Home/index.ts +0 -1
- package/src/sections/SideBar/Sidebar.stories.tsx +0 -64
- package/src/sections/SideBar/Sidebar.test.tsx +0 -75
- package/src/sections/SideBar/Sidebar.tsx +0 -69
- package/src/sections/SideBar/index.ts +0 -1
- package/src/sections/index.ts +0 -2
- package/src/store/api.test.ts +0 -157
- package/src/store/api.ts +0 -80
- package/src/store/index.ts +0 -4
- package/src/store/models/configuration.ts +0 -47
- package/src/store/models/download.ts +0 -33
- package/src/store/models/index.ts +0 -18
- package/src/store/models/login.test.ts +0 -48
- package/src/store/models/login.ts +0 -104
- package/src/store/models/manifest.ts +0 -117
- package/src/store/models/packages.ts +0 -42
- package/src/store/models/routes.ts +0 -10
- package/src/store/models/search.ts +0 -88
- package/src/store/models/utils.ts +0 -3
- package/src/store/storage.ts +0 -12
- package/src/store/store.ts +0 -15
- package/src/test/i18n-config.ts +0 -19
- package/src/test/test-react-testing-library.tsx +0 -45
- package/src/types/external-modules.d.ts +0 -2
- package/src/types/index.ts +0 -11
- package/src/types/packageMeta.ts +0 -95
- package/src/utils/.eslintrc +0 -5
- package/src/utils/cli-utils.test.ts +0 -67
- package/src/utils/cli-utils.ts +0 -53
- package/src/utils/index.ts +0 -11
- package/src/utils/loadable.tsx +0 -20
- package/src/utils/routes.ts +0 -8
- package/src/utils/token-generate.ts +0 -33
- package/src/utils/token.test.ts +0 -55
- package/src/utils/token.ts +0 -33
- package/src/utils/url.test.ts +0 -32
- package/src/utils/url.ts +0 -73
- package/src/utils/utils.test.ts +0 -146
- package/src/utils/utils.ts +0 -135
- package/tsconfig.build.json +0 -23
- package/tsconfig.json +0 -22
- package/vitest.config.mjs +0 -40
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["HEADERS","JSON","stripTrailingSlash","url","replace"],"sources":["../../../src/store/models/utils.ts"],"sourcesContent":["export const HEADERS = {\n JSON: 'application/json',\n};\n\nexport function stripTrailingSlash(url: string): string {\n return url.replace(/\\/$/, '');\n}\n"],"mappings":"AAAA,OAAO,IAAMA,OAAO,GAAG;EACrBC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,SAASC,kBAAkBA,CAACC,GAAW,EAAU;EACtD,OAAOA,GAAG,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAC/B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","names":["memoryStorage","storage","localStorage","setItem","removeItem","err"],"sources":["../../src/store/storage.ts"],"sourcesContent":["import memoryStorage from 'localstorage-memory';\n\nlet storage: Storage;\ntry {\n localStorage.setItem('__TEST__', '');\n localStorage.removeItem('__TEST__');\n storage = localStorage;\n} catch (err: any) {\n storage = memoryStorage;\n}\n\nexport default storage;\n"],"mappings":"AAAA,OAAOA,aAAa,MAAM,qBAAqB;AAE/C,IAAIC,OAAgB;AACpB,IAAI;EACFC,YAAY,CAACC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;EACpCD,YAAY,CAACE,UAAU,CAAC,UAAU,CAAC;EACnCH,OAAO,GAAGC,YAAY;AACxB,CAAC,CAAC,OAAOG,GAAQ,EAAE;EACjBJ,OAAO,GAAGD,aAAa;AACzB;AAEA,eAAeC,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","names":["init","loadingPlugin","models","store","plugins"],"sources":["../../src/store/store.ts"],"sourcesContent":["import { RematchDispatch, RematchRootState, init } from '@rematch/core';\nimport loadingPlugin, { ExtraModelsFromLoading } from '@rematch/loading';\n\nimport { RootModel, models } from './models';\n\ntype FullModel = ExtraModelsFromLoading<RootModel>;\n\nexport const store = init<RootModel, FullModel>({\n models,\n plugins: [loadingPlugin()],\n});\n\nexport type Store = typeof store;\nexport type Dispatch = RematchDispatch<RootModel>;\nexport type RootState = RematchRootState<RootModel, FullModel>;\n"],"mappings":"AAAA,SAA4CA,IAAI,QAAQ,eAAe;AACvE,OAAOC,aAAa,MAAkC,kBAAkB;AAExE,SAAoBC,MAAM,QAAQ,UAAU;AAI5C,OAAO,IAAMC,KAAK,GAAGH,IAAI,CAAuB;EAC9CE,MAAM;EACNE,OAAO,EAAE,CAACH,aAAa,CAAC,CAAC;AAC3B,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-config.js","names":["i18n","initReactI18next","use","init","lng","whitelist","load","resources","translation","debug","interpolation","escapeValue"],"sources":["../../src/test/i18n-config.ts"],"sourcesContent":["import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\ni18n.use(initReactI18next).init({\n lng: 'en-US',\n whitelist: ['en-US'],\n load: 'currentOnly',\n resources: {\n 'en-US': {\n translation: {},\n },\n },\n debug: false,\n interpolation: {\n escapeValue: false, // react already safes from xss\n },\n});\n\nexport default i18n;\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,SAAS;AAC1B,SAASC,gBAAgB,QAAQ,eAAe;AAEhDD,IAAI,CAACE,GAAG,CAACD,gBAAgB,CAAC,CAACE,IAAI,CAAC;EAC9BC,GAAG,EAAE,OAAO;EACZC,SAAS,EAAE,CAAC,OAAO,CAAC;EACpBC,IAAI,EAAE,aAAa;EACnBC,SAAS,EAAE;IACT,OAAO,EAAE;MACPC,WAAW,EAAE,CAAC;IAChB;EACF,CAAC;EACDC,KAAK,EAAE,KAAK;EACZC,aAAa,EAAE;IACbC,WAAW,EAAE,KAAK,CAAE;EACtB;AACF,CAAC,CAAC;AAEF,eAAeX,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-react-testing-library.js","names":["StyledEngineProvider","render","React","I18nextProvider","Provider","ThemeProvider","AppConfigurationProvider","PersistenceSettingProvider","i18nConfig","renderWithStore","ui","store","wrapper","_ref","children","createElement","injectFirst","i18n","customRender","node","_len","arguments","length","options","Array","_key"],"sources":["../../src/test/test-react-testing-library.tsx"],"sourcesContent":["import { StyledEngineProvider } from '@mui/material/styles';\nimport { render } from '@testing-library/react';\nimport React from 'react';\nimport { I18nextProvider } from 'react-i18next';\nimport { Provider } from 'react-redux';\n\nimport { ThemeProvider } from '../Theme';\nimport AppConfigurationProvider from '../providers/AppConfigurationProvider';\nimport PersistenceSettingProvider from '../providers/PersistenceSettingProvider';\nimport { Store } from '../store/store';\nimport i18nConfig from './i18n-config';\n\nconst renderWithStore = (ui: React.ReactElement<any>, store: Store) =>\n render(ui, {\n wrapper: ({ children }) => (\n <Provider store={store}>\n <PersistenceSettingProvider>\n <AppConfigurationProvider>\n <StyledEngineProvider injectFirst={true}>\n <ThemeProvider>\n <I18nextProvider i18n={i18nConfig}>{children}</I18nextProvider>\n </ThemeProvider>\n </StyledEngineProvider>\n </AppConfigurationProvider>\n </PersistenceSettingProvider>\n </Provider>\n ),\n });\n\nconst customRender = (node: React.ReactElement, ...options: any) => {\n return render(\n <AppConfigurationProvider>\n <PersistenceSettingProvider>\n <ThemeProvider>\n <I18nextProvider i18n={i18nConfig}>{node}</I18nextProvider>\n </ThemeProvider>\n </PersistenceSettingProvider>\n </AppConfigurationProvider>,\n ...options\n );\n};\n\nexport * from '@testing-library/react';\nexport { customRender as render };\nexport { customRender, renderWithStore };\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,sBAAsB;AAC3D,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,QAAQ,QAAQ,aAAa;AAEtC,SAASC,aAAa,QAAQ,UAAU;AACxC,OAAOC,wBAAwB,MAAM,uCAAuC;AAC5E,OAAOC,0BAA0B,MAAM,yCAAyC;AAEhF,OAAOC,UAAU,MAAM,eAAe;AAEtC,IAAMC,eAAe,GAAGA,CAACC,EAA2B,EAAEC,KAAY,KAChEV,MAAM,CAACS,EAAE,EAAE;EACTE,OAAO,EAAEC,IAAA;IAAA,IAAC;MAAEC;IAAS,CAAC,GAAAD,IAAA;IAAA,oBACpBX,KAAA,CAAAa,aAAA,CAACX,QAAQ;MAACO,KAAK,EAAEA;IAAM,gBACrBT,KAAA,CAAAa,aAAA,CAACR,0BAA0B,qBACzBL,KAAA,CAAAa,aAAA,CAACT,wBAAwB,qBACvBJ,KAAA,CAAAa,aAAA,CAACf,oBAAoB;MAACgB,WAAW,EAAE;IAAK,gBACtCd,KAAA,CAAAa,aAAA,CAACV,aAAa,qBACZH,KAAA,CAAAa,aAAA,CAACZ,eAAe;MAACc,IAAI,EAAET;IAAW,GAAEM,QAA0B,CACjD,CACK,CACE,CACA,CACpB,CAAC;EAAA;AAEf,CAAC,CAAC;AAEJ,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAwB,EAAsB;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAjBC,OAAO,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAPF,OAAO,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EACxD,OAAOxB,MAAM,cACXC,KAAA,CAAAa,aAAA,CAACT,wBAAwB,qBACvBJ,KAAA,CAAAa,aAAA,CAACR,0BAA0B,qBACzBL,KAAA,CAAAa,aAAA,CAACV,aAAa,qBACZH,KAAA,CAAAa,aAAA,CAACZ,eAAe;IAACc,IAAI,EAAET;EAAW,GAAEW,IAAsB,CAC7C,CACW,CACJ,CAAC,EAC3B,GAAGI,OACL,CAAC;AACH,CAAC;AAED,cAAc,wBAAwB;AACtC,SAASL,YAAY,IAAIjB,MAAM;AAC/B,SAASiB,YAAY,EAAET,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/types/index.ts"],"sourcesContent":["import { TemplateUIOptions } from '@verdaccio/types';\n\ndeclare global {\n interface Window {\n /**\n * __VERDACCIO_BASENAME_UI_OPTIONS is a global object available in the\n * browser.\n */\n __VERDACCIO_BASENAME_UI_OPTIONS: TemplateUIOptions;\n }\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageMeta.js","names":[],"sources":["../../src/types/packageMeta.ts"],"sourcesContent":["export type ModuleType = 'commonjs' | 'module';\n\nexport type Latest = {\n author?: string | Author;\n deprecated?: string;\n name: string;\n dist?: {\n fileCount: number;\n unpackedSize: number;\n tarball?: string;\n };\n engines?: {\n node?: string;\n npm?: string;\n pnpm?: string;\n yarn?: string;\n };\n license?: string | LicenseInterface;\n version: string;\n homepage?: string;\n bugs?: {\n url: string;\n };\n repository?: {\n type?: string;\n url?: string;\n };\n main?: string;\n type?: ModuleType;\n types?: string;\n description?: string;\n funding?: Funding;\n maintainers?: Developer[];\n contributors?: Developer[];\n keywords?: string | string[];\n};\n\nexport interface PackageMetaInterface {\n versions?: Versions;\n 'dist-tags'?: DistTags;\n time?: Time;\n latest: Latest;\n _uplinks?: Record<string, { fetched: number }>;\n}\n\nexport interface Developer {\n name: string;\n email?: string;\n url?: string;\n avatar?: string;\n}\n\ninterface Funding {\n type?: string;\n url?: string;\n}\n\nexport interface LicenseInterface {\n type?: string;\n url?: string;\n}\n\nexport interface DistTags {\n [key: string]: string;\n}\n\nexport interface Time {\n [key: string]: string;\n}\n\nexport interface Versions {\n [key: string]: Version;\n}\n\nexport interface Version {\n name: string;\n version: string;\n author?: string | Author;\n description?: string;\n license?: string | LicenseInterface;\n main?: string;\n keywords?: string[];\n deprecated?: string;\n}\n\nexport interface Author {\n name?: string;\n email?: string;\n url?: string;\n avatar?: string;\n}\n\nexport interface PackageDependencies {\n [key: string]: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-utils.js","names":["copyToClipBoardUtility","str","event","preventDefault","node","document","createElement","innerText","body","appendChild","range","createRange","selection","window","getSelection","selectNodeContents","removeAllRanges","addRange","execCommand","removeChild","getCLISetConfigRegistry","command","scope","registryUrl","concat","getCLISetRegistry","getCLIChangePassword","getCLISBerryYamlRegistry","URL","host","replace"],"sources":["../../src/utils/cli-utils.ts"],"sourcesContent":["import { SyntheticEvent } from 'react';\n\nexport const copyToClipBoardUtility =\n (str: string): ((e: SyntheticEvent<HTMLElement>) => void) =>\n (event: SyntheticEvent<HTMLElement>): void => {\n event.preventDefault();\n\n const node = document.createElement('div');\n node.innerText = str;\n if (document.body) {\n document.body.appendChild(node);\n\n const range = document.createRange();\n const selection = window.getSelection() as Selection;\n range.selectNodeContents(node);\n selection.removeAllRanges();\n selection.addRange(range);\n document.execCommand('copy');\n document.body.removeChild(node);\n }\n };\n\nexport function getCLISetConfigRegistry(\n command: string,\n scope: string | undefined,\n registryUrl: string\n): string {\n // if there is a scope defined there needs to be a \":\" separator between the scope and the registry\n return `${command} ${scope ? `${scope}:` : ''}registry ${registryUrl}`;\n}\n\nexport function getCLISetRegistry(command: string, registryUrl: string): string {\n return `${command} --registry ${registryUrl}`;\n}\n\nexport function getCLIChangePassword(command: string, registryUrl: string): string {\n return `${command} profile set password --registry ${registryUrl}`;\n}\n\nexport function getCLISBerryYamlRegistry(scope: string | undefined, registryUrl: string): string {\n return !scope\n ? `// .yarnrc.yml \nnpmRegistryServer: \"${registryUrl}\"\nunsafeHttpWhitelist:\n - ${new URL(registryUrl).host}`\n : `\n// .yarnrc.yml\nnpmRegistryServer: \"${registryUrl}\"\nnpmScopes:\n ${scope.replace('@', '')}:\n npmRegistryServer: ${registryUrl}\n npmPublishRegistry: ${registryUrl}`;\n}\n"],"mappings":"AAEA,OAAO,IAAMA,sBAAsB,GAChCC,GAAW,IACXC,KAAkC,IAAW;EAC5CA,KAAK,CAACC,cAAc,CAAC,CAAC;EAEtB,IAAMC,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;EAC1CF,IAAI,CAACG,SAAS,GAAGN,GAAG;EACpB,IAAII,QAAQ,CAACG,IAAI,EAAE;IACjBH,QAAQ,CAACG,IAAI,CAACC,WAAW,CAACL,IAAI,CAAC;IAE/B,IAAMM,KAAK,GAAGL,QAAQ,CAACM,WAAW,CAAC,CAAC;IACpC,IAAMC,SAAS,GAAGC,MAAM,CAACC,YAAY,CAAC,CAAc;IACpDJ,KAAK,CAACK,kBAAkB,CAACX,IAAI,CAAC;IAC9BQ,SAAS,CAACI,eAAe,CAAC,CAAC;IAC3BJ,SAAS,CAACK,QAAQ,CAACP,KAAK,CAAC;IACzBL,QAAQ,CAACa,WAAW,CAAC,MAAM,CAAC;IAC5Bb,QAAQ,CAACG,IAAI,CAACW,WAAW,CAACf,IAAI,CAAC;EACjC;AACF,CAAC;AAEH,OAAO,SAASgB,uBAAuBA,CACrCC,OAAe,EACfC,KAAyB,EACzBC,WAAmB,EACX;EACR;EACA,UAAAC,MAAA,CAAUH,OAAO,OAAAG,MAAA,CAAIF,KAAK,MAAAE,MAAA,CAAMF,KAAK,SAAM,EAAE,eAAAE,MAAA,CAAYD,WAAW;AACtE;AAEA,OAAO,SAASE,iBAAiBA,CAACJ,OAAe,EAAEE,WAAmB,EAAU;EAC9E,UAAAC,MAAA,CAAUH,OAAO,kBAAAG,MAAA,CAAeD,WAAW;AAC7C;AAEA,OAAO,SAASG,oBAAoBA,CAACL,OAAe,EAAEE,WAAmB,EAAU;EACjF,UAAAC,MAAA,CAAUH,OAAO,uCAAAG,MAAA,CAAoCD,WAAW;AAClE;AAEA,OAAO,SAASI,wBAAwBA,CAACL,KAAyB,EAAEC,WAAmB,EAAU;EAC/F,OAAO,CAACD,KAAK,+CAAAE,MAAA,CAEOD,WAAW,oCAAAC,MAAA,CAE3B,IAAII,GAAG,CAACL,WAAW,CAAC,CAACM,IAAI,8CAAAL,MAAA,CAGTD,WAAW,wBAAAC,MAAA,CAE7BF,KAAK,CAACQ,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,gCAAAN,MAAA,CACDD,WAAW,gCAAAC,MAAA,CACVD,WAAW,CAAE;AACvC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_url","url","_utils","utils","getCLIChangePassword","getCLISBerryYamlRegistry","getCLISetConfigRegistry","getCLISetRegistry","default","loadable","Route"],"sources":["../../src/utils/index.ts"],"sourcesContent":["export * as url from './url';\nexport * as utils from './utils';\nexport {\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n} from './cli-utils';\nexport { default as loadable } from './loadable';\nexport { Route } from './routes';\nexport * from './token';\n"],"mappings":"sBAAqB,OAAO;AAAA,SAAAA,IAAA,IAAhBC,GAAG;AAAA,YAAAC,MAAA,MACQ,SAAS;AAAA,SAAAA,MAAA,IAApBC,KAAK;AACjB,SACEC,oBAAoB,EACpBC,wBAAwB,EACxBC,uBAAuB,EACvBC,iBAAiB,QACZ,aAAa;AACpB,SAASC,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASC,KAAK,QAAQ,UAAU;AAChC,cAAc,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadable.js","names":["React","Suspense","lazy","importCallback","TargetComponent","props","createElement","fallback"],"sources":["../../src/utils/loadable.tsx"],"sourcesContent":["/* eslint-disable verdaccio/jsx-spread */\nimport React, { Suspense, lazy } from 'react';\n\n/**\n * With the combination of a bundler, enable to code split a package.\n * \n * @example\n ```jsx\n const VersionPage = loadable(() => import(/'../pages/Version'));\n ```\n @category HOC\n */\nexport default (importCallback: any) => {\n const TargetComponent = lazy(importCallback);\n return (props: any) => (\n <Suspense fallback={null}>\n <TargetComponent {...props} />\n </Suspense>\n );\n};\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,IAAI,QAAQ,OAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAgBC,cAAmB,IAAK;EACtC,IAAMC,eAAe,gBAAGF,IAAI,CAACC,cAAc,CAAC;EAC5C,OAAQE,KAAU,iBAChBL,KAAA,CAAAM,aAAA,CAACL,QAAQ;IAACM,QAAQ,EAAE;EAAK,gBACvBP,KAAA,CAAAM,aAAA,CAACF,eAAe,EAAKC,KAAQ,CACrB,CACX;AACH,CAAC","ignoreList":[]}
|
package/build/utils/routes.d.ts
CHANGED
|
@@ -4,5 +4,12 @@ export declare enum Route {
|
|
|
4
4
|
SCOPE_PACKAGE = "/-/web/detail/@:scope/:package",
|
|
5
5
|
SCOPE_PACKAGE_VERSION = "/-/web/detail/@:scope/:package/v/:version",
|
|
6
6
|
PACKAGE = "/-/web/detail/:package",
|
|
7
|
-
PACKAGE_VERSION = "/-/web/detail/:package/v/:version"
|
|
7
|
+
PACKAGE_VERSION = "/-/web/detail/:package/v/:version",
|
|
8
|
+
LOGIN = "/-/web/login",
|
|
9
|
+
SUCCESS = "/-/web/success",
|
|
10
|
+
ADD_USER = "/-/web/add-user",
|
|
11
|
+
CHANGE_PASSWORD = "/-/web/change-password",
|
|
12
|
+
LOGIN_API = "/-/v1/login_cli",
|
|
13
|
+
ADD_USER_API = "/-/user/org.couchdb.user",
|
|
14
|
+
CHANGE_PASSWORD_API = "/-/npm/v1/user"
|
|
8
15
|
}
|
package/build/utils/routes.js
CHANGED
|
@@ -5,6 +5,13 @@ export var Route = /*#__PURE__*/function (Route) {
|
|
|
5
5
|
Route["SCOPE_PACKAGE_VERSION"] = "/-/web/detail/@:scope/:package/v/:version";
|
|
6
6
|
Route["PACKAGE"] = "/-/web/detail/:package";
|
|
7
7
|
Route["PACKAGE_VERSION"] = "/-/web/detail/:package/v/:version";
|
|
8
|
+
Route["LOGIN"] = "/-/web/login";
|
|
9
|
+
Route["SUCCESS"] = "/-/web/success";
|
|
10
|
+
Route["ADD_USER"] = "/-/web/add-user";
|
|
11
|
+
Route["CHANGE_PASSWORD"] = "/-/web/change-password";
|
|
12
|
+
Route["LOGIN_API"] = "/-/v1/login_cli";
|
|
13
|
+
Route["ADD_USER_API"] = "/-/user/org.couchdb.user";
|
|
14
|
+
Route["CHANGE_PASSWORD_API"] = "/-/npm/v1/user";
|
|
8
15
|
return Route;
|
|
9
16
|
}({});
|
|
10
17
|
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","names":["Route"],"sources":["../../src/utils/routes.ts"],"sourcesContent":["export enum Route {\n ROOT = '/',\n DETAIL = '/-/web/detail/',\n SCOPE_PACKAGE = '/-/web/detail/@:scope/:package',\n SCOPE_PACKAGE_VERSION = '/-/web/detail/@:scope/:package/v/:version',\n PACKAGE = '/-/web/detail/:package',\n PACKAGE_VERSION = '/-/web/detail/:package/v/:version',\n // Security UI routes\n LOGIN = '/-/web/login',\n SUCCESS = '/-/web/success',\n ADD_USER = '/-/web/add-user',\n CHANGE_PASSWORD = '/-/web/change-password',\n // Security API routes\n LOGIN_API = '/-/v1/login_cli',\n ADD_USER_API = '/-/user/org.couchdb.user',\n CHANGE_PASSWORD_API = '/-/npm/v1/user',\n}\n"],"mappings":"AAAA,WAAYA,KAAK,0BAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAALA,KAAK;EAAA,OAALA,KAAK;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-generate.js","names":["dayjs","encodeBase64","string","Buffer","from","toString","generateTokenWithTimeRange","amount","arguments","length","undefined","payload","username","exp","Number","parseInt","String","Date","add","valueOf","concat","JSON","stringify","generateTokenWithExpirationAsString","generateInvalidToken","generateTokenWithOutExpiration"],"sources":["../../src/utils/token-generate.ts"],"sourcesContent":["/**\n * Token Utility\n */\nimport dayjs from 'dayjs';\n\nfunction encodeBase64(string: string) {\n return Buffer.from(string).toString('base64');\n}\n\nexport function generateTokenWithTimeRange(amount = 0) {\n const payload = {\n username: 'verdaccio',\n exp: Number.parseInt(String(dayjs(new Date()).add(amount, 'hour').valueOf() / 1000), 10),\n };\n return `xxxxxx.${encodeBase64(JSON.stringify(payload))}.xxxxxx`;\n}\n\nexport function generateTokenWithExpirationAsString() {\n const payload = { username: 'verdaccio', exp: 'I am not a number' };\n return `xxxxxx.${encodeBase64(JSON.stringify(payload))}.xxxxxx`;\n}\n\nexport function generateInvalidToken() {\n const payload = `invalidtoken`;\n return `xxxxxx.${encodeBase64(payload)}.xxxxxx`;\n}\n\nexport function generateTokenWithOutExpiration() {\n const payload = {\n username: 'verdaccio',\n };\n return `xxxxxx.${encodeBase64(JSON.stringify(payload))}.xxxxxx`;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAYA,CAACC,MAAc,EAAE;EACpC,OAAOC,MAAM,CAACC,IAAI,CAACF,MAAM,CAAC,CAACG,QAAQ,CAAC,QAAQ,CAAC;AAC/C;AAEA,OAAO,SAASC,0BAA0BA,CAAA,EAAa;EAAA,IAAZC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EACnD,IAAMG,OAAO,GAAG;IACdC,QAAQ,EAAE,WAAW;IACrBC,GAAG,EAAEC,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAChB,KAAK,CAAC,IAAIiB,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAACX,MAAM,EAAE,MAAM,CAAC,CAACY,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE;EACzF,CAAC;EACD,iBAAAC,MAAA,CAAiBnB,YAAY,CAACoB,IAAI,CAACC,SAAS,CAACX,OAAO,CAAC,CAAC;AACxD;AAEA,OAAO,SAASY,mCAAmCA,CAAA,EAAG;EACpD,IAAMZ,OAAO,GAAG;IAAEC,QAAQ,EAAE,WAAW;IAAEC,GAAG,EAAE;EAAoB,CAAC;EACnE,iBAAAO,MAAA,CAAiBnB,YAAY,CAACoB,IAAI,CAACC,SAAS,CAACX,OAAO,CAAC,CAAC;AACxD;AAEA,OAAO,SAASa,oBAAoBA,CAAA,EAAG;EACrC,IAAMb,OAAO,iBAAiB;EAC9B,iBAAAS,MAAA,CAAiBnB,YAAY,CAACU,OAAO,CAAC;AACxC;AAEA,OAAO,SAASc,8BAA8BA,CAAA,EAAG;EAC/C,IAAMd,OAAO,GAAG;IACdC,QAAQ,EAAE;EACZ,CAAC;EACD,iBAAAQ,MAAA,CAAiBnB,YAAY,CAACoB,IAAI,CAACC,SAAS,CAACX,OAAO,CAAC,CAAC;AACxD","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","names":["Base64","isNumber","isString","isTokenExpire","token","payload","split","exp","JSON","parse","decode","error","console","jsTimestamp","expired","Date","now"],"sources":["../../src/utils/token.ts"],"sourcesContent":["import { Base64 } from 'js-base64';\nimport isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\n\nexport function isTokenExpire(token: string | null): boolean {\n if (!isString(token)) {\n return true;\n }\n\n const [, payload] = token.split('.');\n\n if (!payload) {\n return true;\n }\n\n let exp: number;\n try {\n exp = JSON.parse(Base64.decode(payload)).exp;\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error('Invalid token:', error, token);\n return true;\n }\n\n if (!exp || !isNumber(exp)) {\n return true;\n }\n // Report as expire before (real expire time - 30s)\n const jsTimestamp = exp * 1000 - 30000;\n const expired = Date.now() >= jsTimestamp;\n\n return expired;\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAClC,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,QAAQ,MAAM,iBAAiB;AAEtC,OAAO,SAASC,aAAaA,CAACC,KAAoB,EAAW;EAC3D,IAAI,CAACF,QAAQ,CAACE,KAAK,CAAC,EAAE;IACpB,OAAO,IAAI;EACb;EAEA,IAAM,GAAGC,OAAO,CAAC,GAAGD,KAAK,CAACE,KAAK,CAAC,GAAG,CAAC;EAEpC,IAAI,CAACD,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,IAAIE,GAAW;EACf,IAAI;IACFA,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACT,MAAM,CAACU,MAAM,CAACL,OAAO,CAAC,CAAC,CAACE,GAAG;EAC9C,CAAC,CAAC,OAAOI,KAAU,EAAE;IACnB;IACAC,OAAO,CAACD,KAAK,CAAC,gBAAgB,EAAEA,KAAK,EAAEP,KAAK,CAAC;IAC7C,OAAO,IAAI;EACb;EAEA,IAAI,CAACG,GAAG,IAAI,CAACN,QAAQ,CAACM,GAAG,CAAC,EAAE;IAC1B,OAAO,IAAI;EACb;EACA;EACA,IAAMM,WAAW,GAAGN,GAAG,GAAG,IAAI,GAAG,KAAK;EACtC,IAAMO,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIH,WAAW;EAEzC,OAAOC,OAAO;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","names":["isEmailValidator","isURLValidator","isURL","url","protocols","require_protocol","require_tld","isEmail","email","extractFileName","substring","lastIndexOf","blobToFile","blob","fileName","b","lastModified","Date","now","name","downloadFile","fileStream","file","navigator","msSaveBlob","Blob","type","File","objectURL","URL","createObjectURL","fileLink","document","createElement","href","download","isTestEnvironment","window","userAgent","includes","documentElement","appendChild","click","setTimeout","revokeObjectURL","removeChild"],"sources":["../../src/utils/url.ts"],"sourcesContent":["import isEmailValidator from 'validator/lib/isEmail';\nimport isURLValidator from 'validator/lib/isURL';\n\nexport function isURL(url: string): boolean {\n return isURLValidator(url || '', {\n protocols: ['http', 'https', 'git+https', 'git'],\n require_protocol: true,\n require_tld: false,\n });\n}\n\nexport function isEmail(email: string): boolean {\n return isEmailValidator(email || '');\n}\n\nexport function extractFileName(url: string): string {\n return url.substring(url.lastIndexOf('/') + 1);\n}\n\nfunction blobToFile(blob: Blob, fileName: string): File {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const b: any = blob;\n b.lastModified = Date.now();\n b.name = fileName;\n return b as File;\n}\n\nexport function downloadFile(fileStream: Blob, fileName: string): void {\n let file: File;\n // File constructor is not supported by Edge\n // https://developer.mozilla.org/en-US/docs/Web/API/File#Browser_compatibility\n // @ts-ignore. Please see: https://github.com/microsoft/TypeScript/issues/33792\n if (navigator.msSaveBlob) {\n // Detect if Edge\n file = blobToFile(new Blob([fileStream], { type: 'application/octet-stream' }), fileName);\n } else {\n file = new File([fileStream], fileName, {\n type: 'application/octet-stream',\n lastModified: Date.now(),\n });\n }\n\n const objectURL = URL.createObjectURL(file);\n const fileLink = document.createElement('a');\n fileLink.href = objectURL;\n fileLink.download = fileName;\n\n // Skip actual download in test environment to avoid JSDOM navigation error\n // Check if we're in a test environment (JSDOM)\n const isTestEnvironment =\n (typeof window !== 'undefined' &&\n window.navigator &&\n window.navigator.userAgent &&\n window.navigator.userAgent.includes('Node.js')) ||\n window.navigator.userAgent.includes('jsdom');\n\n if (!isTestEnvironment) {\n // Without appending to an HTML Element, download dialog does not show up on Firefox\n // https://github.com/verdaccio/ui/issues/119\n document.documentElement.appendChild(fileLink);\n fileLink.click();\n // firefox requires remove the object url\n setTimeout(() => {\n URL.revokeObjectURL(objectURL);\n document.documentElement.removeChild(fileLink);\n }, 150);\n } else {\n // In test environment, just clean up without triggering navigation\n setTimeout(() => {\n URL.revokeObjectURL(objectURL);\n }, 150);\n }\n}\n"],"mappings":"AAAA,OAAOA,gBAAgB,MAAM,uBAAuB;AACpD,OAAOC,cAAc,MAAM,qBAAqB;AAEhD,OAAO,SAASC,KAAKA,CAACC,GAAW,EAAW;EAC1C,OAAOF,cAAc,CAACE,GAAG,IAAI,EAAE,EAAE;IAC/BC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC;IAChDC,gBAAgB,EAAE,IAAI;IACtBC,WAAW,EAAE;EACf,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,OAAOA,CAACC,KAAa,EAAW;EAC9C,OAAOR,gBAAgB,CAACQ,KAAK,IAAI,EAAE,CAAC;AACtC;AAEA,OAAO,SAASC,eAAeA,CAACN,GAAW,EAAU;EACnD,OAAOA,GAAG,CAACO,SAAS,CAACP,GAAG,CAACQ,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD;AAEA,SAASC,UAAUA,CAACC,IAAU,EAAEC,QAAgB,EAAQ;EACtD;EACA,IAAMC,CAAM,GAAGF,IAAI;EACnBE,CAAC,CAACC,YAAY,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC3BH,CAAC,CAACI,IAAI,GAAGL,QAAQ;EACjB,OAAOC,CAAC;AACV;AAEA,OAAO,SAASK,YAAYA,CAACC,UAAgB,EAAEP,QAAgB,EAAQ;EACrE,IAAIQ,IAAU;EACd;EACA;EACA;EACA,IAAIC,SAAS,CAACC,UAAU,EAAE;IACxB;IACAF,IAAI,GAAGV,UAAU,CAAC,IAAIa,IAAI,CAAC,CAACJ,UAAU,CAAC,EAAE;MAAEK,IAAI,EAAE;IAA2B,CAAC,CAAC,EAAEZ,QAAQ,CAAC;EAC3F,CAAC,MAAM;IACLQ,IAAI,GAAG,IAAIK,IAAI,CAAC,CAACN,UAAU,CAAC,EAAEP,QAAQ,EAAE;MACtCY,IAAI,EAAE,0BAA0B;MAChCV,YAAY,EAAEC,IAAI,CAACC,GAAG,CAAC;IACzB,CAAC,CAAC;EACJ;EAEA,IAAMU,SAAS,GAAGC,GAAG,CAACC,eAAe,CAACR,IAAI,CAAC;EAC3C,IAAMS,QAAQ,GAAGC,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;EAC5CF,QAAQ,CAACG,IAAI,GAAGN,SAAS;EACzBG,QAAQ,CAACI,QAAQ,GAAGrB,QAAQ;;EAE5B;EACA;EACA,IAAMsB,iBAAiB,GACpB,OAAOC,MAAM,KAAK,WAAW,IAC5BA,MAAM,CAACd,SAAS,IAChBc,MAAM,CAACd,SAAS,CAACe,SAAS,IAC1BD,MAAM,CAACd,SAAS,CAACe,SAAS,CAACC,QAAQ,CAAC,SAAS,CAAC,IAChDF,MAAM,CAACd,SAAS,CAACe,SAAS,CAACC,QAAQ,CAAC,OAAO,CAAC;EAE9C,IAAI,CAACH,iBAAiB,EAAE;IACtB;IACA;IACAJ,QAAQ,CAACQ,eAAe,CAACC,WAAW,CAACV,QAAQ,CAAC;IAC9CA,QAAQ,CAACW,KAAK,CAAC,CAAC;IAChB;IACAC,UAAU,CAAC,MAAM;MACfd,GAAG,CAACe,eAAe,CAAChB,SAAS,CAAC;MAC9BI,QAAQ,CAACQ,eAAe,CAACK,WAAW,CAACd,QAAQ,CAAC;IAChD,CAAC,EAAE,GAAG,CAAC;EACT,CAAC,MAAM;IACL;IACAY,UAAU,CAAC,MAAM;MACfd,GAAG,CAACe,eAAe,CAAChB,SAAS,CAAC;IAChC,CAAC,EAAE,GAAG,CAAC;EACT;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["dayjs","localizedFormat","relativeTime","i18next","isString","TIMEFORMAT","extend","formatLicense","license","type","formatRepository","repository","url","formatDate","lastUpdate","Date","format","formatDateDistance","fromNow","getLastUpdatedPackageTime","uplinks","arguments","length","undefined","Object","keys","forEach","computeUplink","upLinkName","status","fetched","getRecentReleases","time","recent","map","version","slice","reverse","getAuthorName","authorName","t","toLowerCase","getUplink","packageName","concat","fileSizeSI","a","b","c","d","e","Math","log","size","pow","floor","toFixed"],"sources":["../../src/utils/utils.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport i18next from 'i18next';\nimport isString from 'lodash/isString';\n\nimport { UpLinks } from '@verdaccio/types';\n\nimport { Time } from '../types/packageMeta';\n\nexport const TIMEFORMAT = 'L LTS';\n\ndayjs.extend(relativeTime);\ndayjs.extend(localizedFormat);\n\n/**\n * Formats license field for webui.\n * @see https://docs.npmjs.com/files/package.json#license\n */\n// License should use type License defined above, but conflicts with the unit test that provide array or empty object\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function formatLicense(license: any): string | undefined {\n if (isString(license)) {\n return license;\n }\n\n if (license?.type) {\n return license.type;\n }\n\n return;\n}\n\nexport interface Repository {\n type: string;\n url: string;\n}\n\n/**\n * Formats repository field for webui.\n * @see https://docs.npmjs.com/files/package.json#repository\n */\n\n// Repository should use type Repository defined above, but conflicts with the unit test that provide array or empty object\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport function formatRepository(repository: any): string | null {\n if (isString(repository)) {\n return repository;\n }\n\n if (repository?.url) {\n return repository.url;\n }\n\n return null;\n}\n\nexport function formatDate(lastUpdate: string | number): string {\n return dayjs(new Date(lastUpdate)).format(TIMEFORMAT);\n}\n\nexport function formatDateDistance(lastUpdate: Date | string | number): string {\n return dayjs(new Date(lastUpdate)).fromNow();\n}\n\n/**\n * For <LastSync /> component\n * @param {array} uplinks\n */\nexport function getLastUpdatedPackageTime(uplinks: UpLinks = {}): string {\n let lastUpdate = 0;\n Object.keys(uplinks).forEach(function computeUplink(upLinkName): void {\n const status = uplinks[upLinkName];\n if (status.fetched > lastUpdate) {\n lastUpdate = status.fetched;\n }\n });\n\n return lastUpdate ? formatDate(lastUpdate) : '';\n}\n\n/**\n * For <LastSync /> component\n * @param {Object} time\n * @returns {Array} last 3 releases\n */\nexport function getRecentReleases(time: Time = {}): Time[] {\n const recent = Object.keys(time).map((version) => ({\n version,\n time: formatDate(time[version]),\n }));\n\n return recent.slice(recent.length - 3, recent.length).reverse();\n}\n\nexport function getAuthorName(authorName?: string): string {\n if (!authorName) {\n return i18next.t('author-unknown');\n }\n\n if (authorName.toLowerCase() === 'anonymous') {\n return i18next.t('author-anonymous');\n }\n\n return authorName;\n}\n\nexport function getUplink(upLinkName: string, packageName: string): string | null {\n // TODO: make this a config like \"uplinks: npmjs: web: https://www.npmjs.com/package/\"\n switch (upLinkName) {\n case 'npmjs':\n return `https://www.npmjs.com/package/${packageName}`;\n }\n return null;\n}\n\nexport function fileSizeSI(\n a: number,\n b?: typeof Math,\n c?: (p: number) => number,\n d?: number,\n e?: number\n): string {\n b = Math;\n c = b.log;\n d = 1e3;\n e = (c(a) / c(d)) | 0;\n let size = a / b.pow(d, e);\n // no decimals for Bytes\n if (e === 0) {\n return Math.floor(size) + ' Bytes';\n } else {\n return size.toFixed(1) + ' ' + 'kMGTPEZY'[--e] + 'B';\n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,eAAe,MAAM,8BAA8B;AAC1D,OAAOC,YAAY,MAAM,2BAA2B;AACpD,OAAOC,OAAO,MAAM,SAAS;AAC7B,OAAOC,QAAQ,MAAM,iBAAiB;AAMtC,OAAO,IAAMC,UAAU,GAAG,OAAO;AAEjCL,KAAK,CAACM,MAAM,CAACJ,YAAY,CAAC;AAC1BF,KAAK,CAACM,MAAM,CAACL,eAAe,CAAC;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,aAAaA,CAACC,OAAY,EAAsB;EAC9D,IAAIJ,QAAQ,CAACI,OAAO,CAAC,EAAE;IACrB,OAAOA,OAAO;EAChB;EAEA,IAAIA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,IAAI,EAAE;IACjB,OAAOD,OAAO,CAACC,IAAI;EACrB;EAEA;AACF;AAOA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAACC,UAAe,EAAiB;EAC/D,IAAIP,QAAQ,CAACO,UAAU,CAAC,EAAE;IACxB,OAAOA,UAAU;EACnB;EAEA,IAAIA,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEC,GAAG,EAAE;IACnB,OAAOD,UAAU,CAACC,GAAG;EACvB;EAEA,OAAO,IAAI;AACb;AAEA,OAAO,SAASC,UAAUA,CAACC,UAA2B,EAAU;EAC9D,OAAOd,KAAK,CAAC,IAAIe,IAAI,CAACD,UAAU,CAAC,CAAC,CAACE,MAAM,CAACX,UAAU,CAAC;AACvD;AAEA,OAAO,SAASY,kBAAkBA,CAACH,UAAkC,EAAU;EAC7E,OAAOd,KAAK,CAAC,IAAIe,IAAI,CAACD,UAAU,CAAC,CAAC,CAACI,OAAO,CAAC,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CAAA,EAAgC;EAAA,IAA/BC,OAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC7D,IAAIP,UAAU,GAAG,CAAC;EAClBU,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACM,OAAO,CAAC,SAASC,aAAaA,CAACC,UAAU,EAAQ;IACpE,IAAMC,MAAM,GAAGT,OAAO,CAACQ,UAAU,CAAC;IAClC,IAAIC,MAAM,CAACC,OAAO,GAAGhB,UAAU,EAAE;MAC/BA,UAAU,GAAGe,MAAM,CAACC,OAAO;IAC7B;EACF,CAAC,CAAC;EAEF,OAAOhB,UAAU,GAAGD,UAAU,CAACC,UAAU,CAAC,GAAG,EAAE;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASiB,iBAAiBA,CAAA,EAA0B;EAAA,IAAzBC,IAAU,GAAAX,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC/C,IAAMY,MAAM,GAAGT,MAAM,CAACC,IAAI,CAACO,IAAI,CAAC,CAACE,GAAG,CAAEC,OAAO,KAAM;IACjDA,OAAO;IACPH,IAAI,EAAEnB,UAAU,CAACmB,IAAI,CAACG,OAAO,CAAC;EAChC,CAAC,CAAC,CAAC;EAEH,OAAOF,MAAM,CAACG,KAAK,CAACH,MAAM,CAACX,MAAM,GAAG,CAAC,EAAEW,MAAM,CAACX,MAAM,CAAC,CAACe,OAAO,CAAC,CAAC;AACjE;AAEA,OAAO,SAASC,aAAaA,CAACC,UAAmB,EAAU;EACzD,IAAI,CAACA,UAAU,EAAE;IACf,OAAOpC,OAAO,CAACqC,CAAC,CAAC,gBAAgB,CAAC;EACpC;EAEA,IAAID,UAAU,CAACE,WAAW,CAAC,CAAC,KAAK,WAAW,EAAE;IAC5C,OAAOtC,OAAO,CAACqC,CAAC,CAAC,kBAAkB,CAAC;EACtC;EAEA,OAAOD,UAAU;AACnB;AAEA,OAAO,SAASG,SAASA,CAACd,UAAkB,EAAEe,WAAmB,EAAiB;EAChF;EACA,QAAQf,UAAU;IAChB,KAAK,OAAO;MACV,wCAAAgB,MAAA,CAAwCD,WAAW;EACvD;EACA,OAAO,IAAI;AACb;AAEA,OAAO,SAASE,UAAUA,CACxBC,CAAS,EACTC,CAAe,EACfC,CAAyB,EACzBC,CAAU,EACVC,CAAU,EACF;EACRH,CAAC,GAAGI,IAAI;EACRH,CAAC,GAAGD,CAAC,CAACK,GAAG;EACTH,CAAC,GAAG,GAAG;EACPC,CAAC,GAAIF,CAAC,CAACF,CAAC,CAAC,GAAGE,CAAC,CAACC,CAAC,CAAC,GAAI,CAAC;EACrB,IAAII,IAAI,GAAGP,CAAC,GAAGC,CAAC,CAACO,GAAG,CAACL,CAAC,EAAEC,CAAC,CAAC;EAC1B;EACA,IAAIA,CAAC,KAAK,CAAC,EAAE;IACX,OAAOC,IAAI,CAACI,KAAK,CAACF,IAAI,CAAC,GAAG,QAAQ;EACpC,CAAC,MAAM;IACL,OAAOA,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,EAAEN,CAAC,CAAC,GAAG,GAAG;EACtD;AACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdaccio/ui-components",
|
|
3
|
-
"version": "4.0.0-next-8.
|
|
3
|
+
"version": "4.0.0-next-8.9",
|
|
4
4
|
"description": "Verdaccio UI Components",
|
|
5
5
|
"author": "Juan Picado <juanpicado19@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"redux": "4.2.1",
|
|
45
45
|
"semver": "7.7.1",
|
|
46
46
|
"validator": "13.12.0",
|
|
47
|
-
"@verdaccio/ui-i18n": "8.0.0-next-8.
|
|
47
|
+
"@verdaccio/ui-i18n": "8.0.0-next-8.13"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@babel/core": "7.26.9",
|
|
@@ -54,21 +54,21 @@
|
|
|
54
54
|
"@storybook/addon-mdx-gfm": "^8.6.3",
|
|
55
55
|
"@storybook/addon-interactions": "^8.6.3",
|
|
56
56
|
"@storybook/addon-links": "^8.6.3",
|
|
57
|
-
"@storybook/addon-webpack5-compiler-babel": "3.0.
|
|
57
|
+
"@storybook/addon-webpack5-compiler-babel": "3.0.6",
|
|
58
58
|
"@storybook/react": "^8.6.3",
|
|
59
|
-
"@storybook/react-webpack5": "8.6.
|
|
59
|
+
"@storybook/react-webpack5": "8.6.14",
|
|
60
60
|
"@testing-library/dom": "10.4.0",
|
|
61
61
|
"@testing-library/jest-dom": "6.6.3",
|
|
62
62
|
"@testing-library/react": "16.1.0",
|
|
63
63
|
"@types/hast": "^2.0.0",
|
|
64
64
|
"@types/react-router": "^5.1.20",
|
|
65
65
|
"@types/unist": "^2.0.0",
|
|
66
|
-
"@verdaccio/types": "13.0.0-next-8.
|
|
66
|
+
"@verdaccio/types": "13.0.0-next-8.6",
|
|
67
67
|
"@vitejs/plugin-react": "^4.3.4",
|
|
68
68
|
"babel-loader": "9.2.1",
|
|
69
|
-
"jsdom": "^
|
|
69
|
+
"jsdom": "^26.0.0",
|
|
70
70
|
"mockdate": "3.0.5",
|
|
71
|
-
"msw": "2.7.
|
|
71
|
+
"msw": "2.7.5",
|
|
72
72
|
"msw-storybook-addon": "^2.0.4",
|
|
73
73
|
"mutationobserver-shim": "0.3.7",
|
|
74
74
|
"storybook": "8.6.3",
|
package/.babelrc
DELETED
package/.eslintrc
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"settings": {
|
|
3
|
-
"react": {
|
|
4
|
-
"version": "16"
|
|
5
|
-
}
|
|
6
|
-
},
|
|
7
|
-
"extends": [
|
|
8
|
-
"plugin:verdaccio/recommended"
|
|
9
|
-
],
|
|
10
|
-
"plugins": [
|
|
11
|
-
"verdaccio"
|
|
12
|
-
],
|
|
13
|
-
"rules": {
|
|
14
|
-
"react/display-name": 0,
|
|
15
|
-
"react/no-deprecated": 1,
|
|
16
|
-
"react/jsx-no-target-blank": 1,
|
|
17
|
-
"react/destructuring-assignment": ["error", "always"],
|
|
18
|
-
"react/forbid-component-props": ["warn", { "forbid": ["style"] }],
|
|
19
|
-
"react/no-this-in-sfc": ["warn"],
|
|
20
|
-
"react/no-unsafe": ["warn"],
|
|
21
|
-
"react/sort-comp": ["warn", {
|
|
22
|
-
"order": [
|
|
23
|
-
"static-methods",
|
|
24
|
-
"lifecycle",
|
|
25
|
-
"render",
|
|
26
|
-
"everything-else",
|
|
27
|
-
"/^on.+$/",
|
|
28
|
-
"/^render.+$/"
|
|
29
|
-
]
|
|
30
|
-
}],
|
|
31
|
-
"react/void-dom-elements-no-children": ["warn"],
|
|
32
|
-
"react/no-did-mount-set-state": ["error", "disallow-in-func"],
|
|
33
|
-
"react/jsx-wrap-multilines": ["error",{
|
|
34
|
-
"declaration": "parens",
|
|
35
|
-
"assignment": "parens",
|
|
36
|
-
"return": "parens",
|
|
37
|
-
"arrow": "parens",
|
|
38
|
-
"condition": "parens",
|
|
39
|
-
"logical": "parens",
|
|
40
|
-
"prop": "ignore"
|
|
41
|
-
}],
|
|
42
|
-
"react/jsx-boolean-value": ["error", "always"],
|
|
43
|
-
"react/jsx-closing-tag-location": ["error"],
|
|
44
|
-
"react/jsx-curly-spacing": ["error", "never"],
|
|
45
|
-
"react/jsx-equals-spacing": ["error", "never"],
|
|
46
|
-
"react/jsx-first-prop-new-line": ["error", "multiline-multiprop"],
|
|
47
|
-
"react/jsx-handler-names": ["warn"],
|
|
48
|
-
"react/jsx-indent": ["error", 2],
|
|
49
|
-
"react/jsx-indent-props": ["error", 2],
|
|
50
|
-
"react/jsx-key": ["error"],
|
|
51
|
-
"react/jsx-max-depth":["error", { "max": 5}],
|
|
52
|
-
"react/jsx-max-props-per-line": ["error", {"maximum": 3, "when": "multiline" }],
|
|
53
|
-
"react/jsx-no-bind": ["error", {"allowArrowFunctions": true}],
|
|
54
|
-
"react/jsx-no-comment-textnodes": ["error"],
|
|
55
|
-
"react/jsx-no-duplicate-props": ["error"],
|
|
56
|
-
"react/jsx-no-literals": ["error"],
|
|
57
|
-
"react/jsx-no-undef": ["error"],
|
|
58
|
-
"react/prop-types": 0,
|
|
59
|
-
"react/jsx-one-expression-per-line": ["error", {"allow": "single-child"}],
|
|
60
|
-
"react/jsx-curly-brace-presence": ["warn", { "props": "ignore", "children": "ignore" }],
|
|
61
|
-
"react/jsx-pascal-case": ["error"],
|
|
62
|
-
"react/jsx-props-no-multi-spaces": ["error"],
|
|
63
|
-
"react/sort-default-props": ["error"],
|
|
64
|
-
"react/jsx-sort-props": ["error"],
|
|
65
|
-
"react/no-string-refs": ["error"],
|
|
66
|
-
"react/no-danger-with-children": ["error"],
|
|
67
|
-
"react/jsx-tag-spacing": ["error", {
|
|
68
|
-
"closingSlash": "never",
|
|
69
|
-
"beforeSelfClosing": "always",
|
|
70
|
-
"afterOpening": "allow-multiline",
|
|
71
|
-
"beforeClosing": "allow"
|
|
72
|
-
}],
|
|
73
|
-
"react/prefer-es6-class": [
|
|
74
|
-
2,
|
|
75
|
-
"always"
|
|
76
|
-
],
|
|
77
|
-
"react-hooks/rules-of-hooks": "error",
|
|
78
|
-
"react-hooks/exhaustive-deps": "warn",
|
|
79
|
-
"verdaccio/jsx-no-style": ["warn"],
|
|
80
|
-
"verdaccio/jsx-spread": ["warn"],
|
|
81
|
-
"jest/expect-expect": 0,
|
|
82
|
-
"quote-props":["error", "as-needed"],
|
|
83
|
-
"prefer-spread": 1,
|
|
84
|
-
"linebreak-style": 0,
|
|
85
|
-
"max-len": ["error", 160]
|
|
86
|
-
},
|
|
87
|
-
"globals": {
|
|
88
|
-
"VERDACCIO_API_URL": true,
|
|
89
|
-
"RequestInit": true,
|
|
90
|
-
"TextFieldProps": true,
|
|
91
|
-
"HTMLElementTagNameMap": true,
|
|
92
|
-
"JSX": true,
|
|
93
|
-
"Reflect": true,
|
|
94
|
-
"__DEBUG__": true
|
|
95
|
-
},
|
|
96
|
-
"env": {
|
|
97
|
-
"browser": true,
|
|
98
|
-
"jest/globals": true
|
|
99
|
-
}
|
|
100
|
-
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# @verdaccio/ui-components
|
|
2
|
-
|
|
3
|
-
## 4.0.0-next-8.7
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- ef6864c: chore(deps): update webpack-dev-server to v5
|
|
8
|
-
- 3763df1: fix(ui): start storybook on windows
|
|
9
|
-
- c81bd75: chore(ui): update react-json-view
|
|
10
|
-
- 99f6e11: chore(ui): flags import and minor updates
|
|
11
|
-
- e4a1539: chore: package.json maintenance
|
|
12
|
-
- 4933663: fix(ui): format date distance test
|
|
13
|
-
- 0607e80: chore: update readme badges and license files
|
|
14
|
-
- c1faf6d: chore(ui): reduce build size
|
|
15
|
-
- Updated dependencies [e4a1539]
|
|
16
|
-
- Updated dependencies [dbe6a76]
|
|
17
|
-
- @verdaccio/ui-i18n@8.0.0-next-8.12
|
|
18
|
-
|
|
19
|
-
## 4.0.0-next-8.6
|
|
20
|
-
|
|
21
|
-
### Patch Changes
|
|
22
|
-
|
|
23
|
-
- Updated dependencies [b6e9f46]
|
|
24
|
-
- @verdaccio/ui-i18n@8.0.0-next-8.11
|
|
25
|
-
|
|
26
|
-
## 4.0.0-next-8.5
|
|
27
|
-
|
|
28
|
-
### Minor Changes
|
|
29
|
-
|
|
30
|
-
- 970e0c9: update hover background color of package list
|
|
31
|
-
|
|
32
|
-
### Patch Changes
|
|
33
|
-
|
|
34
|
-
- 69f2e66: fix(ui): sort versions
|
|
35
|
-
- eb4a24b: chore(deps): upgrade storybook to v8
|
|
36
|
-
- 8289cc6: fix: ui-component vitest api
|
|
37
|
-
|
|
38
|
-
## 4.0.0-next-8.4
|
|
39
|
-
|
|
40
|
-
### Minor Changes
|
|
41
|
-
|
|
42
|
-
- 5a91448: support packages with multiple module types
|
|
43
|
-
|
|
44
|
-
## 4.0.0-next-8.3
|
|
45
|
-
|
|
46
|
-
### Patch Changes
|
|
47
|
-
|
|
48
|
-
- 0225c80: chore(ui): vitest follow-ups
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
-
import { HttpResponse, http } from 'msw';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { MemoryRouter } from 'react-router';
|
|
5
|
-
|
|
6
|
-
import AppRoute from './AppRoute';
|
|
7
|
-
|
|
8
|
-
const meta: Meta<typeof AppRoute> = {
|
|
9
|
-
title: 'App/Main',
|
|
10
|
-
component: AppRoute,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export default meta;
|
|
14
|
-
|
|
15
|
-
type Story = StoryObj<typeof AppRoute>;
|
|
16
|
-
|
|
17
|
-
export const ApplicationStoryBook: Story = {
|
|
18
|
-
render: () => (
|
|
19
|
-
<MemoryRouter initialEntries={[`/-/web/detail/storybook`]}>
|
|
20
|
-
<AppRoute />
|
|
21
|
-
</MemoryRouter>
|
|
22
|
-
),
|
|
23
|
-
parameters: {
|
|
24
|
-
msw: {
|
|
25
|
-
handlers: [
|
|
26
|
-
http.get('https://my-registry.org/-/verdaccio/data/sidebar/storybook', () => {
|
|
27
|
-
return HttpResponse.json(require('../../vitest/api/storybook-sidebar.json'));
|
|
28
|
-
}),
|
|
29
|
-
http.get('https://my-registry.org/-/verdaccio/data/package/readme/storybook', () => {
|
|
30
|
-
return HttpResponse.json(require('../../vitest/api/storybook-readme')());
|
|
31
|
-
}),
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const ApplicationJquery: Story = {
|
|
38
|
-
render: () => (
|
|
39
|
-
<MemoryRouter initialEntries={[`/-/web/detail/jquery`]}>
|
|
40
|
-
<AppRoute />
|
|
41
|
-
</MemoryRouter>
|
|
42
|
-
),
|
|
43
|
-
parameters: {
|
|
44
|
-
msw: {
|
|
45
|
-
handlers: [
|
|
46
|
-
http.get('https://my-registry.org/-/verdaccio/data/sidebar/jquery', () => {
|
|
47
|
-
return HttpResponse.json(require('../../vitest/api/jquery-sidebar.json'));
|
|
48
|
-
}),
|
|
49
|
-
http.get('https://my-registry.org/-/verdaccio/data/package/readme/jquery', () => {
|
|
50
|
-
return HttpResponse.json(require('../../vitest/api/jquery-readme')());
|
|
51
|
-
}),
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export const ApplicationForbidden: Story = {
|
|
58
|
-
render: () => (
|
|
59
|
-
<MemoryRouter initialEntries={[`/-/web/detail/JSONStream`]}>
|
|
60
|
-
<AppRoute />
|
|
61
|
-
</MemoryRouter>
|
|
62
|
-
),
|
|
63
|
-
parameters: {
|
|
64
|
-
msw: {
|
|
65
|
-
handlers: [
|
|
66
|
-
http.get('https://my-registry.org/-/verdaccio/data/sidebar/JSONStream', () => {
|
|
67
|
-
return new HttpResponse('unauthorized', { status: 401 });
|
|
68
|
-
}),
|
|
69
|
-
],
|
|
70
|
-
},
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
export const ApplicationNotFound: Story = {
|
|
75
|
-
render: () => (
|
|
76
|
-
<MemoryRouter initialEntries={[`/-/web/detail/kleur`]}>
|
|
77
|
-
<AppRoute />
|
|
78
|
-
</MemoryRouter>
|
|
79
|
-
),
|
|
80
|
-
parameters: {
|
|
81
|
-
msw: {
|
|
82
|
-
handlers: [
|
|
83
|
-
http.get('https://my-registry.org/-/verdaccio/data/sidebar/kleur', () => {
|
|
84
|
-
return new HttpResponse('unauthorized', { status: 404 });
|
|
85
|
-
}),
|
|
86
|
-
],
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { MemoryRouter } from 'react-router';
|
|
3
|
-
import { vi } from 'vitest';
|
|
4
|
-
|
|
5
|
-
import { store } from '../';
|
|
6
|
-
import { act, renderWithStore, screen, waitFor } from '../test/test-react-testing-library';
|
|
7
|
-
import AppRoute from './AppRoute';
|
|
8
|
-
|
|
9
|
-
// force the windows to expand to display items
|
|
10
|
-
// https://github.com/bvaughn/react-virtualized/issues/493#issuecomment-640084107
|
|
11
|
-
vi.spyOn(HTMLElement.prototype, 'offsetHeight', 'get').mockReturnValue(600);
|
|
12
|
-
vi.spyOn(HTMLElement.prototype, 'offsetWidth', 'get').mockReturnValue(600);
|
|
13
|
-
|
|
14
|
-
function appTest(path: string) {
|
|
15
|
-
renderWithStore(
|
|
16
|
-
<MemoryRouter initialEntries={[path]}>
|
|
17
|
-
<AppRoute />
|
|
18
|
-
</MemoryRouter>,
|
|
19
|
-
store
|
|
20
|
-
);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// See vi/server-handlers.ts for test routes
|
|
24
|
-
describe('AppRoute', () => {
|
|
25
|
-
afterEach(() => {
|
|
26
|
-
vi.clearAllMocks();
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
test('renders Front component for ROOT path', async () => {
|
|
30
|
-
act(() => appTest('/'));
|
|
31
|
-
await waitFor(() => expect(screen.getByTestId('loading')).toBeInTheDocument());
|
|
32
|
-
await waitFor(() => expect(screen.getAllByTestId('package-item-list')).toHaveLength(5));
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
test('renders VersionPage component for PACKAGE path', async () => {
|
|
36
|
-
act(() => appTest('/-/web/detail/jquery'));
|
|
37
|
-
await waitFor(() => expect(screen.getByTestId('readme-tab')).toBeInTheDocument(), {
|
|
38
|
-
timeout: 3000,
|
|
39
|
-
});
|
|
40
|
-
expect(screen.getByTestId('sidebar')).toBeInTheDocument();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('renders VersionPage component for PACKAGE VERSION path', async () => {
|
|
44
|
-
act(() => appTest('/-/web/detail/jquery/v/3.6.3'));
|
|
45
|
-
await waitFor(() => expect(screen.getByTestId('readme-tab')).toBeInTheDocument(), {
|
|
46
|
-
timeout: 3000,
|
|
47
|
-
});
|
|
48
|
-
expect(screen.getByTestId('sidebar')).toBeInTheDocument();
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
test('renders Forbidden component for not allowed PACKAGE', async () => {
|
|
52
|
-
act(() => appTest('/-/web/detail/JSONstream'));
|
|
53
|
-
await waitFor(() => screen.getByTestId('not-found-go-to-home-button'));
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
test('renders NotFound component for missing PACKAGE', async () => {
|
|
57
|
-
act(() => appTest('/-/web/detail/kleur'));
|
|
58
|
-
await waitFor(() => screen.getByTestId('not-found-go-to-home-button'));
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
test('renders NotFound component for non-existing PACKAGE VERSION', async () => {
|
|
62
|
-
act(() => appTest('/-/web/detail/jquery/v/0.9.9'));
|
|
63
|
-
await waitFor(() => screen.getByTestId('not-found-go-to-home-button'));
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
test('renders NotFound component for non-matching path', async () => {
|
|
67
|
-
act(() => appTest('/oiccadrev'));
|
|
68
|
-
await waitFor(() => screen.getByTestId('not-found-go-to-home-button'));
|
|
69
|
-
});
|
|
70
|
-
});
|
package/src/AppTest/AppRoute.tsx
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Route as ReactRouterDomRoute, Switch } from 'react-router-dom';
|
|
3
|
-
|
|
4
|
-
import { NotFound, Route, VersionProvider, loadable } from '../index';
|
|
5
|
-
|
|
6
|
-
const VersionPage = loadable(() => import(/* webpackChunkName: "Version" */ './pages/Version'));
|
|
7
|
-
const Front = loadable(() => import(/* webpackChunkName: "Home" */ './pages/Front'));
|
|
8
|
-
|
|
9
|
-
const AppRoute: React.FC = () => {
|
|
10
|
-
return (
|
|
11
|
-
<Switch>
|
|
12
|
-
<ReactRouterDomRoute exact={true} path={Route.ROOT}>
|
|
13
|
-
<Front />
|
|
14
|
-
</ReactRouterDomRoute>
|
|
15
|
-
<ReactRouterDomRoute exact={true} path={Route.PACKAGE}>
|
|
16
|
-
<VersionProvider>
|
|
17
|
-
<VersionPage />
|
|
18
|
-
</VersionProvider>
|
|
19
|
-
</ReactRouterDomRoute>
|
|
20
|
-
<ReactRouterDomRoute exact={true} path={Route.PACKAGE_VERSION}>
|
|
21
|
-
<VersionProvider>
|
|
22
|
-
<VersionPage />
|
|
23
|
-
</VersionProvider>
|
|
24
|
-
</ReactRouterDomRoute>
|
|
25
|
-
<ReactRouterDomRoute exact={true} path={Route.SCOPE_PACKAGE_VERSION}>
|
|
26
|
-
<VersionProvider>
|
|
27
|
-
<VersionPage />
|
|
28
|
-
</VersionProvider>
|
|
29
|
-
</ReactRouterDomRoute>
|
|
30
|
-
<ReactRouterDomRoute exact={true} path={Route.SCOPE_PACKAGE}>
|
|
31
|
-
<VersionProvider>
|
|
32
|
-
<VersionPage />
|
|
33
|
-
</VersionProvider>
|
|
34
|
-
</ReactRouterDomRoute>
|
|
35
|
-
<ReactRouterDomRoute>
|
|
36
|
-
<NotFound />
|
|
37
|
-
</ReactRouterDomRoute>
|
|
38
|
-
</Switch>
|
|
39
|
-
);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export default AppRoute;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './Home';
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useSelector } from 'react-redux';
|
|
3
|
-
|
|
4
|
-
import Forbidden from '../../../components/Forbidden';
|
|
5
|
-
import { Loading, NotFound, RootState, VersionLayout } from '../../../index';
|
|
6
|
-
|
|
7
|
-
const Version: React.FC = () => {
|
|
8
|
-
const manifestStore = useSelector((state: RootState) => state.manifest);
|
|
9
|
-
const isLoading = useSelector((state: RootState) => state?.loading?.models.manifest);
|
|
10
|
-
|
|
11
|
-
if (isLoading) {
|
|
12
|
-
return <Loading />;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// @ts-expect-error
|
|
16
|
-
if (manifestStore.forbidden) {
|
|
17
|
-
return <Forbidden />;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// @ts-expect-error
|
|
21
|
-
if (manifestStore.hasNotBeenFound) {
|
|
22
|
-
return <NotFound />;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return <VersionLayout />;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export default Version;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from './Version';
|