Skip to content

fix(deps): update nextcloud (master) (major) - #3239

Merged
skjnldsv merged 5 commits into
masterfrom
renovate/master-major-nextcloud
Jul 17, 2026
Merged

fix(deps): update nextcloud (master) (major)#3239
skjnldsv merged 5 commits into
masterfrom
renovate/master-major-nextcloud

Conversation

@renovate

@renovate renovate Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@nextcloud/eslint-config ^8.4.2^9.0.1 age confidence
@nextcloud/vite-config ^1.5.6^2.5.4 age confidence
@nextcloud/vue ^8.37.0^9.9.0 age confidence

Release Notes

nextcloud-libraries/eslint-config (@​nextcloud/eslint-config)

v9.0.1

Compare Source

Fixed
  • fix(vue): error on vue/attributes-order and vue/order-in-components instead of warn #​1445 (susnux)
  • fix: no-deprecated-library-* rules incorrectly behave for nextcloud/vue syntax #​1452 (Antreesy)
  • fix(no-deprecated-library-props): support win32 filesystem and different @nextcloud/vue directory structures #​1454 (ShGKme)
  • fix(no-deprecated-library-props): support camelCase attributes #​1453 (Antreesy)
  • fix: increase min. Node version to 22.14 #​1455 (susnux)

v9.0.0

Compare Source

Breaking

This package now is using ESLint v10 and requires ESLint flat configurations.
Please refer to the README on how to adjust your configuration for flat config.

Potential pitfalls

Some of the used eslint plugins still keep a ESLint v8 compatibility,
this can cause some issues if not all packages are updated to the ESLint v10 compatible version.

If you see a linter error like the one below make sure to update all nested dependencies,
either using the sledge hammer method (remove the lock file and run npm i) or by running npm update.

TypeError: scopeManager.addGlobals is not a function

Added
  • feat: migrate to ESLint v10 #​1323 (susnux)
  • feat: new modular config for (and with) ESLint v9 support #​887
  • feat: merge plugin repository #​899
  • feat: enforce non-breaking spaces before ellipsis for translations #​948
  • feat: add special config for libraries #​949
  • feat: add import and export rules #​981
  • feat: introduce @​nextcloud/vue eslint plugin #​939
  • feat(codeStyle): enforce top-level-function #​1033 (ShGKme)
  • feat(nextcloud-vue): add rule for deprecated NcButton props #​1045 (susnux)
  • feat(vue): add vue/no-useless-v-bind rule #​1063 (susnux)
  • feat(vue): add vue/prefer-separate-static-class rule #​1065 (susnux)
  • feat(vue3): add script-setup releated rules #​1064 (susnux)
  • feat(no-deprecated-props): extend existing rules to support other components #​1069 (Antreesy)
  • feat(imports): add custom plugin to suggest file extensions #​1110 (susnux)
  • feat(filesystem): ignore all files within the .gitignore #​1108 (susnux)
  • feat(l10n-plugin): also handle vue templates #​1113 (susnux)
  • feat(nextcloud-vue-plugin): deprecate additional props #​1163 (Antreesy)
  • feat(nextcloud-vue-plugin): deprecate additional exports #​1162 (Antreesy)
  • feat(nextcloud-vue-plugin): deprecate NcPopover props #​1165 (Antreesy)
  • feat(vue): add vue/component-options-name-casing with PascalCase #​1261 (ShGKme)
  • feat(vue3): force camelCase for events in <script> #​1262 (ShGKme)
  • feat(vue3): force camelCase for events in <template> #​1263 (ShGKme)
  • feat(vue3): force camelCase for slot names #​1264 (ShGKme)
  • feat(vue3): force camelCase for props in template #​1266 (ShGKme)
  • feat(import): enforce consistent types imports and ban usage of inline type specifiers #​1382 (susnux)
Fixed
  • fix(codestyle): do not require splitting chains #​951
  • fix(codestyle): adjust empty lines style #​952
  • fix(codestyle): Enforce no space before function parenthesis #​901
  • fix(codeStyle): Adjust stylistic rules config #​914
  • fix(codeStyle): allow single line arrays #​997
  • fix(codeStyle): allow devs write small objects in one line #​996
  • fix(globs): properly ignore test files #​974
  • fix(imports): do not mix externals and internals #​1000
  • fix(javascript): allow using functions before they are defined #​970
  • fix(javascript): add missing appName and appVersion global + fix access #​972
  • fix(typescript): allow to use function before definition #​950
  • fix(typescript): remove @typescript-eslint/no-shadow #​993
  • fix(typescript): enforce import type for type only imports #​977
  • fix(vue): allow JS Vue files #​998 (ShGKme)
  • fix(documentation): do not remove JSDoc types in Vue JS files #​995 (ShGKme)
  • fix(typescript): allow import in type annotation #​1034 (ShGKme)
  • fix(documentation): do not lint tests for documentation issues #​1062 (susnux)
  • fix: ignore l10n and js directory for apps #​1061 (susnux)
  • fix(imports): do not mix externals and internals #​1000 (ShGKme)
  • fix(codeStyle): allow single line arrays #​997 (ShGKme)
  • fix(typescript): remove @typescript-eslint/no-shadow #​993 (ShGKme)
  • fix(codeStyle): allow devs write small objects in one line #​996 (ShGKme)
  • fix: ignore test report directories from linting #​1096 (Antreesy)
  • fix(vue): also ignore the global router link component #​1097 (susnux)
  • fix(no-deprecated-props): respect nextcloud/vue library version for the rule #​1084 (Antreesy)
  • fix(codestyle): replace deprecated config in @stylistic/quotes rule #​1109 (susnux)
  • fix(l10n-plugin): also check translation strings in n method #​1112 (susnux)
  • fix(filesystem): relax ignored files #​1114 (susnux)
  • fix(globs): adjust globs for test related files #​1128 (susnux)
  • fix(vue): use vue variant of no-irregular-whitespace #​1129 (susnux)
  • fix(nextcloud): add missing deprecations and removals #​1206 (susnux)
  • fix(plugin:nextcloud-vue): use resolved dependency for detecting nextcloud-vue version #​1220 (susnux)
  • fix: switch to @stylistic/exp-list-style to resolve array edge-cases #​1203 (susnux)
  • fix(nextcloud-plugin): add more removed API in Nextcloud 33 #​1269 (susnux)
  • fix: use vue-eslint-parser directly #​1277 (susnux)
  • fix(imports): no newline inside import statements #​1379 (max-nextcloud)
Changed
  • Add SPDX header #​802
  • Updated development dependencies
  • refactor(json): drop now unneeded @ts-expect-error #​915
  • refactor: use camelCase for internal variables #​971 (susnux)
  • chore: do not bundle config but just use Typescript #​967
  • chore: require node ^20.19 #​982
  • chore: remove EOL Node version and add new future LTS #​1381 (susnux)
  • chore: allow to run npm lint without compile step #​975 (susnux)
  • chore: prepare v9.0.0-rc.1 #​1010 (susnux)
  • docs: consistent badge style with the reuse one #​1060 (susnux)
  • docs: add documentation about update policy and development #​1009 (susnux)
  • test: fix tests and add workflow to run them on CI #​1046 (susnux)
  • ci: update workflows from organization #​1047 (susnux)
  • chore: add active node version (24) to supported engines #​1066 (susnux)
  • build: add common changelog formatting and documentation for it #​1067 (susnux)
  • chore: lint this project as a library #​1130 (susnux)
  • chore: update devEngines to align with apps #​1204 (susnux)
  • build: disable libcheck for Typescript #​1205 (susnux)
  • chore(gitignore): ignore IDE configs #​1265 (ShGKme)
  • test(vue3): add some formatting tests #​1267 (ShGKme)
  • refactor: merge Nextcloud specific rules into the @nextcloud plugin #​1278 (susnux)
  • Updated @eslint/json to 2.0.0
  • Updated @stylistic/eslint-plugin to 5.7.0
  • Updated eslint-config-flat-gitignore to 2.1.0
  • Updated eslint-plugin-antfu to 3.2.3
  • Updated eslint-plugin-jsdoc to 63.0.4
  • Updated eslint-plugin-perfectionist to 5.9.1
  • Updated eslint-plugin-vue to 10.9.2
  • Updated fast-xml-parser to 5.9.0
  • Updated globals to 17.7.0
  • Updated semver to 7.8.4
  • Updated sort-package-json to 4.0.0
  • Updated typescript-eslint to 8.62.0
nextcloud-libraries/nextcloud-vite-config (@​nextcloud/vite-config)

v2.5.4

Compare Source

What's Changed

Other changes

Full Changelog: nextcloud-libraries/nextcloud-vite-config@v2.5.3...v2.5.4

v2.5.3

Compare Source

v2.5.3 (2026-06-30)

v2.5.2

Compare Source

🐛 Fixed bugs
  • fix(REUSE): also add correct license headers for facade chunks #​736 (susnux)
Other changes
  • Updated development dependencies

v2.5.1

Compare Source

🐛 Fixed bugs
Other changes
  • chore(deps): Bump rollup-plugin-node-externals to 8.1.1
  • chore(deps): Bump magic-string to 0.30.19

v2.5.0

Compare Source

Added
  • Minimum Vite version is now 7.1.4
🐛 Fixed bugs
  • fix: bump vite version to fix running in watch mode #​693 (susnux)
Other changes
  • chore: update vite-plugin-node-polyfills to 0.24.0 #​678 (skjnldsv)
  • chore: various dev deps upgrades #​680 (skjnldsv)
  • chore(deps): Bump @​vitejs/plugin-vue from 6.0.0 to 6.0.1 #​681
  • chore(deps): Bump cipher-base from 1.0.4 to 1.0.6 #​687
  • chore(deps): Bump sha.js from 2.4.11 to 2.4.12 #​688
  • chore(deps): Bump magic-string from 0.30.17 to 0.30.18 #​691
  • chore(deps): Bump rollup-plugin-node-externals from 8.0.1 to 8.1.0 #​690

v2.4.0

Compare Source

Added
  • Vite v7 support
🐛 Fixed bugs
  • fix(watch): adjust rollup config for watch mode #​666 (susnux)
Changed
  • chore: remove work-around for already fixed bug #​664 (susnux)
  • chore: adjust defaults to use SPDX over 3rdparty BOM #​665 (susnux)
  • chore(deps): Bump @​vitejs/plugin-vue to 6.0.0
  • chore(deps): Bump pbkdf2 to 3.1.3
  • chore(deps): Bump rollup-plugin-node-externals to 8.0.1
  • chore(deps): Bump vite-plugin-dts to 4.5.4

v2.3.5

Compare Source

🐛 Fixed bugs
  • fix(SPDX): correctly handle plugins

v2.3.4

Compare Source

🐛 Fixed bugs
  • fix(SPDX): handle vite internal modules and sanitize name #​606 (susnux)
Changed
  • chore(deps-dev): Bump vite to 6.3.4

v2.3.3

Compare Source

Changed
  • chore(deps): Bump @​vitejs/plugin-vue from 5.2.1 to 5.2.3
  • chore(deps): Bump rollup-plugin-esbuild-minify from 1.2.0 to 1.3.0
  • chore(deps): Bump esbuild and rollup-plugin-esbuild-minify

v2.3.2

Compare Source

Fixed
Changed
  • Updated dependencies

v2.3.1

Compare Source

Fixed
  • fix: Vite 6 made the CSS output file breaking #​470
Changed
  • Updated development dependencies
  • chore(deps): Bump vite-plugin-dts to 4.5.0
  • chore(deps): Bump vite-plugin-node-polyfills to 0.23.0

v2.3.0

Compare Source

Added
  • Support for Vite 6
    • Dropped support for Vite 4 as the vue plugin is no longer compatible with v4 and v6.
Fixed
  • fix(REUSELicensesPlugin): remove duplicates in license files #​293 (ShGKme)
Changed
  • ci: Update dependabot-approve-merge.yml #​315 (AndyScherzinger)
  • Updated development dependencies
  • chore(deps): Bump elliptic to 6.6.0
  • chore(deps): Bump magic-string to 0.30.17
  • chore(deps): Bump nanoid to 3.3.8
  • chore(deps): Bump rollup-plugin-corejs to 1.0.1
  • chore(deps): Bump rollup-plugin-esbuild-minify to 1.2.0
  • chore(deps): Bump rollup-plugin-license to 3.5.3
  • chore(deps): Bump rollup-plugin-node-externals to 8.0.0
  • chore(deps): Bump vite-plugin-css-injected-by-js to 3.5.2
  • chore(deps): Bump vite-plugin-dts to 4.4.0
  • chore(deps): Bump @​rollup/plugin-replace to 6.0.2
  • chore(deps): Bump @​vitejs/plugin-vue to 5.2.1

v2.2.2

Compare Source

Fixed
  • fix(REUSELicensesPlugin): Emit files in generateBundle hook to have real filenames #​283 (susnux)

v2.2.1

Compare Source

Fixed
  • fix: Adjust import of rollup-plugin-esbuild-minify #​279 (susnux)

v2.2.0

Compare Source

Added
  • feat(EmptyJSDirPlugin): Allow to specify other directories to clear #​240 (susnux)
  • feat: Add REUSE license plugin to extract license information for built assets #​250 (susnux)
Fixed
  • perf(CSSEntryPointsPlugin): Only visit chunks once per entry point #​239 (susnux)
  • fix(appconfig): cssCodeSplit is enabled by default so handle CSS entries #​243 (susnux)
  • fix: Revert chunkFileNames to include hash #​267 (juliushaertl)
Changed

v2.1.0

Compare Source

Added
  • feat(app-config): Add option to override the app name #​205 (susnux)
  • Allow to specify an output prefix and load app id from appinfo #​207 (susnux)
  • feat: Add CSSEntryPointsPlugin to fix vite for creating one CSS entry per JS entry point #​204 (susnux)
Changed
  • chore(deps-dev): Bump vite from 5.2.13 to 5.3.1
  • chore(deps): Bump braces from 3.0.2 to 3.0.3

v2.0.2

Compare Source

Fixed
  • fix: explicitly use window.OC global in app config #​197 (st3iny)

v2.0.1

Compare Source

Changed

v2.0.0

Compare Source

Breaking changes

This version is Vue 3 only.
For Vue 2 use the 1.x version.

v1.7.2

Compare Source

Fixed
  • fix(REUSE): also add correct license headers for facade chunks #​737
Changed

v1.7.1

Compare Source

Fixed
  • fix: make configuration rolldown compatible #​718
Changed
  • chore(deps): Bump rollup-plugin-node-externals to 8.1.1
  • chore(deps): Bump magic-string to 0.30.19

v1.7.0

Compare Source

Added
  • Minimum Vite version is now v7.1.4
Changed

Full Changelog: nextcloud-libraries/nextcloud-vite-config@v1.6.0...v1.7.0

v1.6.0

Compare Source

What's Changed

Full Changelog: nextcloud-libraries/nextcloud-vite-config@v1.5.6...v1.6.0

nextcloud-libraries/nextcloud-vue (@​nextcloud/vue)

v9.9.0

Compare Source

Full Changelog

v9.8.2

Compare Source

Full Changelog

v9.8.1

Compare Source

Full Changelog

v9.8.0

Compare Source

Full Changelog

v9.7.0

Compare Source

Full Changelog

📝 Notes
  • NcRichText component used with useMarkdown = true or useExtendedMarkdown = true no longer renders relative links that can not be resolved by Vue Router.
    They are might interfere with routing logic and considered not belonging to the application. Examples that are not rendered as a clickable link:
    • [unknown protocols](unknown:protocol)
    • [unresolved relative link](internal_route)
    • [relative parameters](?parameters=1)
    • [relative anchor](#anchor)
🚀 Enhancements
  • feat(NcRichContenteditable): allow to pass menuContainer as string #​8417 (Antreesy)
🐛 Fixed bugs
  • fix(NcCheckboxRadioSwitch): use reactive state for group checkbox toggle #​8324 (pringelmann)
  • fix(NcRichText): do not escape markdown syntax when resolving reference #​8351 (Antreesy)
  • fix(NcPasswordField): reset validation state on change #​8350 (Antreesy)
  • fix(NcAppNavigation): close navigation on click outside for mobile dimensions #​8284 (grnd-alt)
  • fix(NcAvatar): redirect to guest avatar if avatar does not exist #​8440 (skjnldsv)
  • fix(NcModal): prevent focus trap race condition #​8093 (nikhil2297)
  • fix(NcRichText): do not render nested links in markdown #​8449 (Antreesy)
  • fix(NcRichText)!: do not render invalid relative markdown links #​8397 (Antreesy)
  • fix(NcAppNavigationSearch): Show search clear icon only when field contains something #​8454 (jancborchardt)
Other Changes
  • Updated translations

v9.6.0

Compare Source

Full Changelog

🚀 Enhancements
  • feat(NcFilePicker): add picker component to select local files #​7097 (susnux)
  • feat(emoji): extend 'emojiAddRecent' to allow pass emoji as an argument #​8288 (Antreesy)
🐛 Fixed bugs
  • fix(NcTextArea): area resize does not resize component #​8175
  • fix(NcButton): remove active effect from disabled buttons #​8176 (Antreesy)
  • fix(NcInputField): use overflow-wrap: anywhere instead of word-break: break-all for the helper text #​8225 (Sector6759)
  • fix(NcModal): properly handle modal name size #​8263 (susnux)
  • fix(NcRichContenteditable): restore native undo/redo events #​8286 (Antreesy)
  • fix(NcAppContent): list is not scrollable on mobile #​8292
  • fix(NcRichText): ignore links resolving in Markdown #​8154 (Antreesy)
Other Changes
  • Updated translations
  • fix: add missing initialization to keep the old behaviour #​8291

v9.5.0

Compare Source

Full Changelog

🚀 Enhancements
🐛 Fixed bugs
  • fix(NcButton): do not reduce border radius for small buttons #​8129 (susnux)
  • fix: use provided appName of NcContent if possible #​8157 (susnux)
  • fix(NcInputField): Helper message word-break on Chrome #​8128 (artonge)
Other Changes

v9.4.0

Compare Source

Full Changelog

🚀 Enhancements
  • feat(NcDateTimePicker): add range limit props and inline option #​8009 (GVodyanov)
Other Changes
  • deps: revert pin for focus-trap library and bump to v7.8.0 #​8072 (ShGKme)
  • build: prevent style leaks from apps with different Vue version #​8091 (ShGKme)

v9.3.3

Compare Source

Full Changelog

🐛 Fixed bugs
  • fix(NcActions): migrate to custom icons in Checkbox and Radio actions #​8020 (ShGKme)
Other Changes

v9.3.2

Compare Source

Full Changelog

🐛 Fixed bugs
Other Changes
  • chore(README): recommend using npm pack and styleguidist instead of npm link #​8018 (ShGKme)
  • chore(README): remove Firefox note #​8019 (ShGKme)

v9.3.1

Compare Source

Full Changelog

🚀 Enhancements
🐛 Fixed bugs
Other Changes

v9.3.0

Compare Source

Full Changelog

🚀 Enhancements

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • "every weekend"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added 3. to review Waiting for reviews dependencies Pull requests that update a dependency file labels Jul 6, 2026
@renovate
renovate Bot requested a review from skjnldsv July 6, 2026 22:12
@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Jul 6, 2026
@renovate

renovate Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving: viewer@8.0.0-dev.0
npm error Found: vite@6.4.3
npm error node_modules/vite
npm error   dev vite@"^6.0.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer vite@"^7.3.6" from @nextcloud/vite-config@2.5.4
npm error node_modules/@nextcloud/vite-config
npm error   dev @nextcloud/vite-config@"^2.5.4" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2026-07-16T07_50_45_759Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2026-07-16T07_50_45_759Z-debug-0.log

@renovate
renovate Bot force-pushed the renovate/master-major-nextcloud branch 3 times, most recently from f6d0319 to bc771dc Compare July 13, 2026 20:03
@renovate
renovate Bot force-pushed the renovate/master-major-nextcloud branch from bc771dc to b7005c1 Compare July 16, 2026 07:50
@skjnldsv
skjnldsv force-pushed the renovate/master-major-nextcloud branch 2 times, most recently from 3f89697 to 5a55ea4 Compare July 16, 2026 08:41
renovate Bot and others added 3 commits July 16, 2026 10:41
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
The renovate PR ba33742 upgraded @nextcloud/vue from ^8.37.0 to ^9.9.0 along with other dependencies. However, this project is not yet prepared for Vue 3 and the source code still uses Vue 2 APIs (mixins like \`isFullscreen\` and \`isMobile\` that were removed in Vue 3).

Reverting to pre-Renovate dependency versions to restore build functionality. The project requires a separate migration effort to upgrade to Vue 3 and update components to use composables instead of mixins.

Assisted-by: ClaudeCode:claude-haiku-4-5-20251001
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
@skjnldsv
skjnldsv force-pushed the renovate/master-major-nextcloud branch from 5a55ea4 to d4e5ebd Compare July 16, 2026 08:41
@renovate

renovate Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

skjnldsv added 2 commits July 16, 2026 12:33
The lock file still pinned vite@7.3.6 after package.json was reverted
to vite@^6.0.0, causing npm ci to fail in CI (all jobs run npm ci
before their actual task, so every check failed: eslint, stylelint,
build, playwright).

Assisted-by: ClaudeCode:claude-haiku-4-5-20251001
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
CI build failed with "Rollup failed to resolve import
vite-plugin-node-polyfills/shims/global" from vue's runtime, not
reproducible locally even with a fully clean npm ci + build. Bumping
@nextcloud/vite-config from 1.5.6 to 1.6.0 (still compatible with
vite ^6.0.0) pulls in vite-plugin-node-polyfills 0.24.0, which
resolves the shim import differently and should fix the CI-only
build/Playwright failures.

Assisted-by: ClaudeCode:claude-haiku-4-5-20251001
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
@skjnldsv
skjnldsv enabled auto-merge July 17, 2026 07:35
@skjnldsv
skjnldsv merged commit ffd9c31 into master Jul 17, 2026
21 checks passed
@skjnldsv
skjnldsv deleted the renovate/master-major-nextcloud branch July 17, 2026 07:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant