mirror of
https://github.com/remnawave/frontend.git
synced 2026-05-13 12:16:40 +00:00
chore: bump version to 2.5.7 and update dependencies in package.json and package-lock.json; add generic OAuth2 support in authentication settings
This commit is contained in:
parent
dd4f8de599
commit
c0803acaa2
4 changed files with 172 additions and 110 deletions
182
package-lock.json
generated
182
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@remnawave/frontend",
|
||||
"version": "2.5.6",
|
||||
"version": "2.5.7",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@remnawave/frontend",
|
||||
"version": "2.5.6",
|
||||
"version": "2.5.7",
|
||||
"license": "AGPL-3.0-only",
|
||||
"dependencies": {
|
||||
"@dnd-kit/core": "^6.3.1",
|
||||
|
|
@ -15,27 +15,27 @@
|
|||
"@dnd-kit/sortable": "^10.0.0",
|
||||
"@dnd-kit/utilities": "^3.2.2",
|
||||
"@formkit/auto-animate": "^0.9.0",
|
||||
"@gfazioli/mantine-list-view-table": "1.2.0",
|
||||
"@gfazioli/mantine-split-pane": "^2.5.7",
|
||||
"@gfazioli/mantine-text-animate": "^2.3.10",
|
||||
"@gfazioli/mantine-list-view-table": "1.2.1",
|
||||
"@gfazioli/mantine-split-pane": "^2.5.8",
|
||||
"@gfazioli/mantine-text-animate": "^2.3.11",
|
||||
"@highcharts/react": "4.1.0",
|
||||
"@lukemorales/query-key-factory": "^1.3.4",
|
||||
"@mantine/carousel": "^8.3.12",
|
||||
"@mantine/charts": "^8.3.12",
|
||||
"@mantine/code-highlight": "^8.3.12",
|
||||
"@mantine/core": "^8.3.12",
|
||||
"@mantine/dates": "^8.3.12",
|
||||
"@mantine/dropzone": "^8.3.12",
|
||||
"@mantine/form": "^8.3.12",
|
||||
"@mantine/hooks": "^8.3.12",
|
||||
"@mantine/modals": "^8.3.12",
|
||||
"@mantine/notifications": "^8.3.12",
|
||||
"@mantine/nprogress": "^8.3.12",
|
||||
"@mantine/spotlight": "^8.3.12",
|
||||
"@mantine/carousel": "^8.3.13",
|
||||
"@mantine/charts": "^8.3.13",
|
||||
"@mantine/code-highlight": "^8.3.13",
|
||||
"@mantine/core": "^8.3.13",
|
||||
"@mantine/dates": "^8.3.13",
|
||||
"@mantine/dropzone": "^8.3.13",
|
||||
"@mantine/form": "^8.3.13",
|
||||
"@mantine/hooks": "^8.3.13",
|
||||
"@mantine/modals": "^8.3.13",
|
||||
"@mantine/notifications": "^8.3.13",
|
||||
"@mantine/nprogress": "^8.3.13",
|
||||
"@mantine/spotlight": "^8.3.13",
|
||||
"@monaco-editor/react": "^4.7.0",
|
||||
"@noble/post-quantum": "^0.5.4",
|
||||
"@paralleldrive/cuid2": "3.0.6",
|
||||
"@remnawave/backend-contract": "2.5.13",
|
||||
"@remnawave/backend-contract": "2.5.20",
|
||||
"@remnawave/subscription-page-types": "0.4.0",
|
||||
"@simplewebauthn/browser": "^13.2.2",
|
||||
"@stablelib/base64": "^2.0.1",
|
||||
|
|
@ -1734,9 +1734,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@gfazioli/mantine-list-view-table": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@gfazioli/mantine-list-view-table/-/mantine-list-view-table-1.2.0.tgz",
|
||||
"integrity": "sha512-WSD5MlZmfuElHLJfJTmghXPUd3tZrKRYfJsT3thtzvN5QYd4QCAw5vgJQZ88WBrq8aHIF1N9TvRXDx3elMPjEw==",
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@gfazioli/mantine-list-view-table/-/mantine-list-view-table-1.2.1.tgz",
|
||||
"integrity": "sha512-wrnaKeHmYCpUf1OZeObAiwzGyffR51IIsYqDOcKCl9G3jx/gQpDG4DigwPblLHjovC1ccZWFfOl+mKXwvoqZyw==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@mantine/core": ">=7.0.0",
|
||||
|
|
@ -1747,9 +1747,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@gfazioli/mantine-split-pane": {
|
||||
"version": "2.5.7",
|
||||
"resolved": "https://registry.npmjs.org/@gfazioli/mantine-split-pane/-/mantine-split-pane-2.5.7.tgz",
|
||||
"integrity": "sha512-2wZMwMGiEpNS9e2TcKpWMRob+tR1MSbaKC3vWkLknnMPJXwP7n3oZMM6hos7tsAVLXnIqMoyDE3OBomOyqrUGA==",
|
||||
"version": "2.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@gfazioli/mantine-split-pane/-/mantine-split-pane-2.5.8.tgz",
|
||||
"integrity": "sha512-t84HrbH7FGiFbG50fOQGo0T705OSWPVpp0HWfi8+YYKBYcgn6zcSMiWYEdo08h72By2B2x1RMyQPZI4xX9Nhbg==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@mantine/core": ">=7.0.0",
|
||||
|
|
@ -1759,9 +1759,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@gfazioli/mantine-text-animate": {
|
||||
"version": "2.3.10",
|
||||
"resolved": "https://registry.npmjs.org/@gfazioli/mantine-text-animate/-/mantine-text-animate-2.3.10.tgz",
|
||||
"integrity": "sha512-2mN/0dN6NteRNdMEC7wKkycJPwTfSO0MoNBzf00tDUk8sBeMQkV+f4bRLw0F7Z0MnbjSafh1bolzdS0uwKvYRw==",
|
||||
"version": "2.3.11",
|
||||
"resolved": "https://registry.npmjs.org/@gfazioli/mantine-text-animate/-/mantine-text-animate-2.3.11.tgz",
|
||||
"integrity": "sha512-ff8iD/xnyW+sLQz90e0fNRIBzZCnL7C/81j/6997ElQFJTvRA+VMMq7aAntqZoeHmmJ+ZvHyDA7MTS7Lofc4zw==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@mantine/core": ">=7.0.0",
|
||||
|
|
@ -2488,13 +2488,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@mantine/carousel": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/carousel/-/carousel-8.3.12.tgz",
|
||||
"integrity": "sha512-c5vw3H1QBxCMBuiv473LdWFa5MdcaZa2DOMcXrPeIGxSFnkaZGag9sDL/oHN1OiOVNlNfaD+WQZGeAcixjwong==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/carousel/-/carousel-8.3.13.tgz",
|
||||
"integrity": "sha512-EQQi3yO1MUZzlM3Zvm3/5x7RFwNVmpn1cKTGoknuWXhnadZmuuuknjM4eH/STF1/5AZgteoQuIwIPMQ6B6ndNg==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"embla-carousel": ">=8.0.0",
|
||||
"embla-carousel-react": ">=8.0.0",
|
||||
"react": "^18.x || ^19.x",
|
||||
|
|
@ -2502,37 +2502,37 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@mantine/charts": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-8.3.12.tgz",
|
||||
"integrity": "sha512-IOPlbw6MTR0xFhqYtcky4hYoN77q4O2fxepcR5UgVW2kE0Ucae+Ln+TgOcpwFYZgvretSbyYDIBhmZoJ8z0ceQ==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-8.3.13.tgz",
|
||||
"integrity": "sha512-f96IgQQlUril/U6ZbWeebmU90GJglrZJzrVHWyxTpr9kYY72BU6mkqpvzB+/vLrNz+m6SBbV/OO9WIgZNfKA9Q==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x",
|
||||
"recharts": ">=2.13.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/code-highlight": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/code-highlight/-/code-highlight-8.3.12.tgz",
|
||||
"integrity": "sha512-JVR1uAlmni/q7IhjVwZmOjsjHabVuEqQ+l1/bNGsNTOjzlq/Z2Bzats6eYn5M3Y51PrHHcTOaf9piVWL4M83XQ==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/code-highlight/-/code-highlight-8.3.13.tgz",
|
||||
"integrity": "sha512-AEFZ8TVu9A2yjllDz+Yodz5r6o5KX1p1B+9xDa97UXbYGxojJQI0V5Obh8Hyi8o1MAAZ/z1YaE7XznpYwQJjQg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"clsx": "^2.1.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/core": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.3.12.tgz",
|
||||
"integrity": "sha512-bDEoUl4SneltfI1GeEaBk6BVDbLuB/w15YwseAmUvc8ldAbNcsVhxKxY/BdhwqUo6O3L2vhdlb3WwxR1y8741g==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.3.13.tgz",
|
||||
"integrity": "sha512-ZgW4vqN4meaPyIMxzAufBvsgmJRfYZdTpsrAOcS8pWy7m9e8i685E7XsAxnwJCOIHudpvpvt+7Bx7VaIjEsYEw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@floating-ui/react": "^0.27.16",
|
||||
|
|
@ -2543,46 +2543,46 @@
|
|||
"type-fest": "^4.41.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/dates": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-8.3.12.tgz",
|
||||
"integrity": "sha512-rL2kYJRTrU29l1KjQt5bdUweiZuJs3DjiIcc6VGHUuj7OwfYZbEpWzMbcu8fSrya/+kZAe8JM0irX22CjmsDGw==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-8.3.13.tgz",
|
||||
"integrity": "sha512-Fk3k9oUENQQwU2cb1Ir2Q3J17emkYvW8xWaAF3nZC0PEF4KddY/p8bhF4NCxhsRjkvtEJiaAWlEq+6LF6hNxDA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"clsx": "^2.1.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"dayjs": ">=1.0.0",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/dropzone": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-8.3.12.tgz",
|
||||
"integrity": "sha512-XlxCEztP3xTa45jMkMN7H7FyDa5uJq9009HRBpa+OT+JEqnGV8sbdlH1XjTrm8zYudKjS6A7hGVYa2MEcKUJ1w==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/dropzone/-/dropzone-8.3.13.tgz",
|
||||
"integrity": "sha512-C385tppF6zdaheYrXsClHXm+5PcLcjcAPbny6KiZPZySpm5B2IylrD8f1Ew9ivLk+M/2WZ05MTil+hGdoN485A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"react-dropzone": "14.3.8"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/form": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/form/-/form-8.3.12.tgz",
|
||||
"integrity": "sha512-bjXL1Ah3lAZYHrjrF37FeHV8DFGeXV+apn0PRQw2MTLpdUSqKsiYIDDgugzRfNXWX1cn1ELtxtDXsMfdj/LI7Q==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/form/-/form-8.3.13.tgz",
|
||||
"integrity": "sha512-P7Avh24QiL8V517Jxj8JuUbCuSOA1BjwTB8/htH92cRmLoJtWn4ycZYE7ks8v3Hrg8fpd0Xd2O5o9R4+bXwD/A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
|
|
@ -2593,76 +2593,76 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@mantine/hooks": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.12.tgz",
|
||||
"integrity": "sha512-lMMDzDewd3lUNtJCAHDj3g8On9X5aBl4q6EBwgOixKQSby9RG9ASEpK8oYHundHTm9tzo3MDeXWV/z32oSQWuw==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.3.13.tgz",
|
||||
"integrity": "sha512-7YMbMW/tR9E8m/9DbBW01+3RNApm2mE/JbRKXf9s9+KxgbjQvq0FYGWV8Y4+Sjz48AO4vtWk2qBriUTgBMKAyg==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"react": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/modals": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-8.3.12.tgz",
|
||||
"integrity": "sha512-+uRyGe2lLy601qlMk+8aR9d/Aibu+dZi6Jcmvm5z8Gw4ocviyMMlnd8BLSQ/Jvib2OX8fWj+yUQN7FMQ4Rbwjw==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-8.3.13.tgz",
|
||||
"integrity": "sha512-5jIRJKEupQerHfPGcPHgQk+J6dGBO7spC66VgEZqCNRpbWhowCxBNGEW5LN1hZE9sLYBJg+z2MazPws4A1GohQ==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/notifications": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-8.3.12.tgz",
|
||||
"integrity": "sha512-lqPPa11XdcndG8ywMao8yVkMA4jg/pBNbS85bR7OwHQa1yUftmfVlqJl9PZZCiWLX2AgKY3+xM5dHo4LidL+DA==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-8.3.13.tgz",
|
||||
"integrity": "sha512-VgQwA3C4NbjguobobFnqqQyKBWXOfzM8BES1LIX9EyzMwsvGAlShJHrF9/yLS0Jqf5DiZi4L8hxL3wcmmbnljA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@mantine/store": "8.3.12",
|
||||
"@mantine/store": "8.3.13",
|
||||
"react-transition-group": "4.4.5"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/nprogress": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/nprogress/-/nprogress-8.3.12.tgz",
|
||||
"integrity": "sha512-uj7Xuy7zJ85zka+BWaztBK3y7FrwjwrthVfDn8tUhX3jqwG++G+OHhwJx65BDnYt6bbi2n7XDhFi6PDdIJg47Q==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/nprogress/-/nprogress-8.3.13.tgz",
|
||||
"integrity": "sha512-itDLHIAbjPWjKrRgoCyf39vXoxEwgHb6gzDjKV0LSaVsHkWT1Mdvm9VB7qlNnRnvf/mxKSMe2mtLaSiHNnCC7A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@mantine/store": "8.3.12"
|
||||
"@mantine/store": "8.3.13"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/spotlight": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/spotlight/-/spotlight-8.3.12.tgz",
|
||||
"integrity": "sha512-ujj3C/Mzdt20dVDBfUt0sJ+Re/DsLWN9mgef00TchbRtSbPfGJEZDkOeytsKEeUk3BDP3gC6nFilehf+Vkzevg==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/spotlight/-/spotlight-8.3.13.tgz",
|
||||
"integrity": "sha512-EaWzjA/HlNEu7YisLVTTztFmNtfDJ1Q3/ziZxfpv476vxxjwjLMnjvcRA9E6duACxTUNZZaMDDJNAtVRa48Qiw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@mantine/store": "8.3.12"
|
||||
"@mantine/store": "8.3.13"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@mantine/core": "8.3.12",
|
||||
"@mantine/hooks": "8.3.12",
|
||||
"@mantine/core": "8.3.13",
|
||||
"@mantine/hooks": "8.3.13",
|
||||
"react": "^18.x || ^19.x",
|
||||
"react-dom": "^18.x || ^19.x"
|
||||
}
|
||||
},
|
||||
"node_modules/@mantine/store": {
|
||||
"version": "8.3.12",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/store/-/store-8.3.12.tgz",
|
||||
"integrity": "sha512-EC4eIKpm5s7neMbBrWsP6jGKLqrzHf63Ao3penYr7fn25dFXdbXZYw+IG8GYzxOC4yG61b2zTS+bpy5+vwzXpw==",
|
||||
"version": "8.3.13",
|
||||
"resolved": "https://registry.npmjs.org/@mantine/store/-/store-8.3.13.tgz",
|
||||
"integrity": "sha512-pnHHwiffGfaqLFxuyJIuU1P6+3zOd7bfBRVFFzIEDyUbPJs7dmVUFt31bry5FokrBfCjNWyg2XfyAQqIwd2LLA==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"react": "^18.x || ^19.x"
|
||||
|
|
@ -2832,9 +2832,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@remnawave/backend-contract": {
|
||||
"version": "2.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@remnawave/backend-contract/-/backend-contract-2.5.13.tgz",
|
||||
"integrity": "sha512-yMq6yyeXIvFhRYYZecGuZkqSjO5g+QWHcVVR0nJcbct2BUJvty74SozGwO64PHlWXRqPqkqEcJpOsss3tfNLjg==",
|
||||
"version": "2.5.20",
|
||||
"resolved": "https://registry.npmjs.org/@remnawave/backend-contract/-/backend-contract-2.5.20.tgz",
|
||||
"integrity": "sha512-BffNHR5SIiR34ixxmtiS37JcNmmF6KGeGjw2Zq2M0Hz/sCaQz8l8JTNqClYr4Dr9Qp1MEhRHFh6rsUxbWiEFgA==",
|
||||
"license": "AGPL-3.0-only",
|
||||
"dependencies": {
|
||||
"zod": "3.25.76"
|
||||
|
|
|
|||
34
package.json
34
package.json
|
|
@ -2,7 +2,7 @@
|
|||
"name": "@remnawave/frontend",
|
||||
"private": false,
|
||||
"type": "module",
|
||||
"version": "2.5.6",
|
||||
"version": "2.5.7",
|
||||
"license": "AGPL-3.0-only",
|
||||
"author": "REMNAWAVE <github.com/remnawave>",
|
||||
"homepage": "https://github.com/remnawave",
|
||||
|
|
@ -39,27 +39,27 @@
|
|||
"@dnd-kit/sortable": "^10.0.0",
|
||||
"@dnd-kit/utilities": "^3.2.2",
|
||||
"@formkit/auto-animate": "^0.9.0",
|
||||
"@gfazioli/mantine-list-view-table": "1.2.0",
|
||||
"@gfazioli/mantine-split-pane": "^2.5.7",
|
||||
"@gfazioli/mantine-text-animate": "^2.3.10",
|
||||
"@gfazioli/mantine-list-view-table": "1.2.1",
|
||||
"@gfazioli/mantine-split-pane": "^2.5.8",
|
||||
"@gfazioli/mantine-text-animate": "^2.3.11",
|
||||
"@highcharts/react": "4.1.0",
|
||||
"@lukemorales/query-key-factory": "^1.3.4",
|
||||
"@mantine/carousel": "^8.3.12",
|
||||
"@mantine/charts": "^8.3.12",
|
||||
"@mantine/code-highlight": "^8.3.12",
|
||||
"@mantine/core": "^8.3.12",
|
||||
"@mantine/dates": "^8.3.12",
|
||||
"@mantine/dropzone": "^8.3.12",
|
||||
"@mantine/form": "^8.3.12",
|
||||
"@mantine/hooks": "^8.3.12",
|
||||
"@mantine/modals": "^8.3.12",
|
||||
"@mantine/notifications": "^8.3.12",
|
||||
"@mantine/nprogress": "^8.3.12",
|
||||
"@mantine/spotlight": "^8.3.12",
|
||||
"@mantine/carousel": "^8.3.13",
|
||||
"@mantine/charts": "^8.3.13",
|
||||
"@mantine/code-highlight": "^8.3.13",
|
||||
"@mantine/core": "^8.3.13",
|
||||
"@mantine/dates": "^8.3.13",
|
||||
"@mantine/dropzone": "^8.3.13",
|
||||
"@mantine/form": "^8.3.13",
|
||||
"@mantine/hooks": "^8.3.13",
|
||||
"@mantine/modals": "^8.3.13",
|
||||
"@mantine/notifications": "^8.3.13",
|
||||
"@mantine/nprogress": "^8.3.13",
|
||||
"@mantine/spotlight": "^8.3.13",
|
||||
"@monaco-editor/react": "^4.7.0",
|
||||
"@noble/post-quantum": "^0.5.4",
|
||||
"@paralleldrive/cuid2": "3.0.6",
|
||||
"@remnawave/backend-contract": "2.5.13",
|
||||
"@remnawave/backend-contract": "2.5.20",
|
||||
"@remnawave/subscription-page-types": "0.4.0",
|
||||
"@simplewebauthn/browser": "^13.2.2",
|
||||
"@stablelib/base64": "^2.0.1",
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { TOAuth2ProvidersKeys } from '@remnawave/backend-contract'
|
|||
import { BiLogoGithub } from 'react-icons/bi'
|
||||
import { Button, Stack } from '@mantine/core'
|
||||
import { SiKeycloak } from 'react-icons/si'
|
||||
import { TbKey } from 'react-icons/tb'
|
||||
import { useState } from 'react'
|
||||
|
||||
import { useOAuth2Authorize } from '@shared/api/hooks'
|
||||
|
|
@ -117,6 +118,19 @@ export const OAuth2LoginButtonsFeature = (props: IProps) => {
|
|||
Keycloak
|
||||
</Button>
|
||||
)}
|
||||
|
||||
{authentication.oauth2.providers.generic && (
|
||||
<Button
|
||||
color="#000000"
|
||||
leftSection={<TbKey size={20} />}
|
||||
loaderProps={{ type: 'dots' }}
|
||||
loading={loadingProvider === 'generic'}
|
||||
onClick={() => handleOAuth2Login('generic')}
|
||||
variant="filled"
|
||||
>
|
||||
OAuth2
|
||||
</Button>
|
||||
)}
|
||||
</Stack>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import {
|
|||
GetRemnawaveSettingsCommand,
|
||||
UpdateRemnawaveSettingsCommand
|
||||
} from '@remnawave/backend-contract'
|
||||
import { TbAlertCircle, TbFingerprint, TbPassword, TbServer } from 'react-icons/tb'
|
||||
import { TbAlertCircle, TbFingerprint, TbKey, TbPassword, TbServer } from 'react-icons/tb'
|
||||
import { BiLogoGithub, BiLogoTelegram } from 'react-icons/bi'
|
||||
import { zodResolver } from 'mantine-form-zod-resolver'
|
||||
import { PiGlobe, PiKey } from 'react-icons/pi'
|
||||
|
|
@ -29,6 +29,7 @@ import { TFunction } from 'i18next'
|
|||
import { PasskeysDrawerComponent } from '@widgets/remnawave-settings/passkeys-settings-drawer/passkeys-drawer.component'
|
||||
import { useUpdateRemnawaveSettings } from '@shared/api/hooks/remnawave-settings/remnawave-settings.mutation.hooks'
|
||||
import { HelpActionIconShared, THelpDrawerAvailableScreen } from '@shared/ui/help-drawer'
|
||||
import { CheckboxCardShared } from '@shared/ui/checkbox-card/checkbox-card.shared'
|
||||
import { BaseOverlayHeader } from '@shared/ui/overlays/base-overlay-header'
|
||||
import { SettingsCardShared } from '@shared/ui/settings-card'
|
||||
import { PocketidLogo, YandexLogo } from '@shared/ui/logos'
|
||||
|
|
@ -83,6 +84,21 @@ const getOAuth2ProvidersConfig = () =>
|
|||
'keycloakDomain',
|
||||
'allowedEmails'
|
||||
] as const
|
||||
},
|
||||
{
|
||||
key: 'generic' as const,
|
||||
title: 'Generic OAuth2',
|
||||
icon: <TbKey size={24} />,
|
||||
iconColor: '#000000',
|
||||
fields: [
|
||||
'clientId',
|
||||
'clientSecret',
|
||||
'frontendDomain',
|
||||
'authorizationUrl',
|
||||
'tokenUrl',
|
||||
'allowedEmails',
|
||||
'withPkce'
|
||||
] as const
|
||||
}
|
||||
] as const
|
||||
|
||||
|
|
@ -129,6 +145,24 @@ const getFieldConfig = (t: TFunction) =>
|
|||
description: t('auth-settings.fields.keycloakDomain.description'),
|
||||
placeholder: 'keycloak.docs.rw',
|
||||
type: 'text' as const
|
||||
},
|
||||
authorizationUrl: {
|
||||
label: 'Authorization URL',
|
||||
description: 'Authorization URL for the OAuth2 provider',
|
||||
placeholder: 'https://example.com/oauth2/authorize',
|
||||
type: 'text' as const
|
||||
},
|
||||
tokenUrl: {
|
||||
label: 'Token URL',
|
||||
description: 'Token URL for the OAuth2 provider',
|
||||
placeholder: 'https://example.com/oauth2/token',
|
||||
type: 'text' as const
|
||||
},
|
||||
withPkce: {
|
||||
label: 'With PKCE',
|
||||
description: '',
|
||||
placeholder: 'false',
|
||||
type: 'checkbox' as const
|
||||
}
|
||||
}) as const
|
||||
|
||||
|
|
@ -161,7 +195,8 @@ export const AuthentificationSettingsCardWidget = (props: IProps) => {
|
|||
github: oauth2Settings.github,
|
||||
pocketid: oauth2Settings.pocketid,
|
||||
yandex: oauth2Settings.yandex,
|
||||
keycloak: oauth2Settings.keycloak
|
||||
keycloak: oauth2Settings.keycloak,
|
||||
generic: oauth2Settings.generic
|
||||
},
|
||||
tgAuthSettings: {
|
||||
enabled: tgAuthSettings.enabled,
|
||||
|
|
@ -300,6 +335,19 @@ export const AuthentificationSettingsCardWidget = (props: IProps) => {
|
|||
)
|
||||
}
|
||||
|
||||
if (fieldConfig.type === 'checkbox') {
|
||||
return (
|
||||
<CheckboxCardShared
|
||||
description={fieldConfig.description}
|
||||
key={form.key(formPath)}
|
||||
label={fieldConfig.label}
|
||||
{...form.getInputProps(formPath, {
|
||||
type: 'checkbox'
|
||||
})}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<TextInput
|
||||
description={fieldConfig.description}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue