Wire the password-confirmation interceptors into the recommendedapps
entry point and switch the installer to a single bulk enable call so
the strict password confirmation on enableApps is satisfied.
Fixes#60068
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Covers the main logic paths: supported browser (no redirect), unsupported
browser (redirect with btoa-encoded URL), already on the warning page
(no double redirect), and a no-throw guard that would have caught the
window.Buffer regression.
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
window.Buffer is a Node.js API that is not natively available in browsers.
It was apparently polyfilled in the webpack bundle by a dependency, but
the polyfill is absent in environments like headless Electron (Cypress).
This went undetected because browserslist-useragent-regexp < 4.1.4 had a
bug where an empty browser set produced /(?:)/ (matches everything). Electron
matched as "supported" and the redirect code was never reached.
browserslist-useragent-regexp 4.1.4 fixed that bug (PR #1583: faithfully
match an empty set of browsers), generating /[]/ instead. Electron 118 no
longer matches as supported, the redirect path is now exercised, and
window.Buffer.from() throws:
TypeError: Cannot read properties of undefined (reading 'from')
The fix replaces window.Buffer.from(str).toString('base64') with the
native browser btoa(str), which has been universally available since
before our minimum browser support baseline and requires no polyfill.
Fixes: #57920
Signed-off-by: Anna Larch <anna@nextcloud.com>
Global Handlebars have been deprecated since Nextcloud 19.
We do not use them anymore and all integrations were removed with
Nextcloud 34. So its time to also remove the globals and thus the
dependency.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
"jQuery is deprecated and will be removed with Nextcloud 19"
Well... At least it is removed now 😉
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
It is deprecated since 29.0.0.
Instead use `openConflictPicker` from the `@nextcloud/upload` (Vue 2).
Or from `@nextcloud/dialogs` (every other framework like Vue 3 etc).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This feature was not used in 8 years and from frontend did not even
properly work anymore and was implemented using deprecated API.
So get rid of it.
The last version that was using a changelog from the changelog server
was Nextcloud 20.
We use the firstrunwizard nowadays for informing about Nextcloud
changes in new releases.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The XHR error handling was duplicated, as we already handle this in
`core/src/init.js` where we intercept Fetch API and XHR API.
So we can drop this jQuery specific duplicate.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Make the class jQuery free to be able to drop it as a dependency.
Also added some unit tests for it.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The API was not yet deprecated but is not used anymore,
so 1. added a deprecation so we can get rid of it in the future.
But until then we need to drop jQuery so refactored the code to use
vanilla JS.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>