@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,45 @@
|
|
|
1
|
+
import type { RootModel } from '.';
|
|
2
|
+
export type AddUserError = {
|
|
3
|
+
type: string;
|
|
4
|
+
description: string;
|
|
5
|
+
code?: number;
|
|
6
|
+
};
|
|
7
|
+
type AddUserSessionState = {
|
|
8
|
+
isRegistered: boolean;
|
|
9
|
+
error?: AddUserError;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @category Model
|
|
13
|
+
*/
|
|
14
|
+
export declare const addUser: {
|
|
15
|
+
name?: string | undefined;
|
|
16
|
+
state: AddUserSessionState;
|
|
17
|
+
} & {
|
|
18
|
+
effects: (dispatch: import("@rematch/core").RematchDispatch<RootModel>) => {
|
|
19
|
+
register(this: import("@rematch/core").ModelEffectThisTyped, payload: {
|
|
20
|
+
username: string;
|
|
21
|
+
password: string;
|
|
22
|
+
email?: string;
|
|
23
|
+
next?: string;
|
|
24
|
+
messageType: string;
|
|
25
|
+
}, rootState: import("@rematch/core").RematchRootState<RootModel, Record<string, never>>): Promise<void>;
|
|
26
|
+
};
|
|
27
|
+
} & {
|
|
28
|
+
reducers: {
|
|
29
|
+
setRegistered(state: AddUserSessionState): {
|
|
30
|
+
isRegistered: true;
|
|
31
|
+
error: undefined;
|
|
32
|
+
};
|
|
33
|
+
addError(state: AddUserSessionState, error: AddUserError): {
|
|
34
|
+
isRegistered: false;
|
|
35
|
+
error: AddUserError;
|
|
36
|
+
};
|
|
37
|
+
clearError(state: AddUserSessionState): {
|
|
38
|
+
error: undefined;
|
|
39
|
+
isRegistered: boolean;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
} & ({} | {
|
|
43
|
+
baseReducer: import("redux").Reducer<AddUserSessionState, import("redux").AnyAction>;
|
|
44
|
+
});
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
2
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
3
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
import { createModel } from '@rematch/core';
|
|
9
|
+
import i18next from 'i18next';
|
|
10
|
+
import { Route } from '../../utils';
|
|
11
|
+
import API from '../api';
|
|
12
|
+
import storage from '../storage';
|
|
13
|
+
import { HEADERS, stripTrailingSlash } from './utils';
|
|
14
|
+
/**
|
|
15
|
+
* @category Model
|
|
16
|
+
*/
|
|
17
|
+
export var addUser = createModel()({
|
|
18
|
+
state: {
|
|
19
|
+
isRegistered: false
|
|
20
|
+
},
|
|
21
|
+
reducers: {
|
|
22
|
+
setRegistered(state) {
|
|
23
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
24
|
+
isRegistered: true,
|
|
25
|
+
error: undefined
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
addError(state, error) {
|
|
29
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
30
|
+
isRegistered: false,
|
|
31
|
+
error
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
clearError(state) {
|
|
35
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
36
|
+
error: undefined
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
effects: dispatch => ({
|
|
41
|
+
register(payload, rootState) {
|
|
42
|
+
return _asyncToGenerator(function* () {
|
|
43
|
+
var basePath = stripTrailingSlash(rootState.configuration.config.base);
|
|
44
|
+
try {
|
|
45
|
+
var requestUrl = "".concat(basePath).concat(Route.ADD_USER_API, ":").concat(payload.username);
|
|
46
|
+
var response = yield API.request(requestUrl, 'PUT', {
|
|
47
|
+
body: JSON.stringify({
|
|
48
|
+
name: payload.username,
|
|
49
|
+
password: payload.password,
|
|
50
|
+
email: payload.email || ''
|
|
51
|
+
}),
|
|
52
|
+
headers: {
|
|
53
|
+
Accept: HEADERS.JSON,
|
|
54
|
+
'Content-Type': HEADERS.JSON
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
if (response.ok) {
|
|
58
|
+
// Successfully added a new user!
|
|
59
|
+
|
|
60
|
+
// Save the username and token to the UI storage
|
|
61
|
+
storage.setItem('username', payload.username);
|
|
62
|
+
storage.setItem('token', response.token);
|
|
63
|
+
dispatch.addUser.setRegistered();
|
|
64
|
+
window.location.href = "".concat(Route.SUCCESS, "?messageType=").concat(payload.messageType);
|
|
65
|
+
} else {
|
|
66
|
+
throw new Error('Unknown add-user error:' + JSON.stringify(response));
|
|
67
|
+
}
|
|
68
|
+
} catch (error) {
|
|
69
|
+
storage.removeItem('username');
|
|
70
|
+
storage.removeItem('token');
|
|
71
|
+
if (error.code === 409) {
|
|
72
|
+
dispatch.addUser.addError({
|
|
73
|
+
type: 'error',
|
|
74
|
+
description: i18next.t('security.error.username-already-exists'),
|
|
75
|
+
code: 409
|
|
76
|
+
});
|
|
77
|
+
} else if (error.code === 404) {
|
|
78
|
+
dispatch.addUser.addError({
|
|
79
|
+
type: 'error',
|
|
80
|
+
description: i18next.t('security.error.username-not-found'),
|
|
81
|
+
code: 404
|
|
82
|
+
});
|
|
83
|
+
} else {
|
|
84
|
+
dispatch.addUser.addError({
|
|
85
|
+
type: 'error',
|
|
86
|
+
description: i18next.t('security.error.unable-to-add-user'),
|
|
87
|
+
code: error.code || 400
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
})();
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=add-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-user.js","names":["createModel","i18next","Route","API","storage","HEADERS","stripTrailingSlash","addUser","state","isRegistered","reducers","setRegistered","_objectSpread","error","undefined","addError","clearError","effects","dispatch","register","payload","rootState","_asyncToGenerator","basePath","configuration","config","base","requestUrl","concat","ADD_USER_API","username","response","request","body","JSON","stringify","name","password","email","headers","Accept","ok","setItem","token","window","location","href","SUCCESS","messageType","Error","removeItem","code","type","description","t"],"sources":["../../../src/store/models/add-user.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\nimport i18next from 'i18next';\n\nimport type { RootModel } from '.';\nimport { Route } from '../../utils';\nimport API from '../api';\nimport storage from '../storage';\nimport { HEADERS, stripTrailingSlash } from './utils';\n\nexport type AddUserError = {\n type: string;\n description: string;\n code?: number;\n};\n\ntype AddUserSessionState = {\n isRegistered: boolean;\n error?: AddUserError;\n};\n\n/**\n * @category Model\n */\nexport const addUser = createModel<RootModel>()({\n state: {\n isRegistered: false,\n } as AddUserSessionState,\n reducers: {\n setRegistered(state) {\n return {\n ...state,\n isRegistered: true,\n error: undefined,\n };\n },\n addError(state, error: AddUserError) {\n return {\n ...state,\n isRegistered: false,\n error,\n };\n },\n clearError(state) {\n return {\n ...state,\n error: undefined,\n };\n },\n },\n effects: (dispatch) => ({\n async register(\n payload: {\n username: string;\n password: string;\n email?: string;\n next?: string;\n messageType: string;\n },\n rootState\n ) {\n const basePath = stripTrailingSlash(rootState.configuration.config.base);\n\n try {\n const requestUrl = `${basePath}${Route.ADD_USER_API}:${payload.username}`;\n\n const response = await API.request<{ ok: string; token: string }>(requestUrl, 'PUT', {\n body: JSON.stringify({\n name: payload.username,\n password: payload.password,\n email: payload.email || '',\n }),\n headers: {\n Accept: HEADERS.JSON,\n 'Content-Type': HEADERS.JSON,\n },\n });\n\n if (response.ok) {\n // Successfully added a new user!\n\n // Save the username and token to the UI storage\n storage.setItem('username', payload.username);\n storage.setItem('token', response.token);\n\n dispatch.addUser.setRegistered();\n window.location.href = `${Route.SUCCESS}?messageType=${payload.messageType}`;\n } else {\n throw new Error('Unknown add-user error:' + JSON.stringify(response));\n }\n } catch (error: any) {\n storage.removeItem('username');\n storage.removeItem('token');\n\n if (error.code === 409) {\n dispatch.addUser.addError({\n type: 'error',\n description: i18next.t('security.error.username-already-exists'),\n code: 409,\n });\n } else if (error.code === 404) {\n dispatch.addUser.addError({\n type: 'error',\n description: i18next.t('security.error.username-not-found'),\n code: 404,\n });\n } else {\n dispatch.addUser.addError({\n type: 'error',\n description: i18next.t('security.error.unable-to-add-user'),\n code: error.code || 400,\n });\n }\n }\n },\n }),\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { RootModel } from '.';
|
|
2
|
+
export type ChangePasswordError = {
|
|
3
|
+
type: string;
|
|
4
|
+
description: string;
|
|
5
|
+
code?: number;
|
|
6
|
+
};
|
|
7
|
+
type ChangePasswordState = {
|
|
8
|
+
isPasswordChanged: boolean;
|
|
9
|
+
error?: ChangePasswordError;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @category Model
|
|
13
|
+
*/
|
|
14
|
+
export declare const changePassword: {
|
|
15
|
+
name?: string | undefined;
|
|
16
|
+
state: ChangePasswordState;
|
|
17
|
+
} & {
|
|
18
|
+
effects: (dispatch: import("@rematch/core").RematchDispatch<RootModel>) => {
|
|
19
|
+
updatePassword(this: import("@rematch/core").ModelEffectThisTyped, payload: {
|
|
20
|
+
username: string;
|
|
21
|
+
oldPassword: string;
|
|
22
|
+
newPassword: string;
|
|
23
|
+
messageType: string;
|
|
24
|
+
}, rootState: import("@rematch/core").RematchRootState<RootModel, Record<string, never>>): Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
} & {
|
|
27
|
+
reducers: {
|
|
28
|
+
setPasswordChanged(state: ChangePasswordState): {
|
|
29
|
+
isPasswordChanged: true;
|
|
30
|
+
error: undefined;
|
|
31
|
+
};
|
|
32
|
+
addError(state: ChangePasswordState, error: ChangePasswordError): {
|
|
33
|
+
isPasswordChanged: false;
|
|
34
|
+
error: ChangePasswordError;
|
|
35
|
+
};
|
|
36
|
+
clearError(state: ChangePasswordState): {
|
|
37
|
+
error: undefined;
|
|
38
|
+
isPasswordChanged: boolean;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
} & ({} | {
|
|
42
|
+
baseReducer: import("redux").Reducer<ChangePasswordState, import("redux").AnyAction>;
|
|
43
|
+
});
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
2
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
3
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
import { createModel } from '@rematch/core';
|
|
9
|
+
import i18next from 'i18next';
|
|
10
|
+
import { Route } from '../../utils';
|
|
11
|
+
import API from '../api';
|
|
12
|
+
import { HEADERS, stripTrailingSlash } from './utils';
|
|
13
|
+
var TOKEN_BEARER = 'Bearer';
|
|
14
|
+
/**
|
|
15
|
+
* @category Model
|
|
16
|
+
*/
|
|
17
|
+
export var changePassword = createModel()({
|
|
18
|
+
state: {
|
|
19
|
+
isPasswordChanged: false
|
|
20
|
+
},
|
|
21
|
+
reducers: {
|
|
22
|
+
setPasswordChanged(state) {
|
|
23
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
24
|
+
isPasswordChanged: true,
|
|
25
|
+
error: undefined
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
addError(state, error) {
|
|
29
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
30
|
+
isPasswordChanged: false,
|
|
31
|
+
error
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
clearError(state) {
|
|
35
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
36
|
+
error: undefined
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
effects: dispatch => ({
|
|
41
|
+
updatePassword(payload, rootState) {
|
|
42
|
+
return _asyncToGenerator(function* () {
|
|
43
|
+
var basePath = stripTrailingSlash(rootState.configuration.config.base);
|
|
44
|
+
try {
|
|
45
|
+
// Authorize the user and get token
|
|
46
|
+
var requestAuthorize = "".concat(basePath).concat(Route.ADD_USER_API, ":").concat(payload.username);
|
|
47
|
+
var responseAuthorize = yield API.request(requestAuthorize, 'PUT', {
|
|
48
|
+
body: JSON.stringify({
|
|
49
|
+
name: payload.username,
|
|
50
|
+
password: payload.oldPassword
|
|
51
|
+
}),
|
|
52
|
+
headers: {
|
|
53
|
+
Accept: HEADERS.JSON,
|
|
54
|
+
'Content-Type': HEADERS.JSON
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
if (!responseAuthorize.ok) {
|
|
58
|
+
throw new Error('Invalid credentials');
|
|
59
|
+
}
|
|
60
|
+
var token = "".concat(TOKEN_BEARER, " ").concat(responseAuthorize.token);
|
|
61
|
+
|
|
62
|
+
// Change the password
|
|
63
|
+
var requestChangePassword = "".concat(basePath).concat(Route.CHANGE_PASSWORD_API);
|
|
64
|
+
var responseChangePassword = yield API.request(requestChangePassword, 'POST', {
|
|
65
|
+
body: JSON.stringify({
|
|
66
|
+
password: {
|
|
67
|
+
new: payload.newPassword,
|
|
68
|
+
old: payload.oldPassword
|
|
69
|
+
}
|
|
70
|
+
}),
|
|
71
|
+
headers: {
|
|
72
|
+
Accept: HEADERS.JSON,
|
|
73
|
+
'Content-Type': HEADERS.JSON,
|
|
74
|
+
Authorization: token
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
if (responseChangePassword.ok) {
|
|
78
|
+
// Successfully changed the password!
|
|
79
|
+
|
|
80
|
+
dispatch.changePassword.setPasswordChanged();
|
|
81
|
+
window.location.href = "".concat(Route.SUCCESS, "?messageType=").concat(payload.messageType);
|
|
82
|
+
} else {
|
|
83
|
+
throw new Error('Unknown error:' + JSON.stringify(responseChangePassword));
|
|
84
|
+
}
|
|
85
|
+
} catch (error) {
|
|
86
|
+
if (error.code === 401) {
|
|
87
|
+
dispatch.changePassword.addError({
|
|
88
|
+
type: 'error',
|
|
89
|
+
description: i18next.t('security.error.invalid-credentials'),
|
|
90
|
+
code: 401
|
|
91
|
+
});
|
|
92
|
+
} else if (error.code === 404) {
|
|
93
|
+
dispatch.changePassword.addError({
|
|
94
|
+
type: 'error',
|
|
95
|
+
description: i18next.t('security.error.username-not-found'),
|
|
96
|
+
code: 404
|
|
97
|
+
});
|
|
98
|
+
} else {
|
|
99
|
+
dispatch.changePassword.addError({
|
|
100
|
+
type: 'error',
|
|
101
|
+
description: i18next.t('security.error.unable-to-change-password'),
|
|
102
|
+
code: error.code || 400
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
})();
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=change-password.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-password.js","names":["createModel","i18next","Route","API","HEADERS","stripTrailingSlash","TOKEN_BEARER","changePassword","state","isPasswordChanged","reducers","setPasswordChanged","_objectSpread","error","undefined","addError","clearError","effects","dispatch","updatePassword","payload","rootState","_asyncToGenerator","basePath","configuration","config","base","requestAuthorize","concat","ADD_USER_API","username","responseAuthorize","request","body","JSON","stringify","name","password","oldPassword","headers","Accept","ok","Error","token","requestChangePassword","CHANGE_PASSWORD_API","responseChangePassword","new","newPassword","old","Authorization","window","location","href","SUCCESS","messageType","code","type","description","t"],"sources":["../../../src/store/models/change-password.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\nimport i18next from 'i18next';\n\nimport type { RootModel } from '.';\nimport { Route } from '../../utils';\nimport API from '../api';\nimport { HEADERS, stripTrailingSlash } from './utils';\n\nconst TOKEN_BEARER = 'Bearer';\n\nexport type ChangePasswordError = {\n type: string;\n description: string;\n code?: number;\n};\n\ntype ChangePasswordState = {\n isPasswordChanged: boolean;\n error?: ChangePasswordError;\n};\n\n/**\n * @category Model\n */\nexport const changePassword = createModel<RootModel>()({\n state: {\n isPasswordChanged: false,\n } as ChangePasswordState,\n reducers: {\n setPasswordChanged(state) {\n return {\n ...state,\n isPasswordChanged: true,\n error: undefined,\n };\n },\n addError(state, error: ChangePasswordError) {\n return {\n ...state,\n isPasswordChanged: false,\n error,\n };\n },\n clearError(state) {\n return {\n ...state,\n error: undefined,\n };\n },\n },\n effects: (dispatch) => ({\n async updatePassword(\n payload: {\n username: string;\n oldPassword: string;\n newPassword: string;\n messageType: string;\n },\n rootState\n ) {\n const basePath = stripTrailingSlash(rootState.configuration.config.base);\n\n try {\n // Authorize the user and get token\n const requestAuthorize = `${basePath}${Route.ADD_USER_API}:${payload.username}`;\n\n const responseAuthorize = await API.request<{ ok: string; token: string }>(\n requestAuthorize,\n 'PUT',\n {\n body: JSON.stringify({\n name: payload.username,\n password: payload.oldPassword,\n }),\n headers: {\n Accept: HEADERS.JSON,\n 'Content-Type': HEADERS.JSON,\n },\n }\n );\n\n if (!responseAuthorize.ok) {\n throw new Error('Invalid credentials');\n }\n\n const token = `${TOKEN_BEARER} ${responseAuthorize.token}`;\n\n // Change the password\n const requestChangePassword = `${basePath}${Route.CHANGE_PASSWORD_API}`;\n\n const responseChangePassword = await API.request<{ ok: string }>(\n requestChangePassword,\n 'POST',\n {\n body: JSON.stringify({\n password: { new: payload.newPassword, old: payload.oldPassword },\n }),\n headers: {\n Accept: HEADERS.JSON,\n 'Content-Type': HEADERS.JSON,\n Authorization: token,\n },\n }\n );\n\n if (responseChangePassword.ok) {\n // Successfully changed the password!\n\n dispatch.changePassword.setPasswordChanged();\n window.location.href = `${Route.SUCCESS}?messageType=${payload.messageType}`;\n } else {\n throw new Error('Unknown error:' + JSON.stringify(responseChangePassword));\n }\n } catch (error: any) {\n if (error.code === 401) {\n dispatch.changePassword.addError({\n type: 'error',\n description: i18next.t('security.error.invalid-credentials'),\n code: 401,\n });\n } else if (error.code === 404) {\n dispatch.changePassword.addError({\n type: 'error',\n description: i18next.t('security.error.username-not-found'),\n code: 404,\n });\n } else {\n dispatch.changePassword.addError({\n type: 'error',\n description: i18next.t('security.error.unable-to-change-password'),\n code: error.code || 400,\n });\n }\n }\n },\n }),\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.js","names":["createModel","isEmpty","isNil","colors","API","APIRoute","defaultValues","primaryColor","PRIMARY_COLOR","darkMode","pkgManagers","scope","base","login","flags","url_prefix","title","getConfiguration","_window$__VERDACCIO_B","_window","uiConfiguration","window","__VERDACCIO_BASENAME_UI_OPTIONS","configuration","state","config","effects","dispatch","getPackages","_asyncToGenerator","payload","request","CONFIG","packages","savePackages"],"sources":["../../../src/store/models/configuration.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\nimport isEmpty from 'lodash/isEmpty';\nimport isNil from 'lodash/isNil';\n\nimport { Manifest, TemplateUIOptions } from '@verdaccio/types';\n\nimport type { RootModel } from '.';\nimport { colors } from '../../Theme';\nimport API from '../api';\nimport { APIRoute } from './routes';\n\nconst defaultValues: TemplateUIOptions = {\n primaryColor: colors.PRIMARY_COLOR,\n darkMode: false,\n pkgManagers: ['yarn', 'pnpm', 'npm'],\n scope: '',\n base: '',\n login: true,\n flags: {},\n url_prefix: '',\n title: 'Verdaccio',\n};\n\nfunction getConfiguration() {\n const uiConfiguration = window?.__VERDACCIO_BASENAME_UI_OPTIONS ?? defaultValues;\n if (isNil(uiConfiguration.primaryColor) || isEmpty(uiConfiguration.primaryColor)) {\n uiConfiguration.primaryColor = colors.PRIMARY_COLOR;\n }\n\n return uiConfiguration;\n}\n\n/**\n *\n * @category Model\n */\nexport const configuration = createModel<RootModel>()({\n state: {\n config: getConfiguration(),\n },\n effects: (dispatch) => ({\n async getPackages() {\n const payload: Manifest[] = await API.request(APIRoute.CONFIG, 'GET');\n dispatch.packages.savePackages(payload);\n },\n }),\n});\n"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,eAAe;AAC3C,OAAOC,OAAO,MAAM,gBAAgB;AACpC,OAAOC,KAAK,MAAM,cAAc;AAKhC,SAASC,MAAM,QAAQ,aAAa;AACpC,OAAOC,GAAG,MAAM,QAAQ;AACxB,SAASC,QAAQ,QAAQ,UAAU;AAEnC,IAAMC,aAAgC,GAAG;EACvCC,YAAY,EAAEJ,MAAM,CAACK,aAAa;EAClCC,QAAQ,EAAE,KAAK;EACfC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;EACpCC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,EAAE;EACRC,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE,CAAC,CAAC;EACTC,UAAU,EAAE,EAAE;EACdC,KAAK,EAAE;AACT,CAAC;AAED,SAASC,gBAAgBA,CAAA,EAAG;EAAA,IAAAC,qBAAA,EAAAC,OAAA;EAC1B,IAAMC,eAAe,IAAAF,qBAAA,IAAAC,OAAA,GAAGE,MAAM,cAAAF,OAAA,uBAANA,OAAA,CAAQG,+BAA+B,cAAAJ,qBAAA,cAAAA,qBAAA,GAAIZ,aAAa;EAChF,IAAIJ,KAAK,CAACkB,eAAe,CAACb,YAAY,CAAC,IAAIN,OAAO,CAACmB,eAAe,CAACb,YAAY,CAAC,EAAE;IAChFa,eAAe,CAACb,YAAY,GAAGJ,MAAM,CAACK,aAAa;EACrD;EAEA,OAAOY,eAAe;AACxB;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAMG,aAAa,GAAGvB,WAAW,CAAY,CAAC,CAAC;EACpDwB,KAAK,EAAE;IACLC,MAAM,EAAER,gBAAgB,CAAC;EAC3B,CAAC;EACDS,OAAO,EAAGC,QAAQ,KAAM;IAChBC,WAAWA,CAAA,EAAG;MAAA,OAAAC,iBAAA;QAClB,IAAMC,OAAmB,SAAS1B,GAAG,CAAC2B,OAAO,CAAC1B,QAAQ,CAAC2B,MAAM,EAAE,KAAK,CAAC;QACrEL,QAAQ,CAACM,QAAQ,CAACC,YAAY,CAACJ,OAAO,CAAC;MAAC;IAC1C;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.js","names":["createModel","downloadFile","extractFileName","API","download","state","reducers","effects","getTarball","_ref","_asyncToGenerator","link","fileStream","request","headers","credentials","fileName","error","console"],"sources":["../../../src/store/models/download.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\n\nimport type { RootModel } from '.';\nimport { downloadFile, extractFileName } from '../../utils/url';\nimport API from '../api';\n\n/**\n *\n * @category Model\n */\nexport const download = createModel<RootModel>()({\n state: {},\n reducers: {},\n effects: () => ({\n async getTarball({ link }) {\n try {\n const fileStream: Blob = await API.request(link, 'GET', {\n headers: {\n ['accept']:\n 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',\n },\n credentials: 'include',\n });\n const fileName = extractFileName(link);\n downloadFile(fileStream, fileName);\n } catch (error: any) {\n // TODO: handle better error\n // eslint-disable-next-line no-console\n console.error('error on download', error);\n }\n },\n }),\n});\n"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,eAAe;AAG3C,SAASC,YAAY,EAAEC,eAAe,QAAQ,iBAAiB;AAC/D,OAAOC,GAAG,MAAM,QAAQ;;AAExB;AACA;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAGJ,WAAW,CAAY,CAAC,CAAC;EAC/CK,KAAK,EAAE,CAAC,CAAC;EACTC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAEA,CAAA,MAAO;IACRC,UAAUA,CAAAC,IAAA,EAAW;MAAA,OAAAC,iBAAA;QAAA,IAAV;UAAEC;QAAK,CAAC,GAAAF,IAAA;QACvB,IAAI;UACF,IAAMG,UAAgB,SAAST,GAAG,CAACU,OAAO,CAACF,IAAI,EAAE,KAAK,EAAE;YACtDG,OAAO,EAAE;cACP,CAAC,QAAQ,GACP;YACJ,CAAC;YACDC,WAAW,EAAE;UACf,CAAC,CAAC;UACF,IAAMC,QAAQ,GAAGd,eAAe,CAACS,IAAI,CAAC;UACtCV,YAAY,CAACW,UAAU,EAAEI,QAAQ,CAAC;QACpC,CAAC,CAAC,OAAOC,KAAU,EAAE;UACnB;UACA;UACAC,OAAO,CAACD,KAAK,CAAC,mBAAmB,EAAEA,KAAK,CAAC;QAC3C;MAAC;IACH;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Models } from '@rematch/core';
|
|
2
|
+
import { addUser } from './add-user';
|
|
3
|
+
import { changePassword } from './change-password';
|
|
2
4
|
import { configuration } from './configuration';
|
|
3
5
|
import { download } from './download';
|
|
4
6
|
import { login } from './login';
|
|
7
|
+
import { loginV1 } from './login-v1';
|
|
5
8
|
import { manifest } from './manifest';
|
|
6
9
|
import { packages } from './packages';
|
|
7
10
|
import { search } from './search';
|
|
@@ -11,6 +14,9 @@ export interface RootModel extends Models<RootModel> {
|
|
|
11
14
|
configuration: typeof configuration;
|
|
12
15
|
download: typeof download;
|
|
13
16
|
login: typeof login;
|
|
17
|
+
loginV1: typeof loginV1;
|
|
14
18
|
search: typeof search;
|
|
19
|
+
addUser: typeof addUser;
|
|
20
|
+
changePassword: typeof changePassword;
|
|
15
21
|
}
|
|
16
22
|
export declare const models: RootModel;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { addUser } from './add-user';
|
|
2
|
+
import { changePassword } from './change-password';
|
|
1
3
|
import { configuration } from './configuration';
|
|
2
4
|
import { download } from './download';
|
|
3
5
|
import { login } from './login';
|
|
6
|
+
import { loginV1 } from './login-v1';
|
|
4
7
|
import { manifest } from './manifest';
|
|
5
8
|
import { packages } from './packages';
|
|
6
9
|
import { search } from './search';
|
|
@@ -10,6 +13,9 @@ export var models = {
|
|
|
10
13
|
search,
|
|
11
14
|
download,
|
|
12
15
|
login,
|
|
13
|
-
|
|
16
|
+
loginV1,
|
|
17
|
+
manifest,
|
|
18
|
+
addUser,
|
|
19
|
+
changePassword
|
|
14
20
|
};
|
|
15
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["addUser","changePassword","configuration","download","login","loginV1","manifest","packages","search","models"],"sources":["../../../src/store/models/index.ts"],"sourcesContent":["import { Models } from '@rematch/core';\n\nimport { addUser } from './add-user';\nimport { changePassword } from './change-password';\nimport { configuration } from './configuration';\nimport { download } from './download';\nimport { login } from './login';\nimport { loginV1 } from './login-v1';\nimport { manifest } from './manifest';\nimport { packages } from './packages';\nimport { search } from './search';\n\nexport interface RootModel extends Models<RootModel> {\n packages: typeof packages;\n manifest: typeof manifest;\n configuration: typeof configuration;\n download: typeof download;\n login: typeof login;\n loginV1: typeof loginV1;\n search: typeof search;\n addUser: typeof addUser;\n changePassword: typeof changePassword;\n}\n\nexport const models: RootModel = {\n packages,\n configuration,\n search,\n download,\n login,\n loginV1,\n manifest,\n addUser,\n changePassword,\n};\n"],"mappings":"AAEA,SAASA,OAAO,QAAQ,YAAY;AACpC,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,MAAM,QAAQ,UAAU;AAcjC,OAAO,IAAMC,MAAiB,GAAG;EAC/BF,QAAQ;EACRL,aAAa;EACbM,MAAM;EACNL,QAAQ;EACRC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRN,OAAO;EACPC;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { RootModel } from '.';
|
|
2
|
+
export type LoginV1Error = {
|
|
3
|
+
type: string;
|
|
4
|
+
description: string;
|
|
5
|
+
code?: number;
|
|
6
|
+
};
|
|
7
|
+
type LoginSessionState = {
|
|
8
|
+
isLoggedIn: boolean;
|
|
9
|
+
error?: LoginV1Error;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* @category Model
|
|
13
|
+
*/
|
|
14
|
+
export declare const loginV1: {
|
|
15
|
+
name?: string | undefined;
|
|
16
|
+
state: LoginSessionState;
|
|
17
|
+
} & {
|
|
18
|
+
effects: (dispatch: import("@rematch/core").RematchDispatch<RootModel>) => {
|
|
19
|
+
login(this: import("@rematch/core").ModelEffectThisTyped, payload: {
|
|
20
|
+
username: string;
|
|
21
|
+
password: string;
|
|
22
|
+
next: string;
|
|
23
|
+
messageType: string;
|
|
24
|
+
}, rootState: import("@rematch/core").RematchRootState<RootModel, Record<string, never>>): Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
} & {
|
|
27
|
+
reducers: {
|
|
28
|
+
setLoggedIn(state: LoginSessionState): {
|
|
29
|
+
isLoggedIn: true;
|
|
30
|
+
error: undefined;
|
|
31
|
+
};
|
|
32
|
+
addError(state: LoginSessionState, error: LoginV1Error): {
|
|
33
|
+
isLoggedIn: false;
|
|
34
|
+
error: LoginV1Error;
|
|
35
|
+
};
|
|
36
|
+
clearError(state: LoginSessionState): {
|
|
37
|
+
error: undefined;
|
|
38
|
+
isLoggedIn: boolean;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
} & ({} | {
|
|
42
|
+
baseReducer: import("redux").Reducer<LoginSessionState, import("redux").AnyAction>;
|
|
43
|
+
});
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
2
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
3
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
import { createModel } from '@rematch/core';
|
|
9
|
+
import i18next from 'i18next';
|
|
10
|
+
import { Route } from '../../utils';
|
|
11
|
+
import API from '../api';
|
|
12
|
+
import storage from '../storage';
|
|
13
|
+
import { HEADERS, stripTrailingSlash } from './utils';
|
|
14
|
+
/**
|
|
15
|
+
* @category Model
|
|
16
|
+
*/
|
|
17
|
+
export var loginV1 = createModel()({
|
|
18
|
+
state: {
|
|
19
|
+
isLoggedIn: false
|
|
20
|
+
},
|
|
21
|
+
reducers: {
|
|
22
|
+
setLoggedIn(state) {
|
|
23
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
24
|
+
isLoggedIn: true,
|
|
25
|
+
error: undefined
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
addError(state, error) {
|
|
29
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
30
|
+
isLoggedIn: false,
|
|
31
|
+
error
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
clearError(state) {
|
|
35
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
36
|
+
error: undefined
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
effects: dispatch => ({
|
|
41
|
+
login(payload, rootState) {
|
|
42
|
+
return _asyncToGenerator(function* () {
|
|
43
|
+
var basePath = stripTrailingSlash(rootState.configuration.config.base);
|
|
44
|
+
try {
|
|
45
|
+
// Make sure we have a valid next parameter
|
|
46
|
+
if (!payload.next) {
|
|
47
|
+
dispatch.loginV1.addError({
|
|
48
|
+
type: 'error',
|
|
49
|
+
description: i18next.t('security.error.invalid-next-param'),
|
|
50
|
+
code: 400
|
|
51
|
+
});
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
var requestUrl = "".concat(basePath).concat(payload.next);
|
|
55
|
+
var response = yield API.request(requestUrl, 'POST', {
|
|
56
|
+
body: JSON.stringify({
|
|
57
|
+
username: payload.username,
|
|
58
|
+
password: payload.password
|
|
59
|
+
}),
|
|
60
|
+
headers: {
|
|
61
|
+
Accept: HEADERS.JSON,
|
|
62
|
+
'Content-Type': HEADERS.JSON
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
if (response.ok) {
|
|
66
|
+
// Successfully logged in!
|
|
67
|
+
|
|
68
|
+
// Save the username and token to the UI storage
|
|
69
|
+
storage.setItem('username', payload.username);
|
|
70
|
+
storage.setItem('token', response.token);
|
|
71
|
+
dispatch.loginV1.setLoggedIn();
|
|
72
|
+
window.location.href = "".concat(Route.SUCCESS, "?messageType=").concat(payload.messageType);
|
|
73
|
+
} else {
|
|
74
|
+
throw new Error('Unknown error:' + JSON.stringify(response));
|
|
75
|
+
}
|
|
76
|
+
} catch (error) {
|
|
77
|
+
storage.removeItem('username');
|
|
78
|
+
storage.removeItem('token');
|
|
79
|
+
if (error.code === 404) {
|
|
80
|
+
dispatch.loginV1.addError({
|
|
81
|
+
type: 'error',
|
|
82
|
+
description: i18next.t('security.error.username-not-found'),
|
|
83
|
+
code: 404
|
|
84
|
+
});
|
|
85
|
+
} else if (error.code === 401) {
|
|
86
|
+
dispatch.loginV1.addError({
|
|
87
|
+
type: 'error',
|
|
88
|
+
description: i18next.t('security.error.invalid-credentials'),
|
|
89
|
+
code: 401
|
|
90
|
+
});
|
|
91
|
+
} else {
|
|
92
|
+
dispatch.loginV1.addError({
|
|
93
|
+
type: 'error',
|
|
94
|
+
description: i18next.t('security.error.unable-to-login'),
|
|
95
|
+
code: error.code || 403
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
})();
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=login-v1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-v1.js","names":["createModel","i18next","Route","API","storage","HEADERS","stripTrailingSlash","loginV1","state","isLoggedIn","reducers","setLoggedIn","_objectSpread","error","undefined","addError","clearError","effects","dispatch","login","payload","rootState","_asyncToGenerator","basePath","configuration","config","base","next","type","description","t","code","requestUrl","concat","response","request","body","JSON","stringify","username","password","headers","Accept","ok","setItem","token","window","location","href","SUCCESS","messageType","Error","removeItem"],"sources":["../../../src/store/models/login-v1.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\nimport i18next from 'i18next';\n\nimport type { RootModel } from '.';\nimport { Route } from '../../utils';\nimport API from '../api';\nimport storage from '../storage';\nimport { HEADERS, stripTrailingSlash } from './utils';\n\nexport type LoginV1Error = {\n type: string;\n description: string;\n code?: number;\n};\n\ntype LoginSessionState = {\n isLoggedIn: boolean;\n error?: LoginV1Error;\n};\n\n/**\n * @category Model\n */\nexport const loginV1 = createModel<RootModel>()({\n state: {\n isLoggedIn: false,\n } as LoginSessionState,\n reducers: {\n setLoggedIn(state) {\n return {\n ...state,\n isLoggedIn: true,\n error: undefined,\n };\n },\n addError(state, error: LoginV1Error) {\n return {\n ...state,\n isLoggedIn: false,\n error,\n };\n },\n clearError(state) {\n return {\n ...state,\n error: undefined,\n };\n },\n },\n effects: (dispatch) => ({\n async login(\n payload: { username: string; password: string; next: string; messageType: string },\n rootState\n ) {\n const basePath = stripTrailingSlash(rootState.configuration.config.base);\n\n try {\n // Make sure we have a valid next parameter\n if (!payload.next) {\n dispatch.loginV1.addError({\n type: 'error',\n description: i18next.t('security.error.invalid-next-param'),\n code: 400,\n });\n return;\n }\n\n const requestUrl = `${basePath}${payload.next}`;\n\n const response = await API.request<{ ok: string; token: string }>(requestUrl, 'POST', {\n body: JSON.stringify({ username: payload.username, password: payload.password }),\n headers: {\n Accept: HEADERS.JSON,\n 'Content-Type': HEADERS.JSON,\n },\n });\n\n if (response.ok) {\n // Successfully logged in!\n\n // Save the username and token to the UI storage\n storage.setItem('username', payload.username);\n storage.setItem('token', response.token);\n\n dispatch.loginV1.setLoggedIn();\n window.location.href = `${Route.SUCCESS}?messageType=${payload.messageType}`;\n } else {\n throw new Error('Unknown error:' + JSON.stringify(response));\n }\n } catch (error: any) {\n storage.removeItem('username');\n storage.removeItem('token');\n\n if (error.code === 404) {\n dispatch.loginV1.addError({\n type: 'error',\n description: i18next.t('security.error.username-not-found'),\n code: 404,\n });\n } else if (error.code === 401) {\n dispatch.loginV1.addError({\n type: 'error',\n description: i18next.t('security.error.invalid-credentials'),\n code: 401,\n });\n } else {\n dispatch.loginV1.addError({\n type: 'error',\n description: i18next.t('security.error.unable-to-login'),\n code: error.code || 403,\n });\n }\n }\n },\n }),\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","names":["createModel","i18next","isTokenExpire","API","storage","APIRoute","stripTrailingSlash","HEADERS","JSON","getDefaultUserState","token","getItem","username","defaultUserState","login","state","reducers","logOutUser","removeItem","_objectSpread","addError","error","clearError","undefined","logInUser","response","setItem","effects","dispatch","getUser","_ref","_asyncToGenerator","password","basePath","configuration","config","base","payload","request","concat","LOGIN","body","stringify","headers","Accept","packages","getPackages","type","description","t"],"sources":["../../../src/store/models/login.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\nimport i18next from 'i18next';\n\nimport type { RootModel } from '.';\nimport { isTokenExpire } from '../../utils';\nimport API from '../api';\nimport storage from '../storage';\nimport { APIRoute } from './routes';\nimport { stripTrailingSlash } from './utils';\n\nexport const HEADERS = {\n JSON: 'application/json',\n};\n\nexport type LoginError = {\n type: string;\n description: string;\n};\n\nexport type LoginResponse = {\n username: string | null;\n token: string | null;\n};\n\nexport type LoginBody = {\n error?: LoginError;\n} & LoginResponse;\n\nexport function getDefaultUserState(): LoginBody {\n const token = storage.getItem('token');\n const username = storage.getItem('username');\n const defaultUserState = isTokenExpire(token)\n ? { token: null, username: null }\n : { token, username };\n\n return defaultUserState;\n}\n\nconst defaultUserState: LoginBody = getDefaultUserState();\n\n/**\n *\n * @category Model\n */\nexport const login = createModel<RootModel>()({\n state: {\n username: defaultUserState.username,\n token: defaultUserState.token,\n },\n reducers: {\n logOutUser(state) {\n storage.removeItem('username');\n storage.removeItem('token');\n return {\n ...state,\n username: null,\n token: null,\n };\n },\n addError(state, error: LoginError) {\n return {\n ...state,\n error,\n };\n },\n clearError(state) {\n return {\n ...state,\n error: undefined,\n };\n },\n logInUser(state, response: LoginResponse) {\n // we might persist this in another way with\n storage.setItem('username', response.username as string);\n storage.setItem('token', response.token as string);\n return {\n ...state,\n token: response.token as string,\n username: response.username as string,\n };\n },\n },\n effects: (dispatch) => ({\n async getUser({ username, password }, state) {\n const basePath = stripTrailingSlash(state.configuration.config.base);\n try {\n const payload: LoginResponse = await API.request(`${basePath}${APIRoute.LOGIN}`, 'POST', {\n body: JSON.stringify({ username, password }),\n headers: {\n Accept: HEADERS.JSON,\n 'Content-Type': HEADERS.JSON,\n },\n });\n dispatch.login.logInUser(payload);\n dispatch.packages.getPackages(undefined);\n } catch (error: any) {\n dispatch.login.addError({\n type: 'error',\n description: i18next.t('form-validation.unable-to-sign-in'),\n });\n }\n },\n }),\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","names":["createModel","API","APIRoute","stripTrailingSlash","isPackageVersionValid","packageMeta","packageVersion","versions","Object","keys","includes","manifest","state","reducers","notFound","_objectSpread","hasNotBeenFound","forbidden","undefined","packageName","readme","clearError","isError","saveManifest","_ref","effects","dispatch","getManifest","_ref2","_asyncToGenerator","basePath","configuration","config","base","request","concat","SIDEBAR","Error","README","error","code"],"sources":["../../../src/store/models/manifest.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\n\nimport { Manifest } from '@verdaccio/types';\n\nimport type { RootModel } from '.';\nimport { PackageMetaInterface } from '../../types/packageMeta';\nimport API from '../api';\nimport { APIRoute } from './routes';\nimport { stripTrailingSlash } from './utils';\n\nfunction isPackageVersionValid(\n packageMeta: Partial<PackageMetaInterface>,\n packageVersion?: string\n): boolean {\n if (!packageVersion || typeof packageVersion === 'undefined') {\n // if is undefined, that means versions does not exist, we continue\n return true;\n }\n\n if (packageMeta.versions) {\n return Object.keys(packageMeta.versions).includes(packageVersion);\n }\n\n return false;\n}\n\n/**\n *\n * @category Model\n */\nexport const manifest = createModel<RootModel>()({\n state: {},\n reducers: {\n notFound(state) {\n return {\n ...state,\n hasNotBeenFound: true,\n forbidden: false,\n manifest: undefined,\n packageName: undefined,\n packageVersion: undefined,\n readme: undefined,\n };\n },\n forbidden(state) {\n return {\n ...state,\n forbidden: true,\n hasNotBeenFound: false,\n manifest: undefined,\n packageName: undefined,\n packageVersion: undefined,\n readme: undefined,\n };\n },\n clearError(state) {\n return {\n ...state,\n isError: null,\n };\n },\n isError(state) {\n return {\n ...state,\n isError: true,\n hasNotBeenFound: false,\n forbidden: false,\n manifest: undefined,\n packageName: undefined,\n packageVersion: undefined,\n readme: undefined,\n };\n },\n saveManifest(state, { packageName, packageVersion, manifest, readme }) {\n return {\n ...state,\n manifest,\n packageName,\n packageVersion,\n readme,\n hasNotBeenFound: false,\n forbidden: false,\n };\n },\n },\n effects: (dispatch) => ({\n async getManifest({ packageName, packageVersion }, state) {\n const basePath = stripTrailingSlash(state.configuration.config.base);\n try {\n const manifest: Manifest = await API.request(\n `${basePath}${APIRoute.SIDEBAR}${packageName}${\n packageVersion ? `?v=${packageVersion}` : ''\n }`\n );\n\n // FIXME: update types accordingly\n // @ts-ignore\n if (!isPackageVersionValid(manifest, packageVersion)) {\n throw new Error('not found');\n }\n\n const readme: string = await API.request<string>(\n `${basePath}${APIRoute.README}${packageName}${\n packageVersion ? `?v=${packageVersion}` : ''\n }`\n );\n dispatch.manifest.saveManifest({ packageName, packageVersion, manifest, readme });\n } catch (error: any) {\n if (error.code === 404) {\n dispatch.manifest.notFound();\n } else {\n dispatch.manifest.forbidden();\n }\n }\n },\n }),\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packages.js","names":["createModel","API","APIRoute","stripTrailingSlash","packages","state","response","reducers","savePackages","_objectSpread","effects","dispatch","getPackages","_payload","_asyncToGenerator","basePath","configuration","config","base","payload","request","concat","PACKAGES","error","console","title","message"],"sources":["../../../src/store/models/packages.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\n\nimport { Manifest } from '@verdaccio/types';\n\nimport type { RootModel } from '.';\nimport API from '../api';\nimport { APIRoute } from './routes';\nimport { stripTrailingSlash } from './utils';\n\n/**\n *\n * @category Model\n */\nexport const packages = createModel<RootModel>()({\n state: {\n response: [] as Manifest[],\n },\n reducers: {\n savePackages(state, response: Manifest[]) {\n return {\n ...state,\n response,\n };\n },\n },\n effects: (dispatch) => ({\n async getPackages(_payload, state) {\n const basePath = stripTrailingSlash(state.configuration.config.base);\n try {\n const payload: Manifest[] = await API.request(`${basePath}${APIRoute.PACKAGES}`);\n dispatch.packages.savePackages(payload);\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error({\n title: 'Warning',\n message: `Unable to load package list: ${error.message}`,\n });\n // TODO: handle error, display something retry or something\n }\n },\n }),\n});\n"],"mappings":";;;;;;;AAAA,SAASA,WAAW,QAAQ,eAAe;AAK3C,OAAOC,GAAG,MAAM,QAAQ;AACxB,SAASC,QAAQ,QAAQ,UAAU;AACnC,SAASC,kBAAkB,QAAQ,SAAS;;AAE5C;AACA;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAGJ,WAAW,CAAY,CAAC,CAAC;EAC/CK,KAAK,EAAE;IACLC,QAAQ,EAAE;EACZ,CAAC;EACDC,QAAQ,EAAE;IACRC,YAAYA,CAACH,KAAK,EAAEC,QAAoB,EAAE;MACxC,OAAAG,aAAA,CAAAA,aAAA,KACKJ,KAAK;QACRC;MAAQ;IAEZ;EACF,CAAC;EACDI,OAAO,EAAGC,QAAQ,KAAM;IAChBC,WAAWA,CAACC,QAAQ,EAAER,KAAK,EAAE;MAAA,OAAAS,iBAAA;QACjC,IAAMC,QAAQ,GAAGZ,kBAAkB,CAACE,KAAK,CAACW,aAAa,CAACC,MAAM,CAACC,IAAI,CAAC;QACpE,IAAI;UACF,IAAMC,OAAmB,SAASlB,GAAG,CAACmB,OAAO,IAAAC,MAAA,CAAIN,QAAQ,EAAAM,MAAA,CAAGnB,QAAQ,CAACoB,QAAQ,CAAE,CAAC;UAChFX,QAAQ,CAACP,QAAQ,CAACI,YAAY,CAACW,OAAO,CAAC;QACzC,CAAC,CAAC,OAAOI,KAAU,EAAE;UACnB;UACAC,OAAO,CAACD,KAAK,CAAC;YACZE,KAAK,EAAE,SAAS;YAChBC,OAAO,kCAAAL,MAAA,CAAkCE,KAAK,CAACG,OAAO;UACxD,CAAC,CAAC;UACF;QACF;MAAC;IACH;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","names":["APIRoute"],"sources":["../../../src/store/models/routes.ts"],"sourcesContent":["// Example API request:\n// http://localhost:8000/-/verdaccio/data/package/readme/jquery\nexport enum APIRoute {\n LOGIN = '/-/verdaccio/sec/login',\n CONFIG = '/-/verdaccio/packages',\n PACKAGES = '/-/verdaccio/data/packages',\n SEARCH = '/-/verdaccio/data/search/', // :value\n SIDEBAR = '/-/verdaccio/data/sidebar/', // :packageName?v=version\n README = '/-/verdaccio/data/package/readme/', // :packageName?v=version\n}\n"],"mappings":"AAAA;AACA;AACA,WAAYA,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","names":["createModel","orderBy","API","APIRoute","stripTrailingSlash","CONSTANTS","API_DELAY","ABORT_ERROR","search","state","suggestions","controller","reducers","clearRequestQueue","controllers","forEach","request","abort","_objectSpread","addControllerToQueue","_ref","currentControllers","setError","isError","saveSearch","_ref2","effects","dispatch","getSuggestions","_ref3","_asyncToGenerator","value","basePath","configuration","config","base","window","AbortController","signal","concat","SEARCH","encodeURIComponent","headers","orderedSuggestions","error","name"],"sources":["../../../src/store/models/search.ts"],"sourcesContent":["import { createModel } from '@rematch/core';\nimport orderBy from 'lodash/orderBy';\n\nimport { SearchResultWeb } from '@verdaccio/types';\n\nimport type { RootModel } from '.';\nimport API from '../api';\nimport { APIRoute } from './routes';\nimport { stripTrailingSlash } from './utils';\n\nconst CONSTANTS = {\n API_DELAY: 300,\n ABORT_ERROR: 'AbortError',\n};\n\ntype SearchState = {\n suggestions: SearchResultWeb[];\n controller: AbortController[];\n};\n\nexport const search = createModel<RootModel>()({\n state: {\n suggestions: [],\n controller: [],\n } as SearchState,\n reducers: {\n clearRequestQueue(state) {\n const controllers = state.controller;\n controllers.forEach((request) => {\n request?.abort();\n });\n return {\n ...state,\n controller: [],\n };\n },\n addControllerToQueue(state, { controller }: { controller: AbortController }) {\n const currentControllers = state.controller;\n return {\n ...state,\n controller: [...currentControllers, controller],\n };\n },\n setError(state) {\n return {\n ...state,\n isError: true,\n };\n },\n saveSearch(state, { suggestions }: { suggestions: SearchResultWeb[] }) {\n return {\n ...state,\n suggestions,\n isError: null,\n };\n },\n },\n effects: (dispatch) => ({\n async getSuggestions({ value }, state) {\n const basePath = stripTrailingSlash(state.configuration.config.base);\n try {\n const controller = new window.AbortController();\n dispatch.search.addControllerToQueue({ controller });\n const signal = controller.signal;\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API#Browser_compatibility\n // FUTURE: signal is not well supported for IE and Samsung Browser\n const suggestions: SearchResultWeb[] = await API.request(\n `${basePath}${APIRoute.SEARCH}${encodeURIComponent(value)}`,\n 'GET',\n {\n signal,\n headers: {},\n }\n );\n const orderedSuggestions = orderBy(suggestions, ['verdaccioPrivate'], ['desc']);\n dispatch.search.saveSearch({\n suggestions: orderedSuggestions,\n });\n } catch (error: any) {\n if (error.name === CONSTANTS.ABORT_ERROR) {\n dispatch.search.saveSearch({ suggestions: [] });\n } else {\n dispatch.search.setError();\n }\n }\n },\n }),\n});\n"],"mappings":"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","ignoreList":[]}
|