949 Commits
Author SHA1 Message Date
jhoward1994 42509493bf release: 5.47.0 2026-05-28 11:22:14 +00:00
Ben Irvin 05ff01de4f feat: publicationFilter param in REST and document service (#25793) 2026-05-21 11:31:18 +02:00
Bassel17 04ac8c3e90 release: 5.46.1 2026-05-20 09:09:00 +00:00
Mark Kaylor 83fec11da9 Merge remote-tracking branch 'origin/main' into develop 2026-05-13 19:12:11 +02:00
markkaylor 7f34c4b7d9 release: 5.46.0 2026-05-13 13:39:32 +00:00
Ben Irvin 4648a4c3e5 fix(upgrade): use pnpm install when project prefers pnpm (#26246)
* fix(upgrade): use pnpm install when project prefers pnpm

Extend @strapi/utils package manager support to include pnpm. The upgrade CLI
then runs pnpm install instead of incorrectly defaulting to npm on pnpm
projects.

Resolve the NPM registry in @strapi/upgrade via pnpm config when pnpm is
preferred.

Fix #23927

* fix: supported package  managers
2026-05-12 12:56:58 +00:00
Andrei L b5452ab89f chore(eslint): migrate .eslintrc + .eslintignore to .eslintrc.cjs (#26216)
* chore(eslint): migrate .eslintrc + .eslintignore to .eslintrc.cjs

Consolidates the per-package ESLint setup into a single typed
`.eslintrc.cjs` file across the monorepo (177 files touched).

Why
- `.eslintignore` is removed in ESLint v9/v10. Folding ignore patterns
  into `ignorePatterns` inside the rc file is the supported migration
  path and unblocks future ESLint upgrades (which will likely be needed
  alongside the in-flight TypeScript 6 migration).
- `.cjs` extension is explicit about module format, so the configs keep
  working if any package later adopts `"type": "module"` (no CJS/ESM
  surprises).
- Wrapping each config in `// @ts-check` + a `Linter.Config`-typed
  `const config` block gives editor autocomplete and catches typos.
  Surfaced two real duplicates in
  `eslint-config-custom/back/typescript.js`
  (`node/no-unsupported-features/es-syntax`,
  `node/no-missing-import`), now deduplicated.
- `extends` references switched from the `custom/*` shorthand to the
  explicit `eslint-config-custom/*` package name. ESLint resolves both,
  but the explicit form makes the source unambiguous.
- Added `coverage/` to `ignorePatterns` so coverage output produced
  inside a workspace is not linted.

Misc
- `examples/kitchensink` had ESLint configured but no `lint` script;
  added one so the config actually runs.
- `nx.json` hash inputs updated:
  - removed `.eslintignore` (no longer exists)
  - replaced `{projectRoot}/.eslintrc.js` with
    `{projectRoot}/**/.eslintrc.cjs` so nested package configs are also
    part of the cache key (the previous glob missed them).
- `packages/utils/upgrade/tsconfig.eslint.json` include path updated
  from `.eslintrc.js` to `.eslintrc.cjs`.

Verification
- `eslint --print-config` resolves cleanly on sampled back/front
  packages (admin, users-permissions, upload).
- Full `pnpm -r lint` is clean.

* chore(eslint): set tsconfigRootDir for vscode-eslint typed linting

CLI lint resolved tsconfig paths via cwd, but vscode-eslint runs from
the workspace root and could not locate per-package tsconfigs. Set
parserOptions.tsconfigRootDir to __dirname in each package's
.eslintrc.cjs so the editor resolves typed-lint configs correctly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(eslint): self-ignore configs, scope coverage to jest packages

- Replace `env: { es6: true }` workaround with `.eslintrc.cjs` in
  ignorePatterns so eslint never lints the config file itself
  (root cause of the "const is not a keyword" parse error in es5)
- Add `.eslintrc.cjs` to ignorePatterns across all configs that
  were missing it
- Restrict `coverage/` ignorePatterns to workspace roots that
  actually run jest; drop from non-test packages and admin/server
  subdir configs (tests run from the workspace root)
2026-05-12 07:32:12 +00:00
Jamie Howard a2c5ecb225 Merge remote-tracking branch 'origin/main' into develop 2026-05-11 16:16:35 +01:00
jhoward1994 9300041094 release: 5.45.1 2026-05-11 10:41:36 +00:00
7544ed7474 fix(utils): throw ValidationError for all invalid query params (not just sort) (#25894)
* fix(utils): throw ValidationError for all invalid query params (not just sort)

Several query parameter validators threw generic Error instead of
ValidationError, causing 500 instead of 400 responses.

Fixed:
- convertStartQueryParams: invalid start value
- convertLimitQueryParams: invalid limit value
- convertPopulateObject: invalid nested populate
- Invalid nested population query (polymorphic)
- Using fragments on non-morph attributes
- Invalid nested populate format
- Invalid fields parameter
- Invalid filters parameter

Complements #25561 and #25751 which fix sort-related errors.

* fix: add trailing newline per reviewer suggestion

* chore: fix linting

---------

Co-authored-by: guoyangzhen <guoyangzhen@users.noreply.github.com>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
Co-authored-by: Ben Irvin <ben@innerdvations.com>
2026-05-08 13:04:51 +00:00
Bassel17 c5bc749fee release: 5.45.0 2026-05-06 10:06:46 +00:00
Dominik JurigaandZiyi 86fe764f4f feat: sort based on publish status (#25689)
* feat: sort based on publish status

* chore: remove redundant `any` type assertions

* fix: override sort if `status` filter is present

* fix(content-manager): status sort ignored hasPublishedVersion and publicationStatusFilter

* fix(utils): remove unused STATUS_ATTRIBUTE constant

* fix(content-manager): missing deps in useEffect for status sort cleanup

---------

Co-authored-by: Ziyi <daydreamnation@live.com>
2026-05-04 13:19:13 +02:00
Ziyi fa6299100d feat(content-manager): add Zod 4 foundation utilities (#25574) 2026-04-30 14:55:04 +02:00
Adzouz 11554fe43e release: 5.44.0 2026-04-29 13:06:31 +00:00
nclsndr 14628987b5 release: 5.43.0 2026-04-22 14:30:40 +00:00
jhoward1994 4709832272 release: 5.42.1 2026-04-15 11:13:30 +00:00
dependabot[bot] 68e20493cc chore(deps): bump lodash from 4.17.23 to 4.18.1 (#25919)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:50:59 +02:00
markkaylor e86a5190a5 release: 5.42.0 2026-04-08 12:14:52 +00:00
Bassel Kanso b35ea93f83 Merge branch 'main' into develop 2026-04-01 13:29:10 +03:00
Bassel17 5ae36e382d release: 5.41.1 2026-04-01 09:48:47 +00:00
Bassel Kanso 056df8eaec Merge branch 'main' into develop 2026-04-01 12:30:46 +03:00
Bassel17 967175a13b release: 5.41.0 2026-04-01 09:10:30 +00:00
Ben Irvin 1459f88cde fix: contains filter no longer returns empty data (#25810)
* fix: contains filter no longer returns empty data

* chore: fix comments

* fix(utils): stop recursing opaque operator operands in filter traversal

* fix(utils): keep Date and other operand objects when stripping empty filters
2026-03-31 14:15:27 +02:00
Adrien L ba17962b42 release: 5.40.0 2026-03-18 16:21:08 +01:00
Ziyi 08c3b0f003 fix: Content types with attributes named filters, sort, fields, or populate no longer cause 400 validation errors on populate queries and countDraftRelations (#21338) (#25762)
* fix(utils): make convertNestedPopulate schema-aware to prevent keyword collision
2026-03-18 15:48:54 +01:00
Adzouz e1cdebd2a5 release: 5.40.0 2026-03-18 13:25:35 +00:00
Bassel Kanso ea3b700d6d Merge branch 'main' into develop 2026-03-11 16:37:26 +02:00
Bassel17 243c96ff4a release: 5.39.0 2026-03-11 10:13:31 +00:00
Bassel17 cd12da721d release: 5.38.1 2026-03-11 09:56:28 +00:00
Nikolas RimikisandNikolas Rimikis a0a18654b2 chore: use https instead of git url in package.repository.url (#25698)
Signed-off-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
Co-authored-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
2026-03-10 12:42:42 +00:00
Nikolas RimikisandNikolas Rimikis f2a8048761 chore: update package metadata (#25599)
Add homepage, bugs and repository information to every public package

Signed-off-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
Co-authored-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
2026-03-09 15:34:48 +01:00
Ben Irvin 68397d1cc3 chore: eslintignore coverage (#25649) 2026-03-05 17:01:03 +01:00
Ben Irvin 12c801db9e chore: upgrade koa to 20.8.4 and minimatch to 10.2.4 (#25624) 2026-03-05 12:25:36 +00:00
markkaylor 29f5741e96 release: 5.38.0 2026-03-04 13:09:53 +00:00
Bassel17 e7bb15d0fd release: 5.37.1 2026-02-26 14:50:27 +00:00
innerdvations c18dbf7892 release: 5.37.0 2026-02-26 08:27:53 +00:00
Ben Irvin 7786d4dcde fix: feature works and rename addBodyParams to addInputParams (#25552)
* fix: add params actually works

* fix: rename addInputParams

* test: fix register timing

* chore: update getstarted

* test(api): remove ai comment

* revert: do not merge in type unneccessarily

* revert: do not add type to route
2026-02-25 17:34:56 +01:00
Ben Irvin 79a590a581 security(feat): add strictParam, addQueryParams, addBodyParams (#25528) 2026-02-24 13:51:33 +01:00
Bassel Kanso 741c748589 Merge branch 'main' into develop 2026-02-19 17:14:36 +02:00
innerdvations 6187e8a9d7 release: 5.36.1 2026-02-18 14:16:09 +00:00
062cd562d0 feat(): add hasPublishedVersion parameter for Document Service (#25292)
* feat(): add hasPublishedVersion parameter for REST API

* fix(): add tests and small fixes

* fix(): fix documentID being overwritten and add tests

* fix(): add filter function so it works for both root and nested queries

* feat(): add parameter for graphQL and tests

* fix(): only add agrs to schema when draft and published is enabled

* test(api): graphql and findfirst tests

* Update packages/core/utils/src/convert-query-params.ts

Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>

* fix(): fix graphql nested relation issues, add tests

---------

Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
2026-02-18 10:03:29 +00:00
Ben Irvin bebb8af25d ci: add version compare script and workflow (#25451) 2026-02-18 09:16:43 +01:00
Mark Kaylor 9ecfab0e5d Merge branch 'main' of github.com:strapi/strapi into develop 2026-02-11 17:13:52 +01:00
markkaylor 23a521fab4 release: 5.36.0 2026-02-11 14:05:28 +00:00
Josh Stuible 77ff3f7b69 fix(utils): bump preferred-pm to fix npm workspace detection (#25406) 2026-02-11 10:04:11 +01:00
innerdvations ec17c9e1ed release: 5.35.0 2026-02-04 12:48:11 +00:00
markkaylor 47cff8e767 release: 5.34.0 2026-01-28 14:54:52 +00:00
Jamie HowardandCopilot Autofix powered by AI 1153e05e6e [CM] request-scoped caching and parallelisation (#24999)
* fix(core): request-scoped model cache for validateParams

* chore(model-cache): enhance documentation

* feat: cache permission calculations in sanitize and validate services, reduce db queries

* chore: replace hardcoded prefix with constant for content manager store keys

* feat: parallel tranversal and further caching

* chore: extract shared utilities

* feat: add performance benchmarking for deeply nested content management

* chore: improve error handling in parallel processing of arrays

* chore: add TODO

* feat: enhance performance benchmark script

* Potential fix for code scanning alert no. 65: Clear-text logging of sensitive information

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* fix: improve error message

* chore(content-manager): revert dynamic populate depth

* feat: optimize permission checking and caching mechanisms

* test: componentService strapi mock

* fix: permission-checker tests types

* fix: remove redundant permission check in collection-types controller

* chore: remove performance benchmarking files and related configurations

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-01-22 15:49:27 +00:00
Bassel17 2437d69089 release: 5.33.4 2026-01-21 11:43:11 +00:00
innerdvations 8cf09da6cf release: 5.33.3 2026-01-14 11:05:34 +00:00